feat(distribution): 添加招募页面信息与状态管理

- 新增 getRecruitPage 函数以获取招募页面信息
- 更新 Distribution.vue 以处理招募流程状态,增加线上入口关闭的逻辑
- 在分销员申请流程中集成招募入口状态检查,优化用户体验
- 更新管理端分销招募设置说明,明确用户申请流程与入口状态
This commit is contained in:
田香琪
2026-09-13 16:27:33 +08:00
parent f4a50cd854
commit 33a50c2bf2
3 changed files with 47 additions and 3 deletions

View File

@@ -355,6 +355,17 @@ export function distribution () {
});
}
/**
* 招募页信息
*/
export function getRecruitPage () {
return request({
url: `/buyer/distribution/distribution/recruit/page`,
method: Method.GET,
needToken: true
});
}
/**
* 提交招募申请
*/

View File

@@ -7,9 +7,14 @@
<el-alert type="warning">分销员申请</el-alert>
<el-form ref="form" :model="applyForm" :rules="rules">
<el-form-item>
<el-alert type="info" show-icon :closable="false" title="分销员申请已改为招募流程,请通过招募入口加入。" />
<el-alert
type="info"
show-icon
:closable="false"
:title="onlineEntryClosed ? '暂未开放线上招募' : '分销员申请已改为招募流程。'"
/>
</el-form-item>
<el-form-item>
<el-form-item v-if="!onlineEntryClosed">
<el-button type="primary" :loading="applyLoading" @click="apply"
>提交申请</el-button
>
@@ -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;
}
});

View File

@@ -155,6 +155,9 @@
<el-radio :value="true">展示</el-radio>
<el-radio :value="false">不展示</el-radio>
</el-radio-group>
<div class="form-desc">
关闭后买家不能从我的分销自助申请审核拒绝后也不能从该入口再申请通过图文邀请卡招募码仍可加入是否开启分销无关关闭本项不会停用已有分销员关闭是否开启分销后邀请卡也不能再加入
</div>
</el-form-item>
<el-form-item label="招募海报">
<div class="recruit-poster-block">