From d470e67ac1997882502b75cbfdaf359626cfaaa8 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期五, 20 十二月 2024 17:27:07 +0800
Subject: [PATCH] 测试修复小程序问题,添加水控机设备

---
 pages/infoBreakdown/index.vue                            |    7 
 pagesPoints/pointsMall/pointsGoodsDetail/index.vue       |    6 
 pages/wxScanWater/index.vue                              |   15 
 pagesAdmin/adminPlatform/params.vue                      |   61 
 static/images/index/notice5.svg                          |    1 
 unpackage/dist/dev/mp-weixin/pages/index/index.js        |  128 +--
 static/images/index/icon51.svg                           |    1 
 unpackage/dist/dev/mp-weixin/common/vendor.js            |    6 
 static/images/index/point-banner.png                     |    0 
 pages/functionList/share/shareConfirm/index.vue          |    2 
 pages/facilityList/index.vue                             |   10 
 static/images/index/home21.svg                           |    1 
 static/images/index/scan.png                             |    0 
 unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml   |    2 
 pagesAdmin/adminPlatform/home.vue                        |   98 ++
 pages/index/index.vue                                    |  646 +++++++++++-------
 pages/scanWater/index.vue                                |   18 
 static/images/index/card11.png                           |    0 
 unpackage/dist/dev/mp-weixin/api/index.js                |   12 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxss      |  316 ++++-----
 pages.json                                               |    6 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxml      |    2 
 pagesAdmin/adminPlatform/params1.vue                     |  278 ++++++++
 unpackage/dist/dev/mp-weixin/project.private.config.json |    6 
 unpackage/dist/dev/mp-weixin/app.js                      |    1 
 static/images/addCard/code.svg                           |    1 
 unpackage/dist/dev/mp-weixin/app.json                    |    1 
 pagesAdmin/adminPlatform/facilityDetail.vue              |   14 
 unpackage/dist/dev/mp-weixin/project.config.json         |    5 
 pages/addCard/index.vue                                  |   43 
 pages/recharge/index.vue                                 |   64 +
 /dev/null                                                |    0 
 static/images/station/facilityImg.svg                    |    1 
 pagesAdmin/adminPlatform/maintain.vue                    |   30 
 pages/station/index.vue                                  |   13 
 static/images/index/icon22.svg                           |    1 
 unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml    |    2 
 unpackage/dist/dev/mp-weixin/pages/recharge/index.js     |   58 +
 unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss    |   12 
 api/index.js                                             |   17 
 unpackage/dist/dev/mp-weixin/common/assets.js            |   40 
 41 files changed, 1,247 insertions(+), 678 deletions(-)

diff --git a/api/index.js b/api/index.js
index 2e58949..87779a5 100644
--- a/api/index.js
+++ b/api/index.js
@@ -184,13 +184,21 @@
 export function closeFacilityApi(data){
 	return request('/api/facility/close',data,'POST')
 }
-//获取设备参数
+//获取售水机设备参数
 export function getParameterApi(sn){
 	return request(`/waterFacility/getParameter?sn=${sn}`,{},'GET')
 }
-//修改设备参数
+//获取水控机设备参数
+export function getParameter1Api(sn){
+	return request(`/waterFacility/getWaterControlParameter?sn=${sn}`,{},'GET')
+}
+//修改售水机设备参数
 export function editParameterApi(data){
 	return request('/waterFacility/editParameter',data,'POST')
+}
+//修改水控机设备参数
+export function editParameter1Api(data){
+	return request('/waterFacility/editWaterControlParameter',data,'POST')
 }
 
 //查询设备故障上报
@@ -209,6 +217,11 @@
 export function editExamineApi(data){
 	return request('/waterFacilityMalfunction/modify',data,'POST')
 }
+//修改密码
+export function changePasswordApi(data){
+	return request('/admin/user/changePassword',data,'POST')
+}
+
 
 
 
diff --git a/pages.json b/pages.json
index 9a07a5c..fe5642f 100644
--- a/pages.json
+++ b/pages.json
@@ -222,6 +222,12 @@
 					}
 				},
 				{
+					"path" : "adminPlatform/params1",
+					"style": {
+						"navigationStyle":"custom"
+					}
+				},
+				{
 					"path" : "adminPlatform/breakdown",
 					"style": {
 						"navigationStyle":"custom"
diff --git a/pages/addCard/index.vue b/pages/addCard/index.vue
index c9bb53c..b111e36 100644
--- a/pages/addCard/index.vue
+++ b/pages/addCard/index.vue
@@ -81,42 +81,23 @@
 					<uni-forms ref="formRef" :model="form" :rules="rules" label-width = 100>
 						<uni-forms-item class="form-item" label="卡号:" name="waterCardNumber">
 							<view class="card-item">
-								<input v-model="form.waterCardNumber" placeholder="请输入卡号或扫描二维码" />
-								<image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
+								<input class="scan-input" v-model="form.waterCardNumber" placeholder="请输入卡号或扫描二维码" />
+								<image class="scan-img" @click="toScan()" src="../../static/images/addCard/code.svg" alt=""></image>
 							</view>
 						</uni-forms-item>
 						<uni-forms-item label="姓名:" name="userName">
-							<input v-model="form.userName" placeholder="请输入姓名" />
+							<input class="input-item" v-model="form.userName" placeholder="请输入姓名" />
 						</uni-forms-item>
 						<uni-forms-item label="联系方式:" name="userPhone">
-							<input type="textarea" v-model="form.userPhone" placeholder="请输入手机号" />
+							<input class="input-item" type="textarea" v-model="form.userPhone" placeholder="请输入手机号" />
 						</uni-forms-item>
 						<uni-forms-item label="备注:" name="remark">
-							<input type="textarea" v-model="form.remark" placeholder="请输入内容" />
+							<input class="input-item" type="textarea" v-model="form.remark" placeholder="请输入内容" />
 						</uni-forms-item>
 					</uni-forms>
 				</view>
-				<!-- <view class="form">
-					<view class="form-item card-item">
-						<text>卡号:</text>
-						<input v-model="form.waterCardNumber" placeholder="请输入卡号"/>
-						<image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
-					</view>
-					<view class="form-item">
-						<text>姓名:</text>
-						<input v-model="form.userName" placeholder="请输入姓名"/>
-					</view>
-					<view class="form-item">
-						<text>联系方式:</text>
-						<input v-model="form.userPhone" placeholder="请输入手机号"/>
-					</view>
-					<view class="form-item">
-						<text>备注:</text>
-						<input v-model="form.remark" placeholder="请输入内容"/>
-					</view>
-				</view> -->
 				<view class="tips">
-					<text>1、完成实名认证,方便遗失挂失及补卡等。</text>
+					<text class="tips-text">1、完成实名认证,方便遗失挂失及补卡等。</text>
 					<text>2、绑卡后,运营商可以看到您实名时填写的姓名和电话。</text>
 				</view>
 				<view class="subBtn" @click="submit()">提交信息</view>
@@ -152,7 +133,7 @@
 				   border-radius: 24rpx;
 				   padding:30rpx 50rpx 0;
 				   box-sizing: border-box;
-				   input{
+				   .input-item{
 					   line-height:100%;
 					   height:100%;
 				   }
@@ -161,15 +142,15 @@
 					   justify-content: space-around;
 					   height:100%;
 					   align-items: center;
-					   input{
+					   .scan-input{
 						 width:375rpx;
 						 margin-right:20rpx;
 						 line-height:100%;
 						 height:100%;
 						 }
-						 image{
-							 width:44rpx;
-							 height:44rpx;
+						 .scan-img{
+							 width:56rpx;
+							 height:56rpx;
 						 }
 				   }
 			   }
@@ -185,7 +166,7 @@
 				   font-weight: 300;
 				   font-size:28rpx;
 				   color: #484848;
-				   text:first-child{
+				   .tips-text{
 					   margin-bottom:28rpx;
 				   }
 			   }
diff --git a/pages/facilityList/index.vue b/pages/facilityList/index.vue
index d6ee2a7..0b0c6f8 100644
--- a/pages/facilityList/index.vue
+++ b/pages/facilityList/index.vue
@@ -6,14 +6,15 @@
 				<block v-for="(item,index) in deviceList" :key="index">
 					<view class="item">
 						<view class="item-img">
-							<image src="../../static/logo.png" alt=''></image>
+							<image v-if="item.url" :src="baseUrl + '/upload' + item.url" alt='' mode="aspectFit"></image>
+							<image v-else src="../../static/images/station/facilityImg.svg" alt='' mode="aspectFit"></image>
 						</view>
 						<view class="item-info">
 							<view class="info-name">{{item.facilityName}}</view>
 							<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>
+									<image src="../../static/images/index/icon22.svg" alt=''></image>
 									<text>{{item.distance}}km</text>
 								</view>
 							</view>
@@ -28,6 +29,9 @@
 <script setup>
 	import { onMounted, ref } from 'vue'
 	import { searchFacilityApi } from '../../api/index.js'
+	import { BASE_URL } from '../../config/baseUrl.js'
+	
+	const baseUrl = ref(BASE_URL)
 	const deviceList = ref([])
 	const userLocation = ref()
 	//获取设备信息
@@ -44,6 +48,7 @@
 						distance:preDistance.km,
 						lat:item.latitude,
 						lon:item.longitude,
+						url:item.facilityUrl
 					})
 				})
 				console.log('deviceList.value',deviceList.value)
