From 5c2531930dc7c87d0c39d116c84f87b507394eb9 Mon Sep 17 00:00:00 2001 From: Liuyi <candymxq888@outlook.com> Date: 星期六, 12 十月 2024 08:57:18 +0800 Subject: [PATCH] 添加附近站点,添加消费记录,重写用户申请位置权限 --- pages/userInfo/index.vue | 107 +++++ unpackage/dist/dev/mp-weixin/pages/sendWater/index.js | 2 App.vue | 77 ++++ unpackage/dist/dev/mp-weixin/pages/index/index.js | 75 ++-- pages/facilityList/index.vue | 69 ++-- unpackage/dist/dev/mp-weixin/pages/addCard/index.js | 28 + unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml | 2 pages/index/index.vue | 164 ++++----- unpackage/dist/dev/mp-weixin/pages/address/index.js | 4 pages/balanceRecord/index.vue | 8 pages/sendWater/index.vue | 2 unpackage/dist/dev/mp-weixin/api/index.js | 16 + unpackage/dist/dev/mp-weixin/pages/index/index.wxss | 69 ++- pages.json | 12 unpackage/dist/dev/mp-weixin/pages/index/index.wxml | 2 unpackage/dist/dev/mp-weixin/app.js | 72 ++++ unpackage/dist/dev/mp-weixin/config/baseUrl.js | 2 unpackage/dist/dev/mp-weixin/app.json | 4 pages/addCard/index.vue | 22 pages/recharge/index.vue | 58 ++- /dev/null | 0 unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml | 2 unpackage/dist/dev/mp-weixin/pages/recharge/index.js | 49 ++- api/index.js | 22 + unpackage/dist/dev/mp-weixin/common/assets.js | 52 +- 25 files changed, 644 insertions(+), 276 deletions(-) diff --git a/App.vue b/App.vue index e636cbd..470a053 100644 --- a/App.vue +++ b/App.vue @@ -1,7 +1,9 @@ <script setup> import { onLaunch, onShow, onHide } from "@dcloudio/uni-app"; import { wxLoginApi } from './api/index.js' - onLaunch(() => { + + //用户打开小程序默认授权 + function wxLogin(){ uni.removeStorageSync('openId'); if(!uni.getStorageSync('openId')){ wx.login({ @@ -14,10 +16,83 @@ }) }, fail:(e) =>{ + uni.showToast({ + title: '登录失败,请退出重试!', + duration: 2000 + }); console.log(e) } }) } + } + + //申请获取用户位置权限 + let userLocation = { + lat:'', + lon:'', + } + function getUserLocation(){ + // 请求用户授权,第一次进入会有位置授权的提示 + uni.authorize({ + scope: 'scope.userLocation', + success() { + console.log("成功授权位置信息1") + storageLocation() + }, + fail() { + console.log("用户拒绝授权位置信息,再次提示用户授权") + showToast() + } + }) + //获取用户位置并存储 + function storageLocation(){ + uni.getLocation({ + type:'gcj02', + isHighAccuracy:true, + success:(res) =>{ + userLocation.lat = res.latitude + userLocation.lon = res.longitude + uni.setStorageSync('userLocation',JSON.stringify(userLocation)) + }, + fail:() =>{ + showToast() + } + }) + } + //用户拒绝授权 + function showToast(){ + uni.showModal({ + title: "请求授权当前位置", + content: "我们需要获取地理位置信息,为您获取附近站点信息!", + confirmText: "前往设置", + success: (res) => { + if (res.confirm) { + uni.openSetting({ + success:(res1) =>{ //打开设置成功 + if (res1.authSetting['scope.userLocation']){ + console.log('用户二次授权成功') + storageLocation() + }else{ + showToast() + console.log('用户拒绝授权') + } + }, + }) + }else{ + uni.showToast({ + title: '请先授权!', + duration: 2000, + icon:'none' + }); + showToast() + } + }, + }); + } + } + onLaunch(async() => { + await wxLogin() + await getUserLocation() }); onShow(() => { console.log("App Show"); diff --git a/api/index.js b/api/index.js index 4d94d89..cd3230a 100644 --- a/api/index.js +++ b/api/index.js @@ -38,8 +38,28 @@ export function setAddressDefaultApi(id){ return request(`/userAddress/editDefault?id=${id}`,{},'GET') } -//获取设备站点列表 +//获取设备列表 export function searchFacilityApi(data){ return request('/waterFacility/search',data,'POST') } +//获取设备站点、营业网点列表 +export function siteApi(data){ + return request('/waterDrinkingSite/getSearchList',data,'POST') +} +//修改用户信息 +export function editUserInfoApi(data){ + return request('/userArchives/modify',data,'POST') +} +//微信支付 +export function wxPayApi(data){ + return request('/pay/service/wxPay',data,'POST') +} +//余额记录 +export function balanceChangeApi(data){ + return request('/userCapitalChange/search',data,'POST') +} +//消费记录 +export function paymentChangeApi(date){ + return request(`/paymentRecords/getListByUser?date=${date}`,{},'GET') +} diff --git a/pages.json b/pages.json index b2b7d06..769fbd2 100644 --- a/pages.json +++ b/pages.json @@ -25,6 +25,12 @@ } }, { + "path" : "pages/paymentRecord/index", + "style": { + "navigationStyle":"custom" + } + }, + { "path" : "pages/scanWater/index", "style": { "navigationStyle":"custom" @@ -77,6 +83,12 @@ "style": { "navigationStyle":"custom" } + }, + { + "path" : "pages/station/index", + "style": { + "navigationStyle":"custom" + } } ], "globalStyle": { diff --git a/pages/addCard/index.vue b/pages/addCard/index.vue index a9d81c4..d6d6f97 100644 --- a/pages/addCard/index.vue +++ b/pages/addCard/index.vue @@ -8,11 +8,21 @@ userPhone:'', remark:'', }) +function toScan(){ + // 调用二维码扫描接口 + uni.scanCode({ + scanType: ['qrCode'], + success: function (res) { + console.log('条码内容:' + res.result); + form.value.waterCardNumber = res.result + } + }); +} async function submit(){ await creatUserArchive(form.value).then((res) =>{ if(res.code == 200){ uni.showToast({ - title: '绑定成功', + title: '添加成功!', image: '../../static/images/other/success.svg', duration:500 }) @@ -33,7 +43,7 @@ <view class="form-item card-item"> <text>卡号:</text> <input v-model="form.waterCardNumber" placeholder="请输入卡号"/> - <image src="../../static/images/addCard/code.png" alt=""></image> + <image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image> </view> <view class="form-item"> <text>姓名:</text> @@ -43,14 +53,6 @@ <text>联系方式:</text> <input v-model="form.userPhone" placeholder="请输入手机号"/> </view> - <!-- <view class="form-item"> - <text>区域:</text> - <input v-model="form.waterCardNumber" placeholder="请选择区域"/> - </view> - <view class="form-item"> - <text>地址:</text> - <input v-model="form.waterCardNumber" placeholder="请输入地址"/> - </view> --> <view class="form-item"> <text>备注:</text> <input v-model="form.remark" placeholder="请输入内容"/> diff --git a/pages/balanceRecord/index.vue b/pages/balanceRecord/index.vue index f74f928..881dd1a 100644 --- a/pages/balanceRecord/index.vue +++ b/pages/balanceRecord/index.vue @@ -1,9 +1,17 @@ <script setup> import { ref } from 'vue' + import { balanceChangeApi } from '../../api/index.js' //返回 function navBackTo(){ uni.navigateBack() } + async function getBalanceList(){ + await balanceChangeApi().then((res) =>{ + if(res.code == 200){ + // banlanceList.value = res.data.list + } + }) + } const banlanceList = ref([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) </script> <template> diff --git a/pages/facilityList/index.vue b/pages/facilityList/index.vue index 7f39c05..d6ee2a7 100644 --- a/pages/facilityList/index.vue +++ b/pages/facilityList/index.vue @@ -10,7 +10,7 @@ </view> <view class="item-info"> <view class="info-name">{{item.facilityName}}</view> - <view class="info-addr"> + <view class="info-addr" @click="openMap(item.lat,item.lon)"> <text class="addr-text">地址:{{item.address}}</text> <view> <image src="../../static/images/index/icon22.png" alt=''></image> @@ -28,47 +28,52 @@ <script setup> import { onMounted, ref } from 'vue' import { searchFacilityApi } from '../../api/index.js' - const deviceList = ref([ - {facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道工业互联网产业园',distance:'30.12'}, - {facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道',distance:'30.12'}, - {facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道',distance:'30.12'}, - ]) - const latitudeUser = ref() - const longitudeUser = ref() - // 根据经纬度计算距离,根据经纬度计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度 - function getDistances(lat1, lng1, lat2, lng2) { + const deviceList = ref([]) + const userLocation = ref() + //获取设备信息 + async function getFacilityList(){ + await searchFacilityApi({limit:20,page:1}).then((res1) =>{ + if(res1.code == 200){ + deviceList.value = [] + res1.data.list.forEach((item) =>{ + //计算用户与饮水设备距离 + let preDistance = getDistances(userLocation.value.lat,userLocation.value.lon,item.latitude,item.longitude) + deviceList.value.push({ + facilityName:item.facilityName, + address:item.address, + distance:preDistance.km, + lat:item.latitude, + lon:item.longitude, + }) + }) + console.log('deviceList.value',deviceList.value) + } + }) + } + // 根据经纬度计算距离,根据经纬度计算距离,参数分别为第一点的纬度,经度(用户);第二点的纬度,经度(设备) + function getDistances(lat1, lon1, lat2, lon2) { let EARTH_RADIUS = 6378.137;// 地球半径 let radLat1 = lat1 * Math.PI / 180.0; //lat1 * Math.PI / 180.0=>弧度计算 let radLat2 = lat2 * Math.PI / 180.0; let a = radLat1 - radLat2; - let b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0; + let b = lon1 * Math.PI / 180.0 - lon2 * Math.PI / 180.0; let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = Math.round(s * 10000) / 10000;// 输出为公里 return { m: s * 1000, km: Number(s.toFixed(2)) } } - onMounted(async() =>{ - uni.getLocation({type: 'gcj02'}).then(async(res) =>{ - console.log('位置',res) - latitudeUser.value = res.latitude - longitudeUser.value = res.longitude - - await searchFacilityApi({limit:20,page:1}).then((res) =>{ - if(res.code == 200){ - // deviceList.value = [] - res.data.list.forEach((item) =>{ - - let preDistance = getDistances(latitudeUser.value,106.4003121,item.latitude,item.longitude) - deviceList.value.push({ - facilityName:item.facilityName, - address:item.address, - distance:preDistance.km - }) - }) - console.log('deviceList.value',deviceList.value) - } - }) + //打开地图导航 + function openMap(lat,lon){ + uni.openLocation({ + latitude: parseFloat(lat), + longitude: parseFloat(lon), + scale:18 }) + } + onMounted(async() =>{ + userLocation.value = JSON.parse(uni.getStorageSync('userLocation')) + console.log('storage',userLocation.value) + await getFacilityList() }) </script> diff --git a/pages/index/index.vue b/pages/index/index.vue index 56bf6c4..b9649d4 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -14,6 +14,7 @@ * 会员卡相关 */ const cardInfo = ref({ + id:'', userName:'', headImg:'', @@ -26,23 +27,26 @@ //获取会员卡信息 async function getInfo(){ let res = await getUserInfo() - console.log('res',res.data) - cardInfo.value.userName = res.data.userInfo.userName - cardInfo.value.headImg = res.data.userInfo.headImg - cardInfo.value.userPhone = res.data.userInfo.userPhone - if(res.data.userInfo.waterCardNumber){ - let res1 = await getVipInfoApi() - cardInfo.value.waterCardNumber = res1.data.cardNumber - if(res1.data.cardType == 1){ - cardInfo.value.balance = res1.data.balance - }else if(res1.data.cardType == 2){ - cardInfo.value.count = res1.data.count + if(res.code == 200){ + console.log('res',res.data) + cardInfo.value.userName = res.data.userInfo.userName + cardInfo.value.headImg = res.data.userInfo.headImg + cardInfo.value.userPhone = res.data.userInfo.userPhone + cardInfo.value.id = res.data.userInfo.id + if(res.data.userInfo.waterCardNumber){ + let res1 = await getVipInfoApi() + cardInfo.value.waterCardNumber = res1.data.cardNumber + if(res1.data.cardType == 1){ + cardInfo.value.balance = res1.data.balance + }else if(res1.data.cardType == 2){ + cardInfo.value.count = res1.data.count + } + isVip.value = true + }else{ + isVip.value = false } - isVip.value = true - }else{ - isVip.value = false + uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) } - uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) } /** * 扫码取水相关 @@ -52,7 +56,6 @@ uni.scanCode({ scanType: ['qrCode'], success: function (res) { - console.log('条码类型:' + res.scanType); console.log('条码内容:' + res.result); uni.navigateTo({ url:'/pages/scanWater/index' @@ -65,7 +68,7 @@ */ const functionList = ref([ {text:'余额记录',icon:'../../static/images/index/icon31.png',url:'/pages/balanceRecord/index'}, - {text:'消费记录',icon:'../../static/images/index/icon32.png',url:''}, + {text:'消费记录',icon:'../../static/images/index/icon32.png',url:'/pages/paymentRecord/index'}, {text:'充值记录',icon:'../../static/images/index/icon33.png',url:''}, {text:'账户共享',icon:'../../static/images/index/icon34.png',url:''}, {text:'优惠卷',icon:'../../static/images/index/icon35.png',url:''}, @@ -80,26 +83,8 @@ }) } } - //获取用户地理位置 - 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 getInfo() - // await getUserLocation() }) onShow(async() =>{ await getInfo() @@ -114,8 +99,13 @@ <image class="user-img" src='../../static/images/index/hend1.png' alt=''></image> <text>{{cardInfo.userName}}</text> <image class="user-more"src="../../static/images/index/back.png"></image> + <view class="user-add-card" @click="navTo('/pages/addCard/index')"> + <image src='../../static/images/index/vip-add.png' alt=''></image> + <text>添加会员卡</text> + </view> </view> <view class="card"> + <image class="card-bg" src="../../static/images/index/card11.png" alt=""></image> <view class="card-content"> <view class="card-left"> <view class="left-top"> @@ -129,17 +119,14 @@ </view> <view class="card-right"> <view class="card-right-top"> - <view @click="navTo('/pages/addCard/index')"> + <!-- <view @click="navTo('/pages/addCard/index')"> <image src='../../static/images/index/vip-add.png' alt=''></image> - <span>添加会员卡</span> - </view> - <span>金额卡</span> + <text>添加会员卡</text> + </view> --> + <text>金额卡</text> + <text>{{cardInfo.balance}}元</text> </view> - <view @click="navTo('/pages/recharge/index')"> - <span>余额:</span> - <span class="card-balance">{{cardInfo.balance}}</span> - <span>元</span> - </view> + <view class="card-right-bottom" @click="navTo('/pages/recharge/index')">充值</view> </view> </view> </view> @@ -181,7 +168,7 @@ <view class="service-box"> <view class="service-title"><text>服务指南</text></view> <view class="service-content"> - <view class="service-bg"> + <view class="service-bg" @click="navTo('/pages/station/index')"> <view> <image src="../../static/images/index/icon51.png" alt=""></image> <text>附近站点</text> @@ -206,24 +193,6 @@ </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> <style lang="scss" scoped> @@ -250,6 +219,8 @@ padding-left:15rpx; box-sizing: border-box; margin-bottom: 14rpx; + display:flex; + position:relative; .user-img{ width:90rpx; height:90rpx; @@ -263,13 +234,35 @@ width: 12rpx; height: 28rpx; } + .user-add-card{ + display:flex; + align-items:center; + height:40rpx; + font-size:22rpx; + background:linear-gradient(to right,#B1D9FD,#65A7FD); + border-radius:50rpx; + padding: 0 8rpx; + position: absolute; + bottom:0; + right:0; + image{ + width:28rpx; + height:28rpx; + margin-right:10rpx; + } + } } .card{ width: 100%; height: 290rpx; - background-image: url("../../static/images/index/card1.png"); - background-repeat: no-repeat; - background-size: 100% 100%; + position:relative; + .card-bg{ + height:290rpx; + width:100%; + top:0; + position: absolute; + z-index:1; + } .card-content{ width: 100%; height: 100%; @@ -280,12 +273,14 @@ font-weight: 300; font-size: 30rpx; color: #FFFFFF; + z-index:100; .card-left{ height:100%; display: flex; justify-content:space-between; flex-direction:column; align-items:flex-start; + z-index:100; .left-top{ display: flex; flex-direction: column; @@ -297,13 +292,15 @@ height:70rpx; } text{ - font-weight: 300; + font-weight:400; font-size: 36rpx; color: #FFFFFF; } } view:last-child{ margin-left:10rpx; + font-size: 26rpx; + font-weight:500; } } } @@ -313,29 +310,26 @@ align-items:flex-end; flex-direction: column; height:100%; + z-index:100; .card-right-top{ - align-items: center; + align-items:flex-end; display: flex; justify-content: space-between; - view{ - background-color: #fff; - color: #5EA1FA; - border-radius:20rpx; - padding: 5rpx 8rpx; - align-items: center; - display: flex; - justify-content: space-around; - font-size:24rpx; - margin-right:10rpx; - image{ - width:28rpx; - height:28rpx; - margin-right:10rpx; - } + flex-direction: column; + font-size:34rpx; + text:last-child{ + font-weight:500; } } - .card-balance{ - font-weight:600; + .card-right-bottom{ + width:137rpx; + height:56rpx; + background:linear-gradient(to right,#65A7FD ,#B1D9FD); + border-radius:50rpx; + text-align: center; + line-height: 56rpx; + color:#212DDE; + font-weight: 400; } } } diff --git a/pages/recharge/index.vue b/pages/recharge/index.vue index e05745f..ebffff7 100644 --- a/pages/recharge/index.vue +++ b/pages/recharge/index.vue @@ -1,5 +1,6 @@ <script setup> import{ ref ,onMounted} from 'vue' + import { wxPayApi } from '../../api/index.js' const choosedMoney = ref() const disabled = ref(true) @@ -38,26 +39,51 @@ const payMethod = ref() const payList = ref([ // {text:"支付宝支付",value:1,checked:true,img:'../../static/images/recharge/pay.png'}, - {text:"微信支付",value:2,checked:false,img:'../../static/images/recharge/wx.png'}, - {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'}, + {text:"微信支付",value:2,checked:true,img:'../../static/images/recharge/wx.png'}, + // {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'}, ]) - function choosePay(index1){ - payList.value.forEach((item,index) =>{ - if(item.checked == true){ - item.checked = false - } - }) - payList.value[index1].checked = true - payMethod.value = payList.value[index1].value - } - function submit(){ + // function choosePay(index1){ + // payList.value.forEach((item,index) =>{ + // if(item.checked == true){ + // item.checked = false + // } + // }) + // payList.value[index1].checked = true + // payMethod.value = payList.value[index1].value + // } + async function submit(){ let money = '' if(disabled.value){ money = choosedMoney.value }else{ money = otherMoney.value } - console.log('money',money) + await wxPayApi({businessType:1,tradeAmount:money}).then((res) =>{ + console.log('reswxpay',res) + + //调用微信官方支付接口弹出付款界面,输入密码扣款 + wx.requestPayment({ + //预支付订单信息 + // appId: res.data.appId, + timeStamp: res.data.timeStamp, //时间戳 + nonceStr: res.data.nonceStr, //随机串 + package: res.data.package, //prepay_id + signType: res.data.signType, //签名算法MD5 + paySign: res.data.paySign ,//微信签名 + success (res) { + if (res.errMsg == "requestPayment:ok"){ + console.log('支付成功', res) + }else{ + console.log('支付失败') + } + }, + fail (res) { + console.log('支付失败', res) + } + }) + }) + + } </script> <template> @@ -86,10 +112,10 @@ </view> </view> <view class="pay-methods"> - <view class="money-title"> + <!-- <view class="money-title"> <view class="title-icon"></view> <view class="title-text">请选择支付方式</view> - </view> + </view> --> <view class="methods-list"> <block v-for="(item,index) in payList"> <view class="pay-item"> @@ -97,7 +123,7 @@ <image :src="item.img" alt=""></image> <view>{{item.text}}</view> </view> - <radio :value="item.value" :checked="item.checked" @click="choosePay(index)"/> + <radio :value="item.value" :checked="item.checked"/> </view> </block> </view> diff --git a/pages/sendWater/index.vue b/pages/sendWater/index.vue index f632688..40099c1 100644 --- a/pages/sendWater/index.vue +++ b/pages/sendWater/index.vue @@ -5,7 +5,7 @@ url:'/pages/preSendWater/index' }) } - const isComplete = ref(true) + const isComplete = ref(false) const isActive = ref({borderBottom:`3px solid #226AC9`}) function swatch(val){ if((val == 1 && !isComplete.value) || (val == 2 && isComplete.value)){ diff --git a/pages/userInfo/index.vue b/pages/userInfo/index.vue index faba080..7dce482 100644 --- a/pages/userInfo/index.vue +++ b/pages/userInfo/index.vue @@ -1,7 +1,43 @@ <script setup> import { onMounted, ref } from 'vue' - + import { editUserInfoApi,getUserInfo } from '../../api/index.js' + const isEdit = ref(false) + const editForm = ref({id:'',userName:'',userPhone:''}) const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo'))) + function edit(){ + editForm.value.id = userInfo.value.id + editForm.value.userName = userInfo.value.userName + editForm.value.userPhone = userInfo.value.userPhone + isEdit.value = true + } + function cancel(){ + isEdit.value = false + editForm.vlaue = {id:'',userName:'',userPhone:''} + } + async function submitEdit(){ + await editUserInfoApi(editForm.value).then(async(res) =>{ + + if(res.code == 200){ + uni.showToast({ + title: '修改成功!', + duration: 2000, + }); + await getUserInfo().then((res) =>{ + userInfo.value.userName = res.data.userInfo.userName + userInfo.value.userPhone = res.data.userInfo.userPhone + uni.setStorageSync('userInfo',JSON.stringify(userInfo.value)) + }) + }else{ + uni.showToast({ + title: '请求错误!请重试', + duration: 2000, + icon:'none' + }); + } + isEdit.value = false + editForm.vlaue = {id:'',userName:'',userPhone:''} + }) + } </script> <template> <view class="container"> @@ -9,13 +45,16 @@ <view class="content"> <view class="info-box"> <view class="info-up"> - <view> + <view class="info-img"> <text>头像</text> <image src='../../static/logo.png' alt=''></image> </view> - <view> + <view class="info-name"> <text>用户名称</text> - <text class="info-value">{{userInfo.userName}}</text> + <view> + <input v-if="isEdit" v-model="editForm.userName" placeholder="请输入新用户名"/> + <text v-else class="info-value">{{userInfo.userName}}</text> + </view> </view> </view> <view class="info-list"> @@ -26,13 +65,16 @@ <view class="item"> <text>联系方式</text> <view> - <text>{{userInfo.userPhone}}</text> - <image class="edit"src="../../static/images//other/more.png" alt=''></image> + <input v-if="isEdit" v-model="editForm.userPhone" placeholder="请输入新联系方式"/> + <text v-else>{{userInfo.userPhone}}</text> + <!-- <image class="edit"src="../../static/images//other/more.png" alt=''></image> --> </view> </view> </view> </view> - <view class="subBtn">确认修改</view> + <view v-if="!isEdit" @click="edit()" class="subBtn">修改</view> + <view v-if="isEdit" @click="cancel()" class="btn btn1">取消</view> + <view v-if="isEdit" @click="submitEdit()" class="btn btn2">确认修改</view> </view> </view> </template> @@ -47,17 +89,29 @@ background:linear-gradient(to top,#FFFFFF,#E8EFFF); padding-top:36rpx; position: relative; + box-sizing: border-box; .info-value{ font-size:32rpx; color: #777777; } - .edit{ - margin-left:15rpx; - width: 20rpx; - height:28rpx; - } + // .edit{ + // margin-left:15rpx; + // width: 20rpx; + // height:28rpx; + // } .info-box{ width: 100%; + //该页面公用input样式 + input{ + border-radius: 10rpx; + border:1px solid rgba(101, 156, 244, 0.2); + padding:5rpx 10rpx; + box-shadow: 0 0 12rpx 1rpx rgba(101, 156, 244, 0.2); + color: #777777; + height:50rpx; + line-height:50rpx; + width:300rpx; + } .info-up{ height:308rpx; width:100%; @@ -70,7 +124,7 @@ box-sizing: border-box; font-size: 32rpx; color: #343434; - view:first-child{ + .info-img{ width:100%; display: flex; justify-content:space-between; @@ -81,7 +135,7 @@ border-radius: 50rpx; } } - view:last-child{ + .info-name{ width:100%; display: flex; justify-content:space-between; @@ -135,6 +189,31 @@ bottom:100rpx; left:32rpx; } + .btn{ + width: 200rpx; + height: 70rpx; + border-radius: 32rpx; + text-align: center; + line-height: 70rpx; + letter-spacing:3rpx; + font-weight: 300; + font-size: 36rpx; + position: absolute; + bottom:100rpx; + } + .btn1{ + color:#5EA1FA; + background:#FFFFFF; + position: absolute; + left:130rpx; + border:2rpx solid #5EA1FA; + } + .btn2{ + color: #FFFFFF; + background:#5EA1FA; + position: absolute; + right:130rpx; + } } } </style> diff --git a/static/images/index/card1.png b/static/images/index/card1.png deleted file mode 100644 index 7c773f4..0000000 --- a/static/images/index/card1.png +++ /dev/null Binary files differ diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js index 46c501f..16005e1 100644 --- a/unpackage/dist/dev/mp-weixin/api/index.js +++ b/unpackage/dist/dev/mp-weixin/api/index.js @@ -33,14 +33,30 @@ function searchFacilityApi(data) { return util_request.request("/waterFacility/search", data, "POST"); } +function siteApi(data) { + return util_request.request("/waterDrinkingSite/getSearchList", data, "POST"); +} +function editUserInfoApi(data) { + return util_request.request("/userArchives/modify", data, "POST"); +} +function wxPayApi(data) { + return util_request.request("/pay/service/wxPay", data, "POST"); +} +function paymentChangeApi(date) { + return util_request.request(`/paymentRecords/getListByUser?date=${date}`, {}, "GET"); +} exports.creatUserArchive = creatUserArchive; exports.deleteAddressApi = deleteAddressApi; exports.editAddressApi = editAddressApi; +exports.editUserInfoApi = editUserInfoApi; exports.getAddressApi = getAddressApi; exports.getRegionApi = getRegionApi; exports.getUserInfo = getUserInfo; exports.getVipInfoApi = getVipInfoApi; +exports.paymentChangeApi = paymentChangeApi; exports.searchAddress = searchAddress; exports.searchFacilityApi = searchFacilityApi; exports.setAddressDefaultApi = setAddressDefaultApi; +exports.siteApi = siteApi; exports.wxLoginApi = wxLoginApi; +exports.wxPayApi = wxPayApi; diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js index 65c2a1e..c99035d 100644 --- a/unpackage/dist/dev/mp-weixin/app.js +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -7,6 +7,7 @@ "./pages/addCard/index.js"; "./pages/userInfo/index.js"; "./pages/balanceRecord/index.js"; + "./pages/paymentRecord/index.js"; "./pages/scanWater/index.js"; "./pages/recharge/index.js"; "./pages/sendWater/index.js"; @@ -16,11 +17,12 @@ "./pages/addressLocate/index.js"; "./pages/success/index.js"; "./pages/facilityList/index.js"; + "./pages/station/index.js"; } const _sfc_main = { __name: "App", setup(__props) { - common_vendor.onLaunch(() => { + function wxLogin() { common_vendor.index.removeStorageSync("openId"); if (!common_vendor.index.getStorageSync("openId")) { common_vendor.wx$1.login({ @@ -32,10 +34,78 @@ }); }, fail: (e) => { + common_vendor.index.showToast({ + title: "登录失败,请退出重试!", + duration: 2e3 + }); console.log(e); } }); } + } + let userLocation = { + lat: "", + lon: "" + }; + function getUserLocation() { + common_vendor.index.authorize({ + scope: "scope.userLocation", + success() { + console.log("成功授权位置信息1"); + storageLocation(); + }, + fail() { + console.log("用户拒绝授权位置信息,再次提示用户授权"); + showToast(); + } + }); + function storageLocation() { + common_vendor.index.getLocation({ + type: "gcj02", + isHighAccuracy: true, + success: (res) => { + userLocation.lat = res.latitude; + userLocation.lon = res.longitude; + common_vendor.index.setStorageSync("userLocation", JSON.stringify(userLocation)); + }, + fail: () => { + showToast(); + } + }); + } + function showToast() { + common_vendor.index.showModal({ + title: "请求授权当前位置", + content: "我们需要获取地理位置信息,为您获取附近站点信息!", + confirmText: "前往设置", + success: (res) => { + if (res.confirm) { + common_vendor.index.openSetting({ + success: (res1) => { + if (res1.authSetting["scope.userLocation"]) { + console.log("用户二次授权成功"); + storageLocation(); + } else { + showToast(); + console.log("用户拒绝授权"); + } + } + }); + } else { + common_vendor.index.showToast({ + title: "请先授权!", + duration: 2e3, + icon: "none" + }); + showToast(); + } + } + }); + } + } + common_vendor.onLaunch(async () => { + await wxLogin(); + await getUserLocation(); }); common_vendor.onShow(() => { console.log("App Show"); diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json index 6c42930..b2dcc0b 100644 --- a/unpackage/dist/dev/mp-weixin/app.json +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -4,6 +4,7 @@ "pages/addCard/index", "pages/userInfo/index", "pages/balanceRecord/index", + "pages/paymentRecord/index", "pages/scanWater/index", "pages/recharge/index", "pages/sendWater/index", @@ -12,7 +13,8 @@ "pages/addressAdd/index", "pages/addressLocate/index", "pages/success/index", - "pages/facilityList/index" + "pages/facilityList/index", + "pages/station/index" ], "window": { "navigationStyle": "custom" diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js index 42c2833..c76d5a5 100644 --- a/unpackage/dist/dev/mp-weixin/common/assets.js +++ b/unpackage/dist/dev/mp-weixin/common/assets.js @@ -1,39 +1,41 @@ "use strict"; -const _imports_0$6 = "/static/images/index/hend1.png"; -const _imports_1$3 = "/static/images/index/back.png"; -const _imports_2 = "/static/images/index/code1.png"; -const _imports_3 = "/static/images/index/vip-add.png"; -const _imports_4 = "/static/images/index/home21.png"; -const _imports_1$2 = "/static/images/index/icon22.png"; -const _imports_6 = "/static/images/index/icon23.png"; -const _imports_7 = "/static/images/index/bg4.png"; -const _imports_8 = "/static/images/index/icon51.png"; -const _imports_9 = "/static/images/index/more-info5.png"; -const _imports_10 = "/static/images/index/notice5.png"; -const _imports_0$5 = "/static/images/addCard/code.png"; -const _imports_0$4 = "/static/logo.png"; -const _imports_1$1 = "/static/images/other/more.png"; +const _imports_0$7 = "/static/images/index/hend1.png"; +const _imports_1$2 = "/static/images/index/back.png"; +const _imports_2 = "/static/images/index/vip-add.png"; +const _imports_3 = "/static/images/index/card11.png"; +const _imports_4 = "/static/images/index/code1.png"; +const _imports_5 = "/static/images/index/home21.png"; +const _imports_1$1 = "/static/images/index/icon22.png"; +const _imports_7 = "/static/images/index/icon23.png"; +const _imports_8 = "/static/images/index/bg4.png"; +const _imports_9 = "/static/images/index/icon51.png"; +const _imports_10 = "/static/images/index/more-info5.png"; +const _imports_11 = "/static/images/index/notice5.png"; +const _imports_0$6 = "/static/images/addCard/code.png"; +const _imports_0$5 = "/static/logo.png"; +const _imports_0$4 = "/static/images/other/more.png"; const _imports_0$3 = "/static/images/address/edit.png"; const _imports_1 = "/static/images/address/delete.png"; const _imports_0$2 = "/static/images/address/expand.png"; const _imports_0$1 = "/static/images/other/success.svg"; const _imports_0 = "/static/images/addCard/back.png"; exports._imports_0 = _imports_0; -exports._imports_0$1 = _imports_0$6; -exports._imports_0$2 = _imports_0$5; -exports._imports_0$3 = _imports_0$4; -exports._imports_0$4 = _imports_0$3; -exports._imports_0$5 = _imports_0$2; -exports._imports_0$6 = _imports_0$1; -exports._imports_1 = _imports_1$3; -exports._imports_1$1 = _imports_1$2; -exports._imports_1$2 = _imports_1$1; -exports._imports_1$3 = _imports_1; +exports._imports_0$1 = _imports_0$7; +exports._imports_0$2 = _imports_0$6; +exports._imports_0$3 = _imports_0$5; +exports._imports_0$4 = _imports_0$4; +exports._imports_0$5 = _imports_0$3; +exports._imports_0$6 = _imports_0$2; +exports._imports_0$7 = _imports_0$1; +exports._imports_1 = _imports_1$2; +exports._imports_1$1 = _imports_1$1; +exports._imports_1$2 = _imports_1; exports._imports_10 = _imports_10; +exports._imports_11 = _imports_11; exports._imports_2 = _imports_2; exports._imports_3 = _imports_3; exports._imports_4 = _imports_4; -exports._imports_6 = _imports_6; +exports._imports_5 = _imports_5; exports._imports_7 = _imports_7; exports._imports_8 = _imports_8; exports._imports_9 = _imports_9; diff --git a/unpackage/dist/dev/mp-weixin/config/baseUrl.js b/unpackage/dist/dev/mp-weixin/config/baseUrl.js index 4c47d63..0701120 100644 --- a/unpackage/dist/dev/mp-weixin/config/baseUrl.js +++ b/unpackage/dist/dev/mp-weixin/config/baseUrl.js @@ -1,3 +1,3 @@ "use strict"; -const BASE_URL = "http://192.168.0.105:8031"; +const BASE_URL = "http://113.250.189.120:8031"; exports.BASE_URL = BASE_URL; diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js index fb13dd7..350a886 100644 --- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js @@ -19,11 +19,20 @@ userPhone: "", remark: "" }); + function toScan() { + common_vendor.index.scanCode({ + scanType: ["qrCode"], + success: function(res) { + console.log("条码内容:" + res.result); + form.value.waterCardNumber = res.result; + } + }); + } async function submit() { await api_index.creatUserArchive(form.value).then((res) => { if (res.code == 200) { common_vendor.index.showToast({ - title: "绑定成功", + title: "添加成功!", image: "../../static/images/other/success.svg", duration: 500 }); @@ -40,14 +49,15 @@ }), b: form.value.waterCardNumber, c: common_vendor.o(($event) => form.value.waterCardNumber = $event.detail.value), - d: common_assets._imports_0$2, - e: form.value.userName, - f: common_vendor.o(($event) => form.value.userName = $event.detail.value), - g: form.value.userPhone, - h: common_vendor.o(($event) => form.value.userPhone = $event.detail.value), - i: form.value.remark, - j: common_vendor.o(($event) => form.value.remark = $event.detail.value), - k: common_vendor.o(($event) => submit()) + d: common_vendor.o(($event) => toScan()), + e: common_assets._imports_0$2, + f: form.value.userName, + g: common_vendor.o(($event) => form.value.userName = $event.detail.value), + h: form.value.userPhone, + i: common_vendor.o(($event) => form.value.userPhone = $event.detail.value), + j: form.value.remark, + k: common_vendor.o(($event) => form.value.remark = $event.detail.value), + l: common_vendor.o(($event) => submit()) }; }; } diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml index 8831a4f..61e7de0 100644 --- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml @@ -1 +1 @@ -<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{a}}" class="data-v-4c5e7c86" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><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><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="{{k}}">提交信息</view></view></view></view> \ No newline at end of file +<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{a}}" class="data-v-4c5e7c86" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><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" bindtap="{{d}}" 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><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="{{l}}">提交信息</view></view></view></view> \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/address/index.js b/unpackage/dist/dev/mp-weixin/pages/address/index.js index 703b211..a345192 100644 --- a/unpackage/dist/dev/mp-weixin/pages/address/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/address/index.js @@ -88,8 +88,8 @@ h: common_vendor.o(($event) => deleteAddress(item.id)) }; }), - c: common_assets._imports_0$4, - d: common_assets._imports_1$3, + c: common_assets._imports_0$5, + d: common_assets._imports_1$2, e: common_vendor.o(($event) => navToAdd()) }; }; diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js index 5539ffc..66682be 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -12,6 +12,7 @@ } } const cardInfo = common_vendor.ref({ + id: "", userName: "", headImg: "", waterCardNumber: "", @@ -22,29 +23,31 @@ const isVip = common_vendor.ref(false); async function getInfo() { let res = await api_index.getUserInfo(); - console.log("res", res.data); - cardInfo.value.userName = res.data.userInfo.userName; - cardInfo.value.headImg = res.data.userInfo.headImg; - cardInfo.value.userPhone = res.data.userInfo.userPhone; - if (res.data.userInfo.waterCardNumber) { - let res1 = await api_index.getVipInfoApi(); - cardInfo.value.waterCardNumber = res1.data.cardNumber; - if (res1.data.cardType == 1) { - cardInfo.value.balance = res1.data.balance; - } else if (res1.data.cardType == 2) { - cardInfo.value.count = res1.data.count; + if (res.code == 200) { + console.log("res", res.data); + cardInfo.value.userName = res.data.userInfo.userName; + cardInfo.value.headImg = res.data.userInfo.headImg; + cardInfo.value.userPhone = res.data.userInfo.userPhone; + cardInfo.value.id = res.data.userInfo.id; + if (res.data.userInfo.waterCardNumber) { + let res1 = await api_index.getVipInfoApi(); + cardInfo.value.waterCardNumber = res1.data.cardNumber; + if (res1.data.cardType == 1) { + cardInfo.value.balance = res1.data.balance; + } else if (res1.data.cardType == 2) { + cardInfo.value.count = res1.data.count; + } + isVip.value = true; + } else { + isVip.value = false; } - isVip.value = true; - } else { - isVip.value = false; + common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value)); } - common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value)); } function toScan() { common_vendor.index.scanCode({ scanType: ["qrCode"], success: function(res) { - console.log("条码类型:" + res.scanType); console.log("条码内容:" + res.result); common_vendor.index.navigateTo({ url: "/pages/scanWater/index" @@ -54,7 +57,7 @@ } const functionList = common_vendor.ref([ { text: "余额记录", icon: "../../static/images/index/icon31.png", url: "/pages/balanceRecord/index" }, - { text: "消费记录", icon: "../../static/images/index/icon32.png", url: "" }, + { text: "消费记录", icon: "../../static/images/index/icon32.png", url: "/pages/paymentRecord/index" }, { text: "充值记录", icon: "../../static/images/index/icon33.png", url: "" }, { text: "账户共享", icon: "../../static/images/index/icon34.png", url: "" }, { text: "优惠卷", icon: "../../static/images/index/icon35.png", url: "" }, @@ -80,22 +83,23 @@ a: common_assets._imports_0$1, b: common_vendor.t(cardInfo.value.userName), c: common_assets._imports_1, - d: common_vendor.o(($event) => navTo("/pages/userInfo/index")), - e: common_assets._imports_2, - f: common_vendor.t(cardInfo.value.waterCardNumber), - g: common_vendor.t(cardInfo.value.userPhone), - h: common_assets._imports_3, - i: common_vendor.o(($event) => navTo("/pages/addCard/index")), - j: common_vendor.t(cardInfo.value.balance), - k: common_vendor.o(($event) => navTo("/pages/recharge/index")), - l: topHeight.value + "rpx", - m: common_assets._imports_4, - n: common_vendor.o(($event) => navTo("/pages/sendWater/index")), - o: common_assets._imports_1$1, - p: common_vendor.o(($event) => navTo("/pages/facilityList/index")), - q: common_assets._imports_6, - r: common_vendor.o(($event) => toScan()), - s: common_vendor.f(functionList.value, (item, index, i0) => { + d: common_assets._imports_2, + e: common_vendor.o(($event) => navTo("/pages/addCard/index")), + f: common_vendor.o(($event) => navTo("/pages/userInfo/index")), + g: common_assets._imports_3, + h: common_assets._imports_4, + i: common_vendor.t(cardInfo.value.waterCardNumber), + j: common_vendor.t(cardInfo.value.userPhone), + k: common_vendor.t(cardInfo.value.balance), + l: common_vendor.o(($event) => navTo("/pages/recharge/index")), + m: topHeight.value + "rpx", + n: common_assets._imports_5, + o: common_vendor.o(($event) => navTo("/pages/sendWater/index")), + p: common_assets._imports_1$1, + q: common_vendor.o(($event) => navTo("/pages/facilityList/index")), + r: common_assets._imports_7, + s: common_vendor.o(($event) => toScan()), + t: common_vendor.f(functionList.value, (item, index, i0) => { return { a: item.icon, b: common_vendor.t(item.text), @@ -103,11 +107,12 @@ d: index }; }), - t: common_assets._imports_7, v: common_assets._imports_8, w: common_assets._imports_9, x: common_assets._imports_10, - y: common_assets._imports_9 + y: common_vendor.o(($event) => navTo("/pages/station/index")), + z: common_assets._imports_11, + A: common_assets._imports_10 }; }; } diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml index 7dae729..f0187c0 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml @@ -1 +1 @@ -<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + l}}"><view class="user-info data-v-1cf27b2a" bindtap="{{d}}"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a">{{b}}</text><image class="user-more data-v-1cf27b2a" src="{{c}}"></image></view><view class="card data-v-1cf27b2a"><view class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{e}}" alt=""></image><text class="data-v-1cf27b2a">会员卡</text></view><view class="data-v-1cf27b2a">ID:{{f}}</view></view><view class="left-bottom data-v-1cf27b2a">电话:{{g}}</view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><view class="data-v-1cf27b2a" bindtap="{{i}}"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><label class="data-v-1cf27b2a">添加会员卡</label></view><label class="data-v-1cf27b2a">金额卡</label></view><view class="data-v-1cf27b2a" bindtap="{{k}}"><label class="data-v-1cf27b2a">余额:</label><label class="card-balance data-v-1cf27b2a">{{j}}</label><label class="data-v-1cf27b2a">元</label></view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{n}}"><image class="data-v-1cf27b2a" src="{{m}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{p}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{o}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{r}}"><image class="data-v-1cf27b2a" src="{{q}}" 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="{{s}}" 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="{{t}}" 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="{{v}}" 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="{{w}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{x}}" 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="{{y}}" alt=""></image></view></view></view></view></view></view> \ No newline at end of file +<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + m}}"><view class="user-info data-v-1cf27b2a" bindtap="{{f}}"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a">{{b}}</text><image class="user-more data-v-1cf27b2a" src="{{c}}"></image><view class="user-add-card data-v-1cf27b2a" bindtap="{{e}}"><image class="data-v-1cf27b2a" src="{{d}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{g}}" alt=""></image><view class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><text class="data-v-1cf27b2a">会员卡</text></view><view class="data-v-1cf27b2a">ID:{{i}}</view></view><view class="left-bottom data-v-1cf27b2a">电话:{{j}}</view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text class="data-v-1cf27b2a">金额卡</text><text class="data-v-1cf27b2a">{{k}}元</text></view><view class="card-right-bottom data-v-1cf27b2a" bindtap="{{l}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{o}}"><image class="data-v-1cf27b2a" src="{{n}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{q}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{p}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{s}}"><image class="data-v-1cf27b2a" src="{{r}}" 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="{{t}}" 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="{{v}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{y}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{w}}" 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="{{x}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{z}}" 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="{{A}}" alt=""></image></view></view></view></view></view></view> \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss index 54d7136..9fb4980 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss @@ -48,6 +48,8 @@ padding-left: 15rpx; box-sizing: border-box; margin-bottom: 14rpx; + display: flex; + position: relative; } .container .content .card-box .user-info .user-img.data-v-1cf27b2a { width: 90rpx; @@ -62,12 +64,34 @@ width: 12rpx; height: 28rpx; } +.container .content .card-box .user-info .user-add-card.data-v-1cf27b2a { + display: flex; + align-items: center; + height: 40rpx; + font-size: 22rpx; + background: linear-gradient(to right, #B1D9FD, #65A7FD); + border-radius: 50rpx; + padding: 0 8rpx; + position: absolute; + bottom: 0; + right: 0; +} +.container .content .card-box .user-info .user-add-card image.data-v-1cf27b2a { + width: 28rpx; + height: 28rpx; + margin-right: 10rpx; +} .container .content .card-box .card.data-v-1cf27b2a { width: 100%; height: 290rpx; - background-image: url("data:image/png;base64,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"); - background-repeat: no-repeat; - background-size: 100% 100%; + position: relative; +} +.container .content .card-box .card .card-bg.data-v-1cf27b2a { + height: 290rpx; + width: 100%; + top: 0; + position: absolute; + z-index: 1; } .container .content .card-box .card .card-content.data-v-1cf27b2a { width: 100%; @@ -79,6 +103,7 @@ font-weight: 300; font-size: 30rpx; color: #FFFFFF; + z-index: 100; } .container .content .card-box .card .card-content .card-left.data-v-1cf27b2a { height: 100%; @@ -86,6 +111,7 @@ justify-content: space-between; flex-direction: column; align-items: flex-start; + z-index: 100; } .container .content .card-box .card .card-content .card-left .left-top.data-v-1cf27b2a { display: flex; @@ -100,12 +126,14 @@ height: 70rpx; } .container .content .card-box .card .card-content .card-left .left-top view:first-child text.data-v-1cf27b2a { - font-weight: 300; + font-weight: 400; font-size: 36rpx; color: #FFFFFF; } .container .content .card-box .card .card-content .card-left .left-top view.data-v-1cf27b2a:last-child { margin-left: 10rpx; + font-size: 26rpx; + font-weight: 500; } .container .content .card-box .card .card-content .card-right.data-v-1cf27b2a { display: flex; @@ -113,30 +141,27 @@ align-items: flex-end; flex-direction: column; height: 100%; + z-index: 100; } .container .content .card-box .card .card-content .card-right .card-right-top.data-v-1cf27b2a { - align-items: center; + align-items: flex-end; display: flex; justify-content: space-between; + flex-direction: column; + font-size: 34rpx; } -.container .content .card-box .card .card-content .card-right .card-right-top view.data-v-1cf27b2a { - background-color: #fff; - color: #5EA1FA; - border-radius: 20rpx; - padding: 5rpx 8rpx; - align-items: center; - display: flex; - justify-content: space-around; - font-size: 24rpx; - margin-right: 10rpx; +.container .content .card-box .card .card-content .card-right .card-right-top text.data-v-1cf27b2a:last-child { + font-weight: 500; } -.container .content .card-box .card .card-content .card-right .card-right-top view image.data-v-1cf27b2a { - width: 28rpx; - height: 28rpx; - margin-right: 10rpx; -} -.container .content .card-box .card .card-content .card-right .card-balance.data-v-1cf27b2a { - font-weight: 600; +.container .content .card-box .card .card-content .card-right .card-right-bottom.data-v-1cf27b2a { + width: 137rpx; + height: 56rpx; + background: linear-gradient(to right, #65A7FD, #B1D9FD); + border-radius: 50rpx; + text-align: center; + line-height: 56rpx; + color: #212DDE; + font-weight: 400; } .container .content .function-box1.data-v-1cf27b2a { width: 100%; diff --git a/unpackage/dist/dev/mp-weixin/pages/recharge/index.js b/unpackage/dist/dev/mp-weixin/pages/recharge/index.js index a60365c..9d34e6d 100644 --- a/unpackage/dist/dev/mp-weixin/pages/recharge/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/recharge/index.js @@ -1,5 +1,6 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); +const api_index = require("../../api/index.js"); if (!Array) { const _easycom_navbar2 = common_vendor.resolveComponent("navbar"); _easycom_navbar2(); @@ -42,29 +43,46 @@ } } const otherMoney = common_vendor.ref(); - const payMethod = common_vendor.ref(); + common_vendor.ref(); const payList = common_vendor.ref([ // {text:"支付宝支付",value:1,checked:true,img:'../../static/images/recharge/pay.png'}, - { text: "微信支付", value: 2, checked: false, img: "../../static/images/recharge/wx.png" }, - { text: "余额", value: 3, checked: false, img: "../../static/images/recharge/balance.png" } + { text: "微信支付", value: 2, checked: true, img: "../../static/images/recharge/wx.png" } + // {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'}, ]); - function choosePay(index1) { - payList.value.forEach((item, index) => { - if (item.checked == true) { - item.checked = false; - } - }); - payList.value[index1].checked = true; - payMethod.value = payList.value[index1].value; - } - function submit() { + async function submit() { let money = ""; if (disabled.value) { money = choosedMoney.value; } else { money = otherMoney.value; } - console.log("money", money); + await api_index.wxPayApi({ businessType: 1, tradeAmount: money }).then((res) => { + console.log("reswxpay", res); + common_vendor.wx$1.requestPayment({ + //预支付订单信息 + // appId: res.data.appId, + timeStamp: res.data.timeStamp, + //时间戳 + nonceStr: res.data.nonceStr, + //随机串 + package: res.data.package, + //prepay_id + signType: res.data.signType, + //签名算法MD5 + paySign: res.data.paySign, + //微信签名 + success(res2) { + if (res2.errMsg == "requestPayment:ok") { + console.log("支付成功", res2); + } else { + console.log("支付失败"); + } + }, + fail(res2) { + console.log("支付失败", res2); + } + }); + }); } return (_ctx, _cache) => { return { @@ -88,8 +106,7 @@ a: item.img, b: common_vendor.t(item.text), c: item.value, - d: item.checked, - e: common_vendor.o(($event) => choosePay(index)) + d: item.checked }; }), h: common_vendor.o(($event) => submit()) diff --git a/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml b/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml index f4524c0..d0c5a29 100644 --- a/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml @@ -1 +1 @@ -<view class="container data-v-f06186df"><navbar wx:if="{{a}}" class="data-v-f06186df" u-i="f06186df-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="content data-v-f06186df"><view class="main data-v-f06186df"><view class="money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">充值金额</view></view><view class="money-list data-v-f06186df"><block wx:for="{{b}}" wx:for-item="item" wx:key="d"><view class="money-box data-v-f06186df" style="{{item.b}}" bindtap="{{item.c}}">¥{{item.a}}</view></block></view></view><view class="other-money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">其他金额</view></view><view class="money-input data-v-f06186df"><input class="data-v-f06186df" disabled="{{c}}" focus="{{d}}" placeholder="请输入其他金额" value="{{e}}" bindinput="{{f}}"/></view></view><view class="pay-methods data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">请选择支付方式</view></view><view class="methods-list data-v-f06186df"><block wx:for="{{g}}" wx:for-item="item"><view class="pay-item data-v-f06186df"><view class="pay-item-right data-v-f06186df"><image class="data-v-f06186df" src="{{item.a}}" alt=""></image><view class="data-v-f06186df">{{item.b}}</view></view><radio class="data-v-f06186df" value="{{item.c}}" checked="{{item.d}}" bindtap="{{item.e}}"/></view></block></view></view></view><view class="submit-btn data-v-f06186df" bindtap="{{h}}">立即充值</view></view></view> \ No newline at end of file +<view class="container data-v-f06186df"><navbar wx:if="{{a}}" class="data-v-f06186df" u-i="f06186df-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="content data-v-f06186df"><view class="main data-v-f06186df"><view class="money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">充值金额</view></view><view class="money-list data-v-f06186df"><block wx:for="{{b}}" wx:for-item="item" wx:key="d"><view class="money-box data-v-f06186df" style="{{item.b}}" bindtap="{{item.c}}">¥{{item.a}}</view></block></view></view><view class="other-money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">其他金额</view></view><view class="money-input data-v-f06186df"><input class="data-v-f06186df" disabled="{{c}}" focus="{{d}}" placeholder="请输入其他金额" value="{{e}}" bindinput="{{f}}"/></view></view><view class="pay-methods data-v-f06186df"><view class="methods-list data-v-f06186df"><block wx:for="{{g}}" wx:for-item="item"><view class="pay-item data-v-f06186df"><view class="pay-item-right data-v-f06186df"><image class="data-v-f06186df" src="{{item.a}}" alt=""></image><view class="data-v-f06186df">{{item.b}}</view></view><radio class="data-v-f06186df" value="{{item.c}}" checked="{{item.d}}"/></view></block></view></view></view><view class="submit-btn data-v-f06186df" bindtap="{{h}}">立即充值</view></view></view> \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js b/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js index 15947bb..9e57bd7 100644 --- a/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js @@ -16,7 +16,7 @@ url: "/pages/preSendWater/index" }); } - const isComplete = common_vendor.ref(true); + const isComplete = common_vendor.ref(false); const isActive = common_vendor.ref({ borderBottom: `3px solid #226AC9` }); function swatch(val) { if (val == 1 && !isComplete.value || val == 2 && isComplete.value) diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/card1.png b/unpackage/dist/dev/mp-weixin/static/images/index/card1.png deleted file mode 100644 index 7c773f4..0000000 --- a/unpackage/dist/dev/mp-weixin/static/images/index/card1.png +++ /dev/null Binary files differ -- Gitblit v1.9.3