From 42e5ea86f7edc9361227edd979a8ae1952713161 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 19 十月 2024 16:19:16 +0800
Subject: [PATCH] 添加共享列表,修改共享功能相关代码

---
 pages/userInfo/index.vue                            |    3 
 pages/functionList/share/shareList/index.vue        |  175 +++++++++
 package-lock.json                                   |   11 
 unpackage/dist/dev/mp-weixin/api/index.js           |   12 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxss |   10 
 pages.json                                          |   18 +
 unpackage/dist/dev/mp-weixin/pages/index/index.wxml |    2 
 unpackage/dist/dev/mp-weixin/app.js                 |    3 
 pages/functionList/share/cardShare/index.vue        |  162 +++++++++
 unpackage/dist/dev/mp-weixin/app.json               |    3 
 static/images/other/code-none.png                   |    0 
 pnpm-lock.yaml                                      |   22 +
 unpackage/dist/dev/mp-weixin/pages/index/index.js   |  233 +++++++-----
 unpackage/dist/dev/mp-weixin/common/vendor.js       |    3 
 pages/functionList/share/shareConfirm/index.vue     |  134 +++++++
 package.json                                        |    3 
 api/index.js                                        |   12 
 unpackage/dist/dev/mp-weixin/pages/addCard/index.js |    2 
 pages/index/index.vue                               |  183 +++++----
 unpackage/dist/dev/mp-weixin/common/assets.js       |   28 
 unpackage/dist/dev/mp-weixin/pages/address/index.js |    2 
 21 files changed, 814 insertions(+), 207 deletions(-)

diff --git a/api/index.js b/api/index.js
index 8219649..9f1f556 100644
--- a/api/index.js
+++ b/api/index.js
@@ -86,4 +86,16 @@
 export function infoBreakdownApi(data){
 	return request('/waterFacilityMalfunction/create',data,'POST')
 }
+//会员卡共享
+export function askShareApi(data){
+	return request('/waterCardShare/askShare',data,'POST')
+}
+//会员卡共享列表
+export function askShareListApi(id){
+	return request(`/waterCardShare/getListByUser?userId=${id}`,{},'GET')
+}
+//控制共享状态
+export function editShareTypeApi(data){
+	return request('/waterCardShare/editShareType',data,'POST')
+}
 
diff --git a/package-lock.json b/package-lock.json
index 16f9f5d..8c6c85f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,7 +6,16 @@
     "packages": {
         "": {
             "name": "da-tree 树组件(支持单选、多选、无限级、主题色,Vue3版) ",
-            "version": "1.4.2"
+            "version": "1.4.2",
+            "devDependencies": {
+                "@dcloudio/uni-ui": "^1.5.6"
+            }
+        },
+        "node_modules/@dcloudio/uni-ui": {
+            "version": "1.5.6",
+            "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.6.tgz",
+            "integrity": "sha512-jmb98PasFvZkrIDXGh94GbdWg2/jyhgs1HUG+bU8eyL7Ltias/5XBz4q8w9RXyWUfqepJRqapPA2IIQpLCuTIg==",
+            "dev": true
         }
     }
 }
diff --git a/package.json b/package.json
index 815f9dd..672a0c6 100644
--- a/package.json
+++ b/package.json
@@ -15,5 +15,8 @@
             "前端组件",
             "通用组件"
         ]