@@ -64,6 +69,7 @@
 	}
 	//打开地图导航
 	function openMap(lat,lon){
+		console.log('lat:',parseFloat(lat),'lon:',parseFloat(lon))
 		uni.openLocation({
 			latitude: parseFloat(lat),
 			longitude: parseFloat(lon),
diff --git a/pages/functionList/share/shareConfirm/index.vue b/pages/functionList/share/shareConfirm/index.vue
index 76c41d4..e5718e9 100644
--- a/pages/functionList/share/shareConfirm/index.vue
+++ b/pages/functionList/share/shareConfirm/index.vue
@@ -42,7 +42,7 @@
 			console.log('请求响应',res)
 			if(res.code == 200){
 				uni.showToast({
-					title:'共享成功',
+					title:'已发起,待确认',
 					duration:1500,
 				})
 				setTimeout(() =>{
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 9abbe73..9ab5d85 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -15,6 +15,7 @@
 	 * 会员卡相关
 	 */
 	const cardInfo = ref({
+		//用户档案信息
 		id:'',
 		userName:'微信用户',
 		headImg:'',
@@ -35,38 +36,40 @@
 	//获取会员卡信息
 	 async function getVipInfo(){
 		await getVipInfoApi().then((res) =>{
+			console.log('会员卡信息响应',res)
 			if(res.code == 200 && res.data.id){
-				console.log('获取会员卡返回响应-首页',res)
+				//用户信息处理存储
 				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.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 
+				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',cardInfo.value,'isShareCard.value',isShareCard.value)
+				console.log('会员卡及用户信息',cardInfo.value)
 			}
 		})
 	}
 	//获取用户信息
 	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
-				// showHeadImg.value = BASE_URL + '/upload' + cardInfo.value.headImg
 				cardInfo.value.userPhone = res.data.userInfo.userPhone
 				cardInfo.value.id = res.data.userInfo.id
 				await getVipInfo()
-				console.log('用户信息响应',res)
 				console.log('用户信息',cardInfo.value)
 				uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 			}
@@ -80,9 +83,10 @@
 		uni.scanCode({
 			scanType: ['qrCode'],
 			success: async function (res) {
-				console.log('条码内容:' + res.result);
+				let code = res.result.split('=')[1]
+				console.log('条码内容:' + res.result,'code',code);
 				uni.navigateTo({
-							url:`/pages/scanWater/index?facilityCode=${res.result}`
+							url:`/pages/scanWater/index?facilityCode=${code}`
 						})
 			}
 		});
@@ -92,14 +96,14 @@
 	 */
 	const functionList = ref([
 		//isUrl:1:页面跳转,2:弹窗功能,3:弹窗功能,4:未开发
-		{text:'余额记录',icon:'../../static/images/index/icon31.png',bgColor:'#16b387',url:'/pages/functionList/balanceRecord/index',isUrl:1},
-		{text:'消费记录',icon:'../../static/images/index/icon32.png',bgColor:'#329ae8',url:'/pages/functionList/paymentRecord/index',isUrl:1},
-		{text:'充值记录',icon:'../../static/images/index/icon33.png',bgColor:'#f0a50e',url:'/pages/functionList/rechargeRecord/index',isUrl:1},
-		{text:'水卡共享',icon:'../../static/images/index/icon34.png',bgColor:'#55ca8c',url:'/pages/functionList/share/cardShare/index',isUrl:1},
-		{text:'故障上报',icon:'../../static/images/index/icon35.png',bgColor:'#a88ff1',url:'/pages/infoBreakdown/index',isUrl:1},
-		{text:'优惠卷',icon:'../../static/images/index/icon36.png',bgColor:'#18bfc4',url:'',isUrl:4},
-		{text:'会员卡挂失',icon:'../../static/images/index/icon37.png',bgColor:'#4875f0',url:'',isUrl:2},
-		{text:'会员卡解绑',icon:'../../static/images/index/icon38.png',bgColor:'#f45088',url:'',isUrl:3},
+		{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){
@@ -163,7 +167,7 @@
 					uni.showModal({
 							title: '会员卡注销',
 							content: '确认注销会员卡?',
-							success: async function(res) {
+							success: async function(res){
 							if (res.confirm) {
 								await removeBindingApi(cardInfo.value.waterCardNumber).then(async(res) =>{
 									if(res.code == 200){
@@ -278,23 +282,26 @@
 		}
 	}
 	onMounted( async() =>{
+		console.log('空用户信息',cardInfo.value)
+		uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 		getTopHeight()
 		await getInfo()
 		await getUserLocation()
-		console.log('进入首页了')
+		console.log('onMounted','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo')))
 	})
 	onShow(async() =>{
 		getTopHeight()
 		await getInfo()
+		console.log('onShow','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo')))
 	})
 	uni.showShareMenu({
 	  withShareTicket: true,
 	  menus: ['shareAppMessage', 'shareTimeline'],
 	  success: function () {
-	    console.log('分享菜单显示成功');
+	    // console.log('分享菜单显示成功');
 	  },
 	  fail: function (err) {
-	    console.error('分享菜单显示失败', err);
+	    // console.error('分享菜单显示失败', err);
 	  }
 	});
 </script>
@@ -308,52 +315,55 @@
 					<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 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 v-if="isShareCard" class="share-card">共享卡号:{{cardInfo.waterCardNumber}}</view>
-					<view v-if="!isShareCard" class="card-content">
-						<view class="card-left">
-							<view class="left-top">
-								<view>
-									<image v-if="isVip"  src="../../static/images/index/code1.png" alt=""></image>
-									<text v-if="isVip">会员卡&nbsp;</text>
-									<text v-if="!isVip">未绑定&nbsp;</text>
-									<text class="lossed" v-if="isLoss && isVip">&nbsp;[已挂失]</text>
+					<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 v-if="isVip">ID:{{cardInfo.waterCardNumber}}</view>
-							</view>
-						</view>
-						<view class="card-right">
-							<view class="card-right-top">
-								<text v-if="isVip">金额卡</text>
-								<text v-if="isVip">{{cardInfo.balance}}元</text>
-								<view v-if="!isVip" class="user-add-card" @click="navTo('/pages/addCard/index')">
-									<image src='../../static/images/index/vip-add.png' alt=''></image>
-									<text>添加会员卡</text>
+								<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 v-if="isVip" class="card-right-bottom" @click="navTo('/pages/recharge/index')">充值</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="upGrade">
-				<!-- <view class="box1-bg box1-one" @click="navTo('/pages/preSendWater/index')"> -->
-					<image src="../../static/images/index/home21.png" alt=""></image>
+					<image class="box-one-image1" src="../../static/images/index/home21.svg" alt=""></image>
 					<view>送水到家</view>
 				</view>
 				<view @click="navTo('/pages/facilityList/index')" class="box1-bg box1-two">
-					<image src="../../static/images/index/icon22.png" alt=""></image>
+					<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>
@@ -362,34 +372,22 @@
 				<view class="box2-content">
 					<block v-for="(item,index) in functionList" :key="index">
 						<view class="box2-item"  @click="setEvent(item.isUrl,item.url)">
-							<view class="box2-item-img" :style="{background:item.bgColor}"><image :src= "item.icon" alt=""></image></view>
+							<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 @click="navTo('/pages/wxScanWater/index')">测试扫码取水</view> -->
 			<!-- 积分商城 -->
 			<view class="advertisement-box" @click="navTo('/pagesPoints/pointsMall/index')">
-				<view class="point-advert">
-					<view class="advert-image">
-						<image  class="image-icon3" src="../../static/images/index/advert-icon3.svg"></image>
-						<image class="image-icon1" src="../../static/images/index/advert-icon1.svg"></image>
-						<image  class="image-icon2" src="../../static/images/index/advert-icon2.svg"></image>
-						<image  class="image-icon4" src="../../static/images/index/advert-icon4.svg"></image>
-					</view>
-					<view class="advert-title">
-						<view class="advert-title1">积分商城</view>
-						<view class="advert-title2"><text>点击进入</text></view>
-					</view>
-				</view>
+				<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" @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>
@@ -401,7 +399,7 @@
 					<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>
@@ -418,12 +416,13 @@
 <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;
@@ -455,157 +454,258 @@
 				}
 				.card{
 					width: 100%;
-					height: 290rpx;
+					height: 256rpx;
 					position:relative;
 					.card-bg{
-						height:290rpx;
+						height:256rpx;
 						width:100%;
 						top:0;
 						position: absolute;
 						z-index:1;
 					}
-					.share-card{
-						position:absolute;
-						top:16rpx;
-						left:28rpx;
-						z-index:100;
-						font-weight:400;
-						font-size: 36rpx;
-						color: #FFFFFF;
-					}
-					.card-content{
+					.card-none{
 						width: 100%;
-						height: 100%;
+						height:100%;
+						padding:38rpx;
 						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;
-								}
-							}
+						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-right{
+						.card-none-bottom{
 							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;
+							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: 56rpx;
-								color:#212DDE;
-								font-weight: 400;
+								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{
-					font-weight: 300;
-					font-size: 32rpx;
-					color: #000000;
 					display: flex;
-					flex-direction:column;
 					align-items:center;
 					justify-content:space-evenly;
-					image{
+					.box-one-image2{
 						width:96rpx;
 						height: 96rpx;
 						// margin-bottom:20rpx;
@@ -660,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%;
@@ -695,14 +819,15 @@
 						justify-content:space-between;
 						align-items: center;
 						.box2-item-img{
-							width: 90rpx;
-							height:90rpx;
+							width: 100rpx;
+							height:100rpx;
 							display: flex;
 							justify-content: center;
 							align-items: center;
-							// background: #65A7FD;
+							// background:linear-gradient(to right,#18acff,#639fff);
+							background: #5EA1FA;
 							border-radius:50%;
-							image{
+							.box2-image{
 								width: 48rpx;
 								height:48rpx;
 							}
@@ -711,90 +836,95 @@
 							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: 160rpx;
+				height:188rpx;
 				padding:0 32rpx 10rpx; 
 				box-sizing: border-box;
 				display: flex;
-				justify-content: space-around;
-				.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);
-						}
-					}
+				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;
diff --git a/pages/infoBreakdown/index.vue b/pages/infoBreakdown/index.vue
index 94912e0..ac131da 100644
--- a/pages/infoBreakdown/index.vue
+++ b/pages/infoBreakdown/index.vue
@@ -81,8 +81,9 @@
 		uni.scanCode({
 			scanType: ['qrCode'],
 			success: function (res) {
-				console.log('条码内容:' + res.result);
-				form.value.facilityCode = res.result
+				let code = res.result.split('=')[1]
+				form.value.facilityCode = code
+				console.log('条码内容:' + res.result,'code',code);
 			}
 		});
 	}
@@ -124,7 +125,7 @@
 							<uni-forms-item label="设备号:" name="facilityCode">
 								<view class="form-item">
 									<input v-model="form.facilityCode" placeholder="请扫描设备二维码获取" />
-									<image class="scan-img" @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
+									<image class="scan-img" @click="toScan()" src="../../static/images/addCard/code.svg" alt=""></image>
 								</view>
 							</uni-forms-item>
 							<uni-forms-item label="联系方式:" name="userPhone">
diff --git a/pages/recharge/index.vue b/pages/recharge/index.vue
index d713d1e..a73b815 100644
--- a/pages/recharge/index.vue
+++ b/pages/recharge/index.vue
@@ -1,5 +1,5 @@
 <script setup>
-	import{ ref ,onMounted} from 'vue'
+	import{ ref ,onMounted,onUnmounted} from 'vue'
 	import { wxPayApi,rechargeApi } from '../../api/index.js'
 	
 	const choosedMoney = ref(50)
@@ -52,29 +52,44 @@
 	// 	payList.value[index1].checked = true
 	// 	payMethod.value = payList.value[index1].value
 	// }
+	let timerId 
+	let payStatus = ref(true)
 	async function submit(){
-		let money = ''
-		if(disabled.value){
-			money = choosedMoney.value
-		}else{
-			money = Number(otherMoney.value)
-		}
-		let data = {
-		        cardNumber:userInfo.waterCardNumber,
-		        paymentMethod:1,
-		        rechargeAmount:money
-		    }
-		//生成订单
-		await rechargeApi(data).then(async(res) =>{
-			if(res.code == 200){
-				let data = {
-					businessType:1,
-					businessNo:res.data
-					}
-				//发起支付
-				await wxPay(data)
+		if(payStatus.value){
+			payStatus.value = false
+			timerId = setTimeout(()=>{
+				payStatus.value = true
+			},20000)
+			let money = ''
+			if(disabled.value){
+				money = choosedMoney.value
+			}else{
+				money = Number(otherMoney.value)
 			}
-		})
+			let data = {
+			        cardNumber:userInfo.waterCardNumber,
+			        paymentMethod:1,
+			        rechargeAmount:money
+			    }
+			//生成订单
+			await rechargeApi(data).then(async(res) =>{
+				if(res.code == 200){
+					let data = {
+						businessType:1,
+						businessNo:res.data
+						}
+					//发起支付
+					await wxPay(data)
+					otherMoney.value = ''
+				}
+			})
+			
+		}else{
+			uni.showToast({
+				title:'充值间隔20秒,请稍后!',
+				icon:'none'
+			})
+		}
 	}
 	//微信支付
 	async function wxPay(data){
@@ -118,6 +133,9 @@
 			}
 		})
 	}
+	onUnmounted(() =>{
+		clearTimeout(timerId)
+	})
 </script>
 <template>
 	<view class="container">
@@ -162,7 +180,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="submit-btn" @click="submit()">立即充值</view>
+			<view :style="{opacity:payStatus ? 1 : 0.7}" class="submit-btn" @click="submit()">立即充值</view>
 		</view>
 	</view>
 </template>
diff --git a/pages/scanWater/index.vue b/pages/scanWater/index.vue
index 7453896..12bd111 100644
--- a/pages/scanWater/index.vue
+++ b/pages/scanWater/index.vue
@@ -41,7 +41,15 @@
 		payMethod.value = payList.value[index1].value
 		console.log('index',index1,payMethod.value)
 	}
+	//确认支付
+	let timerId 
+	let payState = ref(true)
 	async function submit(){
+		if(payState.value){
+			payState.value = false
+			timerId = setTimeout(() =>{
+				payState.value = true
+			},20000)
 		//余额支付
 		if(payMethod.value == 1){
 			if(choosedMoney.value > Number(userBalance.value)){
@@ -132,11 +140,17 @@
 				}
 			})
 		}
+		}else{
+			uni.showToast({
+				title:'支付间隔20秒,请稍后!',
+				icon:'none'
+			})
+		}
 	}
 	const facilityCode = ref()
 	onLoad((option) =>{
 		facilityCode.value = option.facilityCode
-		console.log('小程序扫码取水','option.facilityCode',option.facilityCode,'设备SN',facilityCode.value)
+		console.log('小程序扫码取水','option.facilityCode',option.facilityCode,'传参SN',facilityCode.value)
 	})
 	//设置水价,设置支付方式,用户未绑定会员卡不显示余额支付选项
 	async function getWaterPrice(){
@@ -197,7 +211,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="submit-btn" @click="submit()">确认支付</view>
+			<view :style="{opacity:payState ? 1 : 0.7}" class="submit-btn" @click="submit()">确认支付</view>
 		</view>
 	</view>
 </template>
diff --git a/pages/station/index.vue b/pages/station/index.vue
index 0e93cd8..9daa3c6 100644
--- a/pages/station/index.vue
+++ b/pages/station/index.vue
@@ -12,14 +12,15 @@
 				<block v-for="(item,index) in sendWaterSiteList" :key='index'>
 					<view class="item">
 						<view class="item-img">
-							<image src="../../static/logo.png" alt=''></image>
+							<image v-if="item.image" :src="baseUrl + '/upload' + item.image" alt='' mode="aspectFit"></image>
+							<image v-else src="../../static/images/station/facilityImg.svg" alt='' mode="aspectFit"></image>
 						</view>
 						<view class="item-info">
 							<view class="info-name">{{item.name}}</view>
 							<view class="info-addr" @click="openMap(item.latitude,item.longitude)">
 								<text class="addr-text">地址:{{item.address}}</text>
 								<view>
-									<image src="../../static/images/index/icon22.png" alt=''></image>
+									<image src="../../static/images/index/icon22.svg" alt=''></image>
 									<text>{{item.distanceValue}}km</text>
 								</view>
 							</view>
@@ -33,14 +34,15 @@
 				<block v-for="(item,index) in facilitySiteList" :key='index'>
 					<view class="item">
 						<view class="item-img">
-							<image src="../../static/logo.png" alt=''></image>
+							<image v-if="item.image" :src="baseUrl + '/upload' + item.image" alt='' mode="aspectFit"></image>
+							<image v-else src="../../static/images/station/facilityImg.svg" alt='' mode="aspectFit"></image>
 						</view>
 						<view class="item-info">
 							<view class="info-name">{{item.name}}</view>
 							<view class="info-addr">
 								<text class="addr-text">地址:{{item.address}}</text>
 								<view @click="openMap(item.latitude,item.longitude)">
-									<image src="../../static/images/index/icon22.png" alt=''></image>
+									<image src="../../static/images/index/icon22.svg" alt=''></image>
 									<text>{{item.distanceValue}}km</text>
 								</view>
 							</view>
@@ -56,6 +58,9 @@
 <script setup>
 	import { onMounted, ref } from 'vue'
 	import { siteApi } from '../../api/index.js'
+	import { BASE_URL } from '../../config/baseUrl.js';
+	
+	const baseUrl = ref(BASE_URL)
 	const isNav = ref(2)//1:送水点;2:设备点
 	const isActive = ref({borderBottom:`3px solid #226AC9`})
 	const userLocation = ref()
diff --git a/pages/wxScanWater/index.vue b/pages/wxScanWater/index.vue
index fe0bab7..90e9170 100644
--- a/pages/wxScanWater/index.vue
+++ b/pages/wxScanWater/index.vue
@@ -61,7 +61,14 @@
 		payMethod.value = payList.value[index1].value
 		console.log('index',index1,payMethod.value)
 	}
+		let payState = ref(true)
+		let timerId
 	async function submit(){
+		if(payState.value){
+			payState.value = false
+			timerId = setTimeout(() =>{
+				payState.value = true
+			},20000)
 		if(payMethod.value == 1){
 			//余额支付,比较金额大小
 			if(choosedMoney.value > Number(cardInfo.value.cardBalance)){
@@ -155,6 +162,12 @@
 						icon:'none'
 					});
 				}
+			})
+		}
+		}else{
+			uni.showToast({
+				title:'支付间隔20秒,请稍后!',
+				icon:'none'
 			})
 		}
 	}
@@ -273,7 +286,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="submit-btn" @click="submit()">确认支付</view>
+			<view :style="{opacity:payState ? 1 : 0.7}" class="submit-btn" @click="submit()">确认支付</view>
 		</view>
 	</view>
 </template>
diff --git a/pagesAdmin/adminPlatform/facilityDetail.vue b/pagesAdmin/adminPlatform/facilityDetail.vue
index ebab19c..844e3c6 100644
--- a/pagesAdmin/adminPlatform/facilityDetail.vue
+++ b/pagesAdmin/adminPlatform/facilityDetail.vue
@@ -11,11 +11,13 @@
 	})
 	let facilityCode
 	let facilityOnLine
+	let facilityType //facilityType:1:售水机,facilityType:2:水控机
 	async function getFalicityDetail(){
 		await getFacilityApi(facilityId).then((res) =>{
 			if(res.code == 200){
 				facilityCode = res.data.facilityCode
 				facilityOnLine = res.data.onLineState
+				facilityType = res.data.facilityType
 				facilityList.value = []
 				facilityList.value.push({name:'设备编号:',value:res.data.facilityCode})
 				facilityList.value.push({name:'设备名称:',value:res.data.facilityName})
@@ -30,9 +32,15 @@
 		})
 	}
 	function navTo(){
-		uni.navigateTo({
-			url:`/pagesAdmin/adminPlatform/params?id=${facilityId}`
-		})
+		if(facilityType === 1){
+			uni.navigateTo({
+				url:`/pagesAdmin/adminPlatform/params?id=${facilityId}`
+			})
+		}else if(facilityType === 2){
+			uni.navigateTo({
+				url:`/pagesAdmin/adminPlatform/params1?id=${facilityId}`
+			})
+		}
 	}
 	//设备开关操作相关
 	//操作类型(售水开关:01开 02关,制水开关:03开 04关,温控开关:05开 06关,设备开关机:07开 08关-设备开关机代表设备完全开关机,相当于售水、制水、温控全开或全关)
diff --git a/pagesAdmin/adminPlatform/home.vue b/pagesAdmin/adminPlatform/home.vue
index e7f4ef2..17d2200 100644
--- a/pagesAdmin/adminPlatform/home.vue
+++ b/pagesAdmin/adminPlatform/home.vue
@@ -1,5 +1,5 @@
 <script setup>
-	import { adminDetailApi,getRunStateApi,getTotalRevenueApi,getWaterConsumptionApi} from '../../api/index.js'
+	import { adminDetailApi,getRunStateApi,getTotalRevenueApi,getWaterConsumptionApi,changePasswordApi} from '../../api/index.js'
 	import { onMounted,ref } from 'vue'
 	import { onShow } from '@dcloudio/uni-app'
 	const echarts = require('../../static/echarts.min.js')
@@ -337,6 +337,46 @@
 			chart.setOption(flowOption)
 		})
 	}
+	//修改密码
+	const popup = ref()
+	const rules = ref({
+		newPassword: {
+			rules:[{required: true, errorMessage:'请输入', trigger: "blur"}],
+		},
+		oldPassword: {
+			rules:[{required: true, errorMessage:'请输入', trigger: "blur"}],
+		},
+	})
+	const pwdFormRef =ref()
+	const pwdForm = ref({
+		oldPassword:'',
+		newPassword:'',
+	})
+	function editPwd(){
+		popup.value.open()
+	}
+	function concel(){
+		pwdForm.value = {}
+		pwdFormRef.value.clearValidate()
+		popup.value.close()
+	}
+	async function confirmEdit(){
+		pwdFormRef.value.validate().then(async(validate)=>{
+			let res = await changePasswordApi(pwdForm.value)
+			if(res.code === 200){
+				uni.showToast({
+					title:'修改成功'
+				})
+				concel()
+			}else{
+				uni.showToast({
+					title:'修改失败'
+				})
+				concel()
+			}
+		}).catch((err)=>{})
+	}
+	//退登
 	function loginOut(){
 		wx.showModal({
 		  title: '提示',
@@ -383,7 +423,7 @@
 					</view>
 				</view>
 				<view class="edit">
-					<view class="edit-text1">修改密码</view>
+					<view class="edit-text1" @click="editPwd">修改密码</view>
 					<view class="edit-text2" @click="loginOut">退出登录</view>
 				</view>
 			</view>
@@ -436,8 +476,26 @@
 				<view class="charts3">
 					<l-echart ref="flowEcharts"></l-echart>
 				</view>
-			</view>
+			</view> 
 		</view>
+		<uni-popup ref="popup" :is-mask-click ='false' type="center" border-radius="20px">
+			<view class="dialog-box">
+				<view>
+					<uni-forms ref="pwdFormRef" :model="pwdForm" :rules="rules">
+						<uni-forms-item label="旧密码:" name='oldPassword'>
+							<uni-easyinput class="input" v-model="pwdForm.oldPassword" placeholder="请输入旧密码">></uni-easyinput> 
+						</uni-forms-item>
+						<uni-forms-item label="新密码:" name="newPassword">
+							<uni-easyinput class="input" v-model="pwdForm.newPassword" placeholder="请输入新密码">></uni-easyinput> 
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+				<view class="button-box">
+					<button class="btn1" @click="concel">取消</button>
+					<button class="btn2" @click="confirmEdit">确认</button>
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -618,5 +676,39 @@
 					}
 				}
 		}
+		.dialog-box{
+			width:600rpx;
+			height:500rpx;
+			background: #fafbfc;
+			padding:40rpx;
+			box-sizing: border-box;
+			display: flex;
+			justify-content:center;
+			flex-direction: column;
+			border-radius:20rpx;
+			.input{
+				align-items: center;
+			}
+			.button-box{
+				width:100%;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				.btn1{
+					line-height:60rpx;
+					width:180rpx;
+					height:60rpx;
+					background: #fcfcfc;
+					color: #505354;
+				}
+				.btn2{
+					line-height:60rpx;
+					width:180rpx;
+					height:60rpx;
+					background: #b7cafc;
+					color: #484b4c;
+				}
+			}
+		}
 	}       
 </style>
diff --git a/pagesAdmin/adminPlatform/maintain.vue b/pagesAdmin/adminPlatform/maintain.vue
index 9f34178..6626516 100644
--- a/pagesAdmin/adminPlatform/maintain.vue
+++ b/pagesAdmin/adminPlatform/maintain.vue
@@ -38,12 +38,12 @@
 						<text class="value">{{item.resultTypeView}}</text>
 					</view>
 					<view class="item-child">
-						<text>维修时间:</text>
-						<text class="value">{{item.createTimeView}}</text>
-					</view>
-					<view class="item-child">
 						<text>备注:</text>
 						<text class="value remark">{{item.remark}}</text>
+					</view>
+					<view class="item-child">
+						<text>维修时间:</text>
+						<text class="value-time">{{item.createTimeView}}</text>
 					</view>
 					<view class="item-child-area">
 						<text>上传图片:</text>
@@ -56,6 +56,7 @@
 			<view class="nodata" v-else>
 				<image class="nodata-img" src="../../static/images/other/nodata.png" mode="widthFix"></image>
 			</view>
+			<view class="add-record">添加记录</view>
 		</view>
 	</view>
 </template>
@@ -71,7 +72,7 @@
 			box-sizing: border-box;
 			.main{
 				width:100%;
-				height:100%;
+				height:calc(100% - 120rpx);
 				padding:20rpx;
 				box-sizing: border-box;
 				background:rgba(255, 255, 255, 0.6);
@@ -93,6 +94,10 @@
 					box-shadow: 0 3rpx 5rpx 1rpx rgba(197, 199, 203, 0.6);
 					.value{
 						color: rgba(86, 86, 90, 1.0);
+					}
+					.value-time{
+						color: rgba(86, 86, 90,0.8);
+						font-size:26rpx;
 					}
 					.item-child{
 						width:100%;
@@ -136,7 +141,7 @@
 			}
 			.nodata{
 				width:100%;
-				height:100%;
+				height:calc(100% - 120rpx);
 				display: flex;
 				justify-content: center;
 				background: rgba(255,255,255,0.6);
@@ -147,6 +152,19 @@
 					width: 520rpx;
 				}
 			}
+			.add-record{
+				margin: 40rpx auto 0;
+				background-color: #5b93dc;
+				width:500rpx;
+				height:85rpx;
+				line-height:85rpx;
+				text-align: center;
+				border-radius: 50rpx;
+				color: #fff;
+				letter-spacing:2rpx;
+				font-size:38rpx;
+				font-weight:500;
+			}
 		}
 	}
 	       
