Liuyi
2024-11-20 681efe897b7fb4dbe8bec5fa5056209e3e0edfdc
添加积分商品详情,替换首页海报,调整样式,添加积分规则
已修改15个文件
已添加5个文件
548 ■■■■ 文件已修改
api/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pointsMall/index.vue 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pointsMall/pointsExchangeRecord/index.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pointsMall/pointsGetRecord/index.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pointsMall/pointsGoodsDetail/index.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/pointsMall/pointsrule/index.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/index/advert-icon1.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/index/advert-icon2.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/index/advert-icon3.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/index/advert-icon4.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/api/index.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/assets.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/vendor.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxss 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/index.js
@@ -132,6 +132,15 @@
    return request('/shopGoodsCategory/search',data,'POST')
}
//积分兑换
export function integralConvertApi(data){
    return request('/userIntegralConvert/create',data,'POST')
}
//积分规则
export function getRuleDetailApi(data){
    return request('/userIntegralRuleDetail/search',data,'POST')
}
pages.json
@@ -167,6 +167,12 @@
            "style": {
                "navigationStyle":"custom"
            }
        },
        {
            "path" : "pages/pointsMall/pointsrule/index",
            "style": {
                "navigationStyle":"custom"
            }
        }
    ],
    "globalStyle": {
pages/index/index.vue
@@ -19,6 +19,7 @@
        userName:'微信用户',
        headImg:'',
        userPhone:'',
        integral:'',
        
        waterCardNumber:'',
        balance:'',
@@ -60,6 +61,7 @@
            if(res.code == 200){
                cardInfo.value.userName = res.data.userInfo.userName ?  res.data.userInfo.userName : cardInfo.value.userName
                cardInfo.value.headImg = res.data.userInfo.headImg
                cardInfo.value.integral = res.data.userInfo.integral
                // showHeadImg.value = BASE_URL + '/upload' + cardInfo.value.headImg
                cardInfo.value.userPhone = res.data.userInfo.userPhone
                cardInfo.value.id = res.data.userInfo.id
@@ -364,9 +366,18 @@
            </view>
            <!-- 积分商城 -->
            <view class="advertisement-box" @click="navTo('/pages/pointsMall/index')">
            <!-- <view class="advertisement-box" @click="upGrade"> -->
                <image src="../../static/images/index/banner2.png" alt=""></image>
                <image src="../../static/images/index/banner1.png" alt=""></image>
                <view class="point-advert">
                    <view class="advert-image">
                        <image  class="image-icon3" src="../../static/images/index/advert-icon3.svg"></image>
                        <image class="image-icon1" src="../../static/images/index/advert-icon1.svg"></image>
                        <image  class="image-icon2" src="../../static/images/index/advert-icon2.svg"></image>
                        <image  class="image-icon4" src="../../static/images/index/advert-icon4.svg"></image>
                    </view>
                    <view class="advert-title">
                        <view class="advert-title1">积分商城</view>
                        <view class="advert-title2"><text>点击进入</text></view>
                    </view>
                </view>
            </view>
            <view class="service-box">
                <view class="service-title"><text>服务指南</text></view>
@@ -709,11 +720,81 @@
                box-sizing: border-box;
                display: flex;
                justify-content: space-around;
                image{
                    width:320rpx;
                .point-advert{
                    width:640rpx;
                    height:136rpx;
                    border-radius:10rpx;
                    background:linear-gradient(140deg,#5c9dff 0%,#b5dcff 30%,#52aafc 70%,#b5dcff 90%,#5daffc 100%);
                    display: flex;
                    justify-content: space-around;
                    align-items: center;
                    box-shadow: 0 0 4rpx 2rpx #4978de;
                    .advert-title{
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                        color: #fff;
                        font-size:46rpx;
                        font-weight:800;
                        text-shadow:4rpx 2rpx #5EA1FA;
                        .advert-title2{
                            margin-top:10rpx;
                            font-size:28rpx;
                            font-weight:500;
                            width:180rpx;
                            height:40rpx;
                            background: #5c9dff;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            border-radius:30rpx;
                            letter-spacing:2rpx;
                        }
                    }
                    .advert-image{
                        width:200rpx;
                        height:100%;
                        // background: #76bfa1;
                        position: relative;
                        .image-icon1{
                            position:absolute;
                            left: calc(50% - 65rpx);
                            top: calc(50% - 65rpx);
                            width:130rpx;
                            height:130rpx;
                            transform: rotate(20deg);
                        }
                        .image-icon2{
                            position:absolute;
                            left:60%;
                            top: calc(50% - 30rpx);
                            width:90rpx;
                            height:90rpx;
                            transform: rotate(-10deg);
                        }
                        .image-icon3{
                            position:absolute;
                            left: calc(50% - 100rpx);
                            top: 30%;
                            width:80rpx;
                            height:80rpx;
                            transform: rotate(-10deg);
                        }
                        .image-icon4{
                            position:absolute;
                            left:140%;
                            top: 60%;
                            width:50rpx;
                            height:50rpx;
                            transform: rotate(5deg);
                        }
                    }
                }
                // image{
                //     width:320rpx;
                //     height:136rpx;
                //     border-radius:10rpx;
                // }
            }
            .service-box{
                width: 100%;
pages/pointsMall/index.vue
@@ -1,39 +1,69 @@
<script setup>
    import {ref,onMounted} from 'vue'
    import headImg from '../../static/images/index/head.png'
    import { goodsGetApi,goodsSearchTypeApi } from '../../api/index.js'
    import { goodsGetApi,goodsSearchTypeApi,integralConvertApi,getUserInfo } from '../../api/index.js'
    import { BASE_URL } from '../../config/baseUrl';
    const baseUrl = ref(BASE_URL)
    import { onShow } from '@dcloudio/uni-app'
    
    const baseUrl = ref(BASE_URL)
    const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
    
    const typeList = ref([
        {value:'1',name:'全部分类'},
        {value:'2',name:'零食'},
        {value:'3',name:'电子设备'},
        {value:'4',name:'洗护用品'},
        {value:'5',name:'其他'},
        {value:'5',name:'其他'},
        {value:'5',name:'其他'},
        {value:'5',name:'其他'},
        // {value:'1',name:'全部分类',active:1},
        // {value:'2',name:'零食',active:0},
        // {value:'3',name:'电子设备',active:0},
        // {value:'4',name:'洗护用品',active:0},
        // {value:'5',name:'其他',active:0},
        // {value:'5',name:'其他',active:0},
        // {value:'5',name:'其他',active:0},
        // {value:'5',name:'其他',active:0},
    ])
    const goodsList = ref([
        // {id:'1',imageUrl:'',name:'商品名称',price:'50.00',useIntegral:'1000',stock:102},
    ])
    
    //查询商品类型
    async function getGoodsTypeList(){
        await goodsSearchTypeApi({limit:100,page:1}).then((res) =>{
            typeList.value = res.data.list
            typeList.value.unshift({id:'',name:'全部商品'})
            typeList.value.unshift({id:'',name:'全部商品',active:1})
        })
    }
    //查询商品列表
    async function getGoodsList(categoryId){
        await goodsGetApi(categoryId).then((res) =>{
            goodsList.value = res.data
            console.log('132')
            console.log('获取商品列表')
        })
    }
    //选中商品类型
    async function changeType(typeId,active,e){
        typeList.value.forEach((item,index) =>{
            if(index == e){
                item.active = 1
            }else{
                item.active = 0
            }
        })
        await getGoodsList(typeId)
    }
    //积分兑换
    async function integralConvert(goodsId,goodsIntegral){
        if(goodsIntegral <= Number(userInfo.value.integral)){
            await integralConvertApi({userId:userInfo.value.id,goodsId:goodsId}).then((res) =>{
                if(res.code == 200){
                    uni.showToast({
                        title:'兑换成功!',
                        icon:'none'
                    })
                }
            })
        }else{
            uni.showToast({
                title:'积分余额不足!',
                icon:'none'
            })
        }
    }
    function navBack(){
        uni.navigateBack()
@@ -46,9 +76,32 @@
            })
        }
    }
    //更新用户积分信息
    async function updateUserInfo(){
        await getUserInfo().then((res) =>{
            if(res.code == 200){
                userInfo.value = JSON.parse(uni.getStorageSync('userInfo'))
                userInfo.value.integral = res.data.userInfo.integral
                uni.setStorageSync('userInfo',JSON.stringify(userInfo.value))
            }
        })
    }
    onMounted(async() =>{
        await getGoodsTypeList()
        await getGoodsList('')
        console.log('onMounted')
    })
    onShow(async() =>{
        await getGoodsList('')
        typeList.value.forEach((item,index) =>{
            if(index == 0){
                item.active = 1
            }else{
                item.active = 0
            }
        })
        await updateUserInfo()
        console.log('onShow')
    })
    
</script>
@@ -66,17 +119,17 @@
                        <image src="../../static/images/pointMall/points.svg"></image>
                    </view>
                    <view class="info">
                        <text class="info-name">测试用户123123132</text>
                        <text class="info-name">{{userInfo.userName}}</text>
                        <view class="info-points">
                            <text class="text1">我的积分:</text>
                            <text class="text2">1000</text>
                            <text class="text2">{{userInfo.integral}}</text>
                            <view class="points-icon">
                                <image src="../../static/images/pointMall/points-icon.svg"></image>
                            </view>
                        </view>
                    </view>
                </view>
                <view class="header-right">
                <view class="header-right" @click="navTo('/pages/pointsMall/pointsrule/index')">
                    积分规则
                </view>
            </view>
@@ -100,7 +153,7 @@
            </view>
            <view class="nav-box">
                <view class="nav-item" @click="navTo('/pages/pointsMall/pointsGetRecord/index')">
                    <text>积分明细</text>
                    <text>积分获取明细</text>
                    <image src="../../static/images/pointMall/nav1.svg"></image>
                </view>
                <view class="nav-item" @click="navTo('/pages/pointsMall/pointsExchangeRecord/index')">
@@ -112,7 +165,7 @@
        <view class="content">
            <view class="type-box">
                <scroll-view scroll-x="true">
                    <view v-for="(item,index) in typeList" :key="index" class="type-item" @click="getGoodsList(item.id)">
                    <view v-for="(item,index) in typeList" :key="index" class="type-item" :style="{color:item.active == 1 ? '#f09042' : '#919191'}"  @click="changeType(item.id,item.active,index)">
                        <text>{{item.name}}</text>
                    </view>
                </scroll-view>
@@ -134,7 +187,7 @@
                            <text>{{item.useIntegral}}</text>
                            <image src="../../static/images/pointMall/advert/money1.svg"></image>
                        </view>
                        <view class="goods-item-points-right">
                        <view class="goods-item-points-right" @click="integralConvert(item.id,item.useIntegral)">
                            <text>兑换</text>
                        </view>
                    </view>
@@ -222,6 +275,7 @@
                        justify-content:space-evenly;
                        padding-top:10rpx;
                        box-sizing: border-box;
                        width:350rpx;
                        .info-name{
                            color: #58574e;
                        }
@@ -455,6 +509,7 @@
                   box-sizing: border-box;
                   border-radius: 20rpx;
                   position: relative;
                    background:linear-gradient(#fff,#e8e8e8);
                   .goods-item-img{
                       width:80%;
                       margin: 0 auto;
pages/pointsMall/pointsExchangeRecord/index.vue
@@ -3,20 +3,11 @@
    import { pointsExchangeApi } from '../../../api/index.js'
    
    const pointExchangeList = ref([
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
        // {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
    ])
    async function searchPoints(){
        await pointsExchangeApi({limit:10000,page:1}).then((res) =>{
            // pointExchangeList.value = res.data.list
            pointExchangeList.value = res.data.list
        })
    }
    onMounted(async() =>{
@@ -35,10 +26,10 @@
                            <text class="item-methods">兑换商品:{{item.goodsName}}</text>
                            <view class="item-status">
                                <text>领取状态:</text>
                                <text>{{item.receiveStatusName}}</text>
                                <text>{{item.receiveStatusView}}</text>
                            </view>
                            <text class="item-time">兑换时间:{{item.exchangeDate}}</text>
                            <text class="item-time">领取时间:{{item.receiveDate}}</text>
                            <text v-if="item.receiveStatus == 1" class="item-time">领取时间:{{item.receiveDate}}</text>
                        </view>
                        <view class="item-right">
                            <text class="money">-{{item.integralAmount}}</text>
pages/pointsMall/pointsGetRecord/index.vue
@@ -3,20 +3,11 @@
    import { pointsSearchApi } from '../../../api/index.js'
    
    const pointList = ref([
        {ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
        {ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'}
        // {ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
    ])
    async function searchPoints(){
        await pointsSearchApi({limit:10000,page:1}).then((res) =>{
            // pointList.value = res.data.list
            pointList.value = res.data.list
        })
    }
    onMounted(async() =>{
@@ -36,7 +27,7 @@
                            <text>{{item.createTime}}</text>
                        </view>
                        <view class="item-right">
                            <text class="money">{{item.integralAmount}}</text>
                            <text class="money">+{{item.integralAmount}}</text>
                            <image src="../../../static/images/pointMall/advert/money1.svg"></image>
                        </view>
                    </view>
pages/pointsMall/pointsGoodsDetail/index.vue
@@ -1,9 +1,10 @@
<script setup>
    import {ref,onMounted} from 'vue'
    import { goodsGetByIdApi } from '../../../api/index.js'
    import { goodsGetByIdApi,integralConvertApi } from '../../../api/index.js'
    import { onLoad } from '@dcloudio/uni-app'
    import { BASE_URL } from '../../../config/baseUrl.js';
    
    const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
    const baseUrl = ref(BASE_URL)
    
    const detailInfo = ref({})
@@ -12,6 +13,25 @@
            detailInfo.value = res.data
            console.log('detailInfo',detailInfo.value)
        })
    }
    //积分兑换
    async function integralConvert(){
        if(detailInfo.value.useIntegral <= Number(userInfo.value.integral)){
            await integralConvertApi({userId:userInfo.value.id,goodsId:detailInfo.value.id}).then(async(res) =>{
                if(res.code == 200){
                    uni.showToast({
                        title:'兑换成功!',
                        icon:'none'
                    })
                    await getGoodsDetail(goodsId)
                }
            })
        }else{
            uni.showToast({
                title:'积分余额不足!',
                icon:'none'
            })
        }
    }
    let goodsId
    onLoad(async(option) =>{
@@ -23,25 +43,36 @@
    <view class="container">
        <point-navbar title='商品详情'></point-navbar>
        <view class="content">
            <view class="image">
                <image :src="baseUrl + '/upload'+ detailInfo.detailsUrl"></image>
            <view class="image-box">
                <image class="image" :src="baseUrl + '/upload'+ detailInfo.detailsUrl" mode="aspectFit"></image>
            </view>
            <view class="detail">
                <view class="detail-info">
                    <view class="detail-info-text">
                        <view>【{{detailInfo.name}}】</view>
                        <view>
                            <rich-text :nodes='detailInfo.describe'></rich-text>
                            <text class="detail-info-text-title">【{{detailInfo.name}}】</text>
                            <text class="detail-info-text-decribe">商品描述性文字占位商品描述性文字占位商品描述性文字占位</text>
                        </view>
                    </view>
                    <text>价值{{detailInfo.price}}¥</text>
                    <view class="detail-info-price">
                        <text class="detail-info-price-text">价值:</text>
                        <text class="detail-info-price-num">{{detailInfo.price}}¥</text>
                    </view>
                </view>
                <view class="detail-exchange">
                    <view class="detail-exchange-points">
                        <!-- <image></image> -->
                        <text>1000</text>
                        <image class="detail-exchange-points-image" src="../../../static/images/pointMall/advert/money1.svg"></image>
                        <text class="detail-exchange-points-num">{{detailInfo.useIntegral}}</text>
                    </view>
                    <view class="detail-exchange-points">兑换</view>
                    <view class="detail-exchange-points-btn" @click="integralConvert"><text>兑&nbsp;&nbsp;换</text></view>
                </view>
                <view class="detail-stock">库存:{{detailInfo.stock}}</view>
                <view class="detail-tips">
                    <view class="detail-tips-title"><text>温馨提示</text></view>
                    <view class="detail-tips-content">
                        <view class="detail-tips-content-text1">1、兑换后请凭兑换码到柜台领取商品。</view>
                        <view class="detail-tips-content-text2">2、兑换后的商品不可退换、积分不可退还。</view>
                    </view>
                </view>
            </view>
        </view>
@@ -56,9 +87,95 @@
   .content{
       width:100%;
       height:calc(100vh - 176rpx);
       background:linear-gradient(to bottom,#fef7da,#FFF);
       background:linear-gradient(to bottom,#fef7da,#f7f7f7);
       padding:50rpx 32rpx 100rpx;
       box-sizing: border-box;
       box-sizing: border-box;
        .image-box{
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 550rpx;
            background:linear-gradient(to bottom,#FFF,#fef7da);
            border-radius:20rpx;
            // margin-bottom:30rpx;
            .image{
                   height:500rpx;
            }
        }
        .detail{
            padding:20rpx;
            box-sizing: border-box;
            width: 100%;
            height: 500rpx;
            background: #FFF;
            border-radius:20rpx;
            .detail-info{
                width:100%;
                color: #434139;
                font-weight:500;
                margin-bottom:10rpx;
                .detail-info-text{
                    margin-bottom:10rpx;
                    .detail-info-text-decribe{
                        color: #545147;
                    }
                }
                .detail-info-price{
                    color:#d3481e;
                }
            }
            .detail-exchange{
                display: flex;
                justify-content: space-between;
                margin-bottom:10rpx;
                .detail-exchange-points{
                    display: flex;
                    align-items: center;
                }
                .detail-exchange-points-image{
                    width: 50rpx;
                    height: 50rpx;
                }
                .detail-exchange-points-num{
                    color: #e6980f;
                    font-weight:600;
                    font-size:46rpx;
                }
                .detail-exchange-points-btn{
                    width:180rpx;
                    height:60rpx;
                    background:linear-gradient(to right,#ff9249,#ffb170);
                    border-radius:30rpx;
                    color: #fff;
                    font-size:32rpx;
                    font-weight:500;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                }
            }
            .detail-stock{
                color: #919191;
                font-size:24rpx;
                margin-bottom:50rpx;
            }
            .detail-tips{
                .detail-tips-title{
                    color: #434139;
                    margin-bottom:30rpx;
                }
                .detail-tips-content{
                    display: flex;
                    flex-direction: column;
                    color: #74716c;
                    font-size:24rpx;
                    .detail-tips-content-text1{
                        margin-bottom:10rpx;
                    }
                }
            }
        }
    }
}
</style>
pages/pointsMall/pointsrule/index.vue
对比新文件
@@ -0,0 +1,54 @@
<script setup>
    import {ref,onMounted} from 'vue'
    import { getRuleDetailApi } from '../../../api/index.js'
    const rulesContent = ref('')
    async function setPointsRule(){
        await getRuleDetailApi({limit:1,page:1}).then((res) =>{
            if(res.code == 200){
                rulesContent.value = res.data.list[0].describe
            }
        })
    }
    onMounted( async() =>{
        await setPointsRule()
    })
</script>
<template>
    <view class="container">
        <point-navbar title='积分规则'></point-navbar>
        <view class="content">
            <view class="rules-title">-积分规则-</view>
            <view>
                <rich-text :nodes="rulesContent"></rich-text>
            </view>
        </view>
    </view>
</template>
<style lang="scss" scoped>
.container{
    width:100%;
    height:100vh;
.content{
    display: flex;
    flex-direction: column;
    align-items: center;
   width:100%;
   height:calc(100vh - 176rpx);
   background:linear-gradient(to bottom,#fef7da 0%,#FFF 5%,#FFF 100%);
   padding:50rpx 60rpx 100rpx;
   box-sizing: border-box;
   color: #636363;
   line-height:50rpx;
   font-size:28rpx;
   .rules-title{
        margin-bottom: 30rpx;
        color: #565656;
        font-size:32rpx;
   }
}
}
</style>
static/images/index/advert-icon1.svg
对比新文件
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732092013699" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8108" width="70" height="70" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M759.61856 319.7184c33.90976-36.15744 57.27744-84.60288 57.27744-127.13472 0-80.23552-83.18976-108.95872-163.44576-108.95872-63.0784 0-116.7616 40.23808-136.82176 96.44544-19.13344-45.96224-64.4608-78.2848-117.37088-78.2848-70.17984 0-156.64128 63.44192-127.09888 127.11936 15.85664 34.19136 30.57664 67.05664 50.83136 90.81344h-232.3968l12.23168 199.72096h369.06496V333.21984a127.59552 127.59552 0 0 0 44.71808-55.54688 145.23904 145.23904 0 0 0 27.90912 47.28832v194.47808h363.4432l17.87904-199.72096h-166.2208zM399.2576 311.53152c-45.60896 0-64.22528-36.98688-82.63168-82.62656-17.01888-42.32704 37.02272-82.63168 82.63168-82.63168 45.63968 0 82.62656 37.00736 82.62656 82.63168 0 45.63968-36.98688 82.62656-82.62656 82.62656z m274.3808 8.18688h-45.82912c-39.64928-11.1872-68.75648-47.55968-68.75648-90.81344 0-52.15232 42.27072-94.42304 94.39744-94.42304 52.16768 0 112.59392 5.9392 112.59392 58.10688 0 45.50656-46.01344 111.15008-92.40576 127.1296zM163.22048 593.92v343.19872h308.66944v-345.0112H163.09248c0.06144 0.6144 0.128 1.2288 0.128 1.81248z m381.29664 343.19872h308.69504V594.4832c0-0.768 0.05632-1.56672 0.1536-2.37568h-308.84864v345.0112z" fill="#9982FB" p-id="8109"></path><path d="M920.84224 374.19008l5.00224-55.90528s-171.41248 53.30432-287.5904 199.74144h287.24736c-1.76128-15.77472-9.46176-90.42944-4.6592-143.83616z m-377.2928 346.112c1.03424 62.69952 0.96256 215.26016 0.96256 215.26016l308.69504 0.14336v-342.64064c0-0.768 0.07168-1.56672 0.20992-2.37568H590.2848a467.08224 467.08224 0 0 0-46.73536 129.6128z" fill="#FF94E5" p-id="8110"></path><path d="M520.14592 318.97088l1.60256-1.05472h-0.24064l-1.36192 1.05472z m133.7856-255.32416c-61.41952 0-113.89952 48.78848-135.14752 107.66848-18.6368-52.22912-67.62496-89.50784-125.15328-89.50784-73.5488 0-164.18816 67.98336-133.19168 136.24832 17.1776 37.85728 33.08544 74.24 55.46496 99.86048H91.06944l12.30336 200.92928 114.7904-1.27488 254.19264-167.168V333.0048c20.04992-13.21472 34.41664-31.91296 43.36128-54.03136 5.01248 16.40448 12.96896 30.91968 24.69888 41.17504 34.05312-1.7152 65.86368-6.38464 67.92704-8.2688-6.90176-6.36416-7.9616-8.10496-15.50848-20.352s-15.14496-39.5008-15.14496-64.43008c0-52.16768 24.11008-76.27776 76.24704-76.27776 52.16256 0 107.4688-7.08096 107.4688 45.08672 0 13.29664 0.3584 23.05024-5.77536 39.47008 0 0 22.85568 2.94912 56.3968-7.38816 3.47648-12.59008 4.39296-25.18016 5.3504-37.20192 8.46848-108.0576-83.2-127.13984-163.44576-127.13984zM401.18272 299.55072c-39.18336 0-55.17824-32.45568-70.95808-72.45312-14.64832-37.13024 31.77472-72.448 70.95808-72.448 39.22432 0 70.99392 32.44544 70.99392 72.448 0.00512 39.99744-31.7696 72.45312-70.99392 72.45312z" fill="#72DAFC" p-id="8111"></path></svg>
static/images/index/advert-icon2.svg
对比新文件
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732092702435" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15746" width="50" height="50" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M138.592 96m79.216 0l623.568 0q79.216 0 79.216 79.216l0 675.568q0 79.216-79.216 79.216l-623.568 0q-79.216 0-79.216-79.216l0-675.568q0-79.216 79.216-79.216Z" fill="#407DFF" p-id="15747"></path><path d="M463.58 96h-46.716v834h46.716z" fill="#3171F9" p-id="15748"></path><path d="M138.592 438.862v46.716h782v-46.716z" fill="#3171F9" p-id="15749"></path><path d="M329.522 96h87.34v834h-87.34z" fill="#82AAFF" p-id="15750"></path><path d="M138.592 438.862v-87.34h782v87.34z" fill="#82AAFF" p-id="15751"></path><path d="M361.36 482.4a13.202 13.202 0 0 1 25.628 6.358c-27.156 109.476-84.7 166.15-171.332 166.15-72.866 0-104.82 27.39-102.318 85.244a13.202 13.202 0 0 1-26.38 1.14c-3.174-73.426 40.952-112.012 126.106-112.778l2.592-0.01c73.086 0 121.222-47.412 145.704-146.104z" fill="#FDE5FF" p-id="15752"></path><path d="M567.168 324.75c0 50.52-57.988 112.162-83.394 139.876-28.728 31.34-58.834 54.74-90.32 70.204l-3.164 1.528-0.34-0.162c-31.686-15.108-61.98-38.216-90.884-69.324l-10.496-11.44c-27.924-30.66-74.824-85.09-74.824-130.522 0-67.588 53.904-71.666 72.766-67.588 49.29 10.66 71.932 53.764 100.81 121.766l3.1 7.338 3.142-7.434c28.892-68.04 51.534-111.168 100.84-121.83l1.172-0.234c19.824-3.656 71.592 1.586 71.592 67.82z" fill="#F9E6FF" p-id="15753"></path><path d="M386.658 494.844a13.202 13.202 0 0 1 14.884 11.272c7.956 57.58-0.59 104.714-26.122 140.81-7.814 11.046-19.06 20.014-34.07 28.078l-1.604 0.852c-10.204 5.358-21.374 10.04-38.088 16.264l-23.648 8.664a892.128 892.128 0 0 0-8.99 3.368l-2.902 1.114c-46.956 18.202-72.87 35.852-87.296 64.518a13.202 13.202 0 0 1-23.586-11.87c10.148-20.17 25.46-36.382 45.746-49.9 15.248-10.16 32.262-18.322 55.154-27.2l3.478-1.336c3.2-1.22 6.448-2.434 10.252-3.834l18.612-6.802c38.14-14.028 55.686-23.454 65.384-37.164 21.29-30.1 28.624-70.55 21.524-121.95a13.202 13.202 0 0 1 11.272-14.884z" fill="#FDE5FF" p-id="15754"></path></svg>
static/images/index/advert-icon3.svg
对比新文件
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732090933740" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11103" width="40" height="40" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M944.639639 146.28994l49.066626 731.391391A146.630989 146.630989 0 0 1 846.762388 1023.999431H161.13807A146.5741 146.5741 0 0 1 14.222637 877.681331L63.232374 146.28994A146.5741 146.5741 0 0 1 210.147807 0.000284h587.633288a146.545656 146.545656 0 0 1 146.8301 146.289656zM207.388698 217.656992a299.263751 299.263751 0 1 0 598.555946 0 40.817744 40.817744 0 0 0-81.635488 0 217.685152 217.685152 0 1 1-435.313415 0 40.817744 40.817744 0 0 0-81.607043 0z" fill="#579AFF" p-id="11104"></path></svg>
static/images/index/advert-icon4.svg
对比新文件
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732090791700" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5163" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150"><path d="M722.944 392.704l40.448 0 0-163.84c0-8.192-1.024-15.872-3.584-23.552-13.824-43.52-62.464-71.68-102.4-87.552-58.88-24.064-128-35.328-190.976-38.4-11.776-0.512-23.552-1.024-35.328-1.024s-23.04 0.512-34.816 1.024c-63.488 3.072-132.608 14.336-191.488 38.4-39.936 16.384-89.088 44.544-102.912 88.064-2.56 7.68-3.584 15.872-3.584 23.552l0 474.624c0 8.192 1.024 16.384 3.584 24.064 13.824 43.52 62.976 71.68 102.912 88.064 58.88 24.064 128 35.328 191.488 37.888 8.192 0.512 15.872 0.512 24.064 0.512L420.352 814.592c-66.048-1.024-139.264-10.24-200.192-35.328-28.672-11.776-81.92-39.424-81.92-75.776l0-162.304 16.384 10.752c64.512 43.008 164.352 60.416 240.64 64 8.192 0.512 16.384 0.512 25.088 1.024l0-39.424c-66.048-1.024-139.264-10.24-200.192-35.328-28.672-11.776-81.92-39.424-81.92-75.776l0-161.792 16.384 10.752c64.512 42.496 164.352 59.904 240.64 64 11.776 0.512 23.552 1.024 35.328 1.024 12.288 0 24.576-0.512 36.352-1.024 76.288-3.584 175.104-20.992 239.616-64l16.384-10.752L722.944 392.704 722.944 392.704zM722.944 228.864c0 36.352-53.248 64-81.92 75.776-64 26.112-141.312 35.328-210.432 35.328s-146.432-9.216-210.432-35.328c-28.672-11.776-81.92-39.424-81.92-75.776 0-36.352 53.248-64 81.92-75.776 64-26.112 141.312-35.328 210.432-35.328s146.432 9.216 210.432 35.328C670.208 164.864 722.944 192.512 722.944 228.864L722.944 228.864zM926.208 843.264l0-306.176c0-31.232-28.16-55.296-53.248-69.12-48.64-26.624-112.64-34.304-167.424-34.304s-119.296 7.68-167.424 34.304c-25.6 13.824-53.248 37.888-53.248 69.12l0 304.64c0 31.232 28.16 55.296 53.248 69.12 48.64 26.624 113.152 34.304 167.424 34.304s118.272-7.68 166.912-33.792C897.024 898.048 925.184 873.984 926.208 843.264L926.208 843.264zM705.024 472.576c43.008 0 91.136 5.632 131.072 21.504 15.36 6.144 49.664 22.528 49.664 42.496s-33.792 36.352-49.664 42.496c-40.448 16.384-88.064 21.504-131.072 21.504s-91.136-5.632-131.072-21.504c-15.36-6.144-49.664-22.528-49.664-42.496s33.792-36.352 49.664-42.496C613.888 478.208 662.016 472.576 705.024 472.576L705.024 472.576zM705.024 906.24c-43.008 0-91.136-5.632-131.072-21.504-15.36-6.144-49.664-22.528-49.664-42.496l0-90.112 15.36 8.192c48.128 25.6 111.616 33.28 165.376 33.28s117.248-7.68 165.376-33.28l15.36-8.192 0 90.112c0 19.968-33.792 36.352-49.664 42.496C796.16 900.608 747.52 906.24 705.024 906.24L705.024 906.24zM705.024 753.664c-43.008 0-91.136-5.632-131.072-21.504-15.36-6.144-49.664-22.528-49.664-42.496L524.288 599.552l15.36 8.192c48.128 25.6 111.104 33.28 165.376 33.28 53.76 0 117.248-7.68 165.376-33.28l15.36-8.192 0 90.112c0 19.968-33.792 36.352-49.664 42.496C796.16 748.032 747.52 753.664 705.024 753.664L705.024 753.664z" fill="#3385f2" p-id="5164"></path><path d="M722.944 228.864c0 36.352-53.248 64-81.92 75.776-64 26.112-141.312 35.328-210.432 35.328s-146.432-9.216-210.432-35.328c-28.672-11.776-81.92-39.424-81.92-75.776 0-36.352 53.248-64 81.92-75.776 64-26.112 141.312-35.328 210.432-35.328s146.432 9.216 210.432 35.328C670.208 164.864 722.944 192.512 722.944 228.864L722.944 228.864z" fill="#3385f2" p-id="5165"></path><path d="M705.024 472.576c43.008 0 91.136 5.632 131.072 21.504 15.36 6.144 49.664 22.528 49.664 42.496s-33.792 36.352-49.664 42.496c-40.448 16.384-88.064 21.504-131.072 21.504s-91.136-5.632-131.072-21.504c-15.36-6.144-49.664-22.528-49.664-42.496s33.792-36.352 49.664-42.496C613.888 478.208 662.016 472.576 705.024 472.576L705.024 472.576z" fill="#3385f2" p-id="5166"></path></svg>
unpackage/dist/dev/mp-weixin/api/index.js
@@ -96,6 +96,12 @@
function goodsSearchTypeApi(data) {
  return util_request.request("/shopGoodsCategory/search", data, "POST");
}
function integralConvertApi(data) {
  return util_request.request("/userIntegralConvert/create", data, "POST");
}
function getRuleDetailApi(data) {
  return util_request.request("/userIntegralRuleDetail/search", data, "POST");
}
exports.askShareApi = askShareApi;
exports.askShareListApi = askShareListApi;
exports.balanceChangeApi = balanceChangeApi;
@@ -109,12 +115,14 @@
exports.getAddressApi = getAddressApi;
exports.getPriceBySnApi = getPriceBySnApi;
exports.getRegionApi = getRegionApi;
exports.getRuleDetailApi = getRuleDetailApi;
exports.getUserInfo = getUserInfo;
exports.getVipInfoApi = getVipInfoApi;
exports.goodsGetApi = goodsGetApi;
exports.goodsGetByIdApi = goodsGetByIdApi;
exports.goodsSearchTypeApi = goodsSearchTypeApi;
exports.infoBreakdownApi = infoBreakdownApi;
exports.integralConvertApi = integralConvertApi;
exports.paymentChangeApi = paymentChangeApi;
exports.pointsExchangeApi = pointsExchangeApi;
exports.pointsSearchApi = pointsSearchApi;
unpackage/dist/dev/mp-weixin/app.js
@@ -31,6 +31,7 @@
  "./pages/pointsMall/pointsGetRecord/index.js";
  "./pages/pointsMall/pointsExchangeRecord/index.js";
  "./pages/pointsMall/pointsGoodsDetail/index.js";
  "./pages/pointsMall/pointsrule/index.js";
}
const _sfc_main = {
  __name: "App",
unpackage/dist/dev/mp-weixin/app.json
@@ -27,7 +27,8 @@
    "pages/wxScanWater/index",
    "pages/pointsMall/pointsGetRecord/index",
    "pages/pointsMall/pointsExchangeRecord/index",
    "pages/pointsMall/pointsGoodsDetail/index"
    "pages/pointsMall/pointsGoodsDetail/index",
    "pages/pointsMall/pointsrule/index"
  ],
  "window": {
    "navigationStyle": "custom"
unpackage/dist/dev/mp-weixin/common/assets.js
@@ -7,11 +7,13 @@
const _imports_5$1 = "/static/images/index/home21.png";
const _imports_1$6 = "/static/images/index/icon22.png";
const _imports_7 = "/static/images/index/icon23.png";
const _imports_8$1 = "/static/images/index/banner2.png";
const _imports_9$1 = "/static/images/index/banner1.png";
const _imports_10 = "/static/images/index/icon51.png";
const _imports_11 = "/static/images/index/more-info5.png";
const _imports_12 = "/static/images/index/notice5.png";
const _imports_8$1 = "/static/images/index/advert-icon3.svg";
const _imports_9$1 = "/static/images/index/advert-icon1.svg";
const _imports_10 = "/static/images/index/advert-icon2.svg";
const _imports_11 = "/static/images/index/advert-icon4.svg";
const _imports_12 = "/static/images/index/icon51.png";
const _imports_13 = "/static/images/index/more-info5.png";
const _imports_14 = "/static/images/index/notice5.png";
const _imports_0$a = "/static/images/addCard/code.png";
const _imports_1$5 = "/static/images/other/more.png";
const _imports_0$9 = "/static/images/other/expand.png";
@@ -60,6 +62,8 @@
exports._imports_10 = _imports_10;
exports._imports_11 = _imports_11;
exports._imports_12 = _imports_12;
exports._imports_13 = _imports_13;
exports._imports_14 = _imports_14;
exports._imports_2 = _imports_2;
exports._imports_3 = _imports_3$1;
exports._imports_3$1 = _imports_3;
unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7837,6 +7837,12 @@
    style: {
      navigationStyle: "custom"
    }
  },
  {
    path: "pages/pointsMall/pointsrule/index",
    style: {
      navigationStyle: "custom"
    }
  }
];
const globalStyle = {
unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -17,6 +17,7 @@
      userName: "微信用户",
      headImg: "",
      userPhone: "",
      integral: "",
      waterCardNumber: "",
      balance: "",
      count: "",
@@ -55,6 +56,7 @@
        if (res.code == 200) {
          cardInfo.value.userName = res.data.userInfo.userName ? res.data.userInfo.userName : cardInfo.value.userName;
          cardInfo.value.headImg = res.data.userInfo.headImg;
          cardInfo.value.integral = res.data.userInfo.integral;
          cardInfo.value.userPhone = res.data.userInfo.userPhone;
          cardInfo.value.id = res.data.userInfo.id;
          await getVipInfo();
@@ -339,13 +341,15 @@
        }),
        J: common_assets._imports_8,
        K: common_assets._imports_9,
        L: common_vendor.o(($event) => navTo("/pages/pointsMall/index")),
        M: common_assets._imports_10,
        N: common_assets._imports_11,
        O: common_vendor.o(($event) => navTo("/pages/station/index")),
        P: common_assets._imports_12,
        Q: common_assets._imports_11,
        R: common_vendor.o(upGrade)
        L: common_assets._imports_10,
        M: common_assets._imports_11,
        N: common_vendor.o(($event) => navTo("/pages/pointsMall/index")),
        O: common_assets._imports_12,
        P: common_assets._imports_13,
        Q: common_vendor.o(($event) => navTo("/pages/station/index")),
        R: common_assets._imports_14,
        S: common_assets._imports_13,
        T: common_vendor.o(upGrade)
      });
    };
  }
unpackage/dist/dev/mp-weixin/pages/index/index.wxml
@@ -1 +1 @@
<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + B}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="share-card data-v-1cf27b2a">共享卡号:{{j}}</view><view wx:if="{{k}}" class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image wx:if="{{l}}" class="data-v-1cf27b2a" src="{{m}}" alt=""></image><text wx:if="{{n}}" class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定 </text><text wx:if="{{p}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{q}}" class="data-v-1cf27b2a">ID:{{r}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{s}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{t}}" class="data-v-1cf27b2a">{{v}}元</text><view wx:if="{{w}}" class="user-add-card data-v-1cf27b2a" bindtap="{{y}}"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view wx:if="{{z}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{A}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{F}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{H}}"><image class="data-v-1cf27b2a" src="{{G}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{I}}" wx:for-item="item" wx:key="e"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.d}}"><view class="box2-item-img data-v-1cf27b2a" style="{{'background:' + item.b}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.c}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{L}}"><image class="data-v-1cf27b2a" src="{{J}}" alt=""></image><image class="data-v-1cf27b2a" src="{{K}}" 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="{{O}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{M}}" 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="{{N}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{R}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{P}}" 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="{{Q}}" 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:' + B}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="share-card data-v-1cf27b2a">共享卡号:{{j}}</view><view wx:if="{{k}}" class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image wx:if="{{l}}" class="data-v-1cf27b2a" src="{{m}}" alt=""></image><text wx:if="{{n}}" class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定 </text><text wx:if="{{p}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{q}}" class="data-v-1cf27b2a">ID:{{r}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{s}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{t}}" class="data-v-1cf27b2a">{{v}}元</text><view wx:if="{{w}}" class="user-add-card data-v-1cf27b2a" bindtap="{{y}}"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view wx:if="{{z}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{A}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{F}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{H}}"><image class="data-v-1cf27b2a" src="{{G}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{I}}" wx:for-item="item" wx:key="e"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.d}}"><view class="box2-item-img data-v-1cf27b2a" style="{{'background:' + item.b}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.c}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{N}}"><view class="point-advert data-v-1cf27b2a"><view class="advert-image data-v-1cf27b2a"><image class="image-icon3 data-v-1cf27b2a" src="{{J}}"></image><image class="image-icon1 data-v-1cf27b2a" src="{{K}}"></image><image class="image-icon2 data-v-1cf27b2a" src="{{L}}"></image><image class="image-icon4 data-v-1cf27b2a" src="{{M}}"></image></view><view class="advert-title data-v-1cf27b2a"><view class="advert-title1 data-v-1cf27b2a">积分商城</view><view class="advert-title2 data-v-1cf27b2a"><text class="data-v-1cf27b2a">点击进入</text></view></view></view></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{Q}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{O}}" alt=""></image><text class="data-v-1cf27b2a">附近站点</text></view><view class="service-info data-v-1cf27b2a">服务中心正在营业中……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{P}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{T}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{R}}" alt=""></image><text class="data-v-1cf27b2a">公示公告</text></view><view class="service-info data-v-1cf27b2a">停水公告的部分摘要的内容展示……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{S}}" alt=""></image></view></view></view></view></view></view>
unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -298,10 +298,74 @@
  display: flex;
  justify-content: space-around;
}
.container .content .advertisement-box image.data-v-1cf27b2a {
  width: 320rpx;
.container .content .advertisement-box .point-advert.data-v-1cf27b2a {
  width: 640rpx;
  height: 136rpx;
  border-radius: 10rpx;
  background: linear-gradient(140deg, #5c9dff 0%, #b5dcff 30%, #52aafc 70%, #b5dcff 90%, #5daffc 100%);
  display: flex;
  justify-content: space-around;
  align-items: center;
  box-shadow: 0 0 4rpx 2rpx #4978de;
}
.container .content .advertisement-box .point-advert .advert-title.data-v-1cf27b2a {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  font-size: 46rpx;
  font-weight: 800;
  text-shadow: 4rpx 2rpx #5EA1FA;
}
.container .content .advertisement-box .point-advert .advert-title .advert-title2.data-v-1cf27b2a {
  margin-top: 10rpx;
  font-size: 28rpx;
  font-weight: 500;
  width: 180rpx;
  height: 40rpx;
  background: #5c9dff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 30rpx;
  letter-spacing: 2rpx;
}
.container .content .advertisement-box .point-advert .advert-image.data-v-1cf27b2a {
  width: 200rpx;
  height: 100%;
  position: relative;
}
.container .content .advertisement-box .point-advert .advert-image .image-icon1.data-v-1cf27b2a {
  position: absolute;
  left: calc(50% - 65rpx);
  top: calc(50% - 65rpx);
  width: 130rpx;
  height: 130rpx;
  transform: rotate(20deg);
}
.container .content .advertisement-box .point-advert .advert-image .image-icon2.data-v-1cf27b2a {
  position: absolute;
  left: 60%;
  top: calc(50% - 30rpx);
  width: 90rpx;
  height: 90rpx;
  transform: rotate(-10deg);
}
.container .content .advertisement-box .point-advert .advert-image .image-icon3.data-v-1cf27b2a {
  position: absolute;
  left: calc(50% - 100rpx);
  top: 30%;
  width: 80rpx;
  height: 80rpx;
  transform: rotate(-10deg);
}
.container .content .advertisement-box .point-advert .advert-image .image-icon4.data-v-1cf27b2a {
  position: absolute;
  left: 140%;
  top: 60%;
  width: 50rpx;
  height: 50rpx;
  transform: rotate(5deg);
}
.container .content .service-box.data-v-1cf27b2a {
  width: 100%;