From 33a50c2bf2a52b4c28402f992e9fe6df9c77afb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E9=A6=99=E7=90=AA?= <624506849@qq.com> Date: Sun, 13 Sep 2026 16:27:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(distribution):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8B=9B=E5=8B=9F=E9=A1=B5=E9=9D=A2=E4=BF=A1=E6=81=AF=E4=B8=8E?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getRecruitPage 函数以获取招募页面信息 - 更新 Distribution.vue 以处理招募流程状态,增加线上入口关闭的逻辑 - 在分销员申请流程中集成招募入口状态检查,优化用户体验 - 更新管理端分销招募设置说明,明确用户申请流程与入口状态 --- buyer/src/api/member.js | 11 ++++++ .../pages/home/memberCenter/Distribution.vue | 36 +++++++++++++++++-- .../distribution/distributionRecruit.vue | 3 ++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/buyer/src/api/member.js b/buyer/src/api/member.js index 76ab273d..5e13353a 100644 --- a/buyer/src/api/member.js +++ b/buyer/src/api/member.js @@ -355,6 +355,17 @@ export function distribution () { }); } +/** + * 招募页信息 + */ +export function getRecruitPage () { + return request({ + url: `/buyer/distribution/distribution/recruit/page`, + method: Method.GET, + needToken: true + }); +} + /** * 提交招募申请 */ diff --git a/buyer/src/pages/home/memberCenter/Distribution.vue b/buyer/src/pages/home/memberCenter/Distribution.vue index c4a913b6..265c8143 100644 --- a/buyer/src/pages/home/memberCenter/Distribution.vue +++ b/buyer/src/pages/home/memberCenter/Distribution.vue @@ -7,9 +7,14 @@ 分销员申请 - + - + 提交申请 @@ -241,6 +246,7 @@ import { Message } from "@/utils/message"; import { Edit } from '@element-plus/icons-vue'; import { distribution, + getRecruitPage, submitRecruitApplication, distCash, distCashHistory, @@ -256,6 +262,7 @@ export default { return { config, status: 0, // 申请状态,0为未申请 1 申请中 2 申请完成 3 功能暂未开启 + onlineEntryClosed: false, // 线上自助入口关闭 applyForm: {}, // 申请表单 rules: { // 验证规则(V2 招募流程,旧实名认证字段已移除) @@ -437,8 +444,29 @@ export default { if (res.success) this.logData = res.result; }); }, + isDistributionCloseError(payload) { + return payload?.code === 22000 || payload?.data?.code === 22000; + }, + loadRecruitEntryGate() { + getRecruitPage() + .then((res) => { + if (this.isDistributionCloseError(res)) { + this.status = 3; + return; + } + if (res?.success) { + this.onlineEntryClosed = res.result?.onlineEntryVisible !== true; + } + }) + .catch((err) => { + if (this.isDistributionCloseError(err) || this.isDistributionCloseError(err?.data)) { + this.status = 3; + } + }); + }, distribution() { // 获取分销员信息 + this.onlineEntryClosed = false; distribution() .then((res) => { if (res?.result) { @@ -449,6 +477,7 @@ export default { this.getGoodsData(); } else if (type === "REFUSE") { this.status = 0; + this.loadRecruitEntryGate(); } else if (type === "RETREAT") { this.status = 4; } else { @@ -460,10 +489,11 @@ export default { } else { // 没有资格申请,显示申请表单 this.status = 0; + this.loadRecruitEntryGate(); } }) .catch((err) => { - if (err?.code === 22000) { + if (this.isDistributionCloseError(err) || this.isDistributionCloseError(err?.data)) { this.status = 3; } }); diff --git a/manager/src/views/distribution/distributionRecruit.vue b/manager/src/views/distribution/distributionRecruit.vue index 014889c4..3dd3a159 100644 --- a/manager/src/views/distribution/distributionRecruit.vue +++ b/manager/src/views/distribution/distributionRecruit.vue @@ -155,6 +155,9 @@ 展示 不展示 +
+ 关闭后,买家不能从「我的分销」自助申请,审核拒绝后也不能从该入口再申请。通过图文邀请卡(招募码)仍可加入。与「是否开启分销」无关,关闭本项不会停用已有分销员;关闭「是否开启分销」后邀请卡也不能再加入。 +