| | |
| | | <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({ |
| | |
| | | }) |
| | | }, |
| | | 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"); |
| | |
| | | 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') |
| | | } |
| | | |
| | |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/paymentRecord/index", |
| | | "style": { |
| | | "navigationStyle":"custom" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/scanWater/index", |
| | | "style": { |
| | | "navigationStyle":"custom" |
| | |
| | | "style": { |
| | | "navigationStyle":"custom" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/station/index", |
| | | "style": { |
| | | "navigationStyle":"custom" |
| | | } |
| | | } |
| | | ], |
| | | "globalStyle": { |
| | |
| | | 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 |
| | | }) |
| | |
| | | <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> |
| | |
| | | <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="请输入内容"/> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | | |
| | |
| | | * 会员卡相关 |
| | | */ |
| | | const cardInfo = ref({ |
| | | id:'', |
| | | userName:'', |
| | | headImg:'', |
| | | |
| | |
| | | //获取会员卡信息 |
| | | 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)) |
| | | } |
| | | /** |
| | | * 扫码取水相关 |
| | |
| | | uni.scanCode({ |
| | | scanType: ['qrCode'], |
| | | success: function (res) { |
| | | console.log('条码类型:' + res.scanType); |
| | | console.log('条码内容:' + res.result); |
| | | uni.navigateTo({ |
| | | url:'/pages/scanWater/index' |
| | |
| | | */ |
| | | 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:''}, |
| | |
| | | }) |
| | | } |
| | | } |
| | | //获取用户地理位置 |
| | | 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() |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | padding-left:15rpx; |
| | | box-sizing: border-box; |
| | | margin-bottom: 14rpx; |
| | | display:flex; |
| | | position:relative; |
| | | .user-img{ |
| | | width:90rpx; |
| | | height:90rpx; |
| | |
| | | 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%; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | <script setup> |
| | | import{ ref ,onMounted} from 'vue' |
| | | import { wxPayApi } from '../../api/index.js' |
| | | |
| | | const choosedMoney = ref() |
| | | const disabled = ref(true) |
| | |
| | | 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> |
| | |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | 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)){ |
| | |
| | | <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"> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | 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%; |
| | |
| | | box-sizing: border-box; |
| | | font-size: 32rpx; |
| | | color: #343434; |
| | | view:first-child{ |
| | | .info-img{ |
| | | width:100%; |
| | | display: flex; |
| | | justify-content:space-between; |
| | |
| | | border-radius: 50rpx; |
| | | } |
| | | } |
| | | view:last-child{ |
| | | .info-name{ |
| | | width:100%; |
| | | display: flex; |
| | | justify-content:space-between; |
| | |
| | | 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> |
| | |
| | | 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; |
| | |
| | | "./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"; |
| | |
| | | "./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({ |
| | |
| | | }); |
| | | }, |
| | | 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"); |
| | |
| | | "pages/addCard/index", |
| | | "pages/userInfo/index", |
| | | "pages/balanceRecord/index", |
| | | "pages/paymentRecord/index", |
| | | "pages/scanWater/index", |
| | | "pages/recharge/index", |
| | | "pages/sendWater/index", |
| | |
| | | "pages/addressAdd/index", |
| | | "pages/addressLocate/index", |
| | | "pages/success/index", |
| | | "pages/facilityList/index" |
| | | "pages/facilityList/index", |
| | | "pages/station/index" |
| | | ], |
| | | "window": { |
| | | "navigationStyle": "custom" |
| | |
| | | "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; |
| | |
| | | "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; |
| | |
| | | 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 |
| | | }); |
| | |
| | | }), |
| | | 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()) |
| | | }; |
| | | }; |
| | | } |
| | |
| | | <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> |
| | | <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> |
| | |
| | | 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()) |
| | | }; |
| | | }; |
| | |
| | | } |
| | | } |
| | | const cardInfo = common_vendor.ref({ |
| | | id: "", |
| | | userName: "", |
| | | headImg: "", |
| | | waterCardNumber: "", |
| | |
| | | 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" |
| | |
| | | } |
| | | 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: "" }, |
| | |
| | | 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), |
| | |
| | | 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 |
| | | }; |
| | | }; |
| | | } |
| | |
| | | <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> |
| | | <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> |
| | |
| | | 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; |
| | |
| | | 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%; |
| | |
| | | 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%; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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%; |
| | |
| | | "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(); |
| | |
| | | } |
| | | } |
| | | 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 { |
| | |
| | | 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()) |
| | |
| | | <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> |
| | | <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> |
| | |
| | | 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) |