Liuyi
2024-09-24 4fbb636f415ec390e6681018964916e94c11d6fe
对接用户及会员卡数据接口,添加位置申请api
已修改22个文件
已删除12个文件
已添加10个文件
已重命名3个文件
3080 ■■■■■ 文件已修改
App.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/index.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/navbar/navbar.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/baseUrl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/addCard/index.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/balanceRecord/index.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 866 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/index.vue 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/recharge/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/login/loginbg.png 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/api/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.js 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/assets.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/vendor.js 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/components/navbar/navbar.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/config/baseUrl.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.js 393 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.wxml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.wxss 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.js 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.wxml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/addCard/index.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.wxss 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/index/index.wxss 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/login/index.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/login/index.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/login/index.wxml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/login/index.wxss 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/recharge/index.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/recharge/index.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/pages/recharge/index.wxss 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/project.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/static/images/login/loginbg.png 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/util/request.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/request.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue
@@ -1,10 +1,21 @@
<script setup>
    import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
    // import {getToken} from './util/auth';
    import { wxLoginApi } from './api/index.js'
    onLaunch(() => {
      console.log("App Launch");
      //判断是否登录
        // let token = getToken()
        if(!uni.getStorageSync('openId')){
            wx.login({
                success:async (res1)=>{
                    uni.setStorageSync('code',res1.code)
                    await wxLoginApi({code:res1.code}).then((res2) =>{
                    uni.setStorageSync('openId',res2.data.userId)
                    uni.setStorageSync('token',res2.data.token)
                  })
                },
                fail:(e) =>{
                    console.log(e)
                }
            })
        }
    });
    onShow(() => {
      console.log("App Show");
api/index.js
对比新文件
@@ -0,0 +1,12 @@
import { request } from "../util/request";
export function wxLoginApi(data){
    return request('/user/wxLogin',data,'POST')
}
export function getVipInfoApi(){
    return request('/waterCard/getUserCard',{},'GET')
}
export function getUserInfo(){
    return request('/user/loginUser',{},'GET')
}
components/navbar/navbar.vue
@@ -1,15 +1,14 @@
<template>
    <view class="navbar">
        <image src="../../static/images/addCard/back.png" alt="" @click="navBackToChild()"></image>
        <image src="../../static/images/addCard/back.png" alt="" @click="navBackTo()"></image>
        <text>{{title}}</text>
    </view>
</template>
<script setup>
    import { ref } from 'vue'
    const emit = defineEmits(['navBackTo'])
    function navBackToChild(){
        emit('navBackTo')
    function navBackTo(){
        uni.navigateBack()
    }
    const props = defineProps({
        title:{
config/baseUrl.js
对比新文件
@@ -0,0 +1,2 @@
// export const BASE_URL = 'http://113.250.189.120:8031'
export const BASE_URL = 'http://192.168.0.105:8031'
manifest.json
@@ -1,6 +1,6 @@
{
    "name" : "water-drinking-uniapp",
    "appid" : "",
    "appid" : "__UNI__97986D6",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
@@ -50,7 +50,7 @@
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "",
        "appid" : "wxe86c40810c2c0e98",
        "setting" : {
            "urlCheck" : false
        },
pages.json
@@ -7,12 +7,6 @@
            }
        },
        {
            "path": "pages/login/index",
            "style": {
                "navigationStyle":"custom"
            }
        },
        {
            "path" : "pages/addCard/index",
            "style": {
                "navigationStyle":"custom"
@@ -23,6 +17,13 @@
            "style": {
                "navigationStyle":"custom"
            }
        },
        {
            "path" : "pages/recharge/index",
            "style" :
            {
                "navigationBarTitleText" : ""
            }
        }
    ],
    "globalStyle": {
pages/addCard/index.vue
@@ -1,7 +1,23 @@
<script setup>
import { onMounted,ref} from 'vue';
const form = ref({
    waterCardNumber:'',
    userName:'',
    userPhone:'',
    address:'',
    remark:'',
})
function submit(){
    console('res')
}
onMounted(() =>{
})
</script>
<template>
    <view class="container">
        <view class="content">
            <navbar @navBackTo="navBackTo()" title="绑定会员卡"></navbar>
            <navbar title="绑定会员卡"></navbar>
            <view class="main">
                <view class="title">请填写卡及个人信息</view>
                <view class="form">
@@ -40,31 +56,6 @@
        </view>
    </view>
</template>
<script setup>
import { onMounted,ref} from 'vue';
//状态栏高度
// const statusBarHeight = ref()
//返回
function navBackTo(){
    uni.navigateBack()
}
const form = ref({
    cardNumber:'',
    name:'',
    phone:'',
    address:'',
    remark:'',
})
function submit(){
    console('res')
}
onMounted(() =>{
    // if(uni.getMenuButtonBoundingClientRect){
    //     statusBarHeight.value = uni.getMenuButtonBoundingClientRect().top * 2
    // }
})
</script>
<style lang="scss" scoped>
       .container{
@@ -174,6 +165,7 @@
                   text-align: center;
                   line-height:98rpx;
                   margin-top: 236rpx;
                   letter-spacing:2px;
               }
           }
       }
pages/balanceRecord/index.vue
@@ -1,19 +1,128 @@
<template>
    <view class="container">
        <navbar @navBackTo="navBackTo()" title="余额记录"></navbar>
    </view>
</template>
<script setup>
    import { ref } from 'vue'
    //返回
    function navBackTo(){
        uni.navigateBack()
    }
    const banlanceList = ref([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
</script>
<template>
    <view class="container">
        <navbar @navBackTo="navBackTo()" title="余额记录"></navbar>
        <view class="date">
            <view>
                <text>2024年09月</text>
            </view>
            <view>
                <text>支出¥5341.05</text>
                <text>充值¥941.59</text>
            </view>
        </view>
        <view class="main">
            <block v-for="(item,index) in banlanceList">
                <view class="item">
                    <view class="item-left">
                        <text>缴费</text>
                        <text class="methods">支付方式:微信</text>
                        <text>2024年09月20日 18:25</text>
                    </view>
                    <view class="item-right">
                        <text>-¥125.00</text>
                        <text>2000.00</text>
                    </view>
                </view>
            </block>
        </view>
    </view>
</template>
<style lang="scss">
      .container{
          width: 100%;
          height: 100vh;
    .container{
        width: 100%;
        height: 100vh;
        background:linear-gradient(to top,#FFFFFF,#E8EFFF);
            .date{
              height: 84rpx;
              width:100%;
              display: flex;
              padding: 0 36rpx;
              box-sizing: border-box;
              justify-content:space-between;
              align-items: center;
              view:first-child{
                  font-weight: 300;
                  font-size: 32rpx;
                  color: #000000;
              }
              view:last-child{
                  font-weight: 300;
                  font-size: 24rpx;
                  color: #7E7E7E;
                  text:first-child{
                      margin-right:30rpx;
                  }
              }
          }
          .main{
              width:99%;
              height: calc(100vh - 84rpx - 176rpx - 70rpx);
              background: #fff;
              border-radius:20rpx;
              margin: 0 auto;
              padding:28rpx 48rpx;
              box-sizing: border-box;
              overflow-y: scroll;
              // background: #7E7E7E;
              .item{
                  width:100%;
                  height:184rpx;
                  // background:rgba(170, 216, 255, 0.2);
                  border-bottom:1rpx solid #D8D8D8;
                  box-sizing:border-box;
                  padding-bottom:38rpx;
                  justify-content:space-between;
                  align-items: flex-end;
                  display: flex;
                  .item-left{
                      height:100%;
                      display:flex;
                      flex-direction:column;
                      justify-content:space-between;
                      align-items: flex-start;
                      text:first-child{
                        font-weight: 300;
                        font-size: 32rpx;
                        color: #000000;
                      }
                      .methods{
                        font-weight: 300;
                        font-size: 32rpx;
                        color: #474646;
                      }
                      text:last-child{
                          font-weight: 300;
                          font-size: 24rpx;
                          color: #A7A7A7;
                      }
                  }
                  .item-right{
                      height:100%;
                      display:flex;
                      flex-direction:column;
                      justify-content:flex-end;
                      align-items: flex-end;
                      text:first-child{
                          font-weight: 300;
                          font-size: 32rpx;
                          color: #000000;
                      }
                      text:last-child{
                          font-weight: 300;
                          font-size: 24rpx;
                          color: #A7A7A7;
                      }
                  }
              }
          }
      } 
</style>
pages/index/index.vue
@@ -1,17 +1,91 @@
import { onMounted } from "vue"
<script setup>
    import { onMounted, ref } from "vue";
    import { getVipInfoApi } from '../../api/index.js'
    import { getUserInfo } from '../../api/index.js'
    //胶囊高度
    const topHeight = ref(0)
    function getTopHeight(){
        if(uni.getMenuButtonBoundingClientRect){
            topHeight.value = (uni.getMenuButtonBoundingClientRect().top + uni.getMenuButtonBoundingClientRect().height) * 2
        }
    }
    /**
     * 会员卡相关
     */
    const vipInfo = ref()
    const isVip = ref(false)
    //获取会员卡信息
    async function getVipInfo(){
        let res = await getUserInfo()
        if(res.data.userInfo.waterCardNumber){
            let res1 = await getVipInfoApi()
            vipInfo.value = res1.data
            isVip.value = true
        }else{
            isVip.value = false
        }
    }
    function navToAddCard(){
        uni.navigateTo({
            url:'/pages/addCard/index'
        })
    }
    /**
     * 功能列表相关
     */
    const functionList = ref([
        {text:'余额记录',icon:'../../static/images/index/icon31.png',url:''},
        {text:'消费记录',icon:'../../static/images/index/icon32.png',url:''},
        {text:'充值记录',icon:'../../static/images/index/icon33.png',url:''},
        {text:'账户共享',icon:'../../static/images/index/icon34.png',url:''},
        {text:'优惠卷',icon:'../../static/images/index/icon35.png',url:''},
        {text:'电子发票',icon:'../../static/images/index/icon36.png',url:''},
        {text:'联系客服',icon:'../../static/images/index/icon37.png',url:''},
        {text:'推广分佣',icon:'../../static/images/index/icon38.png',url:'/pages/login/index'},
    ])
    function navTo(itemUrl){
        if(itemUrl){
            uni.navigateTo({
                url:itemUrl
            })
        }
    }
    //获取用户地理位置
    async function getUserLocation(){
        wx.getLocation({
            type: 'wgs84',
            success(res){
            const latitude = res.latitude
            const longitude = res.longitude
            const speed = res.speed
            const accuracy = res.accuracy
            },
            fail(e){
                console.log('e',e)
            }
        })
        console.log('location')
    }
    onMounted( async() =>{
        getTopHeight()
        await getVipInfo()
        // await getUserLocation()
    })
</script>
<template>
    <view class="container">
        <view class="content">
            <view class="card-box" :style="{paddingTop:topHeight + 'rpx'}">
                <view class="card">
                    <view class="card-content" @click="navToAddCard()">
                    <view class="card-content">
                        <view v-if="isVip" class="card-title">
                            <view>会员卡</view>
                            <image src="../../static/images/index/code1.png" alt=""></image>
                        </view>
                        <view v-else class="card-add">
                            <view>
                            <view @click="navToAddCard()">
                                <image src="../../static/images/index/vip-add.png" alt=""></image>
                                <text>添加会员卡</text>
                            </view>
@@ -94,48 +168,26 @@
                </view>
            </view>
        </view>
        <!-- 微信授权弹窗 -->
        <!-- <uni-popup ref="popupRef" background-color="#fff">
            <view class="popup-content">
                <text class="popup-title">微信登录</text>
                <view class="hr"></view>
                <view class="img-box"><img src="../../static/images/login/logo.png" alt="" class="img"/></view>
                <view class="info-box">
                    <view class="info-text1">青源直饮水平台申请获取以下权限:</view>
                    <view class="hr2"></view>
                    <view class="info-text2">· 获得你的公开信息(昵称、头像、地区及性别)</view>
                    <view class="button-box">
                        <button  class="button1" @click="popupRef.close('bottom')">取消</button>
                        <button  class="button2" @click="wxLoginFn()">确定</button>
                    </view>
                </view>
            </view>
        </uni-popup> -->
    </view>
</template>
<script setup>
    import { onMounted, ref } from "vue"
    //胶囊高度
    const topHeight = ref(0)
    /**
     * 会员卡相关
     */
    const isVip = ref(false)
    function navToAddCard(){
        uni.navigateTo({
            url:'/pages/addCard/index'
        })
    }
    /**
     * 功能列表相关
     */
    const functionList = ref([
        {text:'余额记录',icon:'../../static/images/index/icon31.png',url:'/pages/balanceRecord/index'},
        {text:'消费记录',icon:'../../static/images/index/icon32.png',url:'/pages/login/index'},
        {text:'充值记录',icon:'../../static/images/index/icon33.png',url:'/pages/login/index'},
        {text:'账户共享',icon:'../../static/images/index/icon34.png',url:'/pages/login/index'},
        {text:'优惠卷',icon:'../../static/images/index/icon35.png',url:'/pages/login/index'},
        {text:'电子发票',icon:'../../static/images/index/icon36.png',url:'/pages/login/index'},
        {text:'联系客服',icon:'../../static/images/index/icon37.png',url:'/pages/login/index'},
        {text:'推广分佣',icon:'../../static/images/index/icon38.png',url:'/pages/login/index'},
    ])
    function navTo(itemUrl){
        uni.navigateTo({
            url:itemUrl
        })
    }
    onMounted(() =>{
        if(uni.getMenuButtonBoundingClientRect){
            topHeight.value = (uni.getMenuButtonBoundingClientRect().top + uni.getMenuButtonBoundingClientRect().height) * 2
        }
    })
</script>
<style lang="scss" scoped>
    .container{
        width:100%;
@@ -145,370 +197,438 @@
            width:100%;
            height:100vh;
            background:#F6F6F6;
            }
    }
    .card-box{
        width: 100%;
        height: auto;
        // background: #a0b5c7;
        box-sizing: border-box;
        padding: 0 32rpx;
        background: linear-gradient(to bottom,#5EA1FA,#D2F2FE);
        .card{
            width: 100%;
            height: 304rpx;
            background-image: url("../../static/images/index/card1.png");
            background-repeat: no-repeat;
            background-size: 100%;
            .card-content{
            .card-box{
                width: 100%;
                height: 100%;
                height: auto;
                // background: #a0b5c7;
                box-sizing: border-box;
                // background: #AFD5FF;
                padding: 14rpx 42rpx 64rpx 22rpx;
                .card-title{
                    width:100%;
                    height:64rpx;
                    display: flex;
                    justify-content: flex-end;
                    // background: #82fec5;
                    align-items: center;
                    view{
                        font-weight:300;
                        font-size: 36rpx;
                        color: #FFFFFF;
                        letter-spacing:5rpx;
                        text-align: left;
                    }
                    image{
                        width:64rpx;
                        height:64rpx;
                    }
                }
                .card-add{
                    width:100%;
                    height:64rpx;
                    display: flex;
                    justify-content: flex-end;
                    align-items: center;
                    view{
                        width: 172rpx;
                        height:38rpx;
                        border-radius:24rpx;
                        background: #fff;
                        display: flex;
                        justify-content:flex-start;
                        align-items:center;
                        image{
                            width:22rpx;
                            height:22rpx;
                            margin-left:15rpx;
                        }
                        text{
                            font-weight: 300;
                            font-size: 20rpx;
                            color: #0088FF;
                            margin-left:15rpx;
                        }
                    }
                }
                .card-info{
                padding: 0 32rpx;
                background: linear-gradient(to bottom,#5EA1FA,#D2F2FE);
                .card{
                    width: 100%;
                    height:100rpx;
                    // background: #8ff6c3;
                    margin-top: 18rpx;
                    display: flex;
                    justify-content: flex-start;
                    align-items: center;
                    .info-head{
                        width: 100rpx;
                        height:100rpx;
                        margin-right: 20rpx;
                        image{
                            width: 100rpx;
                            height:100rpx;
                        }
                    }
                    .info-content{
                        width: 216rpx;//108+86+22
                        height:100rpx;
                        // background: #54dac4;
                        display: flex;
                        flex-direction: column;
                        justify-content: flex-start;
                        align-items: flex-start;
                        .info-content-top{
                            width: 100%;
                    height: 304rpx;
                    background-image: url("../../static/images/index/card1.png");
                    background-repeat: no-repeat;
                    background-size: 100%;
                    .card-content{
                        width: 100%;
                        height: 100%;
                        box-sizing: border-box;
                        // background: #AFD5FF;
                        padding: 14rpx 42rpx 64rpx 22rpx;
                        .card-title{
                            width:100%;
                            height:64rpx;
                            display: flex;
                            justify-content:space-between;
                            align-items:center;
                            margin-bottom:8rpx;
                            view:first-child{
                                width: 108rpx;
                                height: 50rpx;
                                font-weight: 400;
                            justify-content: flex-end;
                            // background: #82fec5;
                            align-items: center;
                            view{
                                font-weight:300;
                                font-size: 36rpx;
                                color: #FFFFFF;
                                letter-spacing:5rpx;
                                text-align: left;
                            }
                            view:last-child{
                                width: 86rpx;
                                height: 32rpx;
                                font-weight:300;
                                font-size: 26rpx;
                                color: #FFFFFF;
                                text-align: center;
                                background-image: url('../../static/images/index/vip1.png');
                            image{
                                width:64rpx;
                                height:64rpx;
                            }
                        }
                        .info-content-bottom{
                        .card-add{
                            width:100%;
                            height:64rpx;
                            display: flex;
                            justify-content: flex-end;
                            align-items: center;
                            view{
                                width: 172rpx;
                                height:38rpx;
                                border-radius:24rpx;
                                background: #fff;
                                display: flex;
                                justify-content:flex-start;
                                align-items:center;
                                image{
                                    width:22rpx;
                                    height:22rpx;
                                    margin-left:15rpx;
                                }
                                text{
                                    font-weight: 300;
                                    font-size: 20rpx;
                                    color: #0088FF;
                                    margin-left:15rpx;
                                }
                            }
                        }
                        .card-info{
                            width: 100%;
                            height:100rpx;
                            // background: #8ff6c3;
                            margin-top: 18rpx;
                            display: flex;
                            justify-content: flex-start;
                            align-items: center;
                            .info-head{
                                width: 100rpx;
                                height:100rpx;
                                margin-right: 20rpx;
                                image{
                                    width: 100rpx;
                                    height:100rpx;
                                }
                            }
                            .info-content{
                                width: 216rpx;//108+86+22
                                height:100rpx;
                                // background: #54dac4;
                                display: flex;
                                flex-direction: column;
                                justify-content: flex-start;
                                align-items: flex-start;
                                .info-content-top{
                                    width: 100%;
                                    display: flex;
                                    justify-content:space-between;
                                    align-items:center;
                                    margin-bottom:8rpx;
                                    view:first-child{
                                        width: 108rpx;
                                        height: 50rpx;
                                        font-weight: 400;
                                        font-size: 36rpx;
                                        color: #FFFFFF;
                                        text-align: left;
                                    }
                                    view:last-child{
                                        width: 86rpx;
                                        height: 32rpx;
                                        font-weight:300;
                                        font-size: 26rpx;
                                        color: #FFFFFF;
                                        text-align: center;
                                        background-image: url('../../static/images/index/vip1.png');
                                    }
                                }
                                .info-content-bottom{
                                    width: 100%;
                                    font-weight: 300;
                                    font-size: 20rpx;
                                    color: #FFFFFF;
                                    letter-spacing:5rpx;
                                    text-align: left;
                                }
                            }
                            .info-more{
                                width: 12rpx;
                                height: 28rpx;
                                margin-left:274rpx;
                                image{
                                    width: 12rpx;
                                    height: 28rpx;
                                }
                            }
                        }
                        .card-bottom{
                            margin-top:36rpx;
                            width:100%;
                            display: flex;
                            justify-content:space-evenly;
                            font-weight: 300;
                            font-size: 20rpx;
                            color: #FFFFFF;
                            letter-spacing:5rpx;
                            text-align: left;
                        }
                    }
                    .info-more{
                        width: 12rpx;
                        height: 28rpx;
                        margin-left:274rpx;
                        image{
                            width: 12rpx;
                            height: 28rpx;
                            color: #D8D8D8;
                            line-height: 0rpx;
                            text-align: center;
                        }
                    }
                }
                .card-bottom{
                    margin-top:36rpx;
                    width:100%;
                    display: flex;
                    justify-content:space-evenly;
                    font-weight: 300;
                    font-size: 20rpx;
                    color: #D8D8D8;
                    line-height: 0rpx;
                    text-align: center;
            }
            .function-box1{
                width:100%;
                box-sizing:border-box;
                height: 227rpx;
                padding: 20rpx 32rpx 15rpx;
                // background: rgba(85, 170, 0, 0.1);
                display:flex;
                justify-content: space-between;
                align-items:center;
                .box1-bg{
                    width:212rpx;
                    height:200rpx;
                    border-radius:24rpx;
                    background: #fff;
                    box-shadow:0 0 12rpx 2rpx rgba(13,118,255,0.16);
                }
            }
        }
    }
    .function-box1{
        width:100%;
        box-sizing:border-box;
        height: 227rpx;
        padding: 20rpx 32rpx 15rpx;
        // background: rgba(85, 170, 0, 0.1);
        display:flex;
        justify-content: space-between;
        align-items:center;
        .box1-bg{
            width:212rpx;
            height:200rpx;
            border-radius:24rpx;
            background: #fff;
            box-shadow:0 0 12rpx 2rpx rgba(13,118,255,0.16);
        }
        .box1-one{
            font-weight: 300;
            font-size: 32rpx;
            color: #000000;
            text-align: center;
            display: flex;
            flex-direction:column;
            align-items: center;
            justify-content: center;
            image{
                width: 86rpx;
                height: 78rpx;
                margin-bottom:20rpx;
            }
        }
        .box1-two{
            box-sizing: border-box;
            padding:25rpx 0 10rpx;
            display: flex;
            flex-direction:column;
            align-items:center;
            justify-content:space-around;
            view:first-child{
                font-weight: 300;
                font-size: 24rpx;
                color: #464646;
                text-align: center;
                margin-bottom:10rpx;
            }
            .recharge{
                text:first-child{
                    font-weight: 500;
                    font-size: 32rpx;
                    color: #000;
                }
                text:last-child{
                .box1-one{
                    font-weight: 300;
                    font-size: 32rpx;
                    color: #2269E5;
                }
            }
            view:last-child{
                width: 140rpx;
                height: 80rpx;
                font-weight:300;
                font-size: 24rpx;
                color: #000141;
                background-image: url('../../static/images/index/icon22.png');
                background-repeat: no-repeat;
                background-position: center;
                background-size: 100% 100%;
                text-align:center;
                line-height:80rpx;
                margin-top:10rpx;
            }
        }
        .box1-three{
            font-weight: 300;
            font-size: 32rpx;
            color: #000000;
            text-align: center;
            display: flex;
            flex-direction:column;
            align-items: center;
            justify-content: center;
            image{
                width: 83rpx;
                height:83rpx;
                margin-bottom:20rpx;
            }
        }
    }
    .function-box2{
        width:100%;
        box-sizing:border-box;
        height: 443rpx;//374 + 44 + 距离 + 底部padding32
        padding:0 32rpx 15rpx;
        // background: rgba(46, 121, 170, 0.5);
        .box2-title{
            width: 100%;
            font-weight:300;
            font-size: 32rpx;
            color: #000000;
            text-align: left;
            margin-bottom: 10rpx;
            margin-left: 30rpx;
        }
        .box2-content{
            box-sizing: border-box;
            padding:22rpx 35rpx;
            width: 686rpx;
            height:374rpx;
            background: #fff;
            border-radius: 24rpx;
            box-shadow: 0 0 12rpx 2rpx rgba(0, 0, 0, 0.1);
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            .box2-item{
                width: 146rpx;
                height:143rpx;
                display: flex;
                flex-direction:column;
                justify-content:space-between;
                align-items: center;
                image{
                    width: 90rpx;
                    height:90rpx;
                }
                .box2-item-text{
                    width:100%;
                    height: 40rpx;
                    font-weight: 300;
                    font-size: 28rpx;
                    color: #000000;
                    text-align: center;
                    display: flex;
                    flex-direction:column;
                    align-items: center;
                    justify-content: center;
                    image{
                        width: 86rpx;
                        height: 78rpx;
                        margin-bottom:20rpx;
                    }
                }
                .box1-two{
                    box-sizing: border-box;
                    padding:25rpx 0 10rpx;
                    display: flex;
                    flex-direction:column;
                    align-items:center;
                    justify-content:space-around;
                    view:first-child{
                        font-weight: 300;
                        font-size: 24rpx;
                        color: #464646;
                        text-align: center;
                        margin-bottom:10rpx;
                    }
                    .recharge{
                        text:first-child{
                            font-weight: 500;
                            font-size: 32rpx;
                            color: #000;
                        }
                        text:last-child{
                            font-weight: 300;
                            font-size: 32rpx;
                            color: #2269E5;
                        }
                    }
                    view:last-child{
                        width: 140rpx;
                        height: 80rpx;
                        font-weight:300;
                        font-size: 24rpx;
                        color: #000141;
                        background-image: url('../../static/images/index/icon22.png');
                        background-repeat: no-repeat;
                        background-position: center;
                        background-size: 100% 100%;
                        text-align:center;
                        line-height:80rpx;
                        margin-top:10rpx;
                    }
                }
                .box1-three{
                    font-weight: 300;
                    font-size: 32rpx;
                    color: #000000;
                    text-align: center;
                    display: flex;
                    flex-direction:column;
                    align-items: center;
                    justify-content: center;
                    image{
                        width: 83rpx;
                        height:83rpx;
                        margin-bottom:20rpx;
                    }
                }
            }
        }
    }
    .advertisement-box{
        width:100%;
        height: 188rpx;
        padding:0 32rpx 10rpx;
        box-sizing: border-box;
        image{
            width:100%;
            height: 178rpx;
        }
    }
    .service-box{
        width: 100%;
        height: 255rpx;
        // background: #D2F2FE;
        padding:0 32rpx;
        box-sizing: border-box;
        .service-title{
            height: 44rpx;
            font-weight: 300;
            font-size: 32rpx;
            color: #000000;
            text-align: left;
            margin-bottom: 5rpx;
            margin-left: 30rpx;
        }
        .service-content{
            width: 100%;
            height: 206rpx;
            display: flex;
            justify-content: space-between;
            align-items: center;
            .service-bg{
                width: 330rpx;
                height: 206rpx;
                background: linear-gradient(to bottom,#AFD5FF,#FFFFFF);
                border-radius: 24rpx;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items:flex-start;
                    view:first-child{
            .function-box2{
                width:100%;
                box-sizing:border-box;
                height: 443rpx;//374 + 44 + 距离 + 底部padding32
                padding:0 32rpx 15rpx;
                // background: rgba(46, 121, 170, 0.5);
                .box2-title{
                    width: 100%;
                    font-weight:300;
                    font-size: 32rpx;
                    color: #000000;
                    text-align: left;
                    margin-bottom: 10rpx;
                    margin-left: 30rpx;
                }
                .box2-content{
                    box-sizing: border-box;
                    padding:22rpx 35rpx;
                    width: 686rpx;
                    height:374rpx;
                    background: #fff;
                    border-radius: 24rpx;
                    box-shadow: 0 0 12rpx 2rpx rgba(0, 0, 0, 0.1);
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;
                    align-items: center;
                    .box2-item{
                        width: 146rpx;
                        height:143rpx;
                        display: flex;
                        flex-direction:column;
                        justify-content:space-between;
                        align-items: center;
                        margin-left:40rpx;
                        image{
                            width:48rpx;
                            height:48rpx;
                            margin-right:10rpx;
                            width: 90rpx;
                            height:90rpx;
                        }
                        text{
                        .box2-item-text{
                            width:100%;
                            height: 40rpx;
                            font-weight: 300;
                            font-size: 28rpx;
                            color: #000000;
                            text-align: center;
                        }
                    }
                    .service-info{
                        width: 214rpx;
                        font-weight: 300;
                        font-size: 24rpx;
                        color: #4D4B4B;
                        margin-left:96rpx;
                    }
                    view:last-child{
                        margin-left: 174rpx;
                        margin-top: 18rpx;
                }
            }
            .advertisement-box{
                width:100%;
                height: 188rpx;
                padding:0 32rpx 10rpx;
                box-sizing: border-box;
                image{
                    width:100%;
                    height: 178rpx;
                }
            }
            .service-box{
                width: 100%;
                height: 255rpx;
                // background: #D2F2FE;
                padding:0 32rpx;
                box-sizing: border-box;
                .service-title{
                    height: 44rpx;
                    font-weight: 300;
                    font-size: 32rpx;
                    color: #000000;
                    text-align: left;
                    margin-bottom: 5rpx;
                    margin-left: 30rpx;
                }
                .service-content{
                    width: 100%;
                    height: 206rpx;
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    .service-bg{
                        width: 330rpx;
                        height: 206rpx;
                        background: linear-gradient(to bottom,#AFD5FF,#FFFFFF);
                        border-radius: 24rpx;
                        display: flex;
                        align-items: center;
                        image{
                            width:32rpx;
                            height:32rpx;
                        }
                        text{
                            font-weight: 300;
                            font-size: 24rpx;
                            color: #4D4B4B;
                            margin-right: 10rpx;
                        }
                        flex-direction: column;
                        justify-content: center;
                        align-items:flex-start;
                            view:first-child{
                                display: flex;
                                align-items: center;
                                margin-left:40rpx;
                                image{
                                    width:48rpx;
                                    height:48rpx;
                                    margin-right:10rpx;
                                }
                                text{
                                    font-weight: 300;
                                    font-size: 28rpx;
                                    color: #000000;
                                }
                            }
                            .service-info{
                                width: 214rpx;
                                font-weight: 300;
                                font-size: 24rpx;
                                color: #4D4B4B;
                                margin-left:96rpx;
                            }
                            view:last-child{
                                margin-left: 174rpx;
                                margin-top: 18rpx;
                                display: flex;
                                align-items: center;
                                image{
                                    width:32rpx;
                                    height:32rpx;
                                }
                                text{
                                    font-weight: 300;
                                    font-size: 24rpx;
                                    color: #4D4B4B;
                                    margin-right: 10rpx;
                                }
                            }
                    }
                }
            }
        }
        .popup-content{
            height: 560rpx;
            position: relative;
            z-index: 1000;
            .popup-title{
                width: 100%;
                display: block;
                text-align: center;
                margin: 15rpx 0;
                font-weight: 600;
                font-size: 36rpx;
            }
            .hr {
                width: 100%;
                height: 2rpx;
                background: #e2e2e2;
            }
            .img-box {
                width: 65rpx;
                height: 65rpx;
                margin: 40rpx auto 30rpx;
                border: 1rpx solid #e2e2e2;
                border-radius: 50%;
                padding: 15rpx;
                .img{
                    width: 100%;
                    height: 100%;
                }
            }
            .info-box {
                width: 100%;
                padding: 0 80rpx;
                box-sizing: border-box;
                .hr2{
                    width: 100%;
                    height: 2rpx;
                    background: #e2e2e2;
                    margin: 20rpx 0;
                }
                .info-text2{
                    font-size: 26rpx;
                    color: #767676;
                }
            }
            .button-box{
                display: flex;
                margin-top: 20rpx;
                button{
                    width: 230rpx;
                    height: 80rpx;
                    line-height: 80rpx;
                    border: none;
                    box-shadow: none;
                    margin-top: 30rpx;
                }
                button::after {
                    border: none !important;
                }
                .button1{
                    background-color: #F0F0F0;
                    color: #333333;
                }
                .button2{
                    background-color: #06BF5E;
                    color: #ffffff;
                }
            }
        }
    }
pages/login/index.vue
文件已删除
pages/recharge/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
    <view class="container">
        <navbar title="绑定会员卡"></navbar>
    </view>
</template>
<script setup>
</script>
<style lang="scss" scoped>
</style>
static/images/login/loginbg.png

unpackage/dist/dev/mp-weixin/api/index.js
对比新文件
@@ -0,0 +1,14 @@
"use strict";
const util_request = require("../util/request.js");
function wxLoginApi(data) {
  return util_request.request("/user/wxLogin", data, "POST");
}
function getVipInfoApi() {
  return util_request.request("/waterCard/getUserCard", {}, "GET");
}
function getUserInfo() {
  return util_request.request("/user/loginUser", {}, "GET");
}
exports.getUserInfo = getUserInfo;
exports.getVipInfoApi = getVipInfoApi;
exports.wxLoginApi = wxLoginApi;
unpackage/dist/dev/mp-weixin/app.js
@@ -1,17 +1,31 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
const api_index = require("./api/index.js");
if (!Math) {
  "./pages/index/index.js";
  "./pages/login/index.js";
  "./pages/addCard/index.js";
  "./pages/balanceRecord/index.js";
  "./pages/recharge/index.js";
}
const _sfc_main = {
  __name: "App",
  setup(__props) {
    common_vendor.onLaunch(() => {
      console.log("App Launch");
      if (!common_vendor.index.getStorageSync("openId")) {
        common_vendor.wx$1.login({
          success: async (res1) => {
            common_vendor.index.setStorageSync("code", res1.code);
            await api_index.wxLoginApi({ code: res1.code }).then((res2) => {
              common_vendor.index.setStorageSync("openId", res2.data.userId);
              common_vendor.index.setStorageSync("token", res2.data.token);
            });
          },
          fail: (e) => {
            console.log(e);
          }
        });
      }
    });
    common_vendor.onShow(() => {
      console.log("App Show");
unpackage/dist/dev/mp-weixin/app.json
@@ -1,9 +1,9 @@
{
  "pages": [
    "pages/index/index",
    "pages/login/index",
    "pages/addCard/index",
    "pages/balanceRecord/index"
    "pages/balanceRecord/index",
    "pages/recharge/index"
  ],
  "window": {
    "navigationStyle": "custom"
unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,6 +1,6 @@
"use strict";
const _imports_0$3 = "/static/images/index/code1.png";
const _imports_1$1 = "/static/images/index/vip-add.png";
const _imports_0$2 = "/static/images/index/code1.png";
const _imports_1 = "/static/images/index/vip-add.png";
const _imports_2 = "/static/images/index/hend1.png";
const _imports_3 = "/static/images/index/back.png";
const _imports_4 = "/static/images/index/home21.png";
@@ -9,16 +9,12 @@
const _imports_7 = "/static/images/index/icon51.png";
const _imports_8 = "/static/images/index/more-info5.png";
const _imports_9 = "/static/images/index/notice5.png";
const _imports_0$2 = "/static/images/login/wechat.png";
const _imports_1 = "/static/images/login/logo.png";
const _imports_0$1 = "/static/images/addCard/code.png";
const _imports_0 = "/static/images/addCard/back.png";
exports._imports_0 = _imports_0;
exports._imports_0$1 = _imports_0$3;
exports._imports_0$2 = _imports_0$2;
exports._imports_0$3 = _imports_0$1;
exports._imports_1 = _imports_1$1;
exports._imports_1$1 = _imports_1;
exports._imports_0$1 = _imports_0$2;
exports._imports_0$2 = _imports_0$1;
exports._imports_1 = _imports_1;
exports._imports_2 = _imports_2;
exports._imports_3 = _imports_3;
exports._imports_4 = _imports_4;
unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -75,8 +75,8 @@
  return str.charAt(0).toUpperCase() + str.slice(1);
});
const toHandlerKey = cacheStringFunction((str) => {
  const s2 = str ? `on${capitalize(str)}` : ``;
  return s2;
  const s = str ? `on${capitalize(str)}` : ``;
  return s;
});
const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
const invokeArrayFns$1 = (fns, arg) => {
@@ -92,63 +92,13 @@
  });
};
const looseToNumber = (val) => {
  const n2 = parseFloat(val);
  return isNaN(n2) ? val : n2;
  const n = parseFloat(val);
  return isNaN(n) ? val : n;
};
let _globalThis;
const getGlobalThis = () => {
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
};
function normalizeStyle(value) {
  if (isArray(value)) {
    const res = {};
    for (let i = 0; i < value.length; i++) {
      const item = value[i];
      const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
      if (normalized) {
        for (const key in normalized) {
          res[key] = normalized[key];
        }
      }
    }
    return res;
  } else if (isString(value) || isObject(value)) {
    return value;
  }
}
const listDelimiterRE = /;(?![^(]*\))/g;
const propertyDelimiterRE = /:([^]+)/;
const styleCommentRE = /\/\*[^]*?\*\//g;
function parseStringStyle(cssText) {
  const ret = {};
  cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
    if (item) {
      const tmp = item.split(propertyDelimiterRE);
      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
    }
  });
  return ret;
}
function normalizeClass(value) {
  let res = "";
  if (isString(value)) {
    res = value;
  } else if (isArray(value)) {
    for (let i = 0; i < value.length; i++) {
      const normalized = normalizeClass(value[i]);
      if (normalized) {
        res += normalized + " ";
      }
    }
  } else if (isObject(value)) {
    for (const name in value) {
      if (value[name]) {
        res += name + " ";
      }
    }
  }
  return res.trim();
}
const toDisplayString = (val) => {
  return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
};
@@ -1010,7 +960,7 @@
  }
  if (!isArray(name))
    name = [name];
  name.forEach((n2) => emitter.off(n2, callback));
  name.forEach((n) => emitter.off(n, callback));
}, OffProtocol);
const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
  emitter.emit(name, ...args);
@@ -1292,7 +1242,7 @@
  let _SDKVersion = SDKVersion;
  const hostLanguage = language.replace(/_/g, "-");
  const parameters = {
    appId: "",
    appId: "__UNI__97986D6",
    appName: "water-drinking-uniapp",
    appVersion: "1.0.0",
    appVersionCode: "100",
@@ -1436,7 +1386,7 @@
      hostName: _hostName,
      hostSDKVersion: SDKVersion,
      hostTheme: theme,
      appId: "",
      appId: "__UNI__97986D6",
      appName: "water-drinking-uniapp",
      appVersion: "1.0.0",
      appVersionCode: "100",
@@ -6794,34 +6744,11 @@
  }
  return ret;
}
function stringifyStyle(value) {
  if (isString(value)) {
    return value;
  }
  return stringify(normalizeStyle(value));
}
function stringify(styles) {
  let ret = "";
  if (!styles || isString(styles)) {
    return ret;
  }
  for (const key in styles) {
    ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`;
  }
  return ret;
}
function setRef(ref2, id, opts = {}) {
  const { $templateRefs } = getCurrentInstance();
  $templateRefs.push({ i: id, r: ref2, k: opts.k, f: opts.f });
}
const o = (value, key) => vOn(value, key);
const f = (source, renderItem) => vFor(source, renderItem);
const s = (value) => stringifyStyle(value);
const e = (target, ...sources) => extend(target, ...sources);
const n = (value) => normalizeClass(value);
const t = (val) => toDisplayString(val);
const p = (props) => renderProps(props);
const sr = (ref2, id, opts) => setRef(ref2, id, opts);
function createApp$1(rootComponent, rootProps = null) {
  rootComponent && (rootComponent.mpType = "app");
  return createVueApp(rootComponent, rootProps).use(plugin);
@@ -7659,125 +7586,11 @@
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
const onHide = /* @__PURE__ */ createHook(ON_HIDE);
const onLaunch = /* @__PURE__ */ createHook(ON_LAUNCH);
class MPAnimation {
  constructor(options, _this) {
    this.options = options;
    this.animation = index.createAnimation({
      ...options
    });
    this.currentStepAnimates = {};
    this.next = 0;
    this.$ = _this;
  }
  _nvuePushAnimates(type, args) {
    let aniObj = this.currentStepAnimates[this.next];
    let styles = {};
    if (!aniObj) {
      styles = {
        styles: {},
        config: {}
      };
    } else {
      styles = aniObj;
    }
    if (animateTypes1.includes(type)) {
      if (!styles.styles.transform) {
        styles.styles.transform = "";
      }
      let unit = "";
      if (type === "rotate") {
        unit = "deg";
      }
      styles.styles.transform += `${type}(${args + unit}) `;
    } else {
      styles.styles[type] = `${args}`;
    }
    this.currentStepAnimates[this.next] = styles;
  }
  _animateRun(styles = {}, config = {}) {
    let ref2 = this.$.$refs["ani"].ref;
    if (!ref2)
      return;
    return new Promise((resolve2, reject) => {
      nvueAnimation.transition(ref2, {
        styles,
        ...config
      }, (res) => {
        resolve2();
      });
    });
  }
  _nvueNextAnimate(animates, step = 0, fn) {
    let obj = animates[step];
    if (obj) {
      let {
        styles,
        config
      } = obj;
      this._animateRun(styles, config).then(() => {
        step += 1;
        this._nvueNextAnimate(animates, step, fn);
      });
    } else {
      this.currentStepAnimates = {};
      typeof fn === "function" && fn();
      this.isEnd = true;
    }
  }
  step(config = {}) {
    this.animation.step(config);
    return this;
  }
  run(fn) {
    this.$.animationData = this.animation.export();
    this.$.timer = setTimeout(() => {
      typeof fn === "function" && fn();
    }, this.$.durationTime);
  }
}
const animateTypes1 = [
  "matrix",
  "matrix3d",
  "rotate",
  "rotate3d",
  "rotateX",
  "rotateY",
  "rotateZ",
  "scale",
  "scale3d",
  "scaleX",
  "scaleY",
  "scaleZ",
  "skew",
  "skewX",
  "skewY",
  "translate",
  "translate3d",
  "translateX",
  "translateY",
  "translateZ"
];
const animateTypes2 = ["opacity", "backgroundColor"];
const animateTypes3 = ["width", "height", "left", "right", "top", "bottom"];
animateTypes1.concat(animateTypes2, animateTypes3).forEach((type) => {
  MPAnimation.prototype[type] = function(...args) {
    this.animation[type](...args);
    return this;
  };
});
function createAnimation(option, _this) {
  if (!_this)
    return;
  clearTimeout(_this.timer);
  return new MPAnimation(option, _this);
}
exports._export_sfc = _export_sfc;
exports.createAnimation = createAnimation;
exports.createSSRApp = createSSRApp;
exports.e = e;
exports.f = f;
exports.index = index;
exports.n = n;
exports.o = o;
exports.onHide = onHide;
exports.onLaunch = onLaunch;
@@ -7786,7 +7599,5 @@
exports.p = p;
exports.ref = ref;
exports.resolveComponent = resolveComponent;
exports.s = s;
exports.sr = sr;
exports.t = t;
exports.unref = unref;
exports.wx$1 = wx$1;
unpackage/dist/dev/mp-weixin/components/navbar/navbar.js
@@ -9,18 +9,16 @@
      default: ""
    }
  },
  emits: ["navBackTo"],
  setup(__props, { emit: __emit }) {
    const emit = __emit;
    function navBackToChild() {
      emit("navBackTo");
  setup(__props) {
    function navBackTo() {
      common_vendor.index.navigateBack();
    }
    const props = __props;
    const title = common_vendor.ref(props.title);
    return (_ctx, _cache) => {
      return {
        a: common_assets._imports_0,
        b: common_vendor.o(($event) => navBackToChild()),
        b: common_vendor.o(($event) => navBackTo()),
        c: common_vendor.t(title.value)
      };
    };
unpackage/dist/dev/mp-weixin/config/baseUrl.js
对比新文件
@@ -0,0 +1,3 @@
"use strict";
const BASE_URL = "http://192.168.0.105:8031";
exports.BASE_URL = BASE_URL;
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.js
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.json
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.wxml
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.wxss
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.js
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.json
文件已删除
unpackage/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition.wxml
文件已删除
unpackage/dist/dev/mp-weixin/pages/addCard/index.js
@@ -12,13 +12,10 @@
const _sfc_main = {
  __name: "index",
  setup(__props) {
    function navBackTo() {
      common_vendor.index.navigateBack();
    }
    const form = common_vendor.ref({
      cardNumber: "",
      name: "",
      phone: "",
      waterCardNumber: "",
      userName: "",
      userPhone: "",
      address: "",
      remark: ""
    });
@@ -29,24 +26,23 @@
    });
    return (_ctx, _cache) => {
      return {
        a: common_vendor.o(($event) => navBackTo()),
        b: common_vendor.p({
        a: common_vendor.p({
          title: "绑定会员卡"
        }),
        c: form.value.cardNumber,
        d: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        e: common_assets._imports_0$3,
        f: form.value.cardNumber,
        g: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        h: form.value.cardNumber,
        i: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        j: form.value.cardNumber,
        k: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        l: form.value.cardNumber,
        m: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        n: form.value.cardNumber,
        o: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        p: common_vendor.o(($event) => submit())
        b: form.value.cardNumber,
        c: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        d: common_assets._imports_0$2,
        e: form.value.cardNumber,
        f: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        g: form.value.cardNumber,
        h: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        i: form.value.cardNumber,
        j: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        k: form.value.cardNumber,
        l: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        m: form.value.cardNumber,
        n: common_vendor.o(($event) => form.value.cardNumber = $event.detail.value),
        o: common_vendor.o(($event) => submit())
      };
    };
  }
unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml
@@ -1 +1 @@
<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{b}}" class="data-v-4c5e7c86" bindnavBackTo="{{a}}" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{b}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><view class="form-item card-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">卡号:</text><input class="data-v-4c5e7c86" placeholder="请输入卡号" value="{{c}}" bindinput="{{d}}"/><image class="data-v-4c5e7c86" src="{{e}}" alt=""></image></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">姓名:</text><input class="data-v-4c5e7c86" placeholder="请输入姓名" value="{{f}}" bindinput="{{g}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">联系方式:</text><input class="data-v-4c5e7c86" placeholder="请输入手机号" value="{{h}}" bindinput="{{i}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">区域:</text><input class="data-v-4c5e7c86" placeholder="请选择区域" value="{{j}}" bindinput="{{k}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">地址:</text><input class="data-v-4c5e7c86" placeholder="请输入地址" value="{{l}}" bindinput="{{m}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">备注:</text><input class="data-v-4c5e7c86" placeholder="请输入内容" value="{{n}}" bindinput="{{o}}"/></view></view><view class="tips data-v-4c5e7c86"><text class="data-v-4c5e7c86">1、完成实名认证,方便遗失挂失及补卡等。</text><text class="data-v-4c5e7c86">2、绑卡后,运营商可以看到您实名时填写的 姓名和电话。</text></view><view class="subBtn data-v-4c5e7c86" bindtap="{{p}}">提交信息</view></view></view></view>
<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{a}}" class="data-v-4c5e7c86" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><view class="form-item card-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">卡号:</text><input class="data-v-4c5e7c86" placeholder="请输入卡号" value="{{b}}" bindinput="{{c}}"/><image class="data-v-4c5e7c86" src="{{d}}" alt=""></image></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">姓名:</text><input class="data-v-4c5e7c86" placeholder="请输入姓名" value="{{e}}" bindinput="{{f}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">联系方式:</text><input class="data-v-4c5e7c86" placeholder="请输入手机号" value="{{g}}" bindinput="{{h}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">区域:</text><input class="data-v-4c5e7c86" placeholder="请选择区域" value="{{i}}" bindinput="{{j}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">地址:</text><input class="data-v-4c5e7c86" placeholder="请输入地址" value="{{k}}" bindinput="{{l}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">备注:</text><input class="data-v-4c5e7c86" placeholder="请输入内容" value="{{m}}" bindinput="{{n}}"/></view></view><view class="tips data-v-4c5e7c86"><text class="data-v-4c5e7c86">1、完成实名认证,方便遗失挂失及补卡等。</text><text class="data-v-4c5e7c86">2、绑卡后,运营商可以看到您实名时填写的 姓名和电话。</text></view><view class="subBtn data-v-4c5e7c86" bindtap="{{o}}">提交信息</view></view></view></view>
unpackage/dist/dev/mp-weixin/pages/addCard/index.wxss
@@ -128,4 +128,5 @@
  text-align: center;
  line-height: 98rpx;
  margin-top: 236rpx;
  letter-spacing: 2px;
}
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.js
@@ -14,11 +14,15 @@
    function navBackTo() {
      common_vendor.index.navigateBack();
    }
    const banlanceList = common_vendor.ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
    return (_ctx, _cache) => {
      return {
        a: common_vendor.o(($event) => navBackTo()),
        b: common_vendor.p({
          title: "余额记录"
        }),
        c: common_vendor.f(banlanceList.value, (item, index, i0) => {
          return {};
        })
      };
    };
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.wxml
@@ -1 +1 @@
<view class="container"><navbar wx:if="{{b}}" bindnavBackTo="{{a}}" u-i="434b3e96-0" bind:__l="__l" u-p="{{b}}"></navbar></view>
<view class="container"><navbar wx:if="{{b}}" bindnavBackTo="{{a}}" u-i="434b3e96-0" bind:__l="__l" u-p="{{b}}"></navbar><view class="date"><view><text>2024年09月</text></view><view><text>支出¥5341.05</text><text>充值¥941.59</text></view></view><view class="main"><block wx:for="{{c}}" wx:for-item="item"><view class="item"><view class="item-left"><text>缴费</text><text class="methods">支付方式:微信</text><text>2024年09月20日 18:25</text></view><view class="item-right"><text>-¥125.00</text><text>2000.00</text></view></view></block></view></view>
unpackage/dist/dev/mp-weixin/pages/balanceRecord/index.wxss
@@ -26,4 +26,86 @@
.container {
  width: 100%;
  height: 100vh;
  background: linear-gradient(to top, #FFFFFF, #E8EFFF);
}
.container .date {
  height: 84rpx;
  width: 100%;
  display: flex;
  padding: 0 36rpx;
  box-sizing: border-box;
  justify-content: space-between;
  align-items: center;
}
.container .date view:first-child {
  font-weight: 300;
  font-size: 32rpx;
  color: #000000;
}
.container .date view:last-child {
  font-weight: 300;
  font-size: 24rpx;
  color: #7E7E7E;
}
.container .date view:last-child text:first-child {
  margin-right: 30rpx;
}
.container .main {
  width: 99%;
  height: calc(100vh - 84rpx - 176rpx - 70rpx);
  background: #fff;
  border-radius: 20rpx;
  margin: 0 auto;
  padding: 28rpx 48rpx;
  box-sizing: border-box;
  overflow-y: scroll;
}
.container .main .item {
  width: 100%;
  height: 184rpx;
  border-bottom: 1rpx solid #D8D8D8;
  box-sizing: border-box;
  padding-bottom: 38rpx;
  justify-content: space-between;
  align-items: flex-end;
  display: flex;
}
.container .main .item .item-left {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
}
.container .main .item .item-left text:first-child {
  font-weight: 300;
  font-size: 32rpx;
  color: #000000;
}
.container .main .item .item-left .methods {
  font-weight: 300;
  font-size: 32rpx;
  color: #474646;
}
.container .main .item .item-left text:last-child {
  font-weight: 300;
  font-size: 24rpx;
  color: #A7A7A7;
}
.container .main .item .item-right {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
}
.container .main .item .item-right text:first-child {
  font-weight: 300;
  font-size: 32rpx;
  color: #000000;
}
.container .main .item .item-right text:last-child {
  font-weight: 300;
  font-size: 24rpx;
  color: #A7A7A7;
}
unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -1,35 +1,53 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_index = require("../../api/index.js");
const _sfc_main = {
  __name: "index",
  setup(__props) {
    const topHeight = common_vendor.ref(0);
    function getTopHeight() {
      if (common_vendor.index.getMenuButtonBoundingClientRect) {
        topHeight.value = (common_vendor.index.getMenuButtonBoundingClientRect().top + common_vendor.index.getMenuButtonBoundingClientRect().height) * 2;
      }
    }
    const vipInfo = common_vendor.ref();
    const isVip = common_vendor.ref(false);
    async function getVipInfo() {
      let res = await api_index.getUserInfo();
      if (res.data.userInfo.waterCardNumber) {
        let res1 = await api_index.getVipInfoApi();
        vipInfo.value = res1.data;
        isVip.value = true;
      } else {
        isVip.value = false;
      }
    }
    function navToAddCard() {
      common_vendor.index.navigateTo({
        url: "/pages/addCard/index"
      });
    }
    const functionList = common_vendor.ref([
      { text: "余额记录", icon: "../../static/images/index/icon31.png", url: "/pages/balanceRecord/index" },
      { text: "消费记录", icon: "../../static/images/index/icon32.png", url: "/pages/login/index" },
      { text: "充值记录", icon: "../../static/images/index/icon33.png", url: "/pages/login/index" },
      { text: "账户共享", icon: "../../static/images/index/icon34.png", url: "/pages/login/index" },
      { text: "优惠卷", icon: "../../static/images/index/icon35.png", url: "/pages/login/index" },
      { text: "电子发票", icon: "../../static/images/index/icon36.png", url: "/pages/login/index" },
      { text: "联系客服", icon: "../../static/images/index/icon37.png", url: "/pages/login/index" },
      { text: "余额记录", icon: "../../static/images/index/icon31.png", url: "" },
      { text: "消费记录", icon: "../../static/images/index/icon32.png", url: "" },
      { text: "充值记录", icon: "../../static/images/index/icon33.png", url: "" },
      { text: "账户共享", icon: "../../static/images/index/icon34.png", url: "" },
      { text: "优惠卷", icon: "../../static/images/index/icon35.png", url: "" },
      { text: "电子发票", icon: "../../static/images/index/icon36.png", url: "" },
      { text: "联系客服", icon: "../../static/images/index/icon37.png", url: "" },
      { text: "推广分佣", icon: "../../static/images/index/icon38.png", url: "/pages/login/index" }
    ]);
    function navTo(itemUrl) {
      common_vendor.index.navigateTo({
        url: itemUrl
      });
    }
    common_vendor.onMounted(() => {
      if (common_vendor.index.getMenuButtonBoundingClientRect) {
        topHeight.value = (common_vendor.index.getMenuButtonBoundingClientRect().top + common_vendor.index.getMenuButtonBoundingClientRect().height) * 2;
      if (itemUrl) {
        common_vendor.index.navigateTo({
          url: itemUrl
        });
      }
    }
    common_vendor.onMounted(async () => {
      getTopHeight();
      await getVipInfo();
    });
    return (_ctx, _cache) => {
      return common_vendor.e({
@@ -37,11 +55,11 @@
      }, isVip.value ? {
        b: common_assets._imports_0$1
      } : {
        c: common_assets._imports_1
        c: common_assets._imports_1,
        d: common_vendor.o(($event) => navToAddCard())
      }, {
        d: common_assets._imports_2,
        e: common_assets._imports_3,
        f: common_vendor.o(($event) => navToAddCard()),
        e: common_assets._imports_2,
        f: common_assets._imports_3,
        g: topHeight.value + "rpx",
        h: common_assets._imports_4,
        i: common_assets._imports_5,
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:' + g}}"><view class="card data-v-1cf27b2a"><view class="card-content data-v-1cf27b2a" bindtap="{{f}}"><view wx:if="{{a}}" class="card-title data-v-1cf27b2a"><view class="data-v-1cf27b2a">会员卡</view><image class="data-v-1cf27b2a" src="{{b}}" alt=""></image></view><view wx:else class="card-add data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view class="card-info data-v-1cf27b2a"><view class="info-head data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{d}}" alt=""></image></view><view class="info-content data-v-1cf27b2a"><view class="info-content-top data-v-1cf27b2a"><view class="data-v-1cf27b2a">张大左</view><view class="data-v-1cf27b2a">vip1</view></view><view class="info-content-bottom data-v-1cf27b2a">YL123654987521</view></view><view class="info-more data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{e}}"></image></view></view><view class="card-bottom data-v-1cf27b2a"><view class="data-v-1cf27b2a">我的积分:200</view><view class="data-v-1cf27b2a">消费折扣:9.9折</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view class="box1-bg box1-two data-v-1cf27b2a"><view class="data-v-1cf27b2a">账户余额(元)</view><view class="recharge data-v-1cf27b2a"><text class="data-v-1cf27b2a">¥</text><text class="data-v-1cf27b2a">120.00</text></view><view class="data-v-1cf27b2a"> 充值 </view></view><view class="box1-bg box1-three data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{i}}" 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="{{j}}" wx:for-item="item" wx:key="d"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.c}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image><view class="box2-item-text data-v-1cf27b2a">{{item.b}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{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"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{l}}" 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="{{m}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{n}}" 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="{{o}}" 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:' + g}}"><view class="card data-v-1cf27b2a"><view class="card-content data-v-1cf27b2a"><view wx:if="{{a}}" class="card-title data-v-1cf27b2a"><view class="data-v-1cf27b2a">会员卡</view><image class="data-v-1cf27b2a" src="{{b}}" alt=""></image></view><view wx:else class="card-add data-v-1cf27b2a"><view class="data-v-1cf27b2a" bindtap="{{d}}"><image class="data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view class="card-info data-v-1cf27b2a"><view class="info-head data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{e}}" alt=""></image></view><view class="info-content data-v-1cf27b2a"><view class="info-content-top data-v-1cf27b2a"><view class="data-v-1cf27b2a">张大左</view><view class="data-v-1cf27b2a">vip1</view></view><view class="info-content-bottom data-v-1cf27b2a">YL123654987521</view></view><view class="info-more data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{f}}"></image></view></view><view class="card-bottom data-v-1cf27b2a"><view class="data-v-1cf27b2a">我的积分:200</view><view class="data-v-1cf27b2a">消费折扣:9.9折</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view class="box1-bg box1-two data-v-1cf27b2a"><view class="data-v-1cf27b2a">账户余额(元)</view><view class="recharge data-v-1cf27b2a"><text class="data-v-1cf27b2a">¥</text><text class="data-v-1cf27b2a">120.00</text></view><view class="data-v-1cf27b2a"> 充值 </view></view><view class="box1-bg box1-three data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{i}}" 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="{{j}}" wx:for-item="item" wx:key="d"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.c}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image><view class="box2-item-text data-v-1cf27b2a">{{item.b}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{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"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{l}}" 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="{{m}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{n}}" 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="{{o}}" alt=""></image></view></view></view></view></view></view>
unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -33,52 +33,52 @@
  height: 100vh;
  background: #F6F6F6;
}
.card-box.data-v-1cf27b2a {
.container .content .card-box.data-v-1cf27b2a {
  width: 100%;
  height: auto;
  box-sizing: border-box;
  padding: 0 32rpx;
  background: linear-gradient(to bottom, #5EA1FA, #D2F2FE);
}
.card-box .card.data-v-1cf27b2a {
.container .content .card-box .card.data-v-1cf27b2a {
  width: 100%;
  height: 304rpx;
  background-image: url("data:image/png;base64,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");
  background-repeat: no-repeat;
  background-size: 100%;
}
.card-box .card .card-content.data-v-1cf27b2a {
.container .content .card-box .card .card-content.data-v-1cf27b2a {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 14rpx 42rpx 64rpx 22rpx;
}
.card-box .card .card-content .card-title.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-title.data-v-1cf27b2a {
  width: 100%;
  height: 64rpx;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.card-box .card .card-content .card-title view.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-title view.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 36rpx;
  color: #FFFFFF;
  letter-spacing: 5rpx;
  text-align: left;
}
.card-box .card .card-content .card-title image.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-title image.data-v-1cf27b2a {
  width: 64rpx;
  height: 64rpx;
}
.card-box .card .card-content .card-add.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-add.data-v-1cf27b2a {
  width: 100%;
  height: 64rpx;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.card-box .card .card-content .card-add view.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-add view.data-v-1cf27b2a {
  width: 172rpx;
  height: 38rpx;
  border-radius: 24rpx;
@@ -87,18 +87,18 @@
  justify-content: flex-start;
  align-items: center;
}
.card-box .card .card-content .card-add view image.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-add view image.data-v-1cf27b2a {
  width: 22rpx;
  height: 22rpx;
  margin-left: 15rpx;
}
.card-box .card .card-content .card-add view text.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-add view text.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 20rpx;
  color: #0088FF;
  margin-left: 15rpx;
}
.card-box .card .card-content .card-info.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info.data-v-1cf27b2a {
  width: 100%;
  height: 100rpx;
  margin-top: 18rpx;
@@ -106,16 +106,16 @@
  justify-content: flex-start;
  align-items: center;
}
.card-box .card .card-content .card-info .info-head.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-head.data-v-1cf27b2a {
  width: 100rpx;
  height: 100rpx;
  margin-right: 20rpx;
}
.card-box .card .card-content .card-info .info-head image.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-head image.data-v-1cf27b2a {
  width: 100rpx;
  height: 100rpx;
}
.card-box .card .card-content .card-info .info-content.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-content.data-v-1cf27b2a {
  width: 216rpx;
  height: 100rpx;
  display: flex;
@@ -123,14 +123,14 @@
  justify-content: flex-start;
  align-items: flex-start;
}
.card-box .card .card-content .card-info .info-content .info-content-top.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-content .info-content-top.data-v-1cf27b2a {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8rpx;
}
.card-box .card .card-content .card-info .info-content .info-content-top view.data-v-1cf27b2a:first-child {
.container .content .card-box .card .card-content .card-info .info-content .info-content-top view.data-v-1cf27b2a:first-child {
  width: 108rpx;
  height: 50rpx;
  font-weight: 400;
@@ -138,7 +138,7 @@
  color: #FFFFFF;
  text-align: left;
}
.card-box .card .card-content .card-info .info-content .info-content-top view.data-v-1cf27b2a:last-child {
.container .content .card-box .card .card-content .card-info .info-content .info-content-top view.data-v-1cf27b2a:last-child {
  width: 86rpx;
  height: 32rpx;
  font-weight: 300;
@@ -147,7 +147,7 @@
  text-align: center;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAQCAYAAACP4IauAAAAAXNSR0IArs4c6QAAAdxJREFUSEvNlr1LHFEUxe85d3ZnEvGjt5RowgpbaJvKNGIVsisEQsAmJllm/UC0SJ3WTaNs0oh/RNKIzbo2SaMkLIhY2llIEg3ix8i8mdFRRMzoDk4zb97c995vzpz37oVcul79mO7xPH0L0SFCO0F9SFAAFVAlapNhH1SiNk0Mxdz9MSY+3nce678n/bhwziB2H9BtUr+KxeqMk9+I4yF66Pv8JtOdb/sonk6QapnJLgFeBRvBBIveDvYCOHkEZiqb9r8PX9B/6HMa2MFvrt3WnlkC9On5F98M1iwQqnynsNHfBOtZJ/usjEcHBna4PlaF6Kiv3P/CNk3Z0ErGKsLqpPP4HV7USzkVax2imgS22cqGvj4WYR6FmlsBOB75814qG2zWTyjWyg0BniSFTUdZs38aKNbcvwK2JIVNxbOBsnu+DX4DbE0Km5ayoP5BccX9KcLepLBpKUvoLxRq5VkAE0lh01JWoBU8Xy33WidYI5IdXWkoS+ixl2U+SAqrY3Pw9P29PWep85PZntKt023zlWU9Y8fSrakPNl27fefBHIERQHnTQqZpnqWeAFywHafk1wVnhUy8DHv5fSZHz3oNcIBkF6Ad15WId6osdZfQLQDLlucsTrXmGnG2Ux7nYTiYHiPjAAAAAElFTkSuQmCC");
}
.card-box .card .card-content .card-info .info-content .info-content-bottom.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-content .info-content-bottom.data-v-1cf27b2a {
  width: 100%;
  font-weight: 300;
  font-size: 20rpx;
@@ -155,16 +155,16 @@
  letter-spacing: 5rpx;
  text-align: left;
}
.card-box .card .card-content .card-info .info-more.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-more.data-v-1cf27b2a {
  width: 12rpx;
  height: 28rpx;
  margin-left: 274rpx;
}
.card-box .card .card-content .card-info .info-more image.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-info .info-more image.data-v-1cf27b2a {
  width: 12rpx;
  height: 28rpx;
}
.card-box .card .card-content .card-bottom.data-v-1cf27b2a {
.container .content .card-box .card .card-content .card-bottom.data-v-1cf27b2a {
  margin-top: 36rpx;
  width: 100%;
  display: flex;
@@ -175,7 +175,7 @@
  line-height: 0rpx;
  text-align: center;
}
.function-box1.data-v-1cf27b2a {
.container .content .function-box1.data-v-1cf27b2a {
  width: 100%;
  box-sizing: border-box;
  height: 227rpx;
@@ -184,14 +184,14 @@
  justify-content: space-between;
  align-items: center;
}
.function-box1 .box1-bg.data-v-1cf27b2a {
.container .content .function-box1 .box1-bg.data-v-1cf27b2a {
  width: 212rpx;
  height: 200rpx;
  border-radius: 24rpx;
  background: #fff;
  box-shadow: 0 0 12rpx 2rpx rgba(13, 118, 255, 0.16);
}
.function-box1 .box1-one.data-v-1cf27b2a {
.container .content .function-box1 .box1-one.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 32rpx;
  color: #000000;
@@ -201,12 +201,12 @@
  align-items: center;
  justify-content: center;
}
.function-box1 .box1-one image.data-v-1cf27b2a {
.container .content .function-box1 .box1-one image.data-v-1cf27b2a {
  width: 86rpx;
  height: 78rpx;
  margin-bottom: 20rpx;
}
.function-box1 .box1-two.data-v-1cf27b2a {
.container .content .function-box1 .box1-two.data-v-1cf27b2a {
  box-sizing: border-box;
  padding: 25rpx 0 10rpx;
  display: flex;
@@ -214,24 +214,24 @@
  align-items: center;
  justify-content: space-around;
}
.function-box1 .box1-two view.data-v-1cf27b2a:first-child {
.container .content .function-box1 .box1-two view.data-v-1cf27b2a:first-child {
  font-weight: 300;
  font-size: 24rpx;
  color: #464646;
  text-align: center;
  margin-bottom: 10rpx;
}
.function-box1 .box1-two .recharge text.data-v-1cf27b2a:first-child {
.container .content .function-box1 .box1-two .recharge text.data-v-1cf27b2a:first-child {
  font-weight: 500;
  font-size: 32rpx;
  color: #000;
}
.function-box1 .box1-two .recharge text.data-v-1cf27b2a:last-child {
.container .content .function-box1 .box1-two .recharge text.data-v-1cf27b2a:last-child {
  font-weight: 300;
  font-size: 32rpx;
  color: #2269E5;
}
.function-box1 .box1-two view.data-v-1cf27b2a:last-child {
.container .content .function-box1 .box1-two view.data-v-1cf27b2a:last-child {
  width: 140rpx;
  height: 80rpx;
  font-weight: 300;
@@ -245,7 +245,7 @@
  line-height: 80rpx;
  margin-top: 10rpx;
}
.function-box1 .box1-three.data-v-1cf27b2a {
.container .content .function-box1 .box1-three.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 32rpx;
  color: #000000;
@@ -255,18 +255,18 @@
  align-items: center;
  justify-content: center;
}
.function-box1 .box1-three image.data-v-1cf27b2a {
.container .content .function-box1 .box1-three image.data-v-1cf27b2a {
  width: 83rpx;
  height: 83rpx;
  margin-bottom: 20rpx;
}
.function-box2.data-v-1cf27b2a {
.container .content .function-box2.data-v-1cf27b2a {
  width: 100%;
  box-sizing: border-box;
  height: 443rpx;
  padding: 0 32rpx 15rpx;
}
.function-box2 .box2-title.data-v-1cf27b2a {
.container .content .function-box2 .box2-title.data-v-1cf27b2a {
  width: 100%;
  font-weight: 300;
  font-size: 32rpx;
@@ -275,7 +275,7 @@
  margin-bottom: 10rpx;
  margin-left: 30rpx;
}
.function-box2 .box2-content.data-v-1cf27b2a {
.container .content .function-box2 .box2-content.data-v-1cf27b2a {
  box-sizing: border-box;
  padding: 22rpx 35rpx;
  width: 686rpx;
@@ -288,7 +288,7 @@
  justify-content: space-between;
  align-items: center;
}
.function-box2 .box2-content .box2-item.data-v-1cf27b2a {
.container .content .function-box2 .box2-content .box2-item.data-v-1cf27b2a {
  width: 146rpx;
  height: 143rpx;
  display: flex;
@@ -296,11 +296,11 @@
  justify-content: space-between;
  align-items: center;
}
.function-box2 .box2-content .box2-item image.data-v-1cf27b2a {
.container .content .function-box2 .box2-content .box2-item image.data-v-1cf27b2a {
  width: 90rpx;
  height: 90rpx;
}
.function-box2 .box2-content .box2-item .box2-item-text.data-v-1cf27b2a {
.container .content .function-box2 .box2-content .box2-item .box2-item-text.data-v-1cf27b2a {
  width: 100%;
  height: 40rpx;
  font-weight: 300;
@@ -308,23 +308,23 @@
  color: #000000;
  text-align: center;
}
.advertisement-box.data-v-1cf27b2a {
.container .content .advertisement-box.data-v-1cf27b2a {
  width: 100%;
  height: 188rpx;
  padding: 0 32rpx 10rpx;
  box-sizing: border-box;
}
.advertisement-box image.data-v-1cf27b2a {
.container .content .advertisement-box image.data-v-1cf27b2a {
  width: 100%;
  height: 178rpx;
}
.service-box.data-v-1cf27b2a {
.container .content .service-box.data-v-1cf27b2a {
  width: 100%;
  height: 255rpx;
  padding: 0 32rpx;
  box-sizing: border-box;
}
.service-box .service-title.data-v-1cf27b2a {
.container .content .service-box .service-title.data-v-1cf27b2a {
  height: 44rpx;
  font-weight: 300;
  font-size: 32rpx;
@@ -333,14 +333,14 @@
  margin-bottom: 5rpx;
  margin-left: 30rpx;
}
.service-box .service-content.data-v-1cf27b2a {
.container .content .service-box .service-content.data-v-1cf27b2a {
  width: 100%;
  height: 206rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.service-box .service-content .service-bg.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg.data-v-1cf27b2a {
  width: 330rpx;
  height: 206rpx;
  background: linear-gradient(to bottom, #AFD5FF, #FFFFFF);
@@ -350,41 +350,109 @@
  justify-content: center;
  align-items: flex-start;
}
.service-box .service-content .service-bg view.data-v-1cf27b2a:first-child {
.container .content .service-box .service-content .service-bg view.data-v-1cf27b2a:first-child {
  display: flex;
  align-items: center;
  margin-left: 40rpx;
}
.service-box .service-content .service-bg view:first-child image.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg view:first-child image.data-v-1cf27b2a {
  width: 48rpx;
  height: 48rpx;
  margin-right: 10rpx;
}
.service-box .service-content .service-bg view:first-child text.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg view:first-child text.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 28rpx;
  color: #000000;
}
.service-box .service-content .service-bg .service-info.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg .service-info.data-v-1cf27b2a {
  width: 214rpx;
  font-weight: 300;
  font-size: 24rpx;
  color: #4D4B4B;
  margin-left: 96rpx;
}
.service-box .service-content .service-bg view.data-v-1cf27b2a:last-child {
.container .content .service-box .service-content .service-bg view.data-v-1cf27b2a:last-child {
  margin-left: 174rpx;
  margin-top: 18rpx;
  display: flex;
  align-items: center;
}
.service-box .service-content .service-bg view:last-child image.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg view:last-child image.data-v-1cf27b2a {
  width: 32rpx;
  height: 32rpx;
}
.service-box .service-content .service-bg view:last-child text.data-v-1cf27b2a {
.container .content .service-box .service-content .service-bg view:last-child text.data-v-1cf27b2a {
  font-weight: 300;
  font-size: 24rpx;
  color: #4D4B4B;
  margin-right: 10rpx;
}
.container .popup-content.data-v-1cf27b2a {
  height: 560rpx;
  position: relative;
  z-index: 1000;
}
.container .popup-content .popup-title.data-v-1cf27b2a {
  width: 100%;
  display: block;
  text-align: center;
  margin: 15rpx 0;
  font-weight: 600;
  font-size: 36rpx;
}
.container .popup-content .hr.data-v-1cf27b2a {
  width: 100%;
  height: 2rpx;
  background: #e2e2e2;
}
.container .popup-content .img-box.data-v-1cf27b2a {
  width: 65rpx;
  height: 65rpx;
  margin: 40rpx auto 30rpx;
  border: 1rpx solid #e2e2e2;
  border-radius: 50%;
  padding: 15rpx;
}
.container .popup-content .img-box .img.data-v-1cf27b2a {
  width: 100%;
  height: 100%;
}
.container .popup-content .info-box.data-v-1cf27b2a {
  width: 100%;
  padding: 0 80rpx;
  box-sizing: border-box;
}
.container .popup-content .info-box .hr2.data-v-1cf27b2a {
  width: 100%;
  height: 2rpx;
  background: #e2e2e2;
  margin: 20rpx 0;
}
.container .popup-content .info-box .info-text2.data-v-1cf27b2a {
  font-size: 26rpx;
  color: #767676;
}
.container .popup-content .button-box.data-v-1cf27b2a {
  display: flex;
  margin-top: 20rpx;
}
.container .popup-content .button-box button.data-v-1cf27b2a {
  width: 230rpx;
  height: 80rpx;
  line-height: 80rpx;
  border: none;
  box-shadow: none;
  margin-top: 30rpx;
}
.container .popup-content .button-box button.data-v-1cf27b2a::after {
  border: none !important;
}
.container .popup-content .button-box .button1.data-v-1cf27b2a {
  background-color: #F0F0F0;
  color: #333333;
}
.container .popup-content .button-box .button2.data-v-1cf27b2a {
  background-color: #06BF5E;
  color: #ffffff;
}
unpackage/dist/dev/mp-weixin/pages/login/index.js
文件已删除
unpackage/dist/dev/mp-weixin/pages/login/index.json
文件已删除
unpackage/dist/dev/mp-weixin/pages/login/index.wxml
文件已删除
unpackage/dist/dev/mp-weixin/pages/login/index.wxss
文件已删除
unpackage/dist/dev/mp-weixin/pages/recharge/index.js
对比新文件
@@ -0,0 +1,20 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {};
if (!Array) {
  const _easycom_navbar2 = common_vendor.resolveComponent("navbar");
  _easycom_navbar2();
}
const _easycom_navbar = () => "../../components/navbar/navbar.js";
if (!Math) {
  _easycom_navbar();
}
function _sfc_render(_ctx, _cache) {
  return {
    a: common_vendor.p({
      title: "绑定会员卡"
    })
  };
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
unpackage/dist/dev/mp-weixin/pages/recharge/index.json
对比新文件
@@ -0,0 +1,6 @@
{
  "navigationBarTitleText": "",
  "usingComponents": {
    "navbar": "../../components/navbar/navbar"
  }
}
unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml
对比新文件
@@ -0,0 +1 @@
<view class="container"><navbar wx:if="{{a}}" u-i="a5181a58-0" bind:__l="__l" u-p="{{a}}"></navbar></view>
unpackage/dist/dev/mp-weixin/pages/recharge/index.wxss
unpackage/dist/dev/mp-weixin/project.config.json
@@ -19,7 +19,7 @@
  },
  "compileType": "miniprogram",
  "libVersion": "3.3.5",
  "appid": "touristappid",
  "appid": "wxe86c40810c2c0e98",
  "projectname": "water-drinking-uniapp",
  "condition": {},
  "editorSetting": {
unpackage/dist/dev/mp-weixin/static/images/login/loginbg.png

unpackage/dist/dev/mp-weixin/util/request.js
对比新文件
@@ -0,0 +1,28 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const config_baseUrl = require("../config/baseUrl.js");
const request = (url, data, method) => {
  return new Promise((resolve, reject) => {
    common_vendor.index.request({
      url: config_baseUrl.BASE_URL + url,
      method: method || "POST",
      header: {
        token: common_vendor.index.getStorageSync("token") || ""
      },
      data: data || {},
      success: (res) => {
        const data2 = res.data;
        resolve(data2);
      },
      fail: (error) => {
        common_vendor.index.showToast({
          icon: "error",
          title: "请求错误"
        });
        reject(error);
      }
    });
  }).catch((e) => {
  });
};
exports.request = request;
util/request.js
对比新文件
@@ -0,0 +1,24 @@
import { BASE_URL } from "../config/baseUrl";
export const request = (url, data, method) => {
    return new Promise((resolve, reject) => {
        uni.request({
            url: BASE_URL + url,
            method: method || 'POST',
            header: {
                token:uni.getStorageSync('token') || ''
            },
            data: data || {},
            success: (res) => {
                const data = res.data
                resolve(data)
            },
            fail:(error)=>{
                uni.showToast({
                    icon:'error',
                    title:'请求错误'
                })
                reject(error)
            },
        })
    }).catch((e) => {});
}