diff --git a/pagesAdmin/adminPlatform/params.vue b/pagesAdmin/adminPlatform/params.vue
index 669e8d2..8c80c03 100644
--- a/pagesAdmin/adminPlatform/params.vue
+++ b/pagesAdmin/adminPlatform/params.vue
@@ -16,6 +16,7 @@
 	})
 	async function getFacilityById(){
 		await getFacilityApi(facilityId).then((res) =>{
+			console.log('设备详情响应',res)
 			onLineState = res.data.onLineState
 			facilityCode = res.data.facilityCode
 		})
@@ -103,7 +104,7 @@
 	        recycleAmountTime: {
 				rules:[
 					{required: true,errorMessage: '请输入参数'},
-					{pattern:/^([1-9\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'},10-240,10-99,100-199,200-239,240
+					{pattern:/^([1-9\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'},
 					],
 			},
 	        lightFetchWaterTime: {
@@ -207,13 +208,13 @@
 	        wxFetchWaterTime: {
 				rules:[
 					{required: true,errorMessage: '请输入参数'},
-					{pattern:/^([1-9]\d{0,3}|10000)$/,errorMessage: '超出范围,请输入范围内参数'},
+					{pattern:/^([1-9]\d{0,2}|1000)$/,errorMessage: '超出范围,请输入范围内参数'},
 					],
 			},
 	        wxFetchWaterCount:{
 				rules:[
 					{required: true,errorMessage: '请输入参数'},
-					{pattern:/^(1|([1-9]\d{0,4}|[1-5]\d{4}|6[0-4]\d{3}|65000))$/,errorMessage: '超出范围,请输入范围内参数'},
+					{pattern:/^(1|([1-9]\d{0,3}|[1-5]\d{4}|6[0-4]\d{3}|65000))$/,errorMessage: '超出范围,请输入范围内参数'},
 					],
 			},
 	        coinsFetchWater:{
@@ -227,6 +228,7 @@
 	//参数设置按钮,请求设备参数
 	async function handleSetting(){
 	    await getParameterApi(facilityCode).then((res) =>{
+			console.log('设备参数查询',res)
 	        //参数不为空
 	        if(res.data != null){
 	            formData.value = res.data
@@ -274,6 +276,7 @@
 	
 	async function setParams(formParams){
 		await editParameterApi(formParams).then((res) =>{
+			console.log('设备参数编辑响应',res,'传参',formParams)
 			if(res.code == 200){
 				uni.showToast({
 					title:'成功!三秒刷新'
@@ -305,39 +308,39 @@
 							<uni-group>
 								<uni-forms-item class="form-item" name="swipingCardAmount">
 									<text style="color:#4784c7">刷卡扣费金额:(范围:10-6000分)</text>
-									<uni-easyinput type="text" v-model="formData.swipingCardAmount" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.swipingCardAmount" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="swipingCardTime">
 									<text style="color:#4784c7">刷卡打水时间:(范围:1-1000秒)</text>
-									<uni-easyinput type="text" v-model="formData.swipingCardTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.swipingCardTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="swipingCardCount">
 									<text style="color:#4784c7">刷卡打水水量:(范围:1-65000毫升)</text>
-									<uni-easyinput type="text" v-model="formData.swipingCardCount" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.swipingCardCount" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="insertCoinsCount">
 									<text style="color:#4784c7">投币数量设置:(范围:1-10个)</text>
-									<uni-easyinput type="text" v-model="formData.insertCoinsCount" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.insertCoinsCount" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="insertCoinsTime">
 									<text style="color:#4784c7">5角投币打水时间:(范围:1-1000秒)</text>
-									<uni-easyinput type="text" v-model="formData.insertCoinsTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.insertCoinsTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="coinsFetchWater">
 									<text style="color:#4784c7">5角投币打水水量:(范围:1-65000毫升)</text>
-									<uni-easyinput type="text" v-model="formData.coinsFetchWater" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.coinsFetchWater" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="wxFetchWaterAmount">
 									<text style="color:#4784c7">微信打水金额:(范围:1-6000分)</text>
-									<uni-easyinput type="text" v-model="formData.wxFetchWaterAmount" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.wxFetchWaterAmount" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="wxFetchWaterTime">
 									<text style="color:#4784c7">微信打水时间:(范围:1-1000秒)</text>
-									<uni-easyinput type="text" v-model="formData.wxFetchWaterTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.wxFetchWaterTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="wxFetchWaterCount">
 									<text style="color:#4784c7">微信打水量:(范围:1-65000毫升)</text>
-									<uni-easyinput type="text" v-model="formData.wxFetchWaterCount" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.wxFetchWaterCount" placeholder="请输入参数" />
 								</uni-forms-item>
 							</uni-group>
 							
@@ -345,27 +348,27 @@
 							<uni-group>
 								<uni-forms-item class="form-item" name="runningMode">
 									<text style="color:#4784c7">计费模式:(范围:1时间,2流量)</text>
-									<uni-easyinput type="text" v-model="formData.runningMode" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.runningMode" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="pulse">
 									<text style="color:#4784c7">流量计脉冲数:(范围:1-2000个)</text>
-									<uni-easyinput type="text" v-model="formData.pulse" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.pulse" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="recycleAmountTime">
 									<text style="color:#4784c7">钱数回收时间:(范围:10-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.recycleAmountTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.recycleAmountTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="lightFetchWaterTime">
 									<text style="color:#4784c7">打水灯延时:(范围:5-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.lightFetchWaterTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.lightFetchWaterTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="lockFetchWaterTime">
 									<text style="color:#4784c7">打水锁延时:(范围:5-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.lockFetchWaterTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.lockFetchWaterTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="isReport">
 									<text style="color:#4784c7">是否语音播报金额:(范围:1开启,2关闭)</text>
-									<uni-easyinput type="text" v-model="formData.isReport" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.isReport" placeholder="请输入参数" />
 								</uni-forms-item>
 							</uni-group>
 							
@@ -373,47 +376,47 @@
 							<uni-group>
 								<uni-forms-item class="form-item" name="produceWaterTime">
 									<text style="color:#4784c7">制水延时:(范围:1-60分)</text>
-									<uni-easyinput type="text" v-model="formData.produceWaterTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.produceWaterTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="wasteWaterTime">
 									<text style="color:#4784c7">废水重洗时间:(范围:10-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.wasteWaterTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.wasteWaterTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="wasteWaterIntervalTime">
 									<text style="color:#4784c7">废水重洗时间间隔:(范围:5-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.wasteWaterIntervalTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.wasteWaterIntervalTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="ozoneTime">
 									<text style="color:#4784c7">臭氧杀菌时间:(范围:5-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.ozoneTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.ozoneTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="ozoneIntervalTime">
 									<text style="color:#4784c7">臭氧杀菌时间间隔:(范围:30-240秒)</text>
-									<uni-easyinput type="text" v-model="formData.ozoneIntervalTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.ozoneIntervalTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="temperatureLower">
 									<text style="color:#4784c7">加热温度下限:(范围:1-35℃)</text>
-									<uni-easyinput type="text" v-model="formData.temperatureLower" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.temperatureLower" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="temperatureUpper">
 									<text style="color:#4784c7">加热温度上限:(范围:3-50℃)</text>
-									<uni-easyinput type="text" v-model="formData.temperatureUpper" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.temperatureUpper" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="openAdvertTime">
 									<text style="color:#4784c7;font-size: 26rpx">广告灯开启时间:(范围:00:00~23:59时分)</text>
-									<uni-easyinput type="text" v-model="formData.openAdvertTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.openAdvertTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="closeAdvertTime">
 									<text style="color:#4784c7;font-size: 26rpx">广告灯关闭时间:(范围:00:00~23:59时分)</text>
-									<uni-easyinput type="text" v-model="formData.closeAdvertTime" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.closeAdvertTime" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="recycleWashing">
 									<text style="color:#4784c7">循环重洗时间:(范围:0-99秒)</text>
-									<uni-easyinput type="text" v-model="formData.recycleWashing" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.recycleWashing" placeholder="请输入参数" />
 								</uni-forms-item>
 								<uni-forms-item class="form-item" name="recycleWashingInterval">
 									<text style="color:#4784c7">循环重洗间隔:(范围:1-10小时)</text>
-									<uni-easyinput type="text" v-model="formData.recycleWashingInterval" placeholder="请输入姓名" />
+									<uni-easyinput type="text" v-model="formData.recycleWashingInterval" placeholder="请输入参数" />
 								</uni-forms-item>
 							</uni-group>
 						</uni-forms>
diff --git a/pagesAdmin/adminPlatform/params1.vue b/pagesAdmin/adminPlatform/params1.vue
new file mode 100644
index 0000000..049c652
--- /dev/null
+++ b/pagesAdmin/adminPlatform/params1.vue
@@ -0,0 +1,278 @@
+<script setup>
+	import { onLoad } from '@dcloudio/uni-app'
+	import { getFacilityApi,getParameter1Api,editParameter1Api } from '../../api/index.js'
+	import { ref,onMounted } from 'vue';
+	
+	let facilityId
+	let onLineState
+	let facilityCode
+	onLoad(async(option) =>{
+		console.log(14,option)
+		facilityId = option.id
+		await getFacilityById()
+	})
+	onMounted(async() =>{
+		await handleSetting()
+	})
+	//获取水控机设备详情
+	async function getFacilityById(){
+		await getFacilityApi(facilityId).then((res) =>{
+			onLineState = res.data.onLineState
+			facilityCode = res.data.facilityCode
+		})
+	}
+	//表单相关
+	const formRef = ref()
+	const formData = ref({})
+	function initData(){
+	    formData.value = {
+	        sn: '',
+			type:'',
+			rateAmount: 100,
+			waterYield: 100,
+			pulse: 450,
+			fetchWaterTime: 45,
+			billingModel: 1,
+			isStartKey: 1,
+		}
+	}
+	//表单校验
+	const rulesData = ref({
+	        rateAmount: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^([1-9]\d{1,2}|[1-5]\d{3}|6000)$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	        waterYield: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^([1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65000)$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	        pulse: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^([1-9]\d{0,2})$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	        fetchWaterTime: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^([1-9]\d{0,2}|1000)$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	        billingModel: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^(1|2)$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	        isStartKey: {
+				rules:[
+					{required: true, errorMessage:'请输入参数值', trigger: "blur"},
+					{pattern:/^(1|2)$/, errorMessage:'超出范围,请重新输入', trigger: "blur"},
+					],
+			},
+	});
+	
+	//参数设置按钮,请求设备参数
+	async function handleSetting(){
+	    await getParameter1Api(facilityCode).then((res) =>{
+	        //参数不为空
+	        if(res.data != null){
+	            formData.value = res.data
+	        }else{
+	            //参数为空置为默认
+	            initData()
+	            formData.value.sn = facilityCode
+	        }
+	    })
+	}
+	//type:1:修改参数,0:恢复出厂设置
+	//恢复出厂设置
+	async function restore(){
+	    if(onLineState == 1){
+	        let sn = formData.value.sn
+	        initData()
+	        formData.value.type = 0
+	        formData.value.sn = sn
+			await setParams(formData.value)
+	    }else{
+	        uni.showToast({
+	        	title:'离线,无法操作',
+				icon:'none'
+	        })
+	    }
+	}
+	//修改参数
+	function save(){
+	    if(onLineState.value == 1){
+	        formData.value.type = 1
+	       formRef.value.validate().then(async() =>{
+			   await setParams(formData.value)
+		   }).catch((e) =>{
+			   	console.log('e',e)
+		   })
+	    }else{
+	       uni.showToast({
+	       	title:'离线,无法操作',
+	       	icon:'none'
+	       })
+	    }
+	}
+	
+	async function setParams(formParams){
+		await editParameter1Api(formParams).then((res) =>{
+			if(res.code == 200){
+				uni.showToast({
+					title:'成功!三秒刷新'
+				})
+				setTimeout(async() =>{
+					await handleSetting()
+				},4000)
+			}else{
+				uni.showToast({
+					title:'网络错误',
+					icon:'none'
+				})
+			}
+		})
+	}
+</script>
+<template>
+	<view>
+		<view class="container">
+			<navbar title = '参数设置'></navbar>
+			<view class="content">
+				<view class="head">
+					<text>设备参数设置</text>
+				</view>
+				<view class="main">
+					<view class="form-box">
+						<uni-forms ref="formRef" :modelValue="formData" :rules="rulesData">
+							<view class="devide-name">水价设置:</view>
+							<uni-group>
+								<uni-forms-item class="form-item" name="rateAmount">
+									<text style="color:#4784c7">费率:(范围:10-6000分)</text>
+									<uni-easyinput type="text" v-model="formData.rateAmount" placeholder="请输入参数" />
+								</uni-forms-item>
+								<uni-forms-item class="form-item" name="waterYield">
+									<text style="color:#4784c7">水量:(范围:10-65000)</text>
+									<uni-easyinput type="text" v-model="formData.waterYield" placeholder="请输入参数" />
+								</uni-forms-item>
+								<uni-forms-item class="form-item" name="pulse">
+									<text style="color:#4784c7">脉冲:(范围:1-999分)</text>
+									<uni-easyinput type="text" v-model="formData.pulse" placeholder="请输入参数" />
+								</uni-forms-item>
+								<uni-forms-item class="form-item" name="fetchWaterTime">
+									<text style="color:#4784c7">打水时间:(范围:1-1000分)</text>
+									<uni-easyinput type="text" v-model="formData.fetchWaterTime" placeholder="请输入参数" />
+								</uni-forms-item>
+							</uni-group>
+							
+							<view class="devide-name">系统参数:</view>
+							<uni-group>
+								<uni-forms-item class="form-item" name="billingModel">
+									<text style="color:#4784c7">计费模式:(范围:1时间,2流量)</text>
+									<uni-easyinput type="text" v-model="formData.billingModel" placeholder="请输入参数" />
+								</uni-forms-item>
+								<uni-forms-item class="form-item" name="isStartKey">
+									<text style="color:#4784c7">是否启用按键:(范围:1启用,2禁用)</text>
+									<uni-easyinput type="text" v-model="formData.isStartKey" placeholder="请输入参数" />
+								</uni-forms-item>
+							</uni-group>
+						</uni-forms>
+					</view>
+					<view class="handle-btn">
+						<view class="left" @click="restore">恢复出厂设置</view>
+						<view class="right" @click="save">保存设置</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<style lang="scss" scoped>
+	.container{
+		width:100%;
+		box-sizing: border-box;
+		.content{
+			height:calc(100vh - 176rpx);
+			background: linear-gradient(to bottom,#8BC1FC 0%,#D2F2FE 30%,#D2F2FE 100%);
+			padding:30rpx 40rpx 100rpx;
+			box-sizing: border-box;
+			.head{
+				width:100%;
+				height: 100rpx;
+				background-color: rgba(255,255,255,0.6);
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				font-size: 38rpx;
+				color: #4784c7;
+				letter-spacing: 2rpx;
+				box-shadow: 0 4rpx 4rpx 1rpx rgba(71,132,199,0.6);
+			}
+			.main{
+				width:100%;
+				height:calc(100% - 100rpx);
+				background-color: rgba(255,255,255,0.6);
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				margin-top:30rpx;
+				padding:30rpx 40rpx; 
+				box-sizing:border-box;
+				.handle-btn{
+					height:60rpx;
+					width:100%;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					text-align: center;
+					margin-top:50rpx;
+					.left{
+						border: 1rpx solid #99b7f0;
+						color: #409EFF;
+						background-color:#fff;
+						border-radius:15rpx;
+						line-height:60rpx;
+						margin-right:60rpx;
+						width: 215rpx;
+						font-size: 30rpx;
+					}
+					.left:hover{
+						opacity: 0.8;
+					}
+					.right{
+						background-color:#409EFF;
+						color: #fff;
+						border-radius:15rpx;
+						line-height:60rpx;
+						width: 215rpx;
+						font-size: 30rpx;
+					}
+					.right:hover{
+						opacity:0.8;
+					}
+				}
+				.form-box{
+					width: 580rpx;
+					height:90%;
+					overflow: scroll;
+					.devide-name{
+						width:100%;
+						color: #30b351;
+						margin:20rpx 0;
+					}
+					.form-item{
+						width:100%;
+					}
+				}
+			}
+		}
+	}
+	       
+</style>
diff --git a/pagesPoints/pointsMall/pointsGoodsDetail/index.vue b/pagesPoints/pointsMall/pointsGoodsDetail/index.vue
index e2c7fe7..81772c9 100644
--- a/pagesPoints/pointsMall/pointsGoodsDetail/index.vue
+++ b/pagesPoints/pointsMall/pointsGoodsDetail/index.vue
@@ -1,7 +1,7 @@
 <script setup>
 	import {ref,onMounted} from 'vue'
 	import { goodsGetByIdApi,integralConvertApi } from '../../../api/index.js' 
-	import { onLoad } from '@dcloudio/uni-app'
+	import { onLoad,onShow } from '@dcloudio/uni-app'
 	import { BASE_URL } from '../../../config/baseUrl.js';
 	
 	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
@@ -24,7 +24,7 @@
 				})
 				setTimeout(() =>{
 					uni.navigateTo({
-						url:'/pages/pointsMall/pointsExchangeRecord/index'
+						url:'/pagesPoints/pointsMall/pointsExchangeRecord/index'
 					})
 				},1000)
 				await getGoodsDetail(goodsId)
@@ -54,7 +54,7 @@
 		<point-navbar title='商品详情'></point-navbar>
 		<view class="content">
 			<view class="image-box">
-				<image class="image" :src="baseUrl + '/upload'+ detailInfo.detailsUrl" mode="aspectFit"></image>
+				<image v-if="detailInfo.detailsUrl" class="image" :src="baseUrl + '/upload'+ detailInfo.detailsUrl" mode="aspectFit"></image>
 			</view>
 			<view class="detail">
 				<view class="detail-info">
diff --git a/static/images/addCard/code.png b/static/images/addCard/code.png
deleted file mode 100644
index 20ea3ed..0000000
--- a/static/images/addCard/code.png
+++ /dev/null
Binary files differ
diff --git a/static/images/addCard/code.svg b/static/images/addCard/code.svg
new file mode 100644
index 0000000..51a0615
--- /dev/null
+++ b/static/images/addCard/code.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734660770756" class="icon" viewBox="0 0 1039 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1763" width="28.41015625" height="28" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M808.015066 923.721281H694.237288c-21.212806 0-38.568738-17.355932-38.568738-38.568739s17.355932-38.568738 38.568738-38.568738h111.849341c42.425612 0 77.137476-34.711864 77.137476-77.137476V655.66855c0-21.212806 17.355932-38.568738 38.568739-38.568738s38.568738 17.355932 38.568738 38.568738v113.777778c1.928437 84.851224-67.495292 154.274953-152.346516 154.274953z m-422.327684 0h-117.634651c-84.851224 0-154.274953-69.423729-154.274953-154.274953v-111.849341c0-21.212806 17.355932-38.568738 38.568738-38.568738s38.568738 17.355932 38.568738 38.568738v111.849341c0 42.425612 34.711864 77.137476 77.137477 77.137476H385.687382c21.212806 0 38.568738 17.355932 38.568739 38.568738s-17.355932 38.568738-38.568739 38.568739z m538.033899-539.962336c-21.212806 0-38.568738-17.355932-38.568739-38.568738V231.412429c0-42.425612-34.711864-77.137476-77.137476-77.137476H694.237288c-21.212806 0-38.568738-17.355932-38.568738-38.568738s17.355932-38.568738 38.568738-38.568739h113.777778c84.851224 0 154.274953 69.423729 154.274953 154.274953v113.777778c0 21.212806-17.355932 38.568738-38.568738 38.568738z m-771.374765 0c-21.212806 0-38.568738-17.355932-38.568738-38.568738V231.412429c0-84.851224 69.423729-154.274953 154.274953-154.274953h115.706214c21.212806 0 38.568738 17.355932 38.568739 38.568739s-17.355932 38.568738-38.568739 38.568738h-115.706214c-42.425612 0-77.137476 34.711864-77.137477 77.137476v113.777778c0 21.212806-17.355932 38.568738-38.568738 38.568738z" fill="#4282C4" p-id="1764"></path><path d="M885.152542 499.46516h-694.237288c-21.212806 0-38.568738-17.355932-38.568738-38.568738s17.355932-38.568738 38.568738-38.568738h694.237288c21.212806 0 38.568738 17.355932 38.568739 38.568738s-17.355932 38.568738-38.568739 38.568738z" fill="#DE8B12" p-id="1765"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/card11.png b/static/images/index/card11.png
index 097b45d..17e0eba 100644
--- a/static/images/index/card11.png
+++ b/static/images/index/card11.png
Binary files differ
diff --git a/static/images/index/home21.png b/static/images/index/home21.png
deleted file mode 100644
index 378f65f..0000000
--- a/static/images/index/home21.png
+++ /dev/null
Binary files differ
diff --git a/static/images/index/home21.svg b/static/images/index/home21.svg
new file mode 100644
index 0000000..bced016
--- /dev/null
+++ b/static/images/index/home21.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734588678504" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31866" width="43" height="43" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M754.5 300h0.2v340.9h-0.2z" fill="#4D4D4D" p-id="31867"></path><path d="M754.5 300h0.2v340.9h-0.2z" fill="#FFFFFF" p-id="31868"></path><path d="M1017.5 595.1h-163v-97.6H974c-8.8-12.2-18.5-23.6-29-34.1-42.4-42.7-99-71.1-162.1-77.4v254.9h-28.4V300.1h0.3V186.9c0-55.2-44.7-99.8-99.6-99.8H99.6C44.7 87 0 131.7 0 186.9v556.7c0 54.9 44.7 99.6 99.6 99.6H148c0-67.1 54.3-121.7 121.5-121.7 67.4 0 121.7 54.6 121.7 121.7h242.1c0-67.1 54-121.7 121.5-121.7 67.1 0 121.7 54.6 121.7 121.7h101.3c25.9 0 46.4-20.8 46.4-46.6V654.2c-0.2-20.5-2.2-40.4-6.7-59.1z m-442.6-43.8c0 15.6-12.8 28.2-28.4 28.2H205.7c-15.6 0-28.4-12.5-28.4-28.2v-0.3c0-15.6 12.8-28.4 28.4-28.4h340.8c15.6 0 28.4 12.8 28.4 28.4v0.3zM546.4 409H205.7c-15.6 0-28.4-12.8-28.4-28.4 0-15.6 12.8-28.4 28.4-28.4h340.8c15.6 0 28.4 12.8 28.4 28.4 0 15.6-12.8 28.4-28.5 28.4z" fill="#5BA4F9" p-id="31869"></path><path d="M754.6 749.2c-51.8 0-93.6 42.1-93.6 93.9 0 51.8 41.8 93.9 93.6 93.9 51.5 0 93.9-42.1 93.9-93.9 0-51.8-42.4-93.9-93.9-93.9z m0 140.8c-25.9 0-46.6-21-46.6-46.9s20.8-46.9 46.6-46.9c25.9 0 46.9 21 46.9 46.9 0.1 25.9-21 46.9-46.9 46.9zM269.4 749.2c-51.8 0-93.6 42.1-93.6 93.9 0 51.8 41.8 93.9 93.6 93.9s93.9-42.1 93.9-93.9c-0.1-51.8-42.2-93.9-93.9-93.9z m0 140.8c-25.9 0-46.6-21-46.6-46.9s20.8-46.9 46.6-46.9c25.9 0 46.9 21 46.9 46.9s-21 46.9-46.9 46.9zM1018 594.9H854.1v-97.4H975c20.4 28.8 35.2 61.6 43 97.4z" fill="#99CEFC" p-id="31870"></path><path d="M754.3 299.5h0.3v0.6h-0.3z" fill="#5BA4F9" p-id="31871"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/icon22.png b/static/images/index/icon22.png
deleted file mode 100644
index 38b8928..0000000
--- a/static/images/index/icon22.png
+++ /dev/null
Binary files differ
diff --git a/static/images/index/icon22.svg b/static/images/index/icon22.svg
new file mode 100644
index 0000000..457cef7
--- /dev/null
+++ b/static/images/index/icon22.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734588187711" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1709" width="43" height="43" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M890.4 959.6H132.9l102.6-185.7h552.3z" fill="#E5ECFF" p-id="1710"></path><path d="M787.5 599.9c42.2-56 67.2-125.7 67.2-201.3 0-185-150-335-335-335s-335 150-335 335c0 75.6 25 145.3 67.2 201.3l-0.5 0.5 4.2 4.2c16.9 21.6 36.4 41.1 58 58L501 870.8l18.7-2.1 206-206c21.6-16.9 41.1-36.4 58-58l4.2-4.2-0.4-0.6z" fill="#A4BEFF" p-id="1711"></path><path d="M763.3 599.9c42.2-56 67.2-125.7 67.2-201.3 0-185-150-335-335-335s-335 150-335 335c0 75.6 25 145.3 67.2 201.3l-0.5 0.5 4.2 4.2c16.9 21.6 36.4 41.1 58 58l206 206 206-206c21.6-16.9 41.1-36.4 58-58l4.2-4.2-0.3-0.5z" fill="#5B79FB" p-id="1712"></path><path d="M503.6 366.3m-92.8 0a92.8 92.8 0 1 0 185.6 0 92.8 92.8 0 1 0-185.6 0Z" fill="#FFFFFF" p-id="1713"></path><path d="M778.1 928.3H245.3l16.1-34.3h500.5z" fill="#FF7E71" p-id="1714"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/icon51.png b/static/images/index/icon51.png
deleted file mode 100644
index d08ca32..0000000
--- a/static/images/index/icon51.png
+++ /dev/null
Binary files differ
diff --git a/static/images/index/icon51.svg b/static/images/index/icon51.svg
new file mode 100644
index 0000000..c550dcf
--- /dev/null
+++ b/static/images/index/icon51.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734660398768" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6049" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M640 474.7V108.1c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v807.7c0 6.6 5.4 12 12 12h872c6.6 0 12-5.4 12-12V492.7c0-6.6-5.4-12-12-12H646c-3.3 0-6-2.7-6-6zM448.1 857.8V806c0-3.3 2.7-6 6-6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6H198c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6 2.7 6 6v51.8c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6V166.1c0-3.3 2.7-6 6-6h436c3.3 0 6 2.7 6 6v691.6c0 3.3-2.7 6-6 6H454c-3.2 0.1-5.9-2.5-5.9-5.9z m442 6H646.2c-3.3 0-6-2.7-6-6V806c0-3.3 2.7-6 6-6H826c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6H646.2c-3.3 0-6-2.7-6-6v-51.8c0-3.3 2.7-6 6-6H826c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6H646.2c-3.3 0-6-2.7-6-6v-51.5c0-3.3 2.7-6 6-6H890c3.3 0 6 2.7 6 6v307.1c0.1 3.4-2.6 6-5.9 6z m0 0" fill="#3377ff" p-id="6050"></path><path d="M539 224H423c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h116c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6z m0 128.2H423c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h116c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6z m0 128.2H423c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h116c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6zM423.1 672.2h116c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6h-116c-3.3 0-6 2.7-6 6v52c0 3.4 2.7 6 6 6zM347 224h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.6-6-6-6z m0 128.2h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.6-6-6-6z m0 128.2h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.6-6-6-6z m-51.9 191.8h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6h-52c-3.3 0-6 2.7-6 6v52c0 3.4 2.7 6 6 6zM219 224h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6z m0 128.2h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6z m0 128.2h-52c-3.3 0-6 2.7-6 6v52c0 3.3 2.7 6 6 6h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6z m-52 191.8h52c3.3 0 6-2.7 6-6v-52c0-3.3-2.7-6-6-6h-52c-3.3 0-6 2.7-6 6v52c0 3.4 2.7 6 6 6z m0 0" fill="#3377ff" p-id="6051"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/notice5.png b/static/images/index/notice5.png
deleted file mode 100644
index f2090be..0000000
--- a/static/images/index/notice5.png
+++ /dev/null
Binary files differ
diff --git a/static/images/index/notice5.svg b/static/images/index/notice5.svg
new file mode 100644
index 0000000..26b0002
--- /dev/null
+++ b/static/images/index/notice5.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734660639365" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13625" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M921.9 468.6H749.6c-9.4 0-18.4 3.8-25 10.5-6.6 6.7-10.3 15.7-10.3 25.1v11.1c0 19.6 15.9 35.5 35.4 35.5h172.2c19.5 0 35.3-15.9 35.3-35.5v-11.1c0-9.4-3.7-18.4-10.3-25.1-6.6-6.7-15.6-10.5-25-10.5zM522.4 163.9c-53.6 42.6-165.7 102.3-246.3 159.8h-0.1c-0.9 0.6-1.8 3.8-2.8 4.3-9.5 5.4-13.8 20.1-65.6 20.1h-101c-26 0-42 12.2-42 39.6V631c0 27.4 14.7 40.9 42 40.9H208c51.5 0.1 55.7 14.8 65.2 20.1 0.9 0.5 1.8 3.7 2.7 4.3h0.1c78.2 57.5 191 121.8 246.4 162.7 16.7 12.3 72.1 33.9 72.1-42.1v-614c0-76.1-55.9-51.8-72.1-39z m159 167.8c9.2 16.1 27.3 20.2 40.5 9l141.5-119.3c13.3-11.1 16.5-33.2 7.4-49.4l-5.2-9.1c-9.1-16.1-27.3-20.1-40.5-9L683.6 273.2c-13.2 11.2-16.5 33.2-7.4 49.4l5.2 9.1z m40.4 347.4c-13.2-11.1-31.3-7-40.4 9l-5.2 9.1c-9.1 16.1-5.8 38.2 7.4 49.4L825.1 866c13.2 11.1 31.3 7.1 40.4-9l5.2-9.1c9.1-16.1 5.8-38.2-7.4-49.4L721.8 679.1z m0 0" fill="#f67933" p-id="13626"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/point-banner.png b/static/images/index/point-banner.png
new file mode 100644
index 0000000..06868af
--- /dev/null
+++ b/static/images/index/point-banner.png
Binary files differ
diff --git a/static/images/index/scan.png b/static/images/index/scan.png
new file mode 100644
index 0000000..3055232
--- /dev/null
+++ b/static/images/index/scan.png
Binary files differ
diff --git a/static/images/station/facilityImg.svg b/static/images/station/facilityImg.svg
new file mode 100644
index 0000000..c4564b1
--- /dev/null
+++ b/static/images/station/facilityImg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734678578243" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22526" width="65" height="65" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M82.697658 0m93.090909 0l605.090909 0q93.090909 0 93.090909 93.090909l0 837.818182q0 93.090909-93.090909 93.090909l-605.090909 0q-93.090909 0-93.090909-93.090909l0-837.818182q0-93.090909 93.090909-93.090909Z" fill="#3d9bfc" p-id="22527" data-spm-anchor-id="a313x.search_index.0.i1.6e3b3a81RusiQL" class="selected"></path><path d="M222.334022 46.545455h512a93.090909 93.090909 0 0 1 93.090909 93.090909v325.818181a46.545455 46.545455 0 0 1-46.545455 46.545455H175.788567a46.545455 46.545455 0 0 1-46.545454-46.545455V139.636364a93.090909 93.090909 0 0 1 93.090909-93.090909z" fill="#FFFFFF" p-id="22528"></path><path d="M681.504931 93.090909h-127.069091c-3.374545 0-6.283636-1.536-6.283636-3.653818v-15.965091c0-1.978182 2.653091-3.653818 6.283636-3.653818h127.069091c3.374545 0 6.283636 1.536 6.283636 3.653818v15.965091c-0.232727 2.094545-2.909091 3.653818-6.283636 3.653818z m-5.352727 23.272727h-116.363637c-6.283636 0-11.636364 3.723636-11.636363 8.564364v85.597091c0 4.654545 5.096727 8.564364 11.636363 8.564364h4.608S601.958749 256 608.265658 256h19.409455c6.283636 0 42.170182-36.910545 42.170182-36.910545h6.306909c6.283636 0 11.636364-3.746909 11.636363-8.564364V124.928C687.788567 120.087273 682.69184 116.363636 676.152204 116.363636zM402.232204 93.090909H275.163113C271.788567 93.090909 268.879476 91.554909 268.879476 89.437091v-15.965091C268.879476 71.493818 271.532567 69.818182 275.163113 69.818182h127.069091c3.374545 0 6.283636 1.536 6.283636 3.653818v15.965091c-0.232727 2.094545-2.909091 3.653818-6.283636 3.653818z m-5.352728 23.272727h-116.363636c-6.283636 0-11.636364 3.723636-11.636364 8.564364v85.597091c0 4.654545 5.096727 8.564364 11.636364 8.564364h4.608S322.686022 256 328.992931 256h19.409454c6.283636 0 42.170182-36.910545 42.170182-36.910545h6.306909c6.283636 0 11.636364-3.746909 11.636364-8.564364V124.928C408.51584 120.087273 403.419113 116.363636 396.879476 116.363636z" fill="#1A87FF" p-id="22529"></path><path d="M617.970385 418.909091a46.545455 46.545455 0 0 0 46.545455-46.545455c0-17.128727-15.522909-43.659636-46.545455-79.592727-31.022545 35.933091-46.545455 62.464-46.545454 79.592727a46.545455 46.545455 0 0 0 46.545454 46.545455z" fill="#1A87FF" p-id="22530"></path></svg>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js
index 6a7a607..1b5e2b8 100644
--- a/unpackage/dist/dev/mp-weixin/api/index.js
+++ b/unpackage/dist/dev/mp-weixin/api/index.js
@@ -135,8 +135,14 @@
 function getParameterApi(sn) {
   return util_request.request(`/waterFacility/getParameter?sn=${sn}`, {}, "GET");
 }
+function getParameter1Api(sn) {
+  return util_request.request(`/waterFacility/getWaterControlParameter?sn=${sn}`, {}, "GET");
+}
 function editParameterApi(data) {
   return util_request.request("/waterFacility/editParameter", data, "POST");
+}
+function editParameter1Api(data) {
+  return util_request.request("/waterFacility/editWaterControlParameter", data, "POST");
 }
 function searchBreakdownApi(data) {
   return util_request.request("/waterFacilityMalfunction/search", data, "POST");
@@ -150,6 +156,9 @@
 function editExamineApi(data) {
   return util_request.request("/waterFacilityMalfunction/modify", data, "POST");
 }
+function changePasswordApi(data) {
+  return util_request.request("/admin/user/changePassword", data, "POST");
+}
 exports.adminDetailApi = adminDetailApi;
 exports.adminLoginApi = adminLoginApi;
 exports.askShareApi = askShareApi;
@@ -157,16 +166,19 @@
 exports.balanceChangeApi = balanceChangeApi;
 exports.balanceStatisticsApi = balanceStatisticsApi;
 exports.buyWaterApi = buyWaterApi;
+exports.changePasswordApi = changePasswordApi;
 exports.closeFacilityApi = closeFacilityApi;
 exports.creatUserArchive = creatUserArchive;
 exports.deleteAddressApi = deleteAddressApi;
 exports.editAddressApi = editAddressApi;
 exports.editExamineApi = editExamineApi;
+exports.editParameter1Api = editParameter1Api;
 exports.editParameterApi = editParameterApi;
 exports.editShareTypeApi = editShareTypeApi;
 exports.editUserInfoApi = editUserInfoApi;
 exports.getAddressApi = getAddressApi;
 exports.getFacilityApi = getFacilityApi;
+exports.getParameter1Api = getParameter1Api;
 exports.getParameterApi = getParameterApi;
 exports.getParentAreaApi = getParentAreaApi;
 exports.getPriceBySnApi = getPriceBySnApi;
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
index 0fe5c89..78b067c 100644
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ b/unpackage/dist/dev/mp-weixin/app.js
@@ -32,6 +32,7 @@
   "./pagesAdmin/adminPlatform/facilityDetail.js";
   "./pagesAdmin/adminPlatform/inspect.js";
   "./pagesAdmin/adminPlatform/params.js";
+  "./pagesAdmin/adminPlatform/params1.js";
   "./pagesAdmin/adminPlatform/breakdown.js";
   "./pagesAdmin/adminPlatform/maintain.js";
   "./pagesPoints/pointsMall/index.js";
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
index cef1701..0d8d940 100644
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ b/unpackage/dist/dev/mp-weixin/app.json
@@ -35,6 +35,7 @@
         "adminPlatform/facilityDetail",
         "adminPlatform/inspect",
         "adminPlatform/params",
+        "adminPlatform/params1",
         "adminPlatform/breakdown",
         "adminPlatform/maintain"
       ]
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index 374c0cf..28b3018 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -3,23 +3,18 @@
 const _imports_1$9 = "/static/images/login/wx.png";
 const _imports_2$2 = "/static/images/login/close_pwd.png";
 const _imports_3$3 = "/static/images/login/open_pwd.png";
-const _imports_4$3 = "/static/images/login/switchto.svg";
+const _imports_4$2 = "/static/images/login/switchto.svg";
 const _imports_0$g = "/static/images/index/head.png";
 const _imports_1$8 = "/static/images/index/back.png";
 const _imports_0$f = "/static/images/index/card11.png";
-const _imports_3$2 = "/static/images/index/code1.png";
-const _imports_4$2 = "/static/images/index/vip-add.png";
-const _imports_5$1 = "/static/images/index/home21.png";
-const _imports_1$7 = "/static/images/index/icon22.png";
-const _imports_7 = "/static/images/index/icon23.png";
-const _imports_8$1 = "/static/images/index/advert-icon3.svg";
-const _imports_9$1 = "/static/images/index/advert-icon1.svg";
-const _imports_10 = "/static/images/index/advert-icon2.svg";
-const _imports_11 = "/static/images/index/advert-icon4.svg";
-const _imports_12 = "/static/images/index/icon51.png";
-const _imports_13 = "/static/images/index/more-info5.png";
-const _imports_14 = "/static/images/index/notice5.png";
-const _imports_0$e = "/static/images/addCard/code.png";
+const _imports_3$2 = "/static/images/index/home21.svg";
+const _imports_1$7 = "/static/images/index/icon22.svg";
+const _imports_5$1 = "/static/images/index/scan.png";
+const _imports_6$1 = "/static/images/index/point-banner.png";
+const _imports_7 = "/static/images/index/icon51.svg";
+const _imports_8$1 = "/static/images/index/more-info5.png";
+const _imports_9$1 = "/static/images/index/notice5.svg";
+const _imports_0$e = "/static/images/addCard/code.svg";
 const _imports_1$6 = "/static/images/other/more.png";
 const _imports_0$d = "/static/images/other/expand.png";
 const _imports_0$c = "/static/images/other/nodata.png";
@@ -28,7 +23,7 @@
 const _imports_1$5 = "/static/images/address/delete.png";
 const _imports_0$9 = "/static/images/address/expand.png";
 const _imports_0$8 = "/static/images/other/success.png";
-const _imports_0$7 = "/static/logo.png";
+const _imports_0$7 = "/static/images/station/facilityImg.svg";
 const _imports_1$4 = "/static/images/other/img-add.png";
 const _imports_0$6 = "/static/images/other/home.svg";
 const _imports_0$5 = "/static/images/maintain/maintenance-head.svg";
@@ -79,11 +74,6 @@
 exports._imports_1$7 = _imports_1$2;
 exports._imports_1$8 = _imports_1$1;
 exports._imports_1$9 = _imports_1;
-exports._imports_10 = _imports_10;
-exports._imports_11 = _imports_11;
-exports._imports_12 = _imports_12;
-exports._imports_13 = _imports_13;
-exports._imports_14 = _imports_14;
 exports._imports_2 = _imports_2$2;
 exports._imports_2$1 = _imports_2$1;
 exports._imports_2$2 = _imports_2;
@@ -91,13 +81,13 @@
 exports._imports_3$1 = _imports_3$2;
 exports._imports_3$2 = _imports_3$1;
 exports._imports_3$3 = _imports_3;
-exports._imports_4 = _imports_4$3;
-exports._imports_4$1 = _imports_4$2;
-exports._imports_4$2 = _imports_4$1;
-exports._imports_4$3 = _imports_4;
+exports._imports_4 = _imports_4$2;
+exports._imports_4$1 = _imports_4$1;
+exports._imports_4$2 = _imports_4;
 exports._imports_5 = _imports_5$1;
 exports._imports_5$1 = _imports_5;
-exports._imports_6 = _imports_6;
+exports._imports_6 = _imports_6$1;
+exports._imports_6$1 = _imports_6;
 exports._imports_7 = _imports_7;
 exports._imports_8 = _imports_8$1;
 exports._imports_8$1 = _imports_8;
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index 8db9bc9..03d24d8 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -8097,6 +8097,12 @@
         }
       },
       {
+        path: "adminPlatform/params1",
+        style: {
+          navigationStyle: "custom"
+        }
+      },
+      {
         path: "adminPlatform/breakdown",
         style: {
           navigationStyle: "custom"
diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml
index 94277e9..830e7fc 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"><uni-forms wx:if="{{q}}" class="r data-v-4c5e7c86" u-s="{{['d']}}" u-r="formRef" u-i="4c5e7c86-1" bind:__l="__l" u-p="{{q}}"><uni-forms-item wx:if="{{f}}" u-s="{{['d']}}" class="form-item data-v-4c5e7c86" u-i="4c5e7c86-2,4c5e7c86-1" bind:__l="__l" u-p="{{f}}"><view class="card-item data-v-4c5e7c86"><input class="data-v-4c5e7c86" placeholder="请输入卡号或扫描二维码" value="{{b}}" bindinput="{{c}}"/><image class="data-v-4c5e7c86" bindtap="{{d}}" src="{{e}}" alt=""></image></view></uni-forms-item><uni-forms-item wx:if="{{i}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-3,4c5e7c86-1" bind:__l="__l" u-p="{{i}}"><input class="data-v-4c5e7c86" placeholder="请输入姓名" value="{{g}}" bindinput="{{h}}"/></uni-forms-item><uni-forms-item wx:if="{{l}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-4,4c5e7c86-1" bind:__l="__l" u-p="{{l}}"><input class="data-v-4c5e7c86" type="textarea" placeholder="请输入手机号" value="{{j}}" bindinput="{{k}}"/></uni-forms-item><uni-forms-item wx:if="{{o}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-5,4c5e7c86-1" bind:__l="__l" u-p="{{o}}"><input class="data-v-4c5e7c86" type="textarea" placeholder="请输入内容" value="{{m}}" bindinput="{{n}}"/></uni-forms-item></uni-forms></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="{{r}}">提交信息</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"><uni-forms wx:if="{{q}}" class="r data-v-4c5e7c86" u-s="{{['d']}}" u-r="formRef" u-i="4c5e7c86-1" bind:__l="__l" u-p="{{q}}"><uni-forms-item wx:if="{{f}}" u-s="{{['d']}}" class="form-item data-v-4c5e7c86" u-i="4c5e7c86-2,4c5e7c86-1" bind:__l="__l" u-p="{{f}}"><view class="card-item data-v-4c5e7c86"><input class="scan-input data-v-4c5e7c86" placeholder="请输入卡号或扫描二维码" value="{{b}}" bindinput="{{c}}"/><image class="scan-img data-v-4c5e7c86" bindtap="{{d}}" src="{{e}}" alt=""></image></view></uni-forms-item><uni-forms-item wx:if="{{i}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-3,4c5e7c86-1" bind:__l="__l" u-p="{{i}}"><input class="input-item data-v-4c5e7c86" placeholder="请输入姓名" value="{{g}}" bindinput="{{h}}"/></uni-forms-item><uni-forms-item wx:if="{{l}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-4,4c5e7c86-1" bind:__l="__l" u-p="{{l}}"><input class="input-item data-v-4c5e7c86" type="textarea" placeholder="请输入手机号" value="{{j}}" bindinput="{{k}}"/></uni-forms-item><uni-forms-item wx:if="{{o}}" class="data-v-4c5e7c86" u-s="{{['d']}}" u-i="4c5e7c86-5,4c5e7c86-1" bind:__l="__l" u-p="{{o}}"><input class="input-item data-v-4c5e7c86" type="textarea" placeholder="请输入内容" value="{{m}}" bindinput="{{n}}"/></uni-forms-item></uni-forms></view><view class="tips data-v-4c5e7c86"><text class="tips-text data-v-4c5e7c86">1、完成实名认证,方便遗失挂失及补卡等。</text><text class="data-v-4c5e7c86">2、绑卡后,运营商可以看到您实名时填写的姓名和电话。</text></view><view class="subBtn data-v-4c5e7c86" bindtap="{{r}}">提交信息</view></view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss
index 331c799..31f0be0 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss
@@ -52,7 +52,7 @@
   padding: 30rpx 50rpx 0;
   box-sizing: border-box;
 }
-.container .content .main .form input.data-v-4c5e7c86 {
+.container .content .main .form .input-item.data-v-4c5e7c86 {
   line-height: 100%;
   height: 100%;
 }
@@ -62,15 +62,15 @@
   height: 100%;
   align-items: center;
 }
-.container .content .main .form .card-item input.data-v-4c5e7c86 {
+.container .content .main .form .card-item .scan-input.data-v-4c5e7c86 {
   width: 375rpx;
   margin-right: 20rpx;
   line-height: 100%;
   height: 100%;
 }
-.container .content .main .form .card-item image.data-v-4c5e7c86 {
-  width: 44rpx;
-  height: 44rpx;
+.container .content .main .form .card-item .scan-img.data-v-4c5e7c86 {
+  width: 56rpx;
+  height: 56rpx;
 }
 .container .content .main .tips.data-v-4c5e7c86 {
   width: 100%;
@@ -85,7 +85,7 @@
   font-size: 28rpx;
   color: #484848;
 }
-.container .content .main .tips text.data-v-4c5e7c86:first-child {
+.container .content .main .tips .tips-text.data-v-4c5e7c86 {
   margin-bottom: 28rpx;
 }
 .container .content .main .subBtn.data-v-4c5e7c86 {
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index c86f8c0..2376f8f 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -13,6 +13,7 @@
       }
     }
     const cardInfo = common_vendor.ref({
+      //用户档案信息
       id: "",
       userName: "微信用户",
       headImg: "",
@@ -33,8 +34,8 @@
     const isShareCard = common_vendor.ref(false);
     async function getVipInfo() {
       await api_index.getVipInfoApi().then((res) => {
+        console.log("会员卡信息响应", res);
         if (res.code == 200 && res.data.id) {
-          console.log("获取会员卡返回响应-首页", res);
           cardInfo.value.waterCardNumber = res.data.cardNumber;
           cardInfo.value.cardType = res.data.cardType;
           cardInfo.value.state = res.data.state == 2 ? true : false;
@@ -47,12 +48,13 @@
             cardInfo.value.count = res.data.count;
           }
           isVip.value = true;
-          console.log("cardInfo", cardInfo.value, "isShareCard.value", isShareCard.value);
+          console.log("会员卡及用户信息", cardInfo.value);
         }
       });
     }
     async function getInfo() {
       await api_index.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;
@@ -60,7 +62,6 @@
           cardInfo.value.userPhone = res.data.userInfo.userPhone;
           cardInfo.value.id = res.data.userInfo.id;
           await getVipInfo();
-          console.log("用户信息响应", res);
           console.log("用户信息", cardInfo.value);
           common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
         }
@@ -70,23 +71,24 @@
       common_vendor.index.scanCode({
         scanType: ["qrCode"],
         success: async function(res) {
-          console.log("条码内容:" + res.result);
+          let code = res.result.split("=")[1];
+          console.log("条码内容:" + res.result, "code", code);
           common_vendor.index.navigateTo({
-            url: `/pages/scanWater/index?facilityCode=${res.result}`
+            url: `/pages/scanWater/index?facilityCode=${code}`
           });
         }
       });
     }
     const functionList = common_vendor.ref([
       //isUrl:1:页面跳转,2:弹窗功能,3:弹窗功能,4:未开发
-      { text: "余额记录", icon: "../../static/images/index/icon31.png", bgColor: "#16b387", url: "/pages/functionList/balanceRecord/index", isUrl: 1 },
-      { text: "消费记录", icon: "../../static/images/index/icon32.png", bgColor: "#329ae8", url: "/pages/functionList/paymentRecord/index", isUrl: 1 },
-      { text: "充值记录", icon: "../../static/images/index/icon33.png", bgColor: "#f0a50e", url: "/pages/functionList/rechargeRecord/index", isUrl: 1 },
-      { text: "水卡共享", icon: "../../static/images/index/icon34.png", bgColor: "#55ca8c", url: "/pages/functionList/share/cardShare/index", isUrl: 1 },
-      { text: "故障上报", icon: "../../static/images/index/icon35.png", bgColor: "#a88ff1", url: "/pages/infoBreakdown/index", isUrl: 1 },
-      { text: "优惠卷", icon: "../../static/images/index/icon36.png", bgColor: "#18bfc4", url: "", isUrl: 4 },
-      { text: "会员卡挂失", icon: "../../static/images/index/icon37.png", bgColor: "#4875f0", url: "", isUrl: 2 },
-      { text: "会员卡解绑", icon: "../../static/images/index/icon38.png", bgColor: "#f45088", url: "", isUrl: 3 }
+      { 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) {
@@ -258,23 +260,24 @@
       }
     }
     common_vendor.onMounted(async () => {
+      console.log("空用户信息", cardInfo.value);
+      common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
       getTopHeight();
       await getInfo();
       await getUserLocation();
-      console.log("进入首页了");
+      console.log("onMounted", "用户存储本地数据", JSON.parse(common_vendor.index.getStorageSync("userInfo")));
     });
     common_vendor.onShow(async () => {
       getTopHeight();
       await getInfo();
+      console.log("onShow", "用户存储本地数据", JSON.parse(common_vendor.index.getStorageSync("userInfo")));
     });
     common_vendor.index.showShareMenu({
       withShareTicket: true,
       menus: ["shareAppMessage", "shareTimeline"],
       success: function() {
-        console.log("分享菜单显示成功");
       },
       fail: function(err) {
-        console.error("分享菜单显示失败", err);
       }
     });
     return (_ctx, _cache) => {
@@ -290,68 +293,49 @@
         f: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
         g: common_assets._imports_1$2,
         h: common_assets._imports_0$3,
-        i: isShareCard.value
-      }, isShareCard.value ? {
-        j: common_vendor.t(cardInfo.value.waterCardNumber)
-      } : {}, {
-        k: !isShareCard.value
+        i: isVip.value
+      }, isVip.value ? common_vendor.e({
+        j: isShareCard.value
+      }, isShareCard.value ? common_vendor.e({
+        k: isLoss.value
+      }, isLoss.value ? {} : {}) : {}, {
+        l: !isShareCard.value
       }, !isShareCard.value ? common_vendor.e({
-        l: isVip.value
-      }, isVip.value ? {
-        m: common_assets._imports_3$1
-      } : {}, {
-        n: isVip.value
-      }, isVip.value ? {} : {}, {
-        o: !isVip.value
-      }, !isVip.value ? {} : {}, {
-        p: isLoss.value && isVip.value
-      }, isLoss.value && isVip.value ? {} : {}, {
-        q: isVip.value
-      }, isVip.value ? {
-        r: common_vendor.t(cardInfo.value.waterCardNumber)
-      } : {}, {
-        s: isVip.value
-      }, isVip.value ? {} : {}, {
-        t: isVip.value
-      }, isVip.value ? {
-        v: common_vendor.t(cardInfo.value.balance)
-      } : {}, {
-        w: !isVip.value
-      }, !isVip.value ? {
-        x: common_assets._imports_4$1,
-        y: common_vendor.o(($event) => navTo("/pages/addCard/index"))
-      } : {}, {
-        z: isVip.value
-      }, isVip.value ? {
-        A: common_vendor.o(($event) => navTo("/pages/recharge/index"))
+        m: isLoss.value
+      }, isLoss.value ? {} : {}) : {}, {
+        n: common_vendor.t(cardInfo.value.waterCardNumber),
+        o: common_vendor.t(cardInfo.value.balance),
+        p: !isShareCard.value
+      }, !isShareCard.value ? {
+        q: common_vendor.o(($event) => navTo("/pages/recharge/index"))
       } : {}) : {}, {
-        B: topHeight.value + "rpx",
-        C: common_assets._imports_5,
-        D: common_vendor.o(upGrade),
-        E: common_assets._imports_1$1,
-        F: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
-        G: common_assets._imports_7,
-        H: common_vendor.o(($event) => toScan()),
-        I: common_vendor.f(functionList.value, (item, index, i0) => {
+        r: !isVip.value
+      }, !isVip.value ? {
+        s: common_vendor.o(($event) => navTo("/pages/addCard/index"))
+      } : {}, {
+        t: topHeight.value + "rpx",
+        v: common_assets._imports_3$1,
+        w: common_vendor.o(upGrade),
+        x: common_assets._imports_1$1,
+        y: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
+        z: common_assets._imports_5,
+        A: common_vendor.o(($event) => toScan()),
+        B: common_vendor.f(functionList.value, (item, index, i0) => {
           return {
             a: item.icon,
-            b: item.bgColor,
-            c: common_vendor.t(item.text),
-            d: common_vendor.o(($event) => setEvent(item.isUrl, item.url), index),
-            e: index
+            b: common_vendor.t(item.text),
+            c: common_vendor.o(($event) => setEvent(item.isUrl, item.url), index),
+            d: index
           };
         }),
-        J: common_assets._imports_8,
-        K: common_assets._imports_9,
-        L: common_assets._imports_10,
-        M: common_assets._imports_11,
-        N: common_vendor.o(($event) => navTo("/pagesPoints/pointsMall/index")),
-        O: common_assets._imports_12,
-        P: common_assets._imports_13,
-        Q: common_vendor.o(($event) => navTo("/pages/station/index")),
-        R: common_assets._imports_14,
-        S: common_assets._imports_13,
-        T: common_vendor.o(upGrade)
+        C: common_assets._imports_6,
+        D: common_vendor.o(($event) => navTo("/pagesPoints/pointsMall/index")),
+        E: common_assets._imports_7,
+        F: common_assets._imports_8,
+        G: common_vendor.o(($event) => navTo("/pages/station/index")),
+        H: common_assets._imports_9,
+        I: common_assets._imports_8,
+        J: common_vendor.o(upGrade)
       });
     };
   }
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
index f953655..4282251 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:' + B}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="share-card data-v-1cf27b2a">共享卡号:{{j}}</view><view wx:if="{{k}}" 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 wx:if="{{l}}" class="data-v-1cf27b2a" src="{{m}}" alt=""></image><text wx:if="{{n}}" class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定 </text><text wx:if="{{p}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{q}}" class="data-v-1cf27b2a">ID:{{r}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{s}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{t}}" class="data-v-1cf27b2a">{{v}}元</text><view wx:if="{{w}}" class="user-add-card data-v-1cf27b2a" bindtap="{{y}}"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view wx:if="{{z}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{A}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{F}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{H}}"><image class="data-v-1cf27b2a" src="{{G}}" 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="{{I}}" wx:for-item="item" wx:key="e"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.d}}"><view class="box2-item-img data-v-1cf27b2a" style="{{'background:' + item.b}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.c}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{N}}"><view class="point-advert data-v-1cf27b2a"><view class="advert-image data-v-1cf27b2a"><image class="image-icon3 data-v-1cf27b2a" src="{{J}}"></image><image class="image-icon1 data-v-1cf27b2a" src="{{K}}"></image><image class="image-icon2 data-v-1cf27b2a" src="{{L}}"></image><image class="image-icon4 data-v-1cf27b2a" src="{{M}}"></image></view><view class="advert-title data-v-1cf27b2a"><view class="advert-title1 data-v-1cf27b2a">积分商城</view><view class="advert-title2 data-v-1cf27b2a"><text class="data-v-1cf27b2a">点击进入</text></view></view></view></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="{{Q}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{O}}" 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="{{P}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{T}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{R}}" 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="{{S}}" 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:' + t}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="card-detail data-v-1cf27b2a"><view class="card-top data-v-1cf27b2a"><view class="vip data-v-1cf27b2a">VIP</view><view class="top-right data-v-1cf27b2a"><view wx:if="{{j}}" class="card-name data-v-1cf27b2a"><text class="data-v-1cf27b2a">共享卡</text><text wx:if="{{k}}" class="data-v-1cf27b2a">[已挂失]</text></view><view wx:if="{{l}}" class="card-name data-v-1cf27b2a"><text class="data-v-1cf27b2a">会员卡</text><text wx:if="{{m}}" class="card-loss data-v-1cf27b2a">[已挂失]</text></view><view class="card-num data-v-1cf27b2a"> 卡号:{{n}}</view></view></view><view class="card-bottom data-v-1cf27b2a"><view class="bottom-left data-v-1cf27b2a"><text class="bottom-left-text data-v-1cf27b2a">余额:</text><text class="bottom-left-money data-v-1cf27b2a">{{o}}</text></view><view wx:if="{{p}}" bindtap="{{q}}" class="card-btn data-v-1cf27b2a">充值</view></view></view><view wx:if="{{r}}" class="card-none data-v-1cf27b2a"><view class="card-none-top data-v-1cf27b2a"><text class="data-v-1cf27b2a">未绑定会员卡</text></view><view class="card-none-bottom data-v-1cf27b2a"><view bindtap="{{s}}" class="card-btn data-v-1cf27b2a">去绑定</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{w}}"><image class="box-one-image1 data-v-1cf27b2a" src="{{v}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{y}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="box-one-image2 data-v-1cf27b2a" src="{{x}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view></view><view class="scan-box data-v-1cf27b2a"><view class="scan data-v-1cf27b2a" bindtap="{{A}}"><image class="scan-img data-v-1cf27b2a" src="{{z}}"></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="{{B}}" wx:for-item="item" wx:key="d"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.c}}"><view class="box2-item-img data-v-1cf27b2a"><image class="box2-image data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.b}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{D}}"><image class="banner-img data-v-1cf27b2a" src="{{C}}"></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="{{G}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" 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="{{F}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{J}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{H}}" 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="{{I}}" 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 cf8a3ff..f993546 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -25,13 +25,11 @@
 /* 文章场景相关 */
 .container.data-v-1cf27b2a {
   width: 100%;
-  height: 100vh;
-  overflow: scroll;
 }
 .container .content.data-v-1cf27b2a {
   width: 100%;
-  height: 100vh;
   background: #F6F6F6;
+  overflow: scroll;
 }
 .container .content .card-box.data-v-1cf27b2a {
   width: 100%;
@@ -65,157 +63,158 @@
 }
 .container .content .card-box .card.data-v-1cf27b2a {
   width: 100%;
-  height: 290rpx;
+  height: 256rpx;
   position: relative;
 }
 .container .content .card-box .card .card-bg.data-v-1cf27b2a {
-  height: 290rpx;
+  height: 256rpx;
   width: 100%;
   top: 0;
   position: absolute;
   z-index: 1;
 }
-.container .content .card-box .card .share-card.data-v-1cf27b2a {
-  position: absolute;
-  top: 16rpx;
-  left: 28rpx;
-  z-index: 100;
-  font-weight: 400;
-  font-size: 36rpx;
-  color: #FFFFFF;
-}
-.container .content .card-box .card .card-content.data-v-1cf27b2a {
+.container .content .card-box .card .card-none.data-v-1cf27b2a {
   width: 100%;
   height: 100%;
+  padding: 38rpx;
   box-sizing: border-box;
-  padding: 20rpx 15rpx;
-  display: flex;
-  justify-content: space-between;
-  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%;
-  display: flex;
-  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;
   flex-direction: column;
-}
-.container .content .card-box .card .card-content .card-left .left-top view.data-v-1cf27b2a:first-child {
-  display: flex;
-  align-items: center;
-}
-.container .content .card-box .card .card-content .card-left .left-top view:first-child image.data-v-1cf27b2a {
-  width: 48rpx;
-  height: 48rpx;
-}
-.container .content .card-box .card .card-content .card-left .left-top view:first-child text.data-v-1cf27b2a {
-  font-weight: 400;
-  font-size: 36rpx;
-  color: #FFFFFF;
-}
-.container .content .card-box .card .card-content .card-left .left-top view:first-child .lossed.data-v-1cf27b2a {
+  justify-content: space-around;
   color: #fff;
+  z-index: 2;
 }
-.container .content .card-box .card .card-content .card-left .left-top view.data-v-1cf27b2a:last-child {
-  margin-left: 10rpx;
-  font-size: 26rpx;
+.container .content .card-box .card .card-none .card-none-top.data-v-1cf27b2a {
+  font-size: 40rpx;
+  font-weight: 600;
+  z-index: 2;
+  letter-spacing: 2rpx;
+}
+.container .content .card-box .card .card-none .card-none-bottom.data-v-1cf27b2a {
+  display: flex;
+  justify-content: flex-end;
+  z-index: 2;
+}
+.container .content .card-box .card .card-none .card-none-bottom .card-btn.data-v-1cf27b2a {
+  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;
 }
-.container .content .card-box .card .card-content .card-right.data-v-1cf27b2a {
-  display: flex;
-  justify-content: space-between;
-  align-items: flex-end;
-  flex-direction: column;
+.container .content .card-box .card .card-detail.data-v-1cf27b2a {
+  width: 100%;
   height: 100%;
-  z-index: 100;
-}
-.container .content .card-box .card .card-content .card-right .card-right-top.data-v-1cf27b2a {
-  align-items: flex-end;
+  padding: 38rpx;
+  box-sizing: border-box;
   display: flex;
-  justify-content: space-between;
   flex-direction: column;
-  font-size: 34rpx;
+  justify-content: center;
+  color: #fff;
+  z-index: 2;
 }
-.container .content .card-box .card .card-content .card-right .card-right-top .user-add-card.data-v-1cf27b2a {
+.container .content .card-box .card .card-detail .card-top.data-v-1cf27b2a {
+  width: 100%;
   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;
+  z-index: 2;
 }
-.container .content .card-box .card .card-content .card-right .card-right-top .user-add-card image.data-v-1cf27b2a {
-  width: 36rpx;
-  height: 36rpx;
-  margin-right: 6rpx;
-  opacity: 0.8;
+.container .content .card-box .card .card-detail .card-top .vip.data-v-1cf27b2a {
+  font-size: 114rpx;
+  font-weight: 600;
 }
-.container .content .card-box .card .card-content .card-right .card-right-top .user-add-card text.data-v-1cf27b2a {
-  color: #FFF;
+.container .content .card-box .card .card-detail .card-top .top-right.data-v-1cf27b2a {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  margin-left: 20rpx;
 }
-.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-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;
+.container .content .card-box .card .card-detail .card-top .top-right .card-name.data-v-1cf27b2a {
+  font-size: 40rpx;
   font-weight: 400;
+}
+.container .content .card-box .card .card-detail .card-top .top-right .card-name .card-loss.data-v-1cf27b2a {
+  font-size: 34rpx;
+  font-weight: 600;
+  margin-left: 10rpx;
+  letter-spacing: 2rpx;
+  color: #333434;
+}
+.container .content .card-box .card .card-detail .card-top .top-right .card-num.data-v-1cf27b2a {
+  font-size: 34rpx;
+  font-weight: 400;
+}
+.container .content .card-box .card .card-detail .card-bottom.data-v-1cf27b2a {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  z-index: 2;
+}
+.container .content .card-box .card .card-detail .card-bottom .bottom-left.data-v-1cf27b2a {
+  display: flex;
+  align-items: center;
+}
+.container .content .card-box .card .card-detail .card-bottom .bottom-left .bottom-left-text.data-v-1cf27b2a {
+  font-size: 40rpx;
+  font-weight: 400;
+  letter-spacing: 2rpx;
+}
+.container .content .card-box .card .card-detail .card-bottom .bottom-left .bottom-left-money.data-v-1cf27b2a {
+  font-size: 60rpx;
+  font-weight: 600;
+}
+.container .content .card-box .card .card-detail .card-bottom .card-btn.data-v-1cf27b2a {
+  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;
 }
 .container .content .function-box1.data-v-1cf27b2a {
   width: 100%;
   box-sizing: border-box;
-  height: 215rpx;
-  padding: 20rpx 32rpx 15rpx;
+  height: 172rpx;
+  padding: 20rpx 32rpx 22rpx;
   display: flex;
   justify-content: space-between;
   align-items: center;
+  font-size: 36rpx;
+  font-weight: 500;
+  color: #4d4d4d;
+  letter-spacing: 2rpx;
 }
 .container .content .function-box1 .box1-bg.data-v-1cf27b2a {
-  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);
 }
 .container .content .function-box1 .box1-one.data-v-1cf27b2a {
-  font-weight: 300;
-  font-size: 32rpx;
-  color: #000000;
   text-align: center;
   display: flex;
-  flex-direction: column;
   align-items: center;
   justify-content: center;
+  justify-content: space-evenly;
 }
-.container .content .function-box1 .box1-one image.data-v-1cf27b2a {
+.container .content .function-box1 .box1-one .box-one-image1.data-v-1cf27b2a {
   width: 86rpx;
-  height: 78rpx;
-  margin-bottom: 20rpx;
+  height: 86rpx;
 }
 .container .content .function-box1 .box1-two.data-v-1cf27b2a {
-  font-weight: 300;
-  font-size: 32rpx;
-  color: #000000;
   display: flex;
-  flex-direction: column;
   align-items: center;
   justify-content: space-evenly;
 }
-.container .content .function-box1 .box1-two image.data-v-1cf27b2a {
+.container .content .function-box1 .box1-two .box-one-image2.data-v-1cf27b2a {
   width: 96rpx;
   height: 96rpx;
 }
@@ -234,11 +233,35 @@
   height: 83rpx;
   margin-bottom: 20rpx;
 }
+.container .content .scan-box.data-v-1cf27b2a {
+  width: 100%;
+  height: 116rpx;
+  padding: 0 42rpx 16rpx;
+  box-sizing: border-box;
+}
+.container .content .scan-box .scan.data-v-1cf27b2a {
+  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;
+}
+.container .content .scan-box .scan .scan-img.data-v-1cf27b2a {
+  width: 44rpx;
+  height: 44rpx;
+  margin-right: 20rpx;
+}
 .container .content .function-box2.data-v-1cf27b2a {
   width: 100%;
   box-sizing: border-box;
-  height: 429rpx;
-  padding: 0 32rpx 15rpx;
+  height: 420rpx;
+  padding: 0 32rpx 0;
 }
 .container .content .function-box2 .box2-title.data-v-1cf27b2a {
   width: 100%;
@@ -271,14 +294,15 @@
   align-items: center;
 }
 .container .content .function-box2 .box2-content .box2-item .box2-item-img.data-v-1cf27b2a {
-  width: 90rpx;
-  height: 90rpx;
+  width: 100rpx;
+  height: 100rpx;
   display: flex;
   justify-content: center;
   align-items: center;
+  background: #5EA1FA;
   border-radius: 50%;
 }
-.container .content .function-box2 .box2-content .box2-item .box2-item-img image.data-v-1cf27b2a {
+.container .content .function-box2 .box2-content .box2-item .box2-item-img .box2-image.data-v-1cf27b2a {
   width: 48rpx;
   height: 48rpx;
 }
@@ -286,86 +310,22 @@
   width: 100%;
   height: 40rpx;
   font-weight: 300;
-  font-size: 28rpx;
-  color: #000000;
+  font-size: 30rpx;
+  color: #3e3e3e;
   text-align: center;
+  font-weight: 600;
 }
 .container .content .advertisement-box.data-v-1cf27b2a {
   width: 100%;
-  height: 160rpx;
+  height: 188rpx;
   padding: 0 32rpx 10rpx;
   box-sizing: border-box;
   display: flex;
-  justify-content: space-around;
-}
-.container .content .advertisement-box .point-advert.data-v-1cf27b2a {
-  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;
-}
-.container .content .advertisement-box .point-advert .advert-title.data-v-1cf27b2a {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  color: #fff;
-  font-size: 46rpx;
-  font-weight: 800;
-  text-shadow: 4rpx 2rpx #5EA1FA;
-}
-.container .content .advertisement-box .point-advert .advert-title .advert-title2.data-v-1cf27b2a {
-  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;
 }
-.container .content .advertisement-box .point-advert .advert-image.data-v-1cf27b2a {
-  width: 200rpx;
-  height: 100%;
-  position: relative;
-}
-.container .content .advertisement-box .point-advert .advert-image .image-icon1.data-v-1cf27b2a {
-  position: absolute;
-  left: calc(50% - 65rpx);
-  top: calc(50% - 65rpx);
-  width: 130rpx;
-  height: 130rpx;
-  transform: rotate(20deg);
-}
-.container .content .advertisement-box .point-advert .advert-image .image-icon2.data-v-1cf27b2a {
-  position: absolute;
-  left: 60%;
-  top: calc(50% - 30rpx);
-  width: 90rpx;
-  height: 90rpx;
-  transform: rotate(-10deg);
-}
-.container .content .advertisement-box .point-advert .advert-image .image-icon3.data-v-1cf27b2a {
-  position: absolute;
-  left: calc(50% - 100rpx);
-  top: 30%;
-  width: 80rpx;
-  height: 80rpx;
-  transform: rotate(-10deg);
-}
-.container .content .advertisement-box .point-advert .advert-image .image-icon4.data-v-1cf27b2a {
-  position: absolute;
-  left: 140%;
-  top: 60%;
-  width: 50rpx;
-  height: 50rpx;
-  transform: rotate(5deg);
+.container .content .advertisement-box .banner-img.data-v-1cf27b2a {
+  width: 686rpx;
+  height: 178rpx;
 }
 .container .content .service-box.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 95ca7ca..7b00dc2 100644
--- a/unpackage/dist/dev/mp-weixin/pages/recharge/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/recharge/index.js
@@ -50,27 +50,41 @@
       { text: "微信支付", value: 2, checked: true, img: "../../static/images/recharge/wx.png" }
       // {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'},
     ]);
+    let timerId;
+    let payStatus = common_vendor.ref(true);
     async function submit() {
-      let money = "";
-      if (disabled.value) {
-        money = choosedMoney.value;
-      } else {
-        money = Number(otherMoney.value);
-      }
-      let data = {
-        cardNumber: userInfo.waterCardNumber,
-        paymentMethod: 1,
-        rechargeAmount: money
-      };
-      await api_index.rechargeApi(data).then(async (res) => {
-        if (res.code == 200) {
-          let data2 = {
-            businessType: 1,
-            businessNo: res.data
-          };
-          await wxPay(data2);
+      if (payStatus.value) {
+        payStatus.value = false;
+        timerId = setTimeout(() => {
+          payStatus.value = true;
+        }, 2e4);
+        let money = "";
+        if (disabled.value) {
+          money = choosedMoney.value;
+        } else {
+          money = Number(otherMoney.value);
         }
-      });
+        let data = {
+          cardNumber: userInfo.waterCardNumber,
+          paymentMethod: 1,
+          rechargeAmount: money
+        };
+        await api_index.rechargeApi(data).then(async (res) => {
+          if (res.code == 200) {
+            let data2 = {
+              businessType: 1,
+              businessNo: res.data
+            };
+            await wxPay(data2);
+            otherMoney.value = "";
+          }
+        });
+      } else {
+        common_vendor.index.showToast({
+          title: "充值间隔20秒,请稍后!",
+          icon: "none"
+        });
+      }
     }
     async function wxPay(data) {
       await api_index.wxPayApi(data).then((res) => {
@@ -115,6 +129,9 @@
         }
       });
     }
+    common_vendor.onUnmounted(() => {
+      clearTimeout(timerId);
+    });
     return (_ctx, _cache) => {
       return {
         a: common_vendor.p({
@@ -140,7 +157,8 @@
             d: item.checked
           };
         }),
-        h: common_vendor.o(($event) => submit())
+        h: common_vendor.unref(payStatus) ? 1 : 0.7,
+        i: 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 d0c5a29..9584a67 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="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
+<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 style="{{'opacity:' + h}}" class="submit-btn data-v-f06186df" bindtap="{{i}}">立即充值</view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json
index e1facc3..1615ccb 100644
--- a/unpackage/dist/dev/mp-weixin/project.config.json
+++ b/unpackage/dist/dev/mp-weixin/project.config.json
@@ -8,14 +8,15 @@
     "urlCheck": false,
     "es6": true,
     "postcss": false,
-    "minified": false,
+    "minified": true,
     "newFeature": true,
     "bigPackageSizeSupport": true,
     "babelSetting": {
       "ignore": [],
       "disablePlugins": [],
       "outputPath": ""
-    }
+    },
+    "uglifyFileName": true
   },
   "compileType": "miniprogram",
   "libVersion": "",
diff --git a/unpackage/dist/dev/mp-weixin/project.private.config.json b/unpackage/dist/dev/mp-weixin/project.private.config.json
index 09fb3cb..1c71e23 100644
--- a/unpackage/dist/dev/mp-weixin/project.private.config.json
+++ b/unpackage/dist/dev/mp-weixin/project.private.config.json
@@ -1,4 +1,8 @@
 {
   "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
-  "libVersion": "3.6.6"
+  "libVersion": "3.6.6",
+  "projectname": "water-drinking-uniapp",
+  "setting": {
+    "compileHotReLoad": true
+  }
 }
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/static/images/addCard/code.png b/unpackage/dist/dev/mp-weixin/static/images/addCard/code.png
deleted file mode 100644
index 20ea3ed..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/addCard/code.png
+++ /dev/null
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/home21.png b/unpackage/dist/dev/mp-weixin/static/images/index/home21.png
deleted file mode 100644
index 378f65f..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/index/home21.png
+++ /dev/null
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/icon22.png b/unpackage/dist/dev/mp-weixin/static/images/index/icon22.png
deleted file mode 100644
index 38b8928..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/index/icon22.png
+++ /dev/null
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/icon51.png b/unpackage/dist/dev/mp-weixin/static/images/index/icon51.png
deleted file mode 100644
index d08ca32..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/index/icon51.png
+++ /dev/null
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/notice5.png b/unpackage/dist/dev/mp-weixin/static/images/index/notice5.png
deleted file mode 100644
index f2090be..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/index/notice5.png
+++ /dev/null
Binary files differ

--
Gitblit v1.9.3