Liuyi
2024-10-19 42e5ea86f7edc9361227edd979a8ae1952713161
添加共享列表,修改共享功能相关代码
已修改16个文件
已添加5个文件
1021 ■■■■ 文件已修改
api/index.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/functionList/share/cardShare/index.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/functionList/share/shareConfirm/index.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/functionList/share/shareList/index.vue 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/userInfo/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/other/code-none.png 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/api/index.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/assets.js 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/vendor.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/addCard/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/address/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.js 233 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxss 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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')
}
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
        }
    }
}
package.json
@@ -15,5 +15,8 @@
            "前端组件",
            "通用组件"
        ]
    },
    "devDependencies": {
        "@dcloudio/uni-ui": "^1.5.6"
    }
}
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"
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>
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>
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>
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;
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'
                });
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': {}
static/images/other/code-none.png
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;
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";
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",
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;
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;
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,
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())
      };
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)
      });
    };
  }
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>
<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>
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 {