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 @@ + + + + + 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 @@ + + + + +