+    },
+    "devDependencies": {
+        "@dcloudio/uni-ui": "^1.5.6"
     }
 }
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 14e3fc3..c58c0db 100644
--- a/pages.json
+++ b/pages.json
@@ -37,6 +37,24 @@
 			}
 		},
 		{
+			"path" : "pages/functionList/share/cardShare/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
+		},
+		{
+			"path" : "pages/functionList/share/shareConfirm/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
+		},
+		{
+			"path" : "pages/functionList/share/shareList/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
+		},
+		{
 			"path" : "pages/scanWater/index",
 			"style": {
 				"navigationStyle":"custom"
diff --git a/pages/functionList/share/cardShare/index.vue b/pages/functionList/share/cardShare/index.vue
new file mode 100644
index 0000000..979608a
--- /dev/null
+++ b/pages/functionList/share/cardShare/index.vue
@@ -0,0 +1,162 @@
+<template>
+	<view class="container">
+		<navbar title = '水卡共享'></navbar>
+		<view class="content">
+			<view class="code-box">
+				<view v-if="userInfo.waterCardNumber && !isShareCard" class="code">
+					<l-qrcode :value="codeParams" size="260rpx" color="rgb(12, 15, 36)" :icon="headImg" iconSize="70rpx"></l-qrcode>
+					<text>会员卡:{{userInfo.waterCardNumber}}</text>
+				</view>
+				<view v-else class="none-code">
+					<image src="../../../../static/images/other/code-none.png"></image>
+					<text v-if="isShareCard">共享卡</text>
+					<text v-else>未绑定水卡</text>
+				</view>
+			</view>
+			<view class="scan-box">
+				<view class="scan-btn" @click="toScan()">扫码共享</view>
+				<view class="tips">
+					<text>1、被共享者完善用户信息,点击扫码共享扫描二维码。</text>
+					<text>2、扫描成功后跳转确认页面点击确认,等待共享者在共享列表里点击确认即可共享成功。</text>
+					<text>3、共享者可在共享列表里维护该卡的共享卡信息。</text>
+				</view>
+			</view>
+			<view @click="navTo()" class="btn-box">共享列表</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import { ref } from 'vue'
+	import  head  from '../../../../static/images/index/head.png'
+	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
+	const isShareCard = ref(userInfo.value.userCardType)
+	const codeParams = ref(userInfo.value.waterCardNumber) 
+	const headImg = ref(head)
+	function toScan(){
+		//调用二维码扫描接口
+		if(userInfo.value.waterCardNumber){
+			uni.showToast({
+				title:'已存在会员卡!',
+				icon:'none'
+			})
+		}else{
+			uni.scanCode({
+				scanType: ['qrCode'],
+				success: function (res) {
+					console.log('条码内容:' + res.result);
+					uni.navigateTo({
+						url:`/pages/functionList/share/shareConfirm/index?codeParams=${res.result}`
+					})
+				}
+			});
+		}
+	}
+	function navTo(){
+		uni.navigateTo({
+			url:'/pages/functionList/share/shareList/index'
+		})
+	}
+</script>
+
+<style lang="scss">
+.container{
+	width: 100%;
+	height: 100vh;
+	.content{
+		width: 100%;
+		height:calc(100vh - 176rpx);
+		background:linear-gradient(to top,#FFFFFF,#E8EFFF);  
+		box-sizing: border-box; 
+		padding-top:60rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		.code-box{
+			width: 80%;
+			height:560rpx;
+			background: #fff;
+			border-radius:26rpx;
+			border-bottom:2rpx solid #bdd7ff;
+			margin-bottom: 20rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.code{
+				width:300rpx;
+				height: 326rpx;
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+				align-items: center;
+				text{
+					color: #4878bf;
+					font-size:600;
+				}
+			}
+			.none-code{
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+				align-items: center;
+				image{
+					width:300rpx;
+					height:300rpx;
+				}
+				text{
+					color: #4878bf;
+					font-size:600;
+				}
+			}
+		}
+		.scan-box{
+			width: 100%;
+			height:500rpx;
+			border-bottom:1rpx dashed #bdd7ff;
+			// border-top:1rpx solid #bdd7ff;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			display: flex;
+			flex-direction: column;
+			justify-content:flex-start;
+			align-items: center;
+			padding:30rpx 0;
+			box-sizing: border-box;
+			.scan-btn{
+				width:300rpx;
+				height: 80rpx;
+				background: #78a3ff;
+				border-radius:40rpx;
+				text-align: center;
+				line-height: 80rpx;
+				color: #FFFFFF;
+				margin-bottom:50rpx;
+			}
+			.tips{
+				width:86%;
+				text{
+					display: block;
+					font-size:26rpx;
+					margin-bottom:20rpx;
+					color: #555555;
+					line-height:56rpx;
+				}
+			}
+		}
+		.btn-box{
+			width:400rpx;
+			height: 70rpx;
+			background: #688ee1;
+			border-radius:40rpx;
+			text-align: center;
+			line-height: 70rpx;
+			color: #FFFFFF;
+			position: absolute;
+			bottom:120rpx;
+			letter-spacing:5rpx;
+		}
+	  }
+}
+			
+</style>
diff --git a/pages/functionList/share/shareConfirm/index.vue b/pages/functionList/share/shareConfirm/index.vue
new file mode 100644
index 0000000..76c41d4
--- /dev/null
+++ b/pages/functionList/share/shareConfirm/index.vue
@@ -0,0 +1,134 @@
+<template>
+	<view class="container">
+		<navbar title = '会员卡共享'></navbar>
+		<view class="content">
+			<view class="img">
+				<image src="../../../../static/images/index/card11.png"></image>
+				<text>卡号:{{shareData.cardNumber}}</text>
+			</view>
+			<view @click="shareConfirm()" class="requset-btn">请求共享</view>
+			<view class="tips">
+				<text>1、提交请求共享,通知水卡实际拥有者进行确认。</text>
+				<text>2、水卡实际拥有者确认后,您可使用此卡消费。</text>
+			</view>
+			<view>
+				<uni-popup ref="messagePopup" type="center" backgroundColor="#d0dced" borderRadius="10rpx">
+					<view class="pop-text">
+						<text>提示</text>
+						<text>{{messageText}}</text>
+					</view>
+				</uni-popup>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import { ref } from 'vue'
+	import { onLoad } from "@dcloudio/uni-app"
+	import { askShareApi } from '../../../../api/index.js'
+	const messagePopup = ref()
+	const messageText = ref()
+	const shareData = ref({
+		shareUserId:'',
+		cardNumber:'',
+	})
+	//共享请求
+	async function shareConfirm(){
+			console.log('发起请求')
+		shareData.value.shareUserId = JSON.parse(uni.getStorageSync('userInfo')).id	
+		console.log('shareData.value',shareData.value)
+		await askShareApi(shareData.value).then((res) =>{
+			console.log('请求响应',res)
+			if(res.code == 200){
+				uni.showToast({
+					title:'共享成功',
+					duration:1500,
+				})
+				setTimeout(() =>{
+					uni.navigateTo({
+						url:'/pages/index/index'
+					})
+				},1500)
+			}else if(res.code == 300){
+				messageText.value = res.msg
+				messagePopup.value.open('center')
+			}else{
+				uni.showToast({
+					title:'请求错误!',
+					icon:'none'
+				})
+			}
+		})
+	}
+	onLoad(async(option)=>{
+		shareData.value.cardNumber = option.codeParams
+	})
+</script>
+
+<style lang="scss">
+	.container{
+		width: 100%;
+		height: 100vh;
+		.content{
+			width: 100%;
+			height:calc(100vh - 176rpx);
+			background:linear-gradient(to top,#FFFFFF,#E8EFFF);  
+			box-sizing: border-box; 
+			padding:60rpx 32rpx 0;
+			display: flex;
+			flex-direction: column;
+			align-items: center; 
+			.img{
+				width: 100%;
+				position: relative;
+				margin-bottom:50rpx;
+				image{
+					width:100%;
+					height:290rpx;
+				}
+				text{
+					position: absolute;
+					left:20rpx;
+					top: 20rpx;
+					color: #FFFFFF;
+				}
+			}
+			.requset-btn{
+				width:400rpx;
+				height: 80rpx;
+				background: #2b74e1;
+				border-radius:40rpx;
+				text-align: center;
+				line-height: 80rpx;
+				color: #FFFFFF;
+				letter-spacing:5rpx;
+				margin-bottom: 50rpx;
+			}
+			.tips{
+				text{
+					display: block;
+					font-size:26rpx;
+					margin-bottom:10rpx;
+					color: #555555;
+					line-height:56rpx;
+				}
+			}
+			.pop-text{
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: space-evenly;
+				color: #648ecc;
+				padding: 20rpx 30rpx;
+				text{
+					text-align: center;
+					line-height: 50rpx;
+					margin-bottom:10rpx;
+					color: #5281c6;
+					letter-spacing:3rpx;
+				}
+			}
+		}
+	}
+</style>
diff --git a/pages/functionList/share/shareList/index.vue b/pages/functionList/share/shareList/index.vue
new file mode 100644
index 0000000..c3c80e6
--- /dev/null
+++ b/pages/functionList/share/shareList/index.vue
@@ -0,0 +1,175 @@
+<template>
+	<view class="container">
+		<navbar title = '会员卡共享'></navbar>
+		<view class="content">
+			<block v-for="(item,index) in shareList" :key="index">
+				<view class="item-box">
+					<view class="item-img">
+						<image src="../../../../static/images/index/head.png"></image>
+					</view>
+					<view class="item-info">
+						<text>{{item.shareUserName}}</text>
+						<text>{{item.sharePhone}}</text>
+					</view>
+					<view class="item-handel">
+						<view class="btn">
+							<view class="btn1" v-if="item.shareType == 1" @click="shareConfirm(2,item.id)">确认共享</view>
+							<view class="btn2" v-if="item.shareType == 1 || item.shareType == 2  " @click="shareConfirm(3,item.id)">取消共享</view>
+						</view>
+						<view v-if="item.shareType == 1" class="status">待确认</view>
+						<view v-if="item.shareType == 2" class="status">共享中</view>
+					</view>
+				</view>
+			</block>
+		</view>
+		
+	</view>
+</template>
+
+<script setup>
+	import { onMounted, ref } from 'vue'
+	import { askShareListApi ,editShareTypeApi} from '../../../../api/index.js'
+	const shareList = ref([
+		// {shareUserName:'',sharePhone:'',id:'',pictureUrl:'',shareType:1},
+	])
+	const userId = JSON.parse(uni.getStorageSync('userInfo')).id
+	//获取共享列表
+	async function getAskShareList(){
+		await askShareListApi(userId).then((res) =>{
+			console.log('res',res)
+			shareList.value = res.data
+		})
+	}
+	//共享确认
+	function shareConfirm(val,rowId){
+		let postData = {
+			shareType:val,//1:待确认,2:确认,3:已取消
+			id:rowId
+		}
+		if(val == 2){
+			uni.showModal({
+				title: '会员卡共享',
+				content: '确认共享您的会员卡?',
+				success: async function(res) {
+					if (res.confirm) {
+						await editShareTypeApi(postData).then(async(res) =>{
+							if(res.code == 200){
+								uni.showToast({
+									title:'共享成功!'
+								})
+								await getAskShareList()
+							}
+						})
+					}
+				}
+			});
+		}else if(val == 3){
+			uni.showModal({
+				title: '会员卡共享',
+				content: '确认取消共享?',
+				success: async function(res) {
+					if (res.confirm) {
+						await editShareTypeApi(postData).then(async(res) =>{
+							if(res.code == 200){
+								uni.showToast({
+									title:'取消共享成功!'
+								})
+								await getAskShareList()
+							}
+						})
+					}
+				}
+			});
+		}
+	}
+	onMounted(async() =>{
+		await getAskShareList()
+	})
+</script>
+
+<style lang="scss">
+	
+.container{
+	width: 100%;
+	height: 100vh;
+	.content{
+		width: 100%;
+		height:calc(100vh - 176rpx);
+		background:linear-gradient(to top,#FFFFFF,#E8EFFF);  
+		box-sizing: border-box; 
+		padding:60rpx 32rpx 0;
+		display: flex;
+		flex-direction: column;
+		align-items: center; 
+		overflow:scroll;
+		.item-box{
+			position: relative;
+			width:100%;
+			height:160rpx;
+			background: #FFF;
+			border-radius:24rpx;
+			padding:10rpx 16rpx;
+			box-sizing: border-box;
+			margin-bottom:24rpx;
+			display: flex;
+			align-items: center;
+			box-shadow: 0 4rpx 6rpx 1rpx rgba(155, 180, 250, 0.3);
+			.item-img{
+				image{
+					width:90rpx;
+					height: 90rpx;
+				}
+			}
+			.item-info{
+				height:100%;
+				display: flex;
+				flex-direction: column;
+				justify-content: center;
+				margin-left: 16rpx;
+			}
+			.item-handel{
+				position: absolute;
+				right:20rpx;
+				display: flex;
+				flex-direction:column;
+				align-items: flex-end;
+				height:85%;
+				justify-content:flex-end;
+				.btn{
+					display: flex;
+					margin-bottom:5rpx;
+					.btn1{
+						margin-right:10rpx;
+						width:130rpx;
+						height:60rpx;
+						line-height: 60rpx;
+						border-radius:30rpx;
+						text-align: center;
+						font-size: 24rpx;
+						font-weight:600;
+							color: #4b73e3;
+							background: linear-gradient(to right,rgba(210, 222, 249, 0.8),#FFF);
+					}
+					.btn2{
+							width:130rpx;
+							height:60rpx;
+							line-height: 60rpx;
+							border-radius:30rpx;
+							text-align: center;
+							font-size: 24rpx;
+							font-weight:600;
+							color: #4b73e3;
+							// border:1rpx solid #869cd8;
+							box-shadow: 0 0 1rpx 1rpx rgba(166, 195, 249, 0.7);
+					}
+				}
+				.status{
+					color: #e3b745;
+					font-size:22rpx;
+					margin-right: 10rpx;
+				}
+			}
+		}
+   }
+}
+</style>
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 5610509..6f3549d 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -13,7 +13,6 @@
 	/**
 	 * 会员卡相关
 	 */
-	const isLoss = ref(false)
 	const cardInfo = ref({
 		id:'',
 		userName:'微信用户',
@@ -23,42 +22,42 @@
 		waterCardNumber:'',
 		balance:'',
 		count:'',
-		state:'',
+		state:'',//state:true:挂失,false:正常
+		userCardType:'',//userCardType:true:共享卡,false:正常卡
 	})
+	const isLoss = ref(false)
 	const isVip = ref(false)
+	const isShareCard = ref(false)
 	//获取会员卡信息
-	 function getVipInfo(){
-		return new Promise((resolve,reject) =>{
-			 getVipInfoApi().then((res) =>{
-				if(res.code == 200){
-					cardInfo.value.waterCardNumber = res.data.cardNumber
-					cardInfo.value.state = res.data.state
-					isLoss.value = cardInfo.value.state == 2 ? true : false
-					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
+	 async function getVipInfo(){
+		await getVipInfoApi().then((res) =>{
+			if(res.code == 200 && res.data.id){
+				cardInfo.value.waterCardNumber = res.data.cardNumber
+				cardInfo.value.state = res.data.state == 2 ? true : false//state:2:挂失,1:正常
+				cardInfo.value.userCardType = res.data.userCardType == 2 ? true : false //userCardType:2:共享卡,1:正常卡
+				
+				isLoss.value = cardInfo.value.state 
+				isShareCard.value = cardInfo.value.userCardType 
+				if(res.data.cardType == 1){
+					cardInfo.value.balance = res.data.balance
+				}else if(res.data.cardType == 2){
+					cardInfo.value.count = res.data.count
 				}
-			})
+				isVip.value = true
+				console.log('cardInfo',cardInfo.value,'isShareCard.value',isShareCard.value)
+			}
 		})
 	}
 	//获取用户信息
-	function getInfo(){
-		 getUserInfo().then((res) =>{
+	async function getInfo(){
+		 await getUserInfo().then(async(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.userPhone = res.data.userInfo.userPhone
 				cardInfo.value.id = res.data.userInfo.id
-				
-				if(res.data.userInfo.waterCardNumber){
-					getVipInfo()
-					console.log('00000')
-				}else{
-					isVip.value = false
-				}
+				await getVipInfo()
+				console.log('00000',cardInfo.value)
 				uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 			}
 		})
@@ -82,10 +81,10 @@
 	 * 功能列表相关
 	 */
 	const functionList = ref([
-		{text:'余额记录',icon:'../../static/images/index/icon31.png',bgColor:'#16b387',bgColor:'',url:'/pages/functionList/balanceRecord/index',isUrl:1},
+		{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:'#faaf0f',url:'/pages/functionList/rechargeRecord/index',isUrl:1},
-		{text:'账户共享',icon:'../../static/images/index/icon34.png',bgColor:'#faaf0f',url:'',isUrl:4},
+		{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},
@@ -103,62 +102,74 @@
 		if(isUrl == 1){
 			navTo(url)
 		}else if(isUrl == 2){
-			uni.showModal({
-					title: '会员卡挂失',
-					content: '确认挂失会员卡?',
-					success: async function(res) {
-					if (res.confirm) {
-						await reportLossApi(cardInfo.value.waterCardNumber).then(async(res) =>{
-							if(res.code == 200){
-								uni.showToast({
-									title: '已挂失',
-									duration: 2000,
-								});
-								await getVipInfoApi().then((res) =>{
-									if(res.code == 200){
-										if(res.data.state == 2){
-											isLoss.value = true
+			if(cardInfo.value.waterCardNumber){
+				uni.showModal({
+						title: '会员卡挂失',
+						content: '确认挂失会员卡?',
+						success: async function(res) {
+						if (res.confirm) {
+							await reportLossApi(cardInfo.value.waterCardNumber).then(async(res) =>{
+								if(res.code == 200){
+									uni.showToast({
+										title: '已挂失',
+										duration: 2000,
+									});
+									await getVipInfoApi().then((res) =>{
+										if(res.code == 200){
+											if(res.data.state == 2){
+												isLoss.value = true
+											}
 										}
-									}
-								})
-							}
-						})
-					}else{
-						console.log('点击了取消7')
+									})
+								}
+							})
+						}
 					}
-				}
-			})
+				})
+			}else{
+				uni.showToast({
+					title:'未绑定会员卡!',
+					icon:'none'
+				})
+			}
 		}else if(isUrl == 3){
-			uni.showModal({
-					title: '会员卡注销',
-					content: '确认注销会员卡?',
-					success: async function(res) {
-					if (res.confirm) {
-						await removeCardApi(cardInfo.value.waterCardNumber).then(async(res) =>{
-							if(res.code == 200){
-								uni.showToast({
-									title: '已注销',
-									duration: 2000,
-									icon:'none',
-								});
-								await getVipInfoApi().then((res) =>{
-									if(res.code == 200){
-										if(!res.data.id){
-											isVip.value = false
-											cardInfo.value.balance = ''
-											cardInfo.value.count = ''
-											cardInfo.value.waterCardNumber = ''
-											uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
+			if(cardInfo.value.waterCardNumber){
+				uni.showModal({
+						title: '会员卡注销',
+						content: '确认注销会员卡?',
+						success: async function(res) {
+						if (res.confirm) {
+							await removeCardApi(cardInfo.value.waterCardNumber).then(async(res) =>{
+								if(res.code == 200){
+									uni.showToast({
+										title: '已注销',
+										duration: 2000,
+										icon:'none',
+									});
+									await getVipInfoApi().then((res) =>{
+										if(res.code == 200){
+											if(!res.data.id){
+												isVip.value = false
+												cardInfo.value.balance = ''
+												cardInfo.value.count = ''
+												cardInfo.value.waterCardNumber = ''
+												uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
+											}
 										}
-									}
-								})
-							}
-						})
-					}else{
-						console.log('点击了取消8')
+									})
+								}
+							})
+						}else{
+							console.log('点击了取消8')
+						}
 					}
-				}
-			})
+				})
+			}else{
+					uni.showToast({
+						title:'未绑定会员卡!',
+						icon:'none'
+					})
+			}
 		}else{
 			uni.showToast({
 				title: '该功能正在升级中!',
@@ -209,7 +220,8 @@
 				</view>
 				<view class="card">
 					<image class="card-bg" src="../../static/images/index/card11.png" alt=""></image>
-					<view class="card-content">
+					<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>
@@ -367,6 +379,15 @@
 						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{
 						width: 100%;
@@ -577,7 +598,7 @@
 							display: flex;
 							justify-content: center;
 							align-items: center;
-							background: #65A7FD;
+							// background: #65A7FD;
 							border-radius:50%;
 							image{
 								width: 48rpx;
diff --git a/pages/userInfo/index.vue b/pages/userInfo/index.vue
index b6e4b2e..fe94ade 100644
--- a/pages/userInfo/index.vue
+++ b/pages/userInfo/index.vue
@@ -9,6 +9,7 @@
 		editForm.value.userName = userInfo.value.userName
 		editForm.value.userPhone = userInfo.value.userPhone
 		isEdit.value = true
+		console.log('userInfo',userInfo.value)
 	}
 	function cancel(){
 		isEdit.value = false
@@ -29,7 +30,7 @@
 				})
 			}else{
 				uni.showToast({
-					title: '请求错误!请重试',
+					title: '网络错误!请重试',
 					duration: 2000,
 					icon:'none'
 				});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..3869526
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,22 @@
+lockfileVersion: '9.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+importers:
+
+  .:
+    devDependencies:
+      '@dcloudio/uni-ui':
+        specifier: ^1.5.6
+        version: 1.5.6
+
+packages:
+
+  '@dcloudio/uni-ui@1.5.6':
+    resolution: {integrity: sha512-jmb98PasFvZkrIDXGh94GbdWg2/jyhgs1HUG+bU8eyL7Ltias/5XBz4q8w9RXyWUfqepJRqapPA2IIQpLCuTIg==}
+
+snapshots:
+
+  '@dcloudio/uni-ui@1.5.6': {}
diff --git a/static/images/other/code-none.png b/static/images/other/code-none.png
new file mode 100644
index 0000000..745a921
--- /dev/null
+++ b/static/images/other/code-none.png
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js
index 05e1a08..67149c0 100644
--- a/unpackage/dist/dev/mp-weixin/api/index.js
+++ b/unpackage/dist/dev/mp-weixin/api/index.js
@@ -63,11 +63,23 @@
 function infoBreakdownApi(data) {
   return util_request.request("/waterFacilityMalfunction/create", data, "POST");
 }
+function askShareApi(data) {
+  return util_request.request("/waterCardShare/askShare", data, "POST");
+}
+function askShareListApi(id) {
+  return util_request.request(`/waterCardShare/getListByUser?userId=${id}`, {}, "GET");
+}
+function editShareTypeApi(data) {
+  return util_request.request("/waterCardShare/editShareType", data, "POST");
+}
+exports.askShareApi = askShareApi;
+exports.askShareListApi = askShareListApi;
 exports.balanceChangeApi = balanceChangeApi;
 exports.balanceStatisticsApi = balanceStatisticsApi;
 exports.creatUserArchive = creatUserArchive;
 exports.deleteAddressApi = deleteAddressApi;
 exports.editAddressApi = editAddressApi;
+exports.editShareTypeApi = editShareTypeApi;
 exports.editUserInfoApi = editUserInfoApi;
 exports.getAddressApi = getAddressApi;
 exports.getRegionApi = getRegionApi;
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
index 9e3a194..a66dcf2 100644
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ b/unpackage/dist/dev/mp-weixin/app.js
@@ -9,6 +9,9 @@
   "./pages/functionList/balanceRecord/index.js";
   "./pages/functionList/paymentRecord/index.js";
   "./pages/functionList/rechargeRecord/index.js";
+  "./pages/functionList/share/cardShare/index.js";
+  "./pages/functionList/share/shareConfirm/index.js";
+  "./pages/functionList/share/shareList/index.js";
   "./pages/scanWater/index.js";
   "./pages/recharge/index.js";
   "./pages/sendWater/index.js";
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
index 729a51c..1859b2c 100644
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ b/unpackage/dist/dev/mp-weixin/app.json
@@ -6,6 +6,9 @@
     "pages/functionList/balanceRecord/index",
     "pages/functionList/paymentRecord/index",
     "pages/functionList/rechargeRecord/index",
+    "pages/functionList/share/cardShare/index",
+    "pages/functionList/share/shareConfirm/index",
+    "pages/functionList/share/shareList/index",
     "pages/scanWater/index",
     "pages/recharge/index",
     "pages/sendWater/index",
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index f428dac..8e2c669 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,8 +1,8 @@
 "use strict";
-const _imports_0$8 = "/static/images/index/head.png";
+const _imports_0$a = "/static/images/index/head.png";
 const _imports_1$3 = "/static/images/index/back.png";
 const _imports_2 = "/static/images/index/vip-add.png";
-const _imports_3 = "/static/images/index/card11.png";
+const _imports_0$9 = "/static/images/index/card11.png";
 const _imports_4 = "/static/images/index/code1.png";
 const _imports_5 = "/static/images/index/home21.png";
 const _imports_1$2 = "/static/images/index/icon22.png";
@@ -11,8 +11,9 @@
 const _imports_9 = "/static/images/index/icon51.png";
 const _imports_10 = "/static/images/index/more-info5.png";
 const _imports_11 = "/static/images/index/notice5.png";
-const _imports_0$7 = "/static/images/addCard/code.png";
-const _imports_0$6 = "/static/images/other/expand.png";
+const _imports_0$8 = "/static/images/addCard/code.png";
+const _imports_0$7 = "/static/images/other/expand.png";
+const _imports_0$6 = "/static/images/other/code-none.png";
 const _imports_0$5 = "/static/images/other/success.png";
 const _imports_0$4 = "/static/images/address/edit.png";
 const _imports_1$1 = "/static/images/address/delete.png";
@@ -22,14 +23,16 @@
 const _imports_1 = "/static/images/other/img-add.png";
 const _imports_0 = "/static/images/addCard/back.png";
 exports._imports_0 = _imports_0;
-exports._imports_0$1 = _imports_0$8;
-exports._imports_0$2 = _imports_0$7;
-exports._imports_0$3 = _imports_0$6;
-exports._imports_0$4 = _imports_0$5;
-exports._imports_0$5 = _imports_0$4;
-exports._imports_0$6 = _imports_0$3;
-exports._imports_0$7 = _imports_0$2;
-exports._imports_0$8 = _imports_0$1;
+exports._imports_0$1 = _imports_0$a;
+exports._imports_0$10 = _imports_0$1;
+exports._imports_0$2 = _imports_0$9;
+exports._imports_0$3 = _imports_0$8;
+exports._imports_0$4 = _imports_0$7;
+exports._imports_0$5 = _imports_0$6;
+exports._imports_0$6 = _imports_0$5;
+exports._imports_0$7 = _imports_0$4;
+exports._imports_0$8 = _imports_0$3;
+exports._imports_0$9 = _imports_0$2;
 exports._imports_1 = _imports_1$2;
 exports._imports_1$1 = _imports_1$3;
 exports._imports_1$2 = _imports_1$1;
@@ -37,7 +40,6 @@
 exports._imports_10 = _imports_10;
 exports._imports_11 = _imports_11;
 exports._imports_2 = _imports_2;
-exports._imports_3 = _imports_3;
 exports._imports_4 = _imports_4;
 exports._imports_5 = _imports_5;
 exports._imports_7 = _imports_7;
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index 6be32ba..17e5440 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7670,10 +7670,12 @@
 const onLaunch = /* @__PURE__ */ createHook(ON_LAUNCH);
 const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
 exports._export_sfc = _export_sfc;
+exports.computed = computed;
 exports.createSSRApp = createSSRApp;
 exports.defineComponent = defineComponent;
 exports.e = e;
 exports.f = f;
+exports.getCurrentInstance = getCurrentInstance;
 exports.index = index;
 exports.n = n;
 exports.o = o;
@@ -7682,6 +7684,7 @@
 exports.onLoad = onLoad;
 exports.onMounted = onMounted;
 exports.onShow = onShow;
+exports.onUnmounted = onUnmounted;
 exports.p = p;
 exports.ref = ref;
 exports.resolveComponent = resolveComponent;
diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
index ac15582..909e8f9 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
@@ -66,7 +66,7 @@
         b: form.value.waterCardNumber,
         c: common_vendor.o(($event) => form.value.waterCardNumber = $event.detail.value),
         d: common_vendor.o(($event) => toScan()),
-        e: common_assets._imports_0$2,
+        e: common_assets._imports_0$3,
         f: form.value.userName,
         g: common_vendor.o(($event) => form.value.userName = $event.detail.value),
         h: form.value.userPhone,
diff --git a/unpackage/dist/dev/mp-weixin/pages/address/index.js b/unpackage/dist/dev/mp-weixin/pages/address/index.js
index a345192..b9b37f7 100644
--- a/unpackage/dist/dev/mp-weixin/pages/address/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/address/index.js
@@ -88,7 +88,7 @@
             h: common_vendor.o(($event) => deleteAddress(item.id))
           };
         }),
-        c: common_assets._imports_0$5,
+        c: common_assets._imports_0$7,
         d: common_assets._imports_1$2,
         e: common_vendor.o(($event) => navToAdd())
       };
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index 648355d..28f253b 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -11,7 +11,6 @@
         topHeight.value = common_vendor.index.getMenuButtonBoundingClientRect().top * 2;
       }
     }
-    const isLoss = common_vendor.ref(false);
     const cardInfo = common_vendor.ref({
       id: "",
       userName: "微信用户",
@@ -20,39 +19,41 @@
       waterCardNumber: "",
       balance: "",
       count: "",
-      state: ""
+      state: "",
+      //state:true:挂失,false:正常
+      userCardType: ""
+      //userCardType:true:共享卡,false:正常卡
     });
+    const isLoss = common_vendor.ref(false);
     const isVip = common_vendor.ref(false);
-    function getVipInfo() {
-      return new Promise((resolve, reject) => {
-        api_index.getVipInfoApi().then((res) => {
-          if (res.code == 200) {
-            cardInfo.value.waterCardNumber = res.data.cardNumber;
-            cardInfo.value.state = res.data.state;
-            isLoss.value = cardInfo.value.state == 2 ? true : false;
-            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;
+    const isShareCard = common_vendor.ref(false);
+    async function getVipInfo() {
+      await api_index.getVipInfoApi().then((res) => {
+        if (res.code == 200 && res.data.id) {
+          cardInfo.value.waterCardNumber = res.data.cardNumber;
+          cardInfo.value.state = res.data.state == 2 ? true : false;
+          cardInfo.value.userCardType = res.data.userCardType == 2 ? true : false;
+          isLoss.value = cardInfo.value.state;
+          isShareCard.value = cardInfo.value.userCardType;
+          if (res.data.cardType == 1) {
+            cardInfo.value.balance = res.data.balance;
+          } else if (res.data.cardType == 2) {
+            cardInfo.value.count = res.data.count;
           }
-        });
+          isVip.value = true;
+          console.log("cardInfo", cardInfo.value, "isShareCard.value", isShareCard.value);
+        }
       });
     }
-    function getInfo() {
-      api_index.getUserInfo().then((res) => {
+    async function getInfo() {
+      await api_index.getUserInfo().then(async (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.userPhone = res.data.userInfo.userPhone;
           cardInfo.value.id = res.data.userInfo.id;
-          if (res.data.userInfo.waterCardNumber) {
-            getVipInfo();
-            console.log("00000");
-          } else {
-            isVip.value = false;
-          }
+          await getVipInfo();
+          console.log("00000", cardInfo.value);
           common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
         }
       });
@@ -69,10 +70,10 @@
       });
     }
     const functionList = common_vendor.ref([
-      { text: "余额记录", icon: "../../static/images/index/icon31.png", bgColor: "#16b387", bgColor: "", url: "/pages/functionList/balanceRecord/index", isUrl: 1 },
+      { 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: "#faaf0f", url: "/pages/functionList/rechargeRecord/index", isUrl: 1 },
-      { text: "账户共享", icon: "../../static/images/index/icon34.png", bgColor: "#faaf0f", url: "", isUrl: 4 },
+      { 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 },
@@ -89,62 +90,74 @@
       if (isUrl == 1) {
         navTo(url);
       } else if (isUrl == 2) {
-        common_vendor.index.showModal({
-          title: "会员卡挂失",
-          content: "确认挂失会员卡?",
-          success: async function(res) {
-            if (res.confirm) {
-              await api_index.reportLossApi(cardInfo.value.waterCardNumber).then(async (res2) => {
-                if (res2.code == 200) {
-                  common_vendor.index.showToast({
-                    title: "已挂失",
-                    duration: 2e3
-                  });
-                  await api_index.getVipInfoApi().then((res3) => {
-                    if (res3.code == 200) {
-                      if (res3.data.state == 2) {
-                        isLoss.value = true;
+        if (cardInfo.value.waterCardNumber) {
+          common_vendor.index.showModal({
+            title: "会员卡挂失",
+            content: "确认挂失会员卡?",
+            success: async function(res) {
+              if (res.confirm) {
+                await api_index.reportLossApi(cardInfo.value.waterCardNumber).then(async (res2) => {
+                  if (res2.code == 200) {
+                    common_vendor.index.showToast({
+                      title: "已挂失",
+                      duration: 2e3
+                    });
+                    await api_index.getVipInfoApi().then((res3) => {
+                      if (res3.code == 200) {
+                        if (res3.data.state == 2) {
+                          isLoss.value = true;
+                        }
                       }
-                    }
-                  });
-                }
-              });
-            } else {
-              console.log("点击了取消7");
+                    });
+                  }
+                });
+              }
             }
-          }
-        });
+          });
+        } else {
+          common_vendor.index.showToast({
+            title: "未绑定会员卡!",
+            icon: "none"
+          });
+        }
       } else if (isUrl == 3) {
-        common_vendor.index.showModal({
-          title: "会员卡注销",
-          content: "确认注销会员卡?",
-          success: async function(res) {
-            if (res.confirm) {
-              await api_index.removeCardApi(cardInfo.value.waterCardNumber).then(async (res2) => {
-                if (res2.code == 200) {
-                  common_vendor.index.showToast({
-                    title: "已注销",
-                    duration: 2e3,
-                    icon: "none"
-                  });
-                  await api_index.getVipInfoApi().then((res3) => {
-                    if (res3.code == 200) {
-                      if (!res3.data.id) {
-                        isVip.value = false;
-                        cardInfo.value.balance = "";
-                        cardInfo.value.count = "";
-                        cardInfo.value.waterCardNumber = "";
-                        common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
+        if (cardInfo.value.waterCardNumber) {
+          common_vendor.index.showModal({
+            title: "会员卡注销",
+            content: "确认注销会员卡?",
+            success: async function(res) {
+              if (res.confirm) {
+                await api_index.removeCardApi(cardInfo.value.waterCardNumber).then(async (res2) => {
+                  if (res2.code == 200) {
+                    common_vendor.index.showToast({
+                      title: "已注销",
+                      duration: 2e3,
+                      icon: "none"
+                    });
+                    await api_index.getVipInfoApi().then((res3) => {
+                      if (res3.code == 200) {
+                        if (!res3.data.id) {
+                          isVip.value = false;
+                          cardInfo.value.balance = "";
+                          cardInfo.value.count = "";
+                          cardInfo.value.waterCardNumber = "";
+                          common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
+                        }
                       }
-                    }
-                  });
-                }
-              });
-            } else {
-              console.log("点击了取消8");
+                    });
+                  }
+                });
+              } else {
+                console.log("点击了取消8");
+              }
             }
-          }
-        });
+          });
+        } else {
+          common_vendor.index.showToast({
+            title: "未绑定会员卡!",
+            icon: "none"
+          });
+        }
       } else {
         common_vendor.index.showToast({
           title: "该功能正在升级中!",
@@ -185,37 +198,43 @@
         e: common_assets._imports_1$1,
         f: common_assets._imports_2,
         g: common_vendor.o(($event) => navTo("/pages/addCard/index")),
-        h: common_assets._imports_3,
-        i: isVip.value
-      }, isVip.value ? {
-        j: common_assets._imports_4
+        h: common_assets._imports_0$2,
+        i: isShareCard.value
+      }, isShareCard.value ? {
+        j: common_vendor.t(cardInfo.value.waterCardNumber)
       } : {}, {
-        k: isLoss.value && isVip.value
-      }, isLoss.value && isVip.value ? {} : {}, {
+        k: !isShareCard.value
+      }, !isShareCard.value ? common_vendor.e({
         l: isVip.value
       }, isVip.value ? {
-        m: common_vendor.t(cardInfo.value.waterCardNumber)
+        m: common_assets._imports_4
       } : {}, {
-        n: isVip.value
+        n: isLoss.value && isVip.value
+      }, isLoss.value && isVip.value ? {} : {}, {
+        o: isVip.value
+      }, isVip.value ? {
+        p: common_vendor.t(cardInfo.value.waterCardNumber)
+      } : {}, {
+        q: isVip.value
       }, isVip.value ? {} : {}, {
-        o: !isVip.value
+        r: !isVip.value
       }, !isVip.value ? {} : {}, {
-        p: isVip.value
+        s: isVip.value
       }, isVip.value ? {
-        q: common_vendor.t(cardInfo.value.balance)
+        t: common_vendor.t(cardInfo.value.balance)
       } : {}, {
-        r: isVip.value
+        v: isVip.value
       }, isVip.value ? {
-        s: common_vendor.o(($event) => navTo("/pages/recharge/index"))
-      } : {}, {
-        t: topHeight.value + "rpx",
-        v: common_assets._imports_5,
-        w: common_vendor.o(($event) => upGrade()),
-        x: common_assets._imports_1,
-        y: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
-        z: common_assets._imports_7,
-        A: common_vendor.o(($event) => toScan()),
-        B: common_vendor.f(functionList.value, (item, index, i0) => {
+        w: common_vendor.o(($event) => navTo("/pages/recharge/index"))
+      } : {}) : {}, {
+        x: topHeight.value + "rpx",
+        y: common_assets._imports_5,
+        z: common_vendor.o(($event) => upGrade()),
+        A: common_assets._imports_1,
+        B: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
+        C: common_assets._imports_7,
+        D: common_vendor.o(($event) => toScan()),
+        E: common_vendor.f(functionList.value, (item, index, i0) => {
           return {
             a: item.icon,
             b: item.bgColor,
@@ -224,14 +243,14 @@
             e: index
           };
         }),
-        C: common_assets._imports_8,
-        D: common_vendor.o(upGrade),
-        E: common_assets._imports_9,
-        F: common_assets._imports_10,
-        G: common_vendor.o(($event) => navTo("/pages/station/index")),
-        H: common_assets._imports_11,
+        F: common_assets._imports_8,
+        G: common_vendor.o(upGrade),
+        H: common_assets._imports_9,
         I: common_assets._imports_10,
-        J: common_vendor.o(upGrade)
+        J: common_vendor.o(($event) => navTo("/pages/station/index")),
+        K: common_assets._imports_11,
+        L: common_assets._imports_10,
+        M: 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 de28df1..49fdfe7 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:' + t}}"><view class="user-info data-v-1cf27b2a"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{c}}">{{b}}</text><image bindtap="{{d}}" class="user-more data-v-1cf27b2a" src="{{e}}"></image><view class="user-add-card data-v-1cf27b2a" bindtap="{{g}}"><image class="data-v-1cf27b2a" src="{{f}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image wx:if="{{i}}" class="data-v-1cf27b2a" src="{{j}}" alt=""></image><text class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{k}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{l}}" class="data-v-1cf27b2a">ID:{{m}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{n}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定会员卡</text><text wx:if="{{p}}" class="data-v-1cf27b2a">{{q}}元</text></view><view wx:if="{{r}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{s}}">充值</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="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="data-v-1cf27b2a" src="{{x}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{A}}"><image class="data-v-1cf27b2a" src="{{z}}" 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="{{B}}" 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="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{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
+<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + x}}"><view class="user-info data-v-1cf27b2a"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{c}}">{{b}}</text><image bindtap="{{d}}" class="user-more data-v-1cf27b2a" src="{{e}}"></image><view class="user-add-card data-v-1cf27b2a" bindtap="{{g}}"><image class="data-v-1cf27b2a" src="{{f}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></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 class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{n}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{o}}" class="data-v-1cf27b2a">ID:{{p}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{q}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{r}}" class="data-v-1cf27b2a">未绑定会员卡</text><text wx:if="{{s}}" class="data-v-1cf27b2a">{{t}}元</text></view><view wx:if="{{v}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{w}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{z}}"><image class="data-v-1cf27b2a" src="{{y}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{B}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{A}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" 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="{{E}}" 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="{{G}}"><image class="data-v-1cf27b2a" src="{{F}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{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 class="service-bg data-v-1cf27b2a" bindtap="{{M}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{K}}" 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="{{L}}" 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 1b324bd..86af3f4 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -93,6 +93,15 @@
   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 {
   width: 100%;
   height: 100%;
@@ -267,7 +276,6 @@
   display: flex;
   justify-content: center;
   align-items: center;
-  background: #65A7FD;
   border-radius: 50%;
 }
 .container .content .function-box2 .box2-content .box2-item .box2-item-img image.data-v-1cf27b2a {

--
Gitblit v1.9.3