From bea9e52d5a1f56d9ca26a30ea121122def824b3d Mon Sep 17 00:00:00 2001
From: lin <1005713861@163.com>
Date: Fri, 24 Apr 2026 10:32:34 +0800
Subject: [PATCH] feat: 澜品优选权益
---
pages/quanyi/add.vue | 1094 ++++++++++++++++++++++++-------------------
pages/quanyi/index.vue | 349 +++++--------
pages.json | 38 +
3 files changed, 801 insertions(+), 680 deletions(-)
diff --git a/pages.json b/pages.json
index 47c9185..7b38ae3 100644
--- a/pages.json
+++ b/pages.json
@@ -210,6 +210,44 @@
"style": {
"navigationBarTitleText": "联系客服"
}
+ },
+ {
+ "path": "pages/quanyi/index",
+ "style": {
+ "navigationStyle":"custom",
+ "navigationBarTitleText": "会员权益"
+ }
+ },
+ {
+ "path": "pages/quanyi/add",
+ "style": {
+ "navigationBarTitleText": "添加银行卡"
+ }
+ },
+ {
+ "path": "pages/quanshou/index",
+ "style": {
+ "navigationStyle":"custom",
+ "navigationBarTitleText": "会员权收"
+ }
+ },
+ {
+ "path": "pages/web/index",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/web/xieyi",
+ "style": {
+ "navigationBarTitleText": "协议"
+ }
+ },
+ {
+ "path": "pages/vip/index",
+ "style": {
+ "navigationBarTitleText": "会员"
+ }
}
],
"tabBar": {
diff --git a/pages/quanyi/add.vue b/pages/quanyi/add.vue
index 80a9255..9fe0cb6 100644
--- a/pages/quanyi/add.vue
+++ b/pages/quanyi/add.vue
@@ -1,7 +1,7 @@
<script>
-import offIcon from '@/static/imgs/icons/off.png'
-import leftIcon from '@/static/imgs/icons/left.png'
-import kkIcon from '@/static/imgs/icons/kk.png'
+import offIcon from '@/static/img/off.png'
+import leftIcon from '@/static/img/left.png'
+import kkIcon from '@/static/img/kk.png'
import addAddress from "@/pages/quanyi/components/addAddress";
import agreement from "@/pages/quanyi/components/agreement";
@@ -17,7 +17,7 @@
showTextBox: false,
loginAct: false,
$webHost:'https://rbb98765.zrgy-bbg.com',
- protocolChecked: [1],
+ protocolChecked: [0],
offIcon,leftIcon,kkIcon,
callbackData:{},
addressDetail: {
@@ -79,9 +79,9 @@
customStyle() {
return {
height: "100rpx",
- background: "#FF1472",
+ background: "#EE2626",
color: "#fff",
- borderRadius: "24rpx",
+ borderRadius: "50rpx",
fontSize: "34rpx",
};
},
@@ -100,8 +100,8 @@
uni.request({
url: _this.$webHost+'/api/v2/customer/getCstAddress',
data:{
- customerId: uni.getStorageSync('qxgLogin').customerId,
- sourceId: uni.getStorageSync('qxgLogin').appId
+ customerId: uni.getStorageSync('ygxLogin').customerId,
+ sourceId: uni.getStorageSync('ygxLogin').appId
},
success: function (res) {
_this.addressDetail = res.data.data;
@@ -110,7 +110,7 @@
uni.request({
- url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('qxgLogin').customerId,
+ url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('ygxLogin').customerId,
success(res){
console.log(res.data.data);
this.bankList = res.data.data;
@@ -121,7 +121,7 @@
uni.setStorageSync('windowHeight',uni.getSystemInfoSync().windowHeight)
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
method:'get',
success:function(res){
const dy = res.data.data[0];
@@ -139,23 +139,46 @@
}
})
-
-
+
+
uni.request( {
url: _this.$webHost + "/api/v2/renpin/H5/getPlatformProtocolNew",
data: {
- customerId: uni.getStorageSync('qxgLogin').customerId,
- appId: uni.getStorageSync('qxgLogin').appId
+ customerId: uni.getStorageSync('ygxLogin').customerId,
+ appId: uni.getStorageSync('ygxLogin').appId
},
method: 'GET',
success(res) {
+ uni.showLoading({})
_this.getPlatformProtocolNewList = res.data.data;
_this.showTextBox = true;
+
_this.$nextTick(() => {
- _this.$refs.textBox && _this.$refs.textBox.open()
+ if(_this.$refs.textBox){
+ uni.hideLoading();
+ _this.$refs.textBox.open()
+ } else {
+ setTimeout(() => {
+ console.log('setTimeout');
+ uni.hideLoading();
+ _this.$refs.textBox && _this.$refs.textBox.open()
+ }, 400);
+ }
})
}
})
+
+
+ },
+ mounted(){
+ this.windowHeight = uni.getSystemInfoSync().windowHeight;
+ this.interval = setInterval(() => {
+ let newHeight = window.innerHeight;
+ if (this.windowHeight !== newHeight) {
+ this.windowHeight = newHeight;
+ this.handleResize();
+ }
+ }, 200);
},
methods: {
kk(){
@@ -163,6 +186,7 @@
const _this = this;
if(this.addressStr.length < 8){
+
uni.showToast({
title: '请输入详细地址',
icon: 'none'
@@ -172,7 +196,7 @@
uni.request({
- url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('qxgLogin').customerId,
+ url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('ygxLogin').customerId,
method:'POST',
})
@@ -180,7 +204,7 @@
url: _this.$webHost+'/api/v2/pay/memberPurchaseBenefitsPays',
method:'POST',
data:{
- customerId: uni.getStorageSync('qxgLogin').customerId,
+ customerId: uni.getStorageSync('ygxLogin').customerId,
memberPeriodConfigId: uni.getStorageSync('memberPeriodConfigInfo').id
},
success(){
@@ -199,13 +223,12 @@
this.$refs.popup.close()
},
open(){
+ // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']
this.$refs.popup.open()
},
validateAndCacheCardInfo() {
const _this = this;
-
-
if(!_this.cardNumber.length || _this.cardNumber.length<14 ){
return
}
@@ -228,27 +251,61 @@
}
})
+ /* uni.request({
+ url: "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true", // 阿里接口
+ data: {
+ cardNo: _this.cardNumber,
+ },
+ success: function (res) {
+ console.log(res.data.validated);
+ if (res.data.validated) {
+
+ for (let i of uni.getStorageSync("bankList")) {
+ console.log(i);
+ if (res.data.bank === i.bankCode) {
+ _this.bankCode = i.bankCode;
+ _this.bankName = i.bankName;
+
+ break;
+ }
+ }
+ if(!_this.bankName){
+ uni.showToast({
+ title: "暂不支持该银行或银行卡号有误",
+ icon: "none",
+ });
+ }
+ }
+
+ else {
+ uni.showToast({
+ title: "暂不支持该银行或银行卡号有误",
+ icon: "none",
+ });
+ }
+ },
+ });*/
},
submit() {
const _this = this;
- if(!this.loginAct){uni.showToast({title: '请阅读并同意相关协议', icon: 'none'});return;}
+ if(!this.protocolChecked[0]){uni.showToast({title: '请阅读并同意相关协议', icon: 'none'});return;}
if(!_this.cardName){
uni.showToast({
- title: "请填写您的姓名",
+ title: "请填写真实姓名",
icon: "none",
});
return;
}
if(!_this.idCardNo){
uni.showToast({
- title: "请填写您的身份证号",
+ title: "请输入身份证号",
icon: "none",
});
return;
}
if(!_this.cardNumber){
uni.showToast({
- title: "请填写银行卡号",
+ title: "请输入银行卡号",
icon: "none",
});
return;
@@ -268,10 +325,9 @@
});
return
}
-
if(!_this.addressStr){
uni.showToast({
- title: "请填写您的详细地址",
+ title: "请填写详细地址",
icon: "none",
});
return;
@@ -295,7 +351,7 @@
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
method:'get',
success:function(res){
_this.getPayBindCardInfo = res.data.data;
@@ -309,7 +365,7 @@
data:{
..._this.bindCardId,
- "customerId": uni.getStorageSync('qxgLogin').customerId,
+ "customerId": uni.getStorageSync('ygxLogin').customerId,
"cardPhone" : _this.cardPhone, //手机号
"cardNumber": _this.cardNumber, //卡号
@@ -323,12 +379,16 @@
},
success(e){
if(e.data.code!==200){
- _this.$util.Tips({
- title: e.data.data
- });
+ // _this.$util.Tips({
+ // title: e.data.data
+ // });
+ uni.showToast({
+ title: e.data.data,
+ icon: 'none'
+ });
}
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
method:'get',
success:function(res){
const ls = res.data.data;
@@ -337,13 +397,13 @@
- if(ls.length>1 && !ls[1].bindStatus){
+ if(ls.length && !ls[1].bindStatus){
_this.$refs.codeUi.open()
_this.isCounting = false;
_this.countText = '';
return;
}
- if(ls.length>2 && !ls[2].bindStatus){
+ if(ls.length && !ls[2].bindStatus){
_this.$refs.setUi.open();
_this.isCounting = false;
_this.countText = '';
@@ -353,6 +413,8 @@
+ _this.kk()
+
}
@@ -363,516 +425,559 @@
},
- agreeClick () {
- this.loginAct = !this.loginAct
- },
- getSmsCode(){
- const that = this;
- console.log(that.getPayBindCardInfo[0].paymentMethod);
- if(this.isCounting){
- return
- }
- if(that.getPayBindCardInfo[0].bindStatus){
- if(!that.getPayBindCardInfo[1].bindStatus){
- that.$refs.codeUi.open();
+ getSmsCode(){
+ const that = this;
+ console.log(that.getPayBindCardInfo[0].paymentMethod);
+ if(this.isCounting){
return
}
- if(!that.getPayBindCardInfo[2].bindStatus){
- that.$refs.setUi.open();
+ if(that.getPayBindCardInfo[0].bindStatus){
+ if(!that.getPayBindCardInfo[1].bindStatus){
+ that.$refs.codeUi.open();
+ return
+ }
+ if(!that.getPayBindCardInfo[2].bindStatus){
+ that.$refs.setUi.open();
+ }
+ return
}
- return
- }
- if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return that.$util.Tips({
- title: '请输入正确的手机号码'
- });
+ if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return uni.showToast({
+ title: '请输入正确的手机号码',
+ icon: 'none'
+ });
- that.isCounting = true;
+ that.isCounting = true;
- uni.request({
- url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
- method:'POST',
- data:{
- "customerId": uni.getStorageSync('qxgLogin').customerId,
- "nameReal": that.cardName, // 名字
- "cardNo":that.cardNumber,
- "idCard": that.idCardNo,
+ uni.request({
+ url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
+ method:'POST',
+ data:{
+ "customerId": uni.getStorageSync('ygxLogin').customerId,
+ "nameReal": that.cardName, // 名字
+ "cardNo":that.cardNumber,
+ "idCard": that.idCardNo,
- "bankPhoneNo":that.cardPhone,
- "bankCode": that.bankCode,
- "bankName": that.bankName,
- "phone": that.cardPhone, //手机号
- "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
+ "bankPhoneNo":that.cardPhone,
+ "bankCode": that.bankCode,
+ "bankName": that.bankName,
+ "phone": that.cardPhone, //手机号
+ "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
- "preBindType": "prebc",
- "bankId": "1",
+ "preBindType": "prebc",
+ "bankId": "1",
- },
- success(){
- uni.request({
- url: that.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- "customerId": uni.getStorageSync('qxgLogin').customerId,
- "cardName": that.cardName, // 名字
- "cardIdNo": that.idCardNo,
+ },
+ success(){
+ uni.request({
+ url: that.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ "customerId": uni.getStorageSync('ygxLogin').customerId,
+ "cardName": that.cardName, // 名字
+ "cardIdNo": that.idCardNo,
- "cardNumber":that.cardNumber,
- "bankPhoneNo":that.cardPhone,
- "bankCode": that.bankCode,
- "bankName": that.bankName,
- "cardPhone": that.cardPhone, //手机号
- "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
+ "cardNumber":that.cardNumber,
+ "bankPhoneNo":that.cardPhone,
+ "bankCode": that.bankCode,
+ "bankName": that.bankName,
+ "cardPhone": that.cardPhone, //手机号
+ "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
- "preBindType": "prebc",
- "bankId": "1",
+ "preBindType": "prebc",
+ "bankId": "1",
- },
- success(res){
- if(res.data.code === 401){
- that.getUserInfo()
- return;
- }
-
- if(res.data.code !==200){
- uni.showToast({
- title: res.data.data,
- icon: 'none'
- })
- return;
- }
-
- if(res.data.code === 200){
- that.bindCardId = res.data.data;
- } else {
- that.isCounting = false;
- that.countText = '';
- uni.showToast({
- title: res.data.data,
- icon: 'none'
- });
-
- if(!that.getPayBindCardInfo[0].bindStatus){
-
+ },
+ success(res){
+ if(res.data.code === 401){
+ that.getUserInfo()
return;
}
-
- if(!that.getPayBindCardInfo[1].bindStatus){
- that.$refs.codeUi.open()
- that.isCounting = false;
- that.countText = '';
- return
- } if(!that.getPayBindCardInfo[2].bindStatus){
- that.isCounting = false;
- that.countText = '';
- that.$refs.setUi.open()
- return
+ if(res.data.code !==200){
+ uni.showToast({
+ title: res.data.data,
+ icon: 'none'
+ })
+ return;
}
+
+ if(res.data.code === 200){
+ that.bindCardId = res.data.data;
+ } else {
+ that.isCounting = false;
+ that.countText = '';
+ uni.showToast({
+ title: res.data.data,
+ icon: 'none'
+ });
+
+ if(!that.getPayBindCardInfo[0].bindStatus){
+
+ return;
+ }
+
+
+ if(!that.getPayBindCardInfo[1].bindStatus){
+ that.$refs.codeUi.open()
+ that.isCounting = false;
+ that.countText = '';
+ return
+ } if(!that.getPayBindCardInfo[2].bindStatus){
+ that.isCounting = false;
+ that.countText = '';
+ that.$refs.setUi.open()
+ return
+ }
+ }
+
}
+ })
- }
- })
-
- let count = 60;
- that.countText = `${count}s秒后重新获取`;
-
-
- const timer = setInterval(() => {
- count--;
+ let count = 60;
that.countText = `${count}s秒后重新获取`;
- if (count <= 0) {
- clearInterval(timer);
- that.isCounting = false;
- that.countText = '';
- }
- },1000)
- },
- fail(err){
- that.isCounting = false;
- that.countText = '';
- uni.showToast({
- title: err,
- icon: 'none'
- })
- }
- })
-
-
-
-
-
-
-
-
- },
-// 二次获取
- getCode(){
- if (this.isCounting_A) {
- return;
- }
- const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
- const _this = this;
- const pro = uni.getStorageSync('qxgLogin')
- pro['userName'] = _this.cardName;
- uni.request({
- url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- cardIdNo: _this.idCardNo,
- customerId: pro.customerId,
- cardName: _this.cardName,
- cardNo: _this.cardIdNo,
- cardPhone: _this.cardPhone,
- cardNumber: _this.cardNumber,
- bankName: _this.bankName,
- preBindType: "prebc",
- paymentMethod:paymentMethod,
- againType : true
- },
- success(dt){
- if(dt.data.code === 401){
- _this.getUserInfo()
- return;
- }
- const res = dt.data.data;
- if(!res){
- return;
- }
- _this.callbackData = res;
- _this.bindCardId = res;
- uni.showToast({
- title: "验证码已发送",
- icon: "none",
- });
- // 设置倒计时功能
- let count = 60;
-
- const timer = setInterval(() => {
- count--;
- if (count <= 0) {
- clearInterval(timer);
- _this.$set(_this, "isCounting_A", false);
- } else {
- _this.$set(_this, "isCounting_A", true);
- _this.$set(_this, "countText_A", `${count}秒后重新获取`);
- }
- }, 1000);
- }
- })
- },
-
- submitPlan(){
-
- const _this = this;
-
- if (!this.verificationCodeT) {
- uni.showToast({
- title: "请输入验证码",
- icon: "none",
- });
- return;
- }
-
- const callbackData = _this.callbackData;
- const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
-
-
- uni.request({
- url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
- method:'POST',
- data:{
- ...callbackData,
-
- "customerId": uni.getStorageSync('qxgLogin').customerId,
- "cardPhone" : _this.cardPhone, //手机号
-
- "cardNumber": _this.cardNumber, //卡号
- paymentMethod:paymentMethod,
- "cardName" : _this.cardName, // 名字
- "cardIdNo" : _this.cardIdNo,
- "bankName" : _this.bankName,
- "cardNo" : _this.cardNumber,
-
- "verificationCode": _this.verificationCodeT,
- },
- success(dts){
- if(dts.data.code!==200){
- return
- }
-
- uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
- method:'get',
- success:function(res){
- const ls = res.data.data;
- _this.getPayBindCardInfo = res.data.data;
- if(ls.length>2 && !ls[2].bindStatus){
- _this.isCounting_A = false;
- _this.countText_A = '';
- _this.$refs.codeUi.close()
- _this.$refs.setUi.open()
- return;
+ const timer = setInterval(() => {
+ count--;
+ that.countText = `${count}s秒后重新获取`;
+ if (count <= 0) {
+ clearInterval(timer);
+ that.isCounting = false;
+ that.countText = '';
}
-
- if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
-
- }
-
- })
- }
- })
-
- },
-// 三次
- getCode_san(){
- if (this.isCounting_B) {
- return;
- }
- const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
- const _this = this;
- const pro = uni.getStorageSync('qxgLogin')
- pro['userName'] = _this.cardName;
- uni.request({
- url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- cardIdNo: _this.idCardNo,
- customerId: pro.customerId,
- cardName: _this.cardName,
- cardNo: _this.cardIdNo,
- cardPhone: _this.cardPhone,
- cardNumber: _this.cardNumber,
- bankName: _this.bankName,
- preBindType: "prebc",
- paymentMethod:paymentMethod,
- againType : true
- },
- success(dt){
- if(dt.data.code ==401){
- _this.getUserInfo()
- return;
- }
-
- if(dt.data.code !==200){
+ },1000)
+ },
+ fail(err){
+ that.isCounting = false;
+ that.countText = '';
uni.showToast({
- title: dt.data.data,
+ title: err,
icon: 'none'
})
- return;
}
+ })
- const res = dt.data.data;
- if(!res){
- return;
+
+
+
+
+
+
+
+
+
+ },
+// 二次获取
+ getCode(){
+ if (this.isCounting_A) {
+ return;
+ }
+ const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
+ const _this = this;
+ const pro = uni.getStorageSync('ygxLogin')
+ pro['userName'] = _this.cardName;
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ cardIdNo: _this.idCardNo,
+ customerId: pro.customerId,
+ cardName: _this.cardName,
+ cardNo: _this.cardIdNo,
+ cardPhone: _this.cardPhone,
+ cardNumber: _this.cardNumber,
+ bankName: _this.bankName,
+ preBindType: "prebc",
+ paymentMethod:paymentMethod,
+ againType : true
+ },
+ success(dt){
+ if(dt.data.code === 401){
+ _this.getUserInfo()
+ return;
+ }
+ const res = dt.data.data;
+ if(!res){
+ return;
+ }
+ _this.callbackData = res;
+ _this.bindCardId = res;
+ uni.showToast({
+ title: "验证码已发送",
+ icon: "none",
+ });
+ // 设置倒计时功能
+ let count = 60;
+
+ const timer = setInterval(() => {
+ count--;
+ if (count <= 0) {
+ clearInterval(timer);
+ _this.$set(_this, "isCounting_A", false);
+ } else {
+ _this.$set(_this, "isCounting_A", true);
+ _this.$set(_this, "countText_A", `${count}秒后重新获取`);
+ }
+ }, 1000);
}
- _this.callbackData = res;
- _this.bindCardId = res;
+ })
+ },
+
+ submitPlan(){
+
+ const _this = this;
+
+ if (!this.verificationCodeT) {
uni.showToast({
- title: "验证码已发送",
+ title: "请输入验证码",
icon: "none",
});
- // 设置倒计时功能
- let count = 60;
-
- const timer = setInterval(() => {
- count--;
- if (count <= 0) {
- clearInterval(timer);
- _this.$set(_this, "isCounting_B", false);
- } else {
- _this.$set(_this, "isCounting_B", true);
- _this.$set(_this, "countText_B", `${count}秒后重新获取`);
- }
- }, 1000);
+ return;
}
- })
- },
- submitPlan_san(){
- const _this = this;
+ const callbackData = _this.callbackData;
+ const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
- if (!this.verificationCodeS) {
- uni.showToast({
- title: "请输入验证码",
- icon: "none",
- });
- return;
- }
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
+ method:'POST',
+ data:{
+ ...callbackData,
- const callbackData = _this.callbackData;
- const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
+ "customerId": uni.getStorageSync('ygxLogin').customerId,
+ "cardPhone" : _this.cardPhone, //手机号
+
+ "cardNumber": _this.cardNumber, //卡号
+ paymentMethod:paymentMethod,
+ "cardName" : _this.cardName, // 名字
+ "cardIdNo" : _this.cardIdNo,
+ "bankName" : _this.bankName,
+ "cardNo" : _this.cardNumber,
+
+ "verificationCode": _this.verificationCodeT,
+ },
+ success(dts){
+ if(dts.data.code!==200){
+ // _this.$util.Tips({
+ // title: dts.data.data
+ // });
+ uni.showToast({
+ title: dts.data.data,
+ icon: 'none'
+ });
+ return
+ }
+
+ uni.request({
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
+ method:'get',
+ success:function(res){
+ const ls = res.data.data;
+ _this.getPayBindCardInfo = res.data.data;
+ if(ls.length>2 && !ls[2].bindStatus){
+ _this.isCounting_A = false;
+ _this.countText_A = '';
+ _this.$refs.codeUi.close()
+ _this.$refs.setUi.open()
+ }
+
+ if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
- uni.request({
- url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
- method:'POST',
- data:{
- ...callbackData,
- "customerId": uni.getStorageSync('qxgLogin').customerId,
- "cardPhone" : _this.cardPhone, //手机号
- "cardNumber": _this.cardNumber, //卡号
- paymentMethod:paymentMethod,
- "cardName" : _this.cardName, // 名字
- "cardIdNo" : _this.cardIdNo,
- "bankName" : _this.bankName,
- "cardNo" : _this.cardNumber,
- "verificationCode": _this.verificationCodeS,
- },
- success(dts){
- if(dts.data.code!==200){
- _this.showToast({
- title: dts.data.data
- });
+ }
+
+ })
}
+ })
- uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
- method:'get',
- success:function(res){
- const ls = res.data.data;
- _this.getPayBindCardInfo = res.data.data;
- _this.isCounting_B = false;
- _this.countText_B = '';
- _this.$refs.setUi.close()
- _this.$refs.codeUi.close()
- if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
-
-
+ },
+// 三次
+ getCode_san(){
+ if (this.isCounting_B) {
+ return;
+ }
+ const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
+ const _this = this;
+ const pro = uni.getStorageSync('ygxLogin')
+ pro['userName'] = _this.cardName;
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ cardIdNo: _this.idCardNo,
+ customerId: pro.customerId,
+ cardName: _this.cardName,
+ cardNo: _this.cardIdNo,
+ cardPhone: _this.cardPhone,
+ cardNumber: _this.cardNumber,
+ bankName: _this.bankName,
+ preBindType: "prebc",
+ paymentMethod:paymentMethod,
+ againType : true
+ },
+ success(dt){
+ if(dt.data.code ==401){
+ _this.getUserInfo()
+ return;
}
- })
+ if(dt.data.code !==200){
+ uni.showToast({
+ title: dt.data.data,
+ icon: 'none'
+ })
+ return;
+ }
+
+ const res = dt.data.data;
+ if(!res){
+ return;
+ }
+ _this.callbackData = res;
+ _this.bindCardId = res;
+ uni.showToast({
+ title: "验证码已发送",
+ icon: "none",
+ });
+ // 设置倒计时功能
+ let count = 60;
+
+ const timer = setInterval(() => {
+ count--;
+ if (count <= 0) {
+ clearInterval(timer);
+ _this.$set(_this, "isCounting_B", false);
+ } else {
+ _this.$set(_this, "isCounting_B", true);
+ _this.$set(_this, "countText_B", `${count}秒后重新获取`);
+ }
+ }, 1000);
+ }
+ })
+ },
+ submitPlan_san(){
+
+ const _this = this;
+
+
+ if (!this.verificationCodeS) {
+ uni.showToast({
+ title: "请输入验证码",
+ icon: "none",
+ });
+ return;
}
- })
+ const callbackData = _this.callbackData;
+ const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
+
+
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
+ method:'POST',
+ data:{
+ ...callbackData,
+
+ "customerId": uni.getStorageSync('ygxLogin').customerId,
+ "cardPhone" : _this.cardPhone, //手机号
+
+ "cardNumber": _this.cardNumber, //卡号
+ paymentMethod:paymentMethod,
+ "cardName" : _this.cardName, // 名字
+ "cardIdNo" : _this.cardIdNo,
+ "bankName" : _this.bankName,
+ "cardNo" : _this.cardNumber,
+
+ "verificationCode": _this.verificationCodeS,
+ },
+ success(dts){
+ if(dts.data.code!==200){
+ // _this.$util.Tips({
+ // title: dts.data.data
+ // });
+ uni.showToast({
+ title: dts.data.data,
+ icon: 'none'
+ });
+ }
+
+ uni.request({
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
+ method:'get',
+ success:function(res){
+ const ls = res.data.data;
+ _this.getPayBindCardInfo = res.data.data;
+ _this.isCounting_B = false;
+ _this.countText_B = '';
+ _this.$refs.setUi.close()
+ _this.$refs.codeUi.close()
+ if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
+
+
+ }
+
+ })
+ }
+ })
+
+ },
+
+
+
+ getUserInfo() {
+
+ // const data = uni.getStorageSync('LOGING_DATA')
+ // console.log(data);
+ // this.$store.commit("LOGIN", {
+ // 'token': data.token
+ // });
+ // this.$store.commit('UPDATE_USERINFO', {
+ // avatar: data.avatar,
+ // nickname: data.nickname,
+ // phone: data.phone
+ // });
+ // this.$store.commit("SETUID", data.id)
+
+ uni.reLaunch({
+ url: '/pages/index/index'
+ });
+ },
},
-
-
-
- getUserInfo() {
-
-
-
- uni.reLaunch({
- url: '/pages/index/index'
- });
- },
- },
- onUnload() {
+ onUnload() {
clearInterval(this.interval);
},
}
</script>
<template>
- <view style="background: #fff;padding-bottom: 20rpx;">
+ <view style="background: #F7F7F7;padding-bottom: 40rpx;">
<view >
<view class="top">为向您提供更好的安全保障,您需要提供银行卡号以完成信息核验</view>
</view>
-
+ <view style="background: white;height: 20rpx;"></view>
<view class="form">
- <view class="clo" style="display: flex;background: white">
+ <view class="clo">
<view class="label">
<text>真实姓名</text>
</view>
<view class="inp_box">
- <input maxlength="8" style="width: 400rpx;" v-model="cardName" class="inp" placeholder="请填写您的姓名" />
+ <input maxlength="8" v-model="cardName" class="inp" placeholder="请填写真实姓名" />
</view>
</view>
- <view class="clo" style="display: flex;background: white">
+ <view class="clo">
<view class="label">
<text>身份证号</text>
</view>
<view class="inp_box">
- <input maxlength="18" style="width: 400rpx;" v-model="idCardNo" class="inp" placeholder="请填写您的身份证号" />
+ <input maxlength="18" v-model="idCardNo" class="inp" placeholder="请填写身份证号" />
</view>
</view>
+<!-- <view style="background: #F7F7F7;height: 20rpx;"></view>-->
-
- <view class="clo" style="display: flex">
+ <view class="clo">
<view class="label">
<text>银行卡号</text>
</view>
<view class="inp_box">
- <input maxlength="30" style="width: 400rpx;" @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请填写银行卡号" />
- <image @click="cardNumber=''" v-show="!bindStatus && cardNumber" :src="offIcon" style="width: 40rpx;height: 40rpx;position: absolute;right: -40rpx;top: 0;"></image>
+ <input maxlength="30" @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请输入银行卡号" />
+ <image @click="cardNumber=''" v-show="!bindStatus && cardNumber" :src="offIcon" style="width: 40rpx;height: 40rpx;position: absolute;right: 0rpx;top: 30rpx;"></image>
</view>
</view>
- <view class="clo" style="display: flex">
+ <view class="clo">
<view class="label">
<text>所属银行</text>
</view>
- <view class="inp_box" style="flex: 1;z-index: 1" >
- <view :class="bankName?'':'a3'">{{bankName?bankName:'请输入所属银行'}}</view>
+ <view class="inp_box" style="z-index: 1" >
+ <view style="width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" :class="bankName?'':'a3'">{{bankName?bankName:'请输入所属银行'}}</view>
</view>
</view>
- <view class="clo" style="display: flex">
+ <view class="clo">
<view class="label">
- <view>手机号码</view>
+ <view>银行预留手机号</view>
</view>
- <view class="inp_box" >
- <input maxlength="11" v-model="cardPhone" class="inp" placeholder="请填写银行预留手机号" />
+ <view class="inp_box" style="position: relative;">
+ <input maxlength="11" v-model="cardPhone" class="inp" placeholder="请填写手机号" />
+<!-- <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode">-->
+<!-- <text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text>-->
+<!-- </view>-->
</view>
</view>
- <view class="clo" style="display: flex" v-if="!getPayBindCardInfo[0].bindStatus">
+ <view class="clo" v-if="getPayBindCardInfo.length && !getPayBindCardInfo[0].bindStatus">
<view class="label">
<text>验证码</text>
</view>
- <view class="inp_box" style="display: flex;flex: 1">
- <input maxlength="6" v-model="verificationCode" class="inp" type="number" style="width: 200rpx" placeholder="请输入验证码" />
+ <view class="inp_box" style="position: relative;">
+ <input maxlength="6" v-model="verificationCode" class="inp" type="number" placeholder="请填写验证码" />
- <view class="code" style="flex: 1;text-align: right" @click="getSmsCode">
+ <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode">
<text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text>
</view>
</view>
</view>
- <view class="clo" style="display: flex;margin-bottom: 20rpx;" @click="$refs.address.open()">
+ <view class="clo" @click="$refs.address.open()">
<view class="label" >
<text>收货地址</text>
</view>
<view class="inp_box">
- <view style="font-size: 28rpx;" v-if="addressStr">{{addressStr}}</view>
- <view style="font-size: 28rpx;color: #BDBDBE;" v-else>请填写您的详细地址</view>
+ <view style="font-size: 28rpx;width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" v-if="addressStr">{{addressStr}}</view>
+ <view style="font-size: 28rpx;color: #BDBDBE;width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" v-else>请填写收货地址</view>
</view>
</view>
</view>
+ <!-- <view class="xieyi">
+ <view style="display: flex">
+ <checkbox-group @change="checkboxChange">
- <view style=" padding: 0 30rpx;margin-left: 20rpx;">
+ <checkbox value="1" activeBorderColor="none" activeBackgroundColor="red" style="border-radius: 0" color="#ffffff"/>
+ </checkbox-group>
+ <view style="margin-top: 2rpx;"> <text>我已同意</text>
+ </view>
+ </view>
+ </view>-->
+
+ <view style=" padding: 0 30rpx;margin-top: 30rpx;">
<view style="display: flex;">
- <image @click="agreeClick" style="width: 50rpx;height: 50rpx;" :src="!loginAct ? '/static/imgs/check.png' : '/static/imgs/checked.png'" ></image>
- <text class="protocol-text" style="line-height: 50rpx" >
- 我已阅读并同意<text style="font-size: 24rpx;color: #4766FE" class="link-text" @click="$refs.agreement.open()">《相关协议》</text>
- </text>
+ <uv-checkbox-group
+ activeColor="red"
+ shape="circle"
+ v-model="protocolChecked">
+ <uv-checkbox size="14" :name="1" >
+
+ </uv-checkbox>
+ <text class="protocol-text" >
+ 我已阅读并同意
+ <text style="font-size: 24rpx;" class="link-text" @click="$refs.agreement.open()">《相关协议》</text>
+ </text>
+ </uv-checkbox-group>
</view>
</view>
<view class="sub" v-if="show">
- <button :class="loginAct?'':'nots'" class="sub_btn" @click="submit">提交</button>
+ <button :class="protocolChecked[0]?'':'nots'" class="sub_btn" @click="submit">提交</button>
</view>
<agreement ref="agreement"></agreement>
@@ -891,20 +996,44 @@
</uni-popup>
- <uv-popup mode="center" round="20" ref="codeUi" :closeOnClickOverlay="false" bgColor="">
+ <uv-popup mode="center" round="20" ref="codeUi" :closeOnClickOverlay="false" >
- <view style="padding: 40rpx;width:calc( 100% - 120rpx);margin: auto;border-radius: 40rpx 40rpx 40rpx 40rpx;background-image: url('/static/imgs/codeUiBACK.png');background-repeat: no-repeat;background-size: 100% 100%;padding-top: 60rpx;">
+ <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;">
+ <view class="head">
+ <view
+ style="
+ text-align: center;
+ font-weight: bold;
+ font-size: 36rpx;
+ position: relative;
+ height: 50rpx;
+ "
+ >
+ <image
+ @click="$refs.codeUi.close()"
+ src="@/static/img/off.png"
+ style="
+ width: 50rpx;
+ height: 50rpx;
+ position: absolute;
+ right: 0;
+ top: -2rpx;
+ "
+ ></image>
+ </view>
+ </view>
<view style="
font-weight: bold;
font-size: 36rpx;
position: relative;
margin-bottom: 12rpx;
+ text-align: center;
">短信确认</view>
- <view style="font-size: 28rpx;color: #666666;">为确保安全到账,需再次对您的收款账户进行短信验证</view>
+ <view style="font-size: 28rpx;color: #252938;text-align: center;">为确保安全到账,需再次对您的收款账户进行短信验证</view>
- <view class="content" style="margin-top: 40rpx;">
+ <view class="content">
<uv-form
:labelStyle="lstyle"
labelPosition="left"
@@ -920,7 +1049,6 @@
>
<uv-input
- shape="circle"
:adjustPosition="true"
readonly
v-model="cardPhone"
@@ -930,10 +1058,9 @@
border="none"
placeholder="请输入手机号"
+ style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
></uv-input>
</uv-form-item>
-
- <view style="height: 20rpx;"></view>
<uv-form-item
class="item"
@@ -947,10 +1074,12 @@
v-model="verificationCodeT"
border="none"
placeholder="请输入验证码"
+ style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
>
<template #suffix>
<text
class="code"
+ style="color: red;"
:class="isCounting_A ? 'ks' : ''"
@click="getCode"
>{{ isCounting_A ? countText_A : "获取验证码" }}</text
@@ -959,40 +1088,57 @@
</uv-input>
</uv-form-item>
<uv-form-item >
- <view class="but" style="width: 100%;margin-top: 20rpx;font-weight: 600;">
+ <view class="but" style="width: 100%;">
<uv-button
:customStyle="customStyle"
-
+ shape="circle"
@click="submitPlan"
- >确定</uv-button
+ >确认</uv-button
>
</view>
</uv-form-item>
</uv-form>
</view>
</view>
- <view style="text-align: center;margin-top: 40rpx;">
- <image
- @click="$refs.codeUi.close()"
- src="@/static/imgs/closeA.png"
- style=" width: 50rpx; height: 50rpx; "
- ></image>
- </view>
</uv-popup>
- <uv-popup mode="center" round="20" ref="setUi" :closeOnClickOverlay="false" bgColor="" z-index="999">
+ <uv-popup mode="center" round="20" ref="setUi" :closeOnClickOverlay="false" >
- <view style="padding: 40rpx;width:calc( 100% - 120rpx);margin: auto;border-radius: 40rpx 40rpx 40rpx 40rpx;background-image: url('/static/imgs/codeUiBACK.png');background-repeat: no-repeat;background-size: 100% 100%;padding-top: 60rpx;">
+ <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;">
+ <view class="head">
+ <view
+ style="
+ text-align: center;
+ font-weight: bold;
+ font-size: 36rpx;
+ position: relative;
+ height: 50rpx;
+ "
+ >
+ <image
+ @click="$refs.setUi.close()"
+ src="@/static/img/off.png"
+ style="
+ width: 50rpx;
+ height: 50rpx;
+ position: absolute;
+ right: 0;
+ top: -2rpx;
+ "
+ ></image>
+ </view>
+ </view>
<view style="
font-weight: bold;
font-size: 36rpx;
position: relative;
margin-bottom: 12rpx;
+ text-align: center;
">本人提交确认</view>
- <view style="font-size: 28rpx;color: #666666;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view>
+ <view style="font-size: 28rpx;color: #252938;text-align: center;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view>
- <view class="content" style="margin-top: 40rpx;">
+ <view class="content">
<uv-form
:labelStyle="lstyle"
labelPosition="left"
@@ -1017,9 +1163,10 @@
border="none"
placeholder="请输入手机号"
+ style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
></uv-input>
</uv-form-item>
- <view style="height: 20rpx;"></view>
+
<uv-form-item
class="item"
label=""
@@ -1032,10 +1179,12 @@
v-model="verificationCodeS"
border="none"
placeholder="请输入验证码"
+ style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
>
<template #suffix>
<text
class="code"
+ style="color: red;"
:class="isCounting_B ? 'ks' : ''"
@click="getCode_san"
>{{ isCounting_B ? countText_B : "获取验证码" }}</text
@@ -1044,24 +1193,17 @@
</uv-input>
</uv-form-item>
<uv-form-item >
- <view class="but" style="width: 100%;margin-top: 20rpx;font-weight: 600;">
+ <view class="but" style="width: 100%;">
<uv-button
:customStyle="customStyle"
+ shape="circle"
@click="submitPlan_san"
- >确定</uv-button
+ >确认</uv-button
>
</view>
</uv-form-item>
</uv-form>
</view>
- </view>
-
- <view style="text-align: center;margin-top: 40rpx;">
- <image
- @click="$refs.setUi.close()"
- src="@/static/imgs/closeA.png"
- style=" width: 50rpx; height: 50rpx; "
- ></image>
</view>
</uv-popup>
@@ -1069,10 +1211,7 @@
<addAddress :addressDetail="addressDetail" @off="$refs.address.close()" @submit="e => addressDetail = e"></addAddress>
</uv-popup>
-
- <text-box v-if="showTextBox" ref="textBox" :getPlatformProtocolNewList="getPlatformProtocolNewList"></text-box>
-
-
+ <!-- <text-box v-if="showTextBox" ref="textBox" :getPlatformProtocolNewList="getPlatformProtocolNewList"></text-box> -->
</view>
</template>
@@ -1091,17 +1230,15 @@
}
.form{
background: #FFFFFF;
- padding-top: 40rpx;
.clo{
- display: flex;
- background: #FBFBFB !important;
- border-radius: 24rpx 24rpx 24rpx 24rpx;
- border: 2rpx solid #EEEEEE;
- padding: 30rpx 20rpx;
- margin: 0 40rpx 40rpx;
-
+ //display: flex;
+ //padding: 30rpx 0rpx;
+ padding-bottom: 30rpx;
+ margin: 0 40rpx;
+ //border-bottom: 1rpx solid #E7E9ED;
+ background: #FFFFFF;
.label{
- width: 160rpx;
+ width: 460rpx;
height: 40rpx;
font-weight: 600;
@@ -1112,13 +1249,17 @@
.inp_box{
position: relative;
+ margin-top: 30rpx;
.inp{
&::placeholder{
color: #999999;
font-size: 30rpx;
}
- height: 42rpx;
-
+ width: 670rpx;
+ height: 100rpx;
+ border: 1px solid #EEEEEE;
+ border-radius: 20rpx;
+ padding-left: 20rpx;
font-weight: 400;
font-size: 30rpx;
color: #333333;
@@ -1130,14 +1271,16 @@
.code_a{
font-weight: 400;
- font-size: 24rpx;
- color: #FF1472;
+ font-size: 28rpx;
+ color: #EE2626;
padding: 16rpx 20rpx;
+ //border: 1rpx solid #EE2626;
+ //border-radius: 8rpx 8rpx 8rpx 8rpx;
}
.code_k{
font-weight: 400;
- font-size: 30rpx;
+ font-size: 28rpx;
color: #999999;
}
@@ -1154,12 +1297,12 @@
.sub{
-
+ width: 100%;
bottom: 50rpx;
- padding: 0 10rpx;
- margin-top: 50rpx;
+ padding: 0 30rpx;
+ margin-top: 40rpx;
.sub_btn{
- background: #FF1472;
+ background: #EE2626;
border-radius: 50rpx 50rpx 50rpx 50rpx;
padding: 10rpx;
@@ -1169,13 +1312,7 @@
}
}
-.item{
- background: #FBFBFB;
- border-radius: 24rpx 24rpx 24rpx 24rpx;
- border: 2rpx solid #EEEEEE;
- padding: 0 40rpx;
-}
::v-deep .uni-checkbox-input{
border-radius: 0;
transform: scale(0.7);
@@ -1199,8 +1336,5 @@
}
.nots{
opacity: 0.5;
-}
-.code{
- color: #FF1472;
}
</style>
diff --git a/pages/quanyi/index.vue b/pages/quanyi/index.vue
index adaa1e6..009a426 100644
--- a/pages/quanyi/index.vue
+++ b/pages/quanyi/index.vue
@@ -1,27 +1,20 @@
<script>
-
import textBox from "@/components/textBox/index.vue";
-import tehuichongzhi from "@/pages/quanshou/components/tehuichongzhi.vue"; //虚拟
-import lanyaerji from "@/pages/quanshou/components/lanyaerji.vue"; // 实物
+
+
export default {
components: {
- textBox,
- tehuichongzhi,
- lanyaerji,
+ textBox
},
async created() {
const _this = this;
-
await uni.request({
- url: _this.$webHost+'/api/v2/auth/qxgIosUnionLogin?phone='+_this.$util.getUserInfo().phone,
- data:{
- customerId: uni.getStorageSync('qxgLogin').customerId,
- appId: uni.getStorageSync('qxgLogin').appId
- },
+ // url: _this.$webHost+'/api/v2/auth/ygxLogin?phone='+_this.$util.getUserInfo().phone+'&appId='+'47be9559-6b1b-42dd-84ed-25d028065013',
+ url: _this.$webHost + '/api/v2/auth/qxgIosUnionLogin?phone=' + _this.$util.getUserInfo().phone,
success: function (res) {
- _this.qxgLogin = res.data.data;
- uni.setStorageSync('qxgLogin',_this.qxgLogin)
+ _this.ygxLogin = res.data.data;
+ uni.setStorageSync('ygxLogin',_this.ygxLogin)
uni.request({
url: _this.$webHost+'/api/v2/buryingPoint/record',
method:'PUT',
@@ -42,6 +35,9 @@
},
success:function (info){
_this.memberPeriodConfigInfo = info.data.data;
+ if(_this.memberPeriodConfigInfo['totalBenefitsAmount']) {
+ _this.memberPeriodConfigInfo['totalBenefitsAmount'] = _this.memberPeriodConfigInfo['totalBenefitsAmount'].toFixed(2);
+ }
uni.setStorageSync('memberPeriodConfigInfo',_this.memberPeriodConfigInfo)
_this.showTextBox = true;
_this.$nextTick(() => {
@@ -51,62 +47,38 @@
})
}
})
-
- // 获取VIP值
- uni.request({
- url: _this.$webHost+'/api/v2/customer/getRyxBenefitsRecordList?phone='+_this.$util.getUserInfo().phone,
- data:{
- customerId: uni.getStorageSync('qxgLogin').customerId,
- appId: uni.getStorageSync('qxgLogin').appId
- },
- success: function (res) {
- if(res.data.code==200){
- _this.lst = res.data.data;
- _this.lst.forEach(item=>{
- if(item && item.isBuy === 1 && [1,2,3].includes(item.period)) {_this.VIP = item.period;}
- })
- } else {
-
-
- }
- }
- })
let mk = setInterval(()=>{
- this.text -=1;
- if(!this.text){
+ _this.text -=1;
+ if(!_this.text){
clearInterval( mk)
}
},1000)
- this.time= setTimeout(()=>{
- this.protocolChecked = [1];
- this.tm = true;
- this.isAgree = true;
- },10000)
+ _this.time= setTimeout(()=>{
+ _this.protocolChecked = [1];
+ _this.tm = true;
+ },3000)
},
data() {
return {
- active: 0,
- VIP: 1, // 1黄金 2铂金 3黑金
- qxgLogin:{},
+ ygxLogin:{},
protocolChecked: [0],
- isAgree: false,
showTextBox: false,
+ isAgree: false,
tm: null,
time:null,
- text:10,
+ text:3,
memberPeriodConfigInfo: {
totalBenefitsAmount: "",
installmentPeriods: "",
}
}
},
-
methods: {
goHome(){
- uni.switchTab({
+ uni.reLaunch({
url: '/pages/index/index'
});
},
@@ -157,127 +129,162 @@
</script>
<template>
- <view class="box" style="">
+ <view style="background: url('/static/img/qyBg.png') no-repeat top center; background-size: 100%;background-color: #210E0E;">
<view class="head" style="position: relative">
+ <view style="display: flex;justify-content: flex-start;position: absolute;left: 0;top: 65rpx;padding-left: 30rpx;z-index: 9;color: #FFFFFF;">
+ <view @tap="goHome" id="home" class="home acea-row row-center-wrapper iconfont icon-fanhui2 h5_back icon-shouye4" :style="{ height: '80rpx',lineHeight: '80rpx'}" style="margin-top: 20rpx;">
+ <uv-icon name="home" color="#ffffff" size="20"></uv-icon>
+ </view>
+ </view>
+<!-- <view style="text-align: center;font-weight: bold;font-size: 36rpx;position: relative;">-->
+<!-- <view class="mm" style="text-align: center">会员权益说明</view>-->
+<!-- </view>-->
+ </view>
- <view style="margin-left: 20rpx;display: flex;justify-content: space-between;">
+ <view class="title">
+ <view style="margin-top:320rpx;text-align: center;font-weight: bold;line-height:90rpx;font-size:70rpx;background: -webkit-linear-gradient(#ffffff, #F3855B);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">
+ <p>入会有惊喜</p>
+ <p>尊享好福利</p>
+ </view>
+ <view style="font-size:32rpx;background: -webkit-linear-gradient(#ffffff, #F3855B);-webkit-background-clip: text;-webkit-text-fill-color: transparent;text-align: center;letter-spacing: 14rpx;margin-left: 16rpx;margin-top: 10rpx;">欢迎加入商城会员</view>
+ </view>
- <view>
- <view style="margin-top: 60rpx;"><image src="/static/imgs/SMTTA.png" style="width: 378rpx;height: 88rpx;"></image></view>
-
- <view style="margin-top: 10rpx;">
- <image src="/static/imgs/QQXGLK.png" style="width: 178rpx;height: 54rpx;"></image>
+ <view class="content" style="overflow-y: scroll;padding: 30rpx;background: #ffffff;border-top-left-radius: 50rpx;border-top-right-radius: 50rpx;margin-top: 60rpx;padding-bottom: 140rpx;">
+ <view class="content-title" style="text-align: center;display: flex;align-items: center;justify-content: center;margin-top: 40rpx;margin-bottom: 10rpx;">
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion1.png"></image>
+ <view style="font-size: 36rpx;color: #370606;margin: 0 20rpx;">会员权益说明</view>
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion.png"></image>
+ </view>
+ <view style="color: #370606;text-align: center;font-size: 24rpx;">MEMBERSHIP BENEFIS DESCRIPTON</view>
+ <view class="tips" style="background-color: #FFEEE7;border-radius: 32rpx;margin-top: 20rpx;padding: 30rpx;color: #370606;font-size: 28rpx;">
+ <view style="margin-bottom: 20rpx;display: flex;">
+ <view style="width: 40rpx;height: 40rpx;background-color: #F4936F;border-radius: 50%;text-align: center;line-height: 40rpx;flex-shrink: 0;flex-grow: 0;font-size: 28rpx;color: #370606;margin-right: 20rpx;">
+ 1.
+ </view>
+ <view>
+ 星享购商城会员年卡是本商城为会员特别打造的专属服务。成为会员后,您可享受各类商品折扣、促销优惠、生活权益及专属特权,并根据会员等级获赠相应超值礼品,体验我们为您准备的尊享会员服务。
</view>
</view>
- <view>
- <image src="/static/imgs/VIPSOA.png" style="width: 272rpx;height: 272rpx;"></image>
+ <view style="margin-bottom: 20rpx;display: flex;">
+ <view style="width: 40rpx;height: 40rpx;background-color: #F4936F;border-radius: 50%;text-align: center;line-height: 40rpx;flex-shrink: 0;flex-grow: 0;font-size: 28rpx;color: #370606;margin-right: 20rpx;">
+ 2.
+ </view>
+ <view>
+ 保险权益赠送:星享购商城会员年卡用户有机会获赠涵盖重疾险、意外险、事故险等的综合保障服务。尚未享受持牌机构服务的会员,亦有机会获取此项权益,具体详情请查阅会员中心相关说明。
+ </view>
+ </view>
+ <view style="margin-bottom: 20rpx;display: flex;">
+ <view style="width: 40rpx;height: 40rpx;background-color: #F4936F;border-radius: 50%;text-align: center;line-height: 40rpx;flex-shrink: 0;flex-grow: 0;font-size: 28rpx;color: #370606;margin-right: 20rpx;">
+ 3.
+ </view>
+ <view>
+ 会员服务一经开通即表示知晓并同意以上内容,自愿加入星享购商城会员年卡会员,并同意平台及平台权益合作方在账单日收入会员费,可在个人中心查看订单详情。
+ </view>
+ </view>
+ <view style="margin-bottom: 20rpx;display: flex;">
+ <view style="width: 40rpx;height: 40rpx;background-color: #F4936F;border-radius: 50%;text-align: center;line-height: 40rpx;flex-shrink: 0;flex-grow: 0;font-size: 28rpx;color: #370606;margin-right: 20rpx;">
+ 4.
+ </view>
+ <view>
+ 平台有权根据实际情况优化调整礼品内容和会员权益,最终解释权归星享购商城所有。
+ </view>
+ </view>
+ </view>
+ <view style="background: url('/static/img/qyBg2.png') no-repeat top center; background-size: 100%;width: 100%;height: 290rpx;margin-top: 20rpx;padding: 40rpx;">
+ <view style="margin-bottom:20rpx;font-size: 44rpx;font-weight: bold;background: -webkit-linear-gradient(#FFEEE7, #F4936F);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">尊享会员年卡</view>
+ <view style="font-size: 28rpx;">
+ <p style="background: -webkit-linear-gradient(#FFEEE7, #F4936F);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">年卡金额:{{ memberPeriodConfigInfo.totalBenefitsAmount }}元</p>
+ <p style="background: -webkit-linear-gradient(#FFEEE7, #F4936F);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">扣款期数:{{ memberPeriodConfigInfo.installmentPeriods }}期(先享后付,免息)</p>
+ <p style="background: -webkit-linear-gradient(#FFEEE7, #F4936F);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">有效期:365天</p>
</view>
</view>
- </view>
- <view class="content" style="overflow-y: scroll;padding: 30rpx;padding-top: 0;margin-top: -30rpx;">
- <view class="tips" style="font-size: 28rpx;padding: 28rpx 32rpx;background-image: url('/static/imgs/TIPSBACK.png');background-repeat: no-repeat;background-size: 100% 100%;padding-bottom: 32rpx;">
- <view style="font-size: 28rpx;color: #333333">① {{memberPeriodConfigInfo.showTitle}}商城会员年卡是本商城为会员特别打造的专属服务。成为会员后,您可享受各类商品折扣、促销优惠、生活权益及专属特权,并根据会员等级获赠相应超值礼品,体验我们为您准备的尊享会员服务。</view>
- <view style="font-size: 28rpx;color: #333333">② 保险权益赠送:{{memberPeriodConfigInfo.showTitle}}商城会员年卡用户有机会获赠涵盖重疾险、意外险、事故险等的综合保障服务。尚未享受持牌机构服务的会员,亦有机会获取此项权益,具体详情请查阅会员中心相关说明。</view>
- <view style="font-size: 28rpx;color: #333333">③ 平台保留根据实际情况新增或优化会员权益内容的权利。</view>
+<!-- <view style="margin-top: 30rpx;" class="back">-->
+<!-- <view style="flex: 1">-->
+<!-- <view class="tips" style="font-size: 36rpx;font-weight: bold;color: #794007;margin-bottom: 20rpx;">专享特权</view>-->
+<!-- <view class="tips" style="font-size: 26rpx;color: #794007;margin-bottom: 20rpx;line-height: 44rpx;">星享购会员年卡会员 {{ memberPeriodConfigInfo.totalBenefitsAmount }}元/年</view>-->
+<!-- <view class="tips" style="font-size: 26rpx;margin-bottom: 20rpx;color: #794007;line-height: 44rpx;">分期支付:先享后付(提供的实物商品为指定的价值888元的红酒一瓶),分{{ memberPeriodConfigInfo.installmentPeriods }}期支付包年会员服务、免息</view>-->
+<!-- <view class="tips" style="font-size: 26rpx;margin-bottom: 3rpx;color: #794007;line-height: 44rpx;">购买成功后,可在个人中心查看分期订单详情</view>-->
+
+<!-- </view>-->
+<!-- <view style="display: flex;margin-top: 150rpx;">-->
+<!-- <checkbox-group activeColor="#fff" @change='isAgree=!isAgree' style="height: 100px;">-->
+<!-- <checkbox :checked="isAgree ? true : false" iconColor="#794007" iconSize="30" size="38" :name="1" shape="circle">-->
+<!-- </checkbox>-->
+<!-- </checkbox-group>-->
+<!-- </view>-->
+<!-- </view>-->
+<!-- <view class="tips" style="color: #666666;margin-top: 30rpx;font-size: 26rpx">点击按钮即表示知晓并同意以上内容,自愿加入本商城星享购会员年卡会员,并同意平台及平台权益合作方在账单日收入会员费</view>-->
+ <view style="font-size: 24rpx;color: #666666;display: flex;align-items: center;margin: 40rpx 0;height: 50rpx;justify-content: center;">
+ <checkbox-group activeColor="#fff" @change='isAgree=!isAgree' style="">
+ <checkbox :checked="isAgree ? true : false" iconColor="#794007" iconSize="30" size="38" :name="1" shape="circle">
+ </checkbox>
+ </checkbox-group>
+ <text style="color: #20110E;">我已阅读并同意</text>
+ <!-- <text style="display: inline;font-size: 24rpx;color: #4766FE" @click="link('/pages/protocol/protocol?code=shop_ai_service&title=会员服务协议-YXKJ')">《会员服务协议-YXKJ》</text>
+ <text style="display: inline;font-size: 24rpx;color: #4766FE" @click="link('/pages/protocol/protocol?code=shop_auto_service&title=委托扣款确认书-YXKJ')">《委托扣款确认书-YXKJ》</text>-->
+ <text style="display: inline;font-size: 24rpx;color: #4766FE" @click="link(`/pages/web/xieyi?code=${memberPeriodConfigInfo.protocolCode}&title=${memberPeriodConfigInfo.protocolName}`)">《会员权益服务协议-星享购》</text>
</view>
-
- <view class="QXFJH" style="background-image: url('/static/imgs/QXFJH.png');background-size: 100% 100%;text-align: center;background-repeat: no-repeat;padding: 28rpx 0;margin-top: 18rpx;margin-bottom: 16rpx;color: #333333;line-height: 48rpx;">
- <view style="font-weight: 600;">{{memberPeriodConfigInfo.showTitle}}商城会员专享特权</view>
-
- <view>年卡费用:{{memberPeriodConfigInfo.totalBenefitsAmount }}元/年</view>
- <view>支付期数:{{memberPeriodConfigInfo.installmentPeriods }}期</view>
- <!-- <view>支付期数:{{memberPeriodConfigInfo.installmentPeriods }}期(每期{{memberPeriodConfigInfo.totalBenefitsAmount / memberPeriodConfigInfo.installmentPeriods}}元)</view>-->
-
-
- </view>
-
- <view style="font-size: 22rpx;padding: 36rpx 32rpx 24rpx 32rpx;background-image: url('/static/imgs/CLOSAN.png');background-repeat: no-repeat;background-size: 100% 100%;margin-bottom: 32rpx;">
- <view style="font-size: 24rpx;margin-bottom: 30rpx;color: #333333">会员先享后付,包年会员服务、免息,购买成功后可在个人中心查看订单详情。会员服务开通成功不支持取消、退款。</view>
- <view style="font-size: 24rpx;color: #333333">点击按钮即表示知晓并同意以上内容,自愿加入本商城年卡会员,且同意平台及平台权益合作方在账单日收入会员费。</view>
- </view>
-
-
-
-
- <view style="display: flex;gap: 20rpx;">
+<!-- <view class="tips" style="color: #666666;margin-top: 24rpx;margin-bottom: 20rpx;font-size: 26rpx">*会员服务一经开通不支持取消、退款,会员服务到期前,用户可以选择续订或取消续费。</view>-->
+ <view style="position: fixed;bottom: 40rpx;left: 30rpx;width: 690rpx;display: flex;gap: 20rpx;z-index: 2;">
+ <button @click="goHome" style="width: 200rpx;height: 100rpx;padding: 10rpx 0;border-radius: 50rpx;font-size: 34rpx">暂不开通</button>
<button
- style="height: 100rpx;color: #666666;border-radius: 24rpx;font-size: 34rpx;line-height: 100rpx;width: 170rpx;background-color: unset;"
- @click="goHome"
- >暂不开通</button>
- <button
- style="height: 100rpx;color: white;border-radius: 24rpx;font-size: 34rpx;line-height: 100rpx;flex: 1;"
- :disabled="!tm"
+ style="height: 100rpx;padding: 10rpx 0;color: #370606;border-radius: 50rpx;font-size: 34rpx;flex: 1;"
+
@click="submit"
:class="tm &&protocolChecked.length?'activityBut':'disabledBut'"
- >同意并开通<text v-if="!tm">({{text}}秒)</text></button>
+ >同意并开通<text v-if="!tm">({{text}}秒)</text></button>
</view>
- <view style="display: flex;margin-top: 20rpx;display: flex;font-weight: 600;">
- <uv-checkbox-group activeColor="#FF1472" @change='isAgree=!isAgree' >
- <uv-checkbox :checked="isAgree ? true : false" activeColor="#FF1472" iconSize="14" size="16" :name="1" shape="circle">
- </uv-checkbox>
- <view style="font-size: 24rpx;color: #8B8D96">我已阅读并同意<text style="display: inline;font-size: 24rpx;color: #4766FE" @click="link(`/pages/web/xieyi?code=${memberPeriodConfigInfo.protocolCode}&title=${memberPeriodConfigInfo.protocolName}`)">{{ memberPeriodConfigInfo.protocolName }}</text></view>
- </uv-checkbox-group>
+ <!-- 专享会员生活权益 -->
+ <view>
+ <view class="content-title" style="text-align: center;display: flex;align-items: center;justify-content: center;margin-top: 50rpx;margin-bottom: 40rpx;">
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion1.png"></image>
+ <view style="font-size: 36rpx;color: #370606;margin: 0 20rpx;">专享会员生活权益</view>
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion.png"></image>
+ </view>
+ <view class="life" style="background: url('/static/img/qsLife.png') no-repeat top center; background-size: 100%;width: 100%;height: 1506rpx;">
+
+ </view>
+ <view style="width: 690rpx;margin-top: 20rpx;text-align: center;">
+<!-- <button @click="toHuiyuan" style="height: 100rpx;padding: 25rpx 0;color: #370606;border-radius: 50rpx;font-size: 34rpx;background-image: linear-gradient(to right, #FFEAE2, #FF6F55);">兑换生活权益</button>-->
+ <view style="color: #333;font-size: 24rpx;padding-top: 0rpx;padding-bottom: 10rpx;">以上权益仅为预览展示,实际以兑换页面为准</view>
+ </view>
+ <view class="content-title" style="text-align: center;display: flex;align-items: center;justify-content: center;margin-top: 50rpx;margin-bottom: 40rpx;">
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion1.png"></image>
+ <view style="font-size: 36rpx;margin: 0 20rpx;color: #370606;">专享会员实物权益</view>
+ <image style="width: 127rpx;height: 18rpx;" src="/static/img/nion.png"></image>
+ </view>
+ <view class="physical" style="background: url('/static/img/qsPhysical.png') no-repeat top center; background-size: 100%;width: 100%;height: 1580rpx;">
+
+ </view>
+ <view style="width: 690rpx;margin-top: 20rpx;text-align: center;">
+<!-- <button @click="getTips" style="height: 100rpx;padding: 25rpx 0;color: #370606;border-radius: 50rpx;font-size: 34rpx;background-image: linear-gradient(to right, #FFEAE2, #FF6F55);">查询实物权益</button>-->
+ <view style="color: #333;font-size: 24rpx;padding-top: 0rpx;padding-bottom: 40rpx;">以上权益仅为预览展示,实际以商城发出为准</view>
+ </view>
</view>
- <view class="tab-wrap">
- <text @click="active=0" :class="active==0?'active':''">实物权益</text>
- <text @click="active=1" :class="active==1?'active':''">虚拟权益</text>
- </view>
- <view class="note" style="margin-bottom: 20rpx;text-align: center;color: #999;font-size: 24rpx;" v-if="active==0">页面展示为实物样例,实际以用户收到的商品为准</view>
- <view class="note" style="margin-bottom: 20rpx;text-align: center;color: #999;font-size: 24rpx;" v-if="active==1">页面为虚拟权益预览,实际用户以当日兑换内容为准</view>
- <lanyaerji v-if="active==0" style="margin:0 30rpx;"/>
- <tehuichongzhi v-else :VIP="VIP" style="margin-top: 50rpx;" />
+
+ <!-- <view style="text-align: center;display: flex;flex-direction: row;justify-content: center"><text @click="submit(false)" style="color: #666666;margin-bottom: 20rpx;font-size: 28rpx">不同意</text></view>-->
</view>
<textBox v-if="showTextBox" ref="textBox" :code="memberPeriodConfigInfo.protocolCode" :title="memberPeriodConfigInfo.protocolName"></textBox>
</view>
</template>
<style scoped lang="scss">
-/* tab */
-.tab-wrap {
- display: flex;
- justify-content: space-evenly;
- margin-bottom: 50rpx;
- margin-top: 50rpx;
-}
-.tab-wrap text {
- font-weight: 600;
- font-size: 36rpx;
- color: #666;
-}
-.active {
- color: #333 !important;
- position: relative;
- &::after {
- content: "";
- display: block;
- width: 50rpx;
- height: 8rpx;
- background: linear-gradient( 91deg, #FDFAFF 0%, #F9C969 100%);
- border-radius: 32rpx;
- position: absolute;
- bottom: -20rpx;
- left: calc(50% - 25rpx);
- }
-}
.activityBut{
- background: #FF1472;
- font-weight: 600;
+ //background: #EE2626;
+ background-image: linear-gradient(to right, #FFEAE2, #FF6F55);
+ font-weight: 500;
}
.disabledBut{
- background: #666666;
- font-weight: 600;
-}
-.disabledBut{
- background: #999 !important;
+ background: #dddddd;
}
.head{
- padding: 0rpx 10rpx 0 30rpx;
+ padding: 30rpx 30rpx 0 30rpx;
font-size: 32rpx;
color: #252938;
@@ -308,74 +315,16 @@
.mr{
margin-right: 20rpx;
}
- .tips{
- position: relative;
- &::after{
- content: '';
- display: block;
- position: absolute;
- bottom: -38rpx;
- right: 22rpx;
- width: 14rpx;
- height: 62rpx;
- background: #FFD3DD;
- border-radius: 78rpx 78rpx 78rpx 78rpx;
- z-index: 2;
- }
- &::before{
- content: '';
- display: block;
- position: absolute;
- bottom: -38rpx;
- width: 14rpx;
- height: 62rpx;
- background: #FFD3DD;
- border-radius: 78rpx 78rpx 78rpx 78rpx;
- z-index: 2;
- }
- }
-}
-.QXFJH{
- position: relative;
- &::after{
- content: '';
- display: block;
- position: absolute;
- bottom: -38rpx;
- right: 22rpx;
- width: 14rpx;
- height: 62rpx;
- background: #FFD3DD;
- border-radius: 78rpx 78rpx 78rpx 78rpx;
- z-index: 2;
- }
- &::before{
- content: '';
- display: block;
- position: absolute;
- bottom: -38rpx;
- width: 14rpx;
- height: 62rpx;
- left: 32rpx;
- background: #FFD3DD;
- border-radius: 78rpx 78rpx 78rpx 78rpx;
- z-index: 2;
- }
+
}
.back{
- background-image: url("/static/imgs/ba.png");
+ // background-image: url("/static/img/ba.png");
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 22rpx 30rpx;
display: flex;
flex-direction: row;
}
-.box{
- background-image: url('/static/imgs/QYBACKA.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- background-color: #FFF4FA;
- min-height: 100vh;
-}
+
</style>
--
Gitblit v1.9.3