From 2042a6d08bfc0a1e9d124f4de66a371935b1099f Mon Sep 17 00:00:00 2001
From: wuhui_zzw <1760308791@qq.com>
Date: Wed, 3 Apr 2024 16:42:33 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E9=82=80=E8=AF=B7?=
=?UTF-8?q?=E7=A0=81=E6=BF=80=E6=B4=BB=E5=8F=8A=E4=BD=BF=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/user.js | 17 +-
pages.json | 14 +
pages/user/index.vue | 104 ++--
pages/users/invitation_code/activation.vue | 656 +++++++++++++++++++++
pages/users/invitation_code/use.vue | 360 +++++++++++
5 files changed, 1114 insertions(+), 37 deletions(-)
create mode 100644 pages/users/invitation_code/activation.vue
create mode 100644 pages/users/invitation_code/use.vue
diff --git a/api/user.js b/api/user.js
index 809e5b1..ff780d8 100644
--- a/api/user.js
+++ b/api/user.js
@@ -715,7 +715,7 @@ export function writeOff(data) {
export function writeOffRecord(data) {
return request.get("coupon/write_off_record", data);
}
-// 完成核销操作
+// 兑换码 - 完成核销操作
export function vipExchangeCode(data) {
return request.post("sVip/vipExchangeCode", data);
}
@@ -727,6 +727,15 @@ export function brokerageApplyFormalPost(data) {
export function brokerageApplyFormalGet() {
return request.get("user/brokerage_formal_info");
}
-
-
-
+// 邀请码 - 信息获取
+export function inviteCodeInfo(data) {
+ return request.get("sVip/getInviteInfo", data);
+}
+// 邀请码 - 信息获取
+export function inviteCodePayment(data) {
+ return request.get("sVip/invitePayment", data);
+}
+// 邀请码 - 确认使用
+export function inviteCodeConfirmUse(data) {
+ return request.get("sVip/inviteUse", data);
+}
diff --git a/pages.json b/pages.json
index fe61bbd..e8b0305 100644
--- a/pages.json
+++ b/pages.json
@@ -598,7 +598,21 @@
"style": {
"navigationBarTitleText": "核销记录"
}
+ },
+ {
+ "path": "invitation_code/activation",
+ "style": {
+ "navigationBarTitleText": "邀请码激活"
+ }
+ },
+ {
+ "path": "invitation_code/use",
+ "style": {
+ "navigationBarTitleText": "邀请码使用"
+ }
}
+
+
]
},
{
diff --git a/pages/user/index.vue b/pages/user/index.vue
index 54d20a5..f394966 100644
--- a/pages/user/index.vue
+++ b/pages/user/index.vue
@@ -342,7 +342,7 @@
import spread from "../../libs/spread";
let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
- import { getMenuList, getUserInfo, setVisit, vipExchangeCode } from '@/api/user.js';
+ import { getMenuList, getUserInfo, setVisit, vipExchangeCode,inviteCodeInfo } from '@/api/user.js';
import { getVersion, getNavigation } from "@/api/public";
import { orderData } from '@/api/order.js'
import { mapGetters } from "vuex";
@@ -842,37 +842,78 @@
wx.scanCode({
success(res) {
let result = res.result || '';
- if(result){
- uni.showModal({
- title: '确认使用!',
- content: '使用后当前兑换码将立即生效!是否确认使用?',
- showCancel: true, // 是否显示取消按钮
- cancelText: '取消', // 取消按钮文字
- confirmText: '立即使用', // 确认按钮文字
- success: (res) => {
- if (res.confirm) {
- vipExchangeCode({
- exchange_code: result
- }).then(res => {
- if(res.status == 200){
- uni.showModal({
- title: '开通成功',
- success: (res) => {
- uni.navigateTo({
- url: '/pages/annex/vip_center/index'
- });
- }
- });
- }
- }).catch(err => {
- _this.$util.Tips({title: err});
- });
+ let params = result ? _this.$util.getUrlParams(result) : {};
+ let type = params.type || '';
+ // console.log("二维码内容", {result: result, params: params})
+ // 根据类型进行对应的处理
+ switch (type) {
+ // 邀请码
+ case 'invite':
+ inviteCodeInfo({
+ exchange_code: params.code
+ }).then(res => {
+ if (res.status == 200) {
+ let data = res.data || {};
+ let status = Number(data.status);
+ // 状态:0=未激活,1=已激活,2=已使用,3=作废
+ switch (status){
+ case 0:
+ uni.navigateTo({
+ url: '/pages/users/invitation_code/activation?code=' + params.code
+ })
+ break;
+ case 1:
+ uni.navigateTo({
+ url: '/pages/users/invitation_code/use?code=' + params.code
+ })
+ break;
+ case 2:
+ _this.$util.Tips({title: '邀请码已使用'});
+ break;
+ case 3:
+ _this.$util.Tips({title: '邀请码已作废'});
+ break;
+ default:
+ _this.$util.Tips({title: '无效的邀请码'});
+ }
}
- if (res.cancel) {
- console.log("取消")
+ }).catch(err => {
+ _this.$util.Tips({title: err});
+ });
+ break;
+ // 兑换码
+ case 'exchange':
+ uni.showModal({
+ title: '确认使用!',
+ content: '使用后当前兑换码将立即生效!是否确认使用?',
+ showCancel: true, // 是否显示取消按钮
+ cancelText: '取消', // 取消按钮文字
+ confirmText: '立即使用', // 确认按钮文字
+ success: (res) => {
+ if (res.confirm) {
+ vipExchangeCode({
+ exchange_code: result
+ }).then(res => {
+ if (res.status == 200) {
+ uni.showModal({
+ title: '开通成功',
+ success: (res) => {
+ uni.navigateTo({
+ url: '/pages/annex/vip_center/index'
+ });
+ }
+ });
+ }
+ }).catch(err => {
+ _this.$util.Tips({title: err});
+ });
+ }
+ if (res.cancel) {
+ console.log("取消")
+ }
}
- }
- });
+ });
+ break;
}
},
fail(res) {
@@ -881,9 +922,6 @@
})
},
-
-
-
},
onPullDownRefresh: function(){
this.getNav();
diff --git a/pages/users/invitation_code/activation.vue b/pages/users/invitation_code/activation.vue
new file mode 100644
index 0000000..ffac0d3
--- /dev/null
+++ b/pages/users/invitation_code/activation.vue
@@ -0,0 +1,656 @@
+
+
+
+
+
+
+
+ {{ pay_info.money > 0 ? '确认支付' : '确认激活' }}
+
+
+
+
+
+
+ ¥
+ {{ pay_info.money || 0 }}
+
+ 会员卡号:{{ code }}
+
+
+
+
+
+
+ 支付方式
+
+
+
+
+
+
+
+
+
+ 确认支付
+ 确认激活
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/users/invitation_code/use.vue b/pages/users/invitation_code/use.vue
new file mode 100644
index 0000000..6f54589
--- /dev/null
+++ b/pages/users/invitation_code/use.vue
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
+ 领取奖励
+ 领取你的专属奖励
+
+
+
+
+
+
+
+ 我的邀请人
+
+
+ {{ info.activateUser.nickname || '' }}
+ ID:{{ info.activateUser.uid }}
+
+
+
+
+ 领取奖励
+
+
+
+
+ 菜卡额度
+
+ {{ svip_info.vegetable_quota }}
+
+
+
+
+ 酒卡额度
+
+ {{ svip_info.quota }}
+
+
+
+
+ 会员礼包
+
+ {{ Object.values(svip_info.coupon || {}).length }}
+
+
+
+
+
+ 确认领取
+
+
+
+
+
+
+
+
+