支付宝优化更新
This commit is contained in:
4
App.vue
4
App.vue
@@ -10,9 +10,7 @@
|
||||
queueId: null,
|
||||
},
|
||||
onLaunch: function(options) {
|
||||
console.log(3333)
|
||||
console.log(options)
|
||||
if ( options.query.qrCode ) {
|
||||
if ( options.query&&options.query.qrCode ) {
|
||||
if (this.getQueryString(options.query.qrCode, 'code')) {
|
||||
this.globalData.tableCode = this.getQueryString(options.query.qrCode, 'code')
|
||||
}
|
||||
|
||||
@@ -82,7 +82,12 @@
|
||||
//处理按键
|
||||
_handleKeyPress(e) {
|
||||
// console.log('点击传e', e.target.dataset.num);
|
||||
// #ifdef MP-WEIXIN
|
||||
let num = e.target.dataset.num;
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
let num = e.target.targetDataset.num;
|
||||
// #endif
|
||||
//不同按键处理逻辑
|
||||
// -1 代表无效按键,直接返回
|
||||
if (num == -1) return false;
|
||||
@@ -154,6 +159,7 @@
|
||||
// this.money = S + num;
|
||||
// }
|
||||
// }
|
||||
console.log(num)
|
||||
if (this.money.length == 6) {
|
||||
this.$emit('confirmEvent', this.money); //提交参数
|
||||
return
|
||||
|
||||
@@ -6,22 +6,22 @@
|
||||
</view>
|
||||
<view class="pay-password" @click="onPayUp">
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 1">●</text>
|
||||
<text v-if="passwordArr.length >= 1">●</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 2">●</text>
|
||||
<text v-if="passwordArr.length >= 2">●</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 3">●</text>
|
||||
<text v-if="passwordArr.length >= 3">●</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 4">●</text>
|
||||
<text v-if="passwordArr.length >= 4">●</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 5">●</text>
|
||||
<text v-if="passwordArr.length >= 5">●</text>
|
||||
</view>
|
||||
<view class="list">
|
||||
<text v-show="passwordArr.length >= 6">●</text>
|
||||
<text v-if="passwordArr.length >= 6">●</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="hint" @click="gopaypassword">
|
||||
@@ -67,8 +67,8 @@
|
||||
* @param {Object} val
|
||||
*/
|
||||
KeyInfo(val) {
|
||||
|
||||
if (val.index >= 6) {
|
||||
console.log(val)
|
||||
if (val.index&&val.index >= 6) {
|
||||
return;
|
||||
}
|
||||
// 判断是否输入的是删除键
|
||||
|
||||
@@ -7,22 +7,22 @@
|
||||
</view>
|
||||
<view class="contentbox flex-between">
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 1">●</text>
|
||||
<text v-if="consumeFee.length >= 1">●</text>
|
||||
</view>
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 2">●</text>
|
||||
<text v-if="consumeFee.length >= 2">●</text>
|
||||
</view>
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 3">●</text>
|
||||
<text v-if="consumeFee.length >= 3">●</text>
|
||||
</view>
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 4">●</text>
|
||||
<text v-if="consumeFee.length >= 4">●</text>
|
||||
</view>
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 5">●</text>
|
||||
<text v-if="consumeFee.length >= 5">●</text>
|
||||
</view>
|
||||
<view class="contentboxitem flex-colum">
|
||||
<text v-show="consumeFee.length >= 6">●</text>
|
||||
<text v-if="consumeFee.length >= 6">●</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -56,7 +56,7 @@
|
||||
},
|
||||
watch: {
|
||||
consumeFee(newVal, oldVal) {
|
||||
|
||||
console.log(this.consumeFee)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -6,8 +6,10 @@ const proxyApi = "/api"
|
||||
// const proxyApi = 'http://192.168.1.15:9888/cashierService' // 王伟
|
||||
// const proxyApi = 'http://192.168.1.27:9888/cashierService' // 帆哥
|
||||
// const proxyApiwws = 'ws://192.168.1.15:9888/netty' // 测试
|
||||
const proxyApi = 'https://wxcashiertest.sxczgkj.cn/cashierService' // 测试
|
||||
const proxyApiwws = 'wss://wxcashiertest.sxczgkj.cn/netty' // 测试
|
||||
// const proxyApi = 'https://wxcashiertest.sxczgkj.cn/cashierService' // 测试
|
||||
// const proxyApiwws = 'wss://wxcashiertest.sxczgkj.cn/netty' // 测试
|
||||
const proxyApi = 'https://cashier.sxczgkj.cn/cashierService' // 线上
|
||||
const proxyApiwws = 'wss://cashier.sxczgkj.cn/netty' // 线上
|
||||
// #endif
|
||||
|
||||
// #ifdef H5
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="towcontent flex-between">
|
||||
<view class="towcontent_item flex-colum" v-for="(item,index) in district" :key="index"
|
||||
<view v-if="(item.absUrl!=''||item.jumpType=='scan')&&item.name!='积分商城'" class="towcontent_item flex-colum" v-for="(item,index) in district" :key="index"
|
||||
@click="clickdistrict(item,index)">
|
||||
<image :src="item.coverImg" mode="aspectFill"></image>
|
||||
<text>{{item.name}}</text>
|
||||
@@ -31,7 +31,7 @@
|
||||
},
|
||||
methods: {
|
||||
clickdistrict(item) {
|
||||
// console.log(item,'调试')
|
||||
console.log(item,'调试')
|
||||
switch (item.jumpType) {
|
||||
case 'absolute':
|
||||
uni.pro.navigateTo('webview/webview', {
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<button class="getPhone" open-type="getAuthorize" scope='phoneNumber' @getAuthorize="getPhone" @error="getPhoneError">
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="text">{{phonetitle || '获取微信手机号'}}</view>
|
||||
<view class="text">{{'获取微信手机号'}}</view>
|
||||
</button>
|
||||
</view>
|
||||
<view class="agreement">
|
||||
@@ -202,7 +202,6 @@
|
||||
uni.login({
|
||||
provider: 'weixin',
|
||||
success: async (data) => {
|
||||
console.log(data)
|
||||
let res = await this.api.userwxlogins({
|
||||
code: data.code,
|
||||
encryptedData: d.detail.encryptedData,
|
||||
@@ -222,36 +221,12 @@
|
||||
console.log(res)
|
||||
my.getPhoneNumber({
|
||||
success: async (data) => {
|
||||
console.log(data)
|
||||
let res = await this.api.userwxlogins({
|
||||
encryptedData: JSON.parse(data.response).response,
|
||||
source: "alipay"
|
||||
})
|
||||
this.phonetitle = res.data.substr(0, 3) + "****" + res.data.substr(7)
|
||||
this.mobile = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-ALIPAY
|
||||
// 支付宝小程序环境
|
||||
my.getAuthCode({
|
||||
scopes: 'auth_user',
|
||||
success: (res) => {
|
||||
console.log(res)
|
||||
let authCode = res.authCode;
|
||||
my.getPhoneNumber({
|
||||
success: async (data) => {
|
||||
let res = await this.api.userwxlogins({
|
||||
// code: authCode,
|
||||
encryptedData: JSON.parse(data.response).response,
|
||||
source: "alipay"
|
||||
})
|
||||
this.phonetitle = res.data.substr(0, 3) + "****" + res.data.substr(7)
|
||||
this.mobile = res.data;
|
||||
console.log(this.phonetitle)
|
||||
this.telephone = res.data
|
||||
// console.log(this.phonetitle)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
723
pages/member/index - 副本.vue
Normal file
723
pages/member/index - 副本.vue
Normal file
@@ -0,0 +1,723 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
|
||||
<view class="location" @click="openLocation">
|
||||
<image class="location_icon" src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/location.png" mode="aspectFill"></image>
|
||||
<view>{{ shopUserInfo.shopName }}</view>
|
||||
<u-icon name="arrow-right" color="#575B66" size="28"></u-icon>
|
||||
</view>
|
||||
|
||||
<view class="card_info flex-colum">
|
||||
<view class="title">账户余额(元)</view>
|
||||
<view class="card_info_con flex-between">
|
||||
<view class="balance">{{shopUserInfo.amount || '0.00'}}</view>
|
||||
<view class="card_info_con_right flex-end">
|
||||
<view class ="card_info_con_right_item flex-colum" @click="handleClick(item)" v-for="(item,index) in cardManageList" :key="index">
|
||||
<image class="card_info_con_right_item_icon" :src="item.icon" mode="aspectFill"></image>
|
||||
<text class="card_info_con_right_item_text">{{item.name}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="customAmount" v-if="shopUserInfo.isUser == 1">
|
||||
<view class="customAmount_left">
|
||||
<text class="customAmount_left_tip">¥</text>
|
||||
<u-input
|
||||
type="number"
|
||||
v-model="amount"
|
||||
inputAlign="left"
|
||||
:placeholder="`充${amount}送${giftAmount}`"
|
||||
:customStyle="{border: '0'}"
|
||||
@input="amountChange"
|
||||
></u-input>
|
||||
</view>
|
||||
<text class="customAmount_right">自定义金额</text>
|
||||
</view>
|
||||
<view class="rechargeList">
|
||||
<view class="rechargeList_f" @click="clickinput(item,index)" v-for="(item,index) in listdata" :key="index">
|
||||
<view class="rechargeList_item flex-colum " :class="index === inputshow?'active':''">
|
||||
<view class="rechargeList_item_title">充值</view>
|
||||
<view class="flex-colum-start">
|
||||
<view class="rechargeList_item_amount">¥<text>{{item.amount}}</text></view>
|
||||
<view class="rechargeList_item_gift" v-show="index === inputshow">
|
||||
<image class="rechargeList_item_gift_bg" src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/gift_icon.png" mode="aspectFill"></image>
|
||||
<view class="rechargeList_item_gift_text">
|
||||
<text>赠{{inputshow}}</text>
|
||||
<text>¥{{ item.giftAmount }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rechargeList_item_handsel" v-show="index !== inputshow">赠送{{item.giftAmount}}元</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="gift" v-if="giftList && giftList.length > 0">
|
||||
<view class="gift_title">您将获得:</view>
|
||||
<view class="gift_list">
|
||||
<view class="gift_list_item" v-for="(item,index) in giftList" :key="index">
|
||||
<text class="icon"></text>
|
||||
<text class="text"> {{ item }} </text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="explain">
|
||||
<view class="explain-top flex-between">
|
||||
<text class="explain-top_title">适用门店</text>
|
||||
<text class="shopName">{{ shopUserInfo.shopName }}</text>
|
||||
</view>
|
||||
<view class="explain_content">
|
||||
<text class="explain_content_title">充值说明</text>
|
||||
<text class="explain_content_text">1.充值金额1家门店可用</text>
|
||||
<text class="explain_content_text">2.储值完成后不支持自助退款,可联系商家处理</text>
|
||||
<text class="explain_content_text">3.钱包余额不支持转赠,不可提现,长期有效</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="rechargeBox">
|
||||
<view class="agreement" @click="isProtocol = !isProtocol">
|
||||
<u-checkbox-group >
|
||||
<u-checkbox :checked="isProtocol" shape="circle" activeColor="#E3AD7F" @change="radioChange" size="35" iconSize="20">
|
||||
</u-checkbox>
|
||||
</u-checkbox-group>
|
||||
<text>已同意</text>
|
||||
<text class="agreement_text" @click.stop="viewProtocol">《用户隐私协议》</text>
|
||||
<!-- <text class="agreement_text" @click="viewProtocol">《用户储值协议》</text> -->
|
||||
<!-- <text class="agreement_text" @click="viewProtocol">《用户授权协议》</text> -->
|
||||
</view>
|
||||
<view class="recharge" @tap="$u.debounce(userbalancerechangesub, 500)">立即充值</view>
|
||||
</view>
|
||||
<registermember :show="memberOpen" :shopId="shopId" @getRegisterMember="getRegisterMember"></registermember>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import registermember from './components/registermember.vue'
|
||||
export default {
|
||||
components: {
|
||||
registermember
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
inputshow: 0,
|
||||
memberOpen: false,
|
||||
isProtocol: false,
|
||||
listdata: [],
|
||||
amount: 0,
|
||||
giftAmount: 0,
|
||||
userInfo: {},
|
||||
shopUserInfo: null,
|
||||
shopId: '',
|
||||
giftList: [],
|
||||
cardManageList: [
|
||||
{name: "明细", url: "member/billDetails",icon: "https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/detail.png"},
|
||||
{name: "管理", url: "member/storedManage",icon: "https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/manage.png"}
|
||||
],
|
||||
type: "",
|
||||
}
|
||||
},
|
||||
async onLoad(options) {
|
||||
// if ( e.type == 'list' || e.type == 'index') {
|
||||
// this.shopId = e.shopId;
|
||||
// this.init();
|
||||
// }
|
||||
|
||||
uni.cache.set('forceUpdate',1)
|
||||
// #ifdef MP-WEIXIN
|
||||
if (options.q) {
|
||||
this.shopId = this.getQueryString(decodeURIComponent(options.q), 'shopId')
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
this.tokenShow = false;
|
||||
}
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
if (getApp().globalData.shopId) { this.shopId = getApp().globalData.shopId }
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
// #endif
|
||||
|
||||
if (options.shopId) {
|
||||
this.shopId = options.shopId
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
}
|
||||
if (options.type) {
|
||||
this.type = options.type
|
||||
}
|
||||
if ( options.amount ) { this.amount = options.amount; }
|
||||
this.shopInfo();
|
||||
this.paygetActive()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 初始化
|
||||
*/
|
||||
async shopInfo() {
|
||||
let res = await this.api.shopUserInfo({
|
||||
shopId: this.shopId,
|
||||
userId: uni.cache.get('userInfo').id,
|
||||
})
|
||||
if (res.code == 0) {
|
||||
this.shopUserInfo = res.data;
|
||||
uni.cache.remove('memberOpen',this.memberOpen)
|
||||
if ( this.shopUserInfo.isVip == 0 ) {
|
||||
this.memberOpen = true;
|
||||
uni.cache.set('memberOpen',this.memberOpen)
|
||||
}
|
||||
} else {
|
||||
let pages = getCurrentPages()
|
||||
if ( pages.length > 1) {
|
||||
uni.navigateBack()
|
||||
} else {
|
||||
setTimeout(res => {
|
||||
uni.exitMiniProgram({
|
||||
success: function() {
|
||||
console.log('退出小程序成功');
|
||||
},
|
||||
fail: function(err) {
|
||||
console.log('退出小程序失败', err);
|
||||
}
|
||||
})
|
||||
}, 500)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
this.$forceUpdate();
|
||||
console.log(this.memberOpen)
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取充值金额列表
|
||||
*/
|
||||
async paygetActive() {
|
||||
let res = await this.api.paygetActive({
|
||||
shopId: this.shopId,
|
||||
page: 1,
|
||||
pageSize: 99
|
||||
})
|
||||
|
||||
try {
|
||||
this.listdata = res.data.list;
|
||||
this.giftList = this.listdata[0].gives;
|
||||
this.giftAmount = this.listdata[0].giftAmount
|
||||
if ( this.type == 'topUpActivity') {
|
||||
this.amountChange()
|
||||
} else {
|
||||
this.amount = this.listdata[0].amount;
|
||||
}
|
||||
} catch (e) {
|
||||
//TODO handle the exception
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 监听金额修改
|
||||
*/
|
||||
amountChange () {
|
||||
let item = this.listdata.filter(item=>this.amount==item.amount)
|
||||
|
||||
if ( item.length > 0 ) {
|
||||
this.listdata.forEach((v,e)=>{
|
||||
if ( this.amount == v.amount) {
|
||||
this.inputshow = e;
|
||||
this.clickinput(v,e)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.inputshow = '';
|
||||
this.giftList = [];
|
||||
this.giftAmount = '';
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 进入明细\管理
|
||||
* @param {Object} e
|
||||
*/
|
||||
handleClick (item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/${item.url}?shopUserInfo=${JSON.stringify(this.shopUserInfo)}`
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 查看协议
|
||||
*/
|
||||
viewProtocol (){
|
||||
wx.openPrivacyContract({
|
||||
success: () => {}, // 打开成功
|
||||
fail: () => {}, // 打开失败
|
||||
complete: () => {}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 是否同意协议
|
||||
* @param {Object} n
|
||||
*/
|
||||
radioChange(n) {
|
||||
this.isProtocol = n;
|
||||
},
|
||||
|
||||
/**
|
||||
* 注册会员卡
|
||||
* @param {Object} e
|
||||
*/
|
||||
getRegisterMember (e) {
|
||||
this.memberOpen = e;
|
||||
this.shopInfo();
|
||||
this.paygetActive()
|
||||
},
|
||||
|
||||
/**
|
||||
* 拉起地图
|
||||
*/
|
||||
openLocation () {
|
||||
console.log('123');
|
||||
uni.openLocation({
|
||||
latitude: Number(this.shopUserInfo.lat), // 目的地的纬度,浮点数,范围为-90~90
|
||||
longitude: Number(this.shopUserInfo.lng), // 目的地的经度,浮点数,范围为-180~180
|
||||
scale: 18, // 缩放比例,范围5~18
|
||||
name: this.shopUserInfo.shopName, // 位置名
|
||||
address: this.shopUserInfo.address, // 地址的详细说明
|
||||
success() {
|
||||
console.log('导航启动成功');
|
||||
|
||||
},
|
||||
fail(error) {
|
||||
console.log('导航启动失败', error);
|
||||
if ( error.errMsg == "openLocation:fail invalid_coordinate") {
|
||||
uni.showToast({
|
||||
title: "门店经纬度无效",
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 解析地址传参
|
||||
* @param {Object} url
|
||||
* @param {Object} name
|
||||
*/
|
||||
getQueryString(url, name) { //解码
|
||||
var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
|
||||
var r = url.substr(1).match(reg)
|
||||
if (r != null) {
|
||||
return r[2]
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
/**
|
||||
* 充值金额切换
|
||||
* @param {Object} a
|
||||
* @param {Object} b
|
||||
*/
|
||||
clickinput(a, b) {
|
||||
this.inputshow = b;
|
||||
this.giftList = a.gives;
|
||||
this.amount = a.amount;
|
||||
this.giftAmount = a.giftAmount;
|
||||
},
|
||||
|
||||
/**
|
||||
* 充值
|
||||
*/
|
||||
async userbalancerechangesub() {
|
||||
let _this = this;
|
||||
if (!this.isProtocol) {
|
||||
uni.showToast({
|
||||
title: '请勾选协议',
|
||||
icon: 'none'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (this.amount == null || this.amount == '') {
|
||||
uni.showToast({
|
||||
title: '金额不能为空',
|
||||
icon: 'none'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (this.amount <= 0) {
|
||||
uni.showToast({
|
||||
title: '金额必须大于0',
|
||||
icon: 'none'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
let res = await this.api.paymemeberIn({
|
||||
shopId: this.shopId, // 判断显示哪家的作品,
|
||||
amount: this.amount // 判断显示哪家的作品,
|
||||
})
|
||||
if (res.code == 0) {
|
||||
uni.showLoading({
|
||||
title: '加载中',
|
||||
mask: true
|
||||
})
|
||||
// #ifdef MP-WEIXIN
|
||||
uni.requestPayment({
|
||||
provider: 'wxpay', //支付类型-固定值
|
||||
partnerid: res.data.appId, // 微信支付商户号
|
||||
timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
|
||||
nonceStr: res.data.nonceStr, // 随机字符串
|
||||
package: res.data.package, // 固定值
|
||||
signType: res.data.signType, //固定值
|
||||
paySign: res.data.paySign, //签名
|
||||
success: (res) => {
|
||||
uni.showToast({
|
||||
title: "支付成功"
|
||||
})
|
||||
uni.hideLoading()
|
||||
let pages = getCurrentPages()
|
||||
uni.requestSubscribeMessage({
|
||||
tmplIds:["AV-KybUHaK3KtFVLqpy6PHccHBS7XeX__mOM4RbufnQ"],
|
||||
complete() {
|
||||
if ( _this.type && _this.type == "topUpActivity") {
|
||||
uni.pro.navigateBack()
|
||||
} else {
|
||||
if ( pages.length > 1) {
|
||||
_this.shopInfo()
|
||||
} else {
|
||||
setTimeout(res => {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
|
||||
},
|
||||
fail: (res) => {
|
||||
uni.hideLoading()
|
||||
}
|
||||
});
|
||||
uni.hideLoading()
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background: #F9F9F9;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 16rpx 20rpx 245rpx 20rpx;
|
||||
|
||||
.location{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
padding: 16rpx 28rpx 18rpx 28rpx;
|
||||
margin-bottom: 32rpx;
|
||||
border-radius: 12rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
.location_icon{
|
||||
width: 20rpx;
|
||||
height: 26rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.card_info{
|
||||
width: 100%;
|
||||
height: 182rpx;
|
||||
background: linear-gradient( 132deg, #D6B68D 0%, #E6D6BC 100%);
|
||||
border-radius: 12rpx;
|
||||
padding: 32rpx 28rpx;
|
||||
align-items: initial;
|
||||
margin-bottom: 26rpx;
|
||||
.title{
|
||||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.card_info_con{
|
||||
align-items: flex-end;
|
||||
.balance{
|
||||
font-weight: 400;
|
||||
font-size: 48rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.card_info_con_right{
|
||||
.card_info_con_right_item{
|
||||
margin-left: 64rpx;
|
||||
.card_info_con_right_item_icon{
|
||||
width: 40rpx;
|
||||
height: 36rpx;
|
||||
margin-bottom: 5rpx;
|
||||
}
|
||||
.card_info_con_right_item_text{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.customAmount{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 32rpx;
|
||||
padding: 14rpx 16rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 8rpx;
|
||||
.customAmount_left{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.customAmount_left_tip{
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
input{
|
||||
width: 100%;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
padding-left: 16rpx;
|
||||
}
|
||||
}
|
||||
.customAmount_right{
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rechargeList{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.rechargeList_f{
|
||||
width: 33.333%;
|
||||
margin-bottom: 30rpx;
|
||||
padding-right: 20rpx;
|
||||
padding-left: 0;
|
||||
.rechargeList_item{
|
||||
border-radius: 0rpx 48rpx 0rpx 0rpx;
|
||||
border: 4rpx solid #E5E5E5;
|
||||
align-items: initial;
|
||||
padding: 26rpx 22rpx;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
.rechargeList_item_title{
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.rechargeList_item_title,.rechargeList_item_handsel{
|
||||
font-weight: 400;
|
||||
font-size: 20rpx;
|
||||
color: #999999;
|
||||
}
|
||||
.rechargeList_item_amount{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
text{
|
||||
font-size: 44rpx;
|
||||
font-weight: bold;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
.rechargeList_item_handsel{
|
||||
|
||||
}
|
||||
.rechargeList_item_gift{
|
||||
width: 92.52rpx;
|
||||
height: 88.74rpx;
|
||||
position: absolute;
|
||||
top: 12rpx;
|
||||
right: 12rpx;
|
||||
.rechargeList_item_gift_bg{
|
||||
width: 92.52rpx;
|
||||
height: 88.74rpx;
|
||||
position: absolute;
|
||||
}
|
||||
.rechargeList_item_gift_text{
|
||||
width: 92.52rpx;
|
||||
height: 88.74rpx;
|
||||
position: absolute;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text:nth-child(1){
|
||||
font-weight: bold;
|
||||
font-size: 20rpx;
|
||||
color: #fff;
|
||||
}
|
||||
text:nth-child(2){
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.rechargeList_item.active{
|
||||
border: 4rpx solid #DCC19E;
|
||||
background: linear-gradient( 133deg, #F9F6ED 0%, #FFFFFF 100%);
|
||||
.rechargeList_item_title{
|
||||
color: #F7664E;
|
||||
margin-bottom: 47rpx;
|
||||
}
|
||||
.rechargeList_item_amount{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #FB604A;
|
||||
text{
|
||||
font-size: 44rpx;
|
||||
font-weight: bold;
|
||||
color: #FB604A;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rechargeList_f:nth-child(3n-1){
|
||||
padding-right: 10rpx;
|
||||
padding-left: 10rpx;
|
||||
}
|
||||
.rechargeList_f:nth-child(3n){
|
||||
padding-right: 0;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.gift{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 22rpx;
|
||||
margin-bottom: 48rpx;
|
||||
.gift_title{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.gift_list{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.gift_list_item{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.icon{
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
border-radius: 50%;
|
||||
background-color: #F7853D;
|
||||
margin-right: 8rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.text{
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.explain{
|
||||
background-color: #fff;
|
||||
border-radius: 12rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 22rpx 24rpx;
|
||||
margin-bottom: 30rpx;
|
||||
.explain-top{
|
||||
// align-items: center;
|
||||
margin-bottom: 18rpx;
|
||||
.explain-top_title{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.shopName{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
.explain_content{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.explain_content_title{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.explain_content_text{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
margin-bottom: 14rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rechargeBox{
|
||||
width: 100%;
|
||||
padding: 0 28rpx 84rpx 28rpx;
|
||||
background-color: #fff;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
.agreement{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-top: 16rpx;
|
||||
padding-bottom: 20rpx;
|
||||
text{
|
||||
font-size: 24rpx;
|
||||
}
|
||||
.agreement_text{
|
||||
color: #E3AD7F;
|
||||
}
|
||||
}
|
||||
.recharge {
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #FFFFFF;
|
||||
border-radius: 12rpx;
|
||||
background: #E3AD7F;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -27,27 +27,26 @@
|
||||
type="number"
|
||||
v-model="amount"
|
||||
inputAlign="left"
|
||||
:placeholder="`充${amount}送${giftAmount}`"
|
||||
:placeholder="`充${minNum}送${handselNum}`"
|
||||
:customStyle="{border: '0'}"
|
||||
@input="amountChange"
|
||||
></u-input>
|
||||
</view>
|
||||
<text class="customAmount_right">自定义金额</text>
|
||||
</view>
|
||||
<view class="rechargeList">
|
||||
<view class="rechargeList_f" @click="clickinput(item,index)" v-for="(item,index) in listdata" :key="index">
|
||||
<view class="rechargeList_item flex-colum " :class="index === inputshow?'active':''">
|
||||
<view class="rechargeList_item flex-colum " :class="index == inputshow?'active':''">
|
||||
<view class="rechargeList_item_title">充值</view>
|
||||
<view class="flex-colum-start">
|
||||
<view class="rechargeList_item_amount">¥<text>{{item.amount}}</text></view>
|
||||
<view class="rechargeList_item_gift" v-show="index === inputshow">
|
||||
<view class="rechargeList_item_amount">¥<text>{{item.minNum}}</text></view>
|
||||
<view class="rechargeList_item_gift" v-show="index == inputshow">
|
||||
<image class="rechargeList_item_gift_bg" src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/gift_icon.png" mode="aspectFill"></image>
|
||||
<view class="rechargeList_item_gift_text">
|
||||
<text>赠{{inputshow}}</text>
|
||||
<text>¥{{ item.giftAmount }}</text>
|
||||
<text>赠</text>
|
||||
<text>¥{{ item.handselNum }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rechargeList_item_handsel" v-show="index !== inputshow">赠送{{item.giftAmount}}元</view>
|
||||
<view class="rechargeList_item_handsel" v-show="index != inputshow">赠送{{item.handselNum}}元</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@@ -109,7 +108,8 @@
|
||||
isProtocol: false,
|
||||
listdata: [],
|
||||
amount: 0,
|
||||
giftAmount: 0,
|
||||
minNum: 0,
|
||||
handselNum: 0,
|
||||
userInfo: {},
|
||||
shopUserInfo: null,
|
||||
shopId: '',
|
||||
@@ -118,38 +118,33 @@
|
||||
{name: "明细", url: "member/billDetails",icon: "https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/detail.png"},
|
||||
{name: "管理", url: "member/storedManage",icon: "https://czg-qr-order.oss-cn-beijing.aliyuncs.com/menber/manage.png"}
|
||||
],
|
||||
type: "",
|
||||
|
||||
}
|
||||
},
|
||||
async onLoad(options) {
|
||||
async onLoad(e) {
|
||||
// if ( e.type == 'list' || e.type == 'index') {
|
||||
// this.shopId = e.shopId;
|
||||
// this.init();
|
||||
// }
|
||||
|
||||
console.log(e)
|
||||
uni.cache.set('forceUpdate',1)
|
||||
// #ifdef MP-WEIXIN
|
||||
if (options.q) {
|
||||
this.shopId = this.getQueryString(decodeURIComponent(options.q), 'shopId')
|
||||
if (e.q) {
|
||||
this.shopId = this.getQueryString(decodeURIComponent(e.q), 'shopId')
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
this.tokenShow = false;
|
||||
}
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
if (getApp().globalData.shopId) { this.shopId = getApp().globalData.shopId }
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
// #endif
|
||||
|
||||
if (options.shopId) {
|
||||
this.shopId = options.shopId
|
||||
// 等待登录结果返回
|
||||
// if (!uni.cache.get('token')) {
|
||||
// await this.$onLaunched;
|
||||
// }
|
||||
this.shopInfo();
|
||||
this.paygetActive()
|
||||
} else{
|
||||
this.shopId = e.shopId;
|
||||
uni.cache.set('shopId',this.shopId)
|
||||
this.shopInfo();
|
||||
this.paygetActive()
|
||||
}
|
||||
if (options.type) {
|
||||
this.type = options.type
|
||||
}
|
||||
if ( options.amount ) { this.amount = options.amount; }
|
||||
this.shopInfo();
|
||||
this.paygetActive()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
@@ -198,44 +193,20 @@
|
||||
let res = await this.api.paygetActive({
|
||||
shopId: this.shopId,
|
||||
page: 1,
|
||||
pageSize: 99
|
||||
pageSize: 10
|
||||
})
|
||||
|
||||
try {
|
||||
this.listdata = res.data.list;
|
||||
this.giftList = this.listdata[0].gives;
|
||||
this.giftAmount = this.listdata[0].giftAmount
|
||||
if ( this.type == 'topUpActivity') {
|
||||
this.amountChange()
|
||||
} else {
|
||||
this.amount = this.listdata[0].amount;
|
||||
}
|
||||
this.amount = this.listdata[0].minNum;
|
||||
this.minNum = this.listdata[0].minNum;
|
||||
this.handselNum = this.listdata[0].handselNum
|
||||
} catch (e) {
|
||||
//TODO handle the exception
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 监听金额修改
|
||||
*/
|
||||
amountChange () {
|
||||
let item = this.listdata.filter(item=>this.amount==item.amount)
|
||||
|
||||
if ( item.length > 0 ) {
|
||||
this.listdata.forEach((v,e)=>{
|
||||
if ( this.amount == v.amount) {
|
||||
this.inputshow = e;
|
||||
this.clickinput(v,e)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.inputshow = '';
|
||||
this.giftList = [];
|
||||
this.giftAmount = '';
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 进入明细\管理
|
||||
* @param {Object} e
|
||||
@@ -324,10 +295,12 @@
|
||||
* @param {Object} b
|
||||
*/
|
||||
clickinput(a, b) {
|
||||
console.log(a, b)
|
||||
this.inputshow = b;
|
||||
this.giftList = a.gives;
|
||||
this.amount = a.amount;
|
||||
this.giftAmount = a.giftAmount;
|
||||
this.amount = a.minNum;
|
||||
this.minNum = a.minNum;
|
||||
this.handselNum = a.handselNum;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -383,20 +356,15 @@
|
||||
uni.requestSubscribeMessage({
|
||||
tmplIds:["AV-KybUHaK3KtFVLqpy6PHccHBS7XeX__mOM4RbufnQ"],
|
||||
complete() {
|
||||
if ( _this.type && _this.type == "topUpActivity") {
|
||||
uni.pro.navigateBack()
|
||||
if ( pages.length > 1) {
|
||||
_this.shopInfo()
|
||||
} else {
|
||||
if ( pages.length > 1) {
|
||||
_this.shopInfo()
|
||||
} else {
|
||||
setTimeout(res => {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 500)
|
||||
}
|
||||
setTimeout(res => {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 500)
|
||||
}
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
</view>
|
||||
<view class="">
|
||||
<u-radio-group v-model="radiovalue1" iconPlacement="right" :size="28" placement="column">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<u-radio activeColor="#ffd158" name="1">
|
||||
<view class="dfs">
|
||||
<image style="width:44rpx;height:44rpx"
|
||||
@@ -65,7 +66,20 @@
|
||||
</text>
|
||||
</view>
|
||||
</u-radio>
|
||||
<view style="margin: 22rpx 0;width: 100%;height: 2rpx;background-color: #E5E5E5;"
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP-ALIPAY -->
|
||||
<u-radio activeColor="#ffd158" name="1">
|
||||
<view class="dfs">
|
||||
<image style="width:44rpx;height:44rpx"
|
||||
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/confirmOrder/alipay.png" mode="aspectFill" />
|
||||
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||
支付宝支付
|
||||
</text>
|
||||
</view>
|
||||
</u-radio>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- <view style="margin: 22rpx 0;width: 100%;height: 2rpx;background-color: #E5E5E5;"
|
||||
v-if="info.isUseVip==1"> </view>
|
||||
<u-radio activeColor="#ffd158" name="2" v-if="info.isUseVip==1">
|
||||
<view class="dfs">
|
||||
@@ -75,7 +89,7 @@
|
||||
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||
余额支付</text>
|
||||
</view>
|
||||
</u-radio>
|
||||
</u-radio> -->
|
||||
</u-radio-group>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: #333333;margin-left: 60rpx;"
|
||||
v-if="info.isUseVip==1">
|
||||
@@ -98,7 +112,7 @@
|
||||
</view>
|
||||
<button class="btnStyle" @click="fangdouevent">提交订单</button>
|
||||
</view>
|
||||
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-show="ispws"></payPassword>
|
||||
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-if="ispws"></payPassword>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -109,7 +123,7 @@
|
||||
payPassword
|
||||
},
|
||||
onLoad(e) {
|
||||
this.$store.dispatch("set_shopid"); //获取shapid
|
||||
// this.$store.dispatch("set_shopid"); //获取shapid
|
||||
this.getInfo(e.id)
|
||||
this.orderIds = e.id
|
||||
this.amount = uni.cache.get('userInfo').amount
|
||||
@@ -143,6 +157,12 @@
|
||||
// 余额支付
|
||||
async accountPayevent(pwd) {
|
||||
this.ispws = false
|
||||
if ( this.amountVIP.isVip == 0 ) {
|
||||
uni.pro.navigateTo('/pages/member/index', {
|
||||
shopId: this.info.shopId,
|
||||
})
|
||||
return;
|
||||
}
|
||||
let res = await this.api.payOrderPay({
|
||||
orderId: this.listinfoid.id,
|
||||
payType: "deposit",
|
||||
@@ -207,7 +227,7 @@
|
||||
let isVip = uni.cache.get('userInfo').isPwd
|
||||
if (isVip == 0) {
|
||||
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||
shopId_id: uni.cache.get('shopId')
|
||||
shopId_id: this.info.shopId
|
||||
})
|
||||
} else {
|
||||
this.ispws = true
|
||||
@@ -221,12 +241,19 @@
|
||||
},
|
||||
async payEvent(id) {
|
||||
let res = await this.api.payOrderPay({
|
||||
// #ifdef MP-WEIXIN
|
||||
payType: 'wechatPay',
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
payType: 'aliPay',
|
||||
// #endif
|
||||
orderId: id,
|
||||
orderType: 'group'
|
||||
})
|
||||
if (res) {
|
||||
// 微信支付还是余额支付
|
||||
uni.requestPayment({
|
||||
// #ifdef MP-WEIXIN
|
||||
provider: 'wxpay', //支付类型-固定值
|
||||
partnerid: res.data.appId, // 微信支付商户号
|
||||
timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
|
||||
@@ -234,22 +261,32 @@
|
||||
package: res.data.package, // 固定值
|
||||
signType: res.data.signType, //固定值
|
||||
paySign: res.data.paySign, //签名
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
provider: 'alipay', //支付类型-固定值
|
||||
orderInfo: res.data.tradeNo, // 支付宝支付商户号
|
||||
// #endif
|
||||
success: (res) => {
|
||||
let _this = this
|
||||
uni.showToast({
|
||||
title: "支付成功"
|
||||
})
|
||||
uni.navigateBack()
|
||||
},
|
||||
fail: (err) => {
|
||||
setTimeout(res => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '支付失败'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}, 2000)
|
||||
fail: async (err) => {
|
||||
console.log(err)
|
||||
let res = await this.api.cancelOrderPay({
|
||||
orderId: this.listinfoid.id,
|
||||
})
|
||||
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '支付失败'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
*/
|
||||
async getCouponList() {
|
||||
try {
|
||||
let res = await this.api.conponList({
|
||||
let res = await this.api.getUserConpons({
|
||||
userId: uni.cache.get('userInfo').id,
|
||||
shopId: uni.cache.get('shopId'),
|
||||
status: this.status
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
* @param {Number} index
|
||||
*/
|
||||
onKeyList(item, index) {
|
||||
console.log(item)
|
||||
let KeyInfo = item;
|
||||
// 删除键
|
||||
if (KeyInfo.keyCode === 8 && this.keyIndex > -1) {
|
||||
|
||||
Reference in New Issue
Block a user