diff --git a/buyer/src/api/member.js b/buyer/src/api/member.js index 31a55140..76ab273d 100644 --- a/buyer/src/api/member.js +++ b/buyer/src/api/member.js @@ -356,33 +356,19 @@ export function distribution () { } /** - * 申请成为分销商 - * @param idNumber 身份证号 - * @param name 名字 + * 提交招募申请 */ -export function applyDistribution (params) { +export function submitRecruitApplication (data) { return request({ - url: `/buyer/distribution/distribution`, + url: `/buyer/distribution/distribution/recruit/apply`, method: Method.POST, needToken: true, - params + data }); } /** - * 获取分销商订单列表 - */ -export function getDistOrderList (params) { - return request({ - url: `/buyer/distribution/order`, - method: Method.GET, - needToken: true, - params - }); -} - -/** - * 获取分销商商品列表 + * 获取分销员商品列表 */ export function getDistGoodsList (params) { return request({ @@ -408,7 +394,7 @@ export function selectDistGoods (params) { } /** - * 分销商提现历史 + * 分销员提现历史 */ export function distCashHistory (params) { return request({ @@ -420,7 +406,7 @@ export function distCashHistory (params) { } /** - * 分销商提现 + * 分销员提现 */ export function distCash (params) { return request({ diff --git a/buyer/src/pages/home/memberCenter/Distribution.vue b/buyer/src/pages/home/memberCenter/Distribution.vue index 875c4d25..b2b7eabe 100644 --- a/buyer/src/pages/home/memberCenter/Distribution.vue +++ b/buyer/src/pages/home/memberCenter/Distribution.vue @@ -4,24 +4,11 @@
- 分销商申请 + 分销员申请 - - + + - - - - - - - - - - - - - 提交申请 { if (valid) { this.applyLoading = true; - applyDistribution(this.applyForm).then((res) => { + submitRecruitApplication({ agreementAccepted: true }).then((res) => { this.applyLoading = false; if (res.success) { Message.success("申请已提交,请等待管理员审核"); @@ -496,7 +451,7 @@ export default { }, //申诉 repaying(){ - applyDistribution().then((res) => { + submitRecruitApplication({ agreementAccepted: true }).then((res) => { this.applyLoading = false; if (res.success) { Message.success("申诉已提交,请等待管理员审核"); @@ -505,7 +460,7 @@ export default { }); }, distribution() { - // 获取分销商信息 + // 获取分销员信息 distribution() .then((res) => { if (res?.result) { diff --git a/manager/public/config.js b/manager/public/config.js index 59011110..4478e187 100644 --- a/manager/public/config.js +++ b/manager/public/config.js @@ -3,7 +3,7 @@ var BASE = { * @description api请求基础路径 */ API_DEV: { - manager: "https://admin-api.pickmall.cn", + manager: "http://127.0.0.1:8887", }, API_PROD: { manager: "https://admin-api.pickmall.cn" diff --git a/manager/src/api/distribution.js b/manager/src/api/distribution.js index b12706a6..2f118b1c 100644 --- a/manager/src/api/distribution.js +++ b/manager/src/api/distribution.js @@ -1,11 +1,45 @@ // 统一请求路径前缀在libs/axios.js中修改 -import {getRequest, postRequest, putRequest, deleteRequest} from '@/libs/axios'; +import {getRequest, postRequest, postRequestWithNoForm, putRequest, putRequestWithNoForm, deleteRequest, importRequest} from '@/libs/axios'; //查询分销员 export const getDistributionListData = (params) => { return getRequest('/distribution/distribution/getByPage', params) } +// 分销员聚合分页(V2) +export const getDistributionMemberPage = (params) => { + return getRequest('/distribution/distribution/memberPage', params) +} +export const getDistributionMemberDetail = (id) => { + return getRequest(`/distribution/distribution/memberDetail/${id}`) +} +export const updateDistributionMember = (id, params) => { + return putRequestWithNoForm(`/distribution/distribution/member/${id}`, params) +} +export const createDistributionMember = (params) => { + return postRequestWithNoForm('/distribution/distribution/member', params) +} +export const batchUpdateDistributionGrade = (params) => { + return putRequestWithNoForm('/distribution/distribution/member/batchGrade', params) +} +export const exportDistributionMembers = (params) => { + return getRequest('/distribution/distribution/memberExport', params, 'blob') +} +export const downloadDistributionImportTemplate = () => { + return getRequest('/distribution/memberImport/template', {}, 'blob') +} +export const importDistributionMembers = (formData) => { + return importRequest('/distribution/memberImport/import', formData) +} +export const getDistributionImportBatches = (params) => { + return getRequest('/distribution/memberImport/batch', params) +} +export const getDistributionImportItems = (batchId, params) => { + return getRequest(`/distribution/memberImport/batch/${batchId}/items`, params) +} +export const downloadDistributionImportFailItems = (batchId) => { + return getRequest(`/distribution/memberImport/batch/${batchId}/failExport`, {}, 'blob') +} //审核分销员 export const auditDistribution = (id, params) => { return putRequest(`/distribution/distribution/audit/${id}`, params) @@ -34,6 +68,50 @@ export const getDistributionSetting = (id, params) => { return getRequest(`/distribution/setting/get/${id}`, params) } +// V2客户关系设置 +export const getDistributionCustomerSetting = () => getRequest('/distribution/setting/v2/customer') +export const putDistributionCustomerSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/customer', params) +// V2结算方案设置 +export const getDistributionSettlementSetting = () => getRequest('/distribution/setting/v2/settlement') +export const putDistributionSettlementSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/settlement', params) +// 分销商品设置 +export const getDistributionFeaturedGoodsSetting = () => getRequest('/distribution/setting/v2/featured-goods') +export const putDistributionFeaturedGoodsSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/featured-goods', params) +// 平台海报设置 +export const getDistributionPromotionPosterSetting = () => getRequest('/distribution/setting/v2/promotion-poster') +export const putDistributionPromotionPosterSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/promotion-poster', params) +// 邀请卡设置 +export const getDistributionInviteCardSetting = () => getRequest('/distribution/setting/v2/invite-card') +export const putDistributionInviteCardSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/invite-card', params) +// 分销等级 +export const getDistributionGrades = () => getRequest('/distribution/grade') +export const saveAllDistributionGrades = (params) => putRequestWithNoForm('/distribution/grade/batch', params) +export const deleteDistributionGrade = (id) => deleteRequest(`/distribution/grade/${id}`) +export const getDistributionGradeHistoryPage = (params) => getRequest('/distribution/gradeHistory', params) + +// 客户关系 +export const getCustomerRelations = (params) => getRequest('/distribution/customerRelation', params) +export const getCustomerRelationDetail = (id) => getRequest(`/distribution/customerRelation/${id}`) +export const getCustomerRelationLogs = (id) => getRequest(`/distribution/customerRelation/${id}/logs`) +export const rebindCustomerRelation = (params) => putRequest('/distribution/customerRelation/rebind', params) +export const unbindCustomerRelation = (params) => putRequest('/distribution/customerRelation/unbind', params) + +// 分销招募设置 +export const getCurrentRecruitPlan = () => getRequest('/distribution/recruit/plan/current') +export const getPublishedRecruitPlan = () => getRequest('/distribution/recruit/plan/published') +export const saveRecruitPlan = (params) => postRequestWithNoForm('/distribution/recruit/plan', params) +export const getDistributionRecruitSetting = () => getRequest('/distribution/setting/v2/recruit') +export const putDistributionRecruitSetting = (params) => putRequestWithNoForm('/distribution/setting/v2/recruit', params) +export const publishRecruitPlan = (planId) => putRequest(`/distribution/recruit/plan/publish/${planId}`) +export const auditRecruitApplication = (applicationId, params) => putRequest(`/distribution/recruit/application/audit/${applicationId}`, params) + +// 统计V2 +export const getDistributionOverviewV2 = (params) => getRequest('/statistics/distribution/v2/overview', params) +export const getDistributionBehaviorV2 = (params) => getRequest('/statistics/distribution/v2/behavior', params) +export const getDistributionGoodsV2 = (params) => getRequest('/statistics/distribution/v2/goods', params) + +// 钱包流水 +export const getDistributionWalletLogs = (params) => getRequest('/distribution/walletLog', params) //获取分销订单列表 export const getDistributionOrder = (params) => { @@ -48,6 +126,10 @@ export const getDistributionGoods = (params) => { export const delDistributionGoods = (ids) => { return deleteRequest(`/distribution/goods/delByIds/${ids}`) } + +export const auditDistributionGoods = (params) => { + return putRequestWithNoForm('/distribution/goods/audit', params) +} //获取分销佣金信息 export const getDistributionCash = (params) => { return getRequest('/distribution/cash/getByPage', params) @@ -56,6 +138,3 @@ export const getDistributionCash = (params) => { export const auditDistributionCash = (id,params) => { return postRequest(`/distribution/cash/audit/${id}`, params) } - - - diff --git a/manager/src/components/distribution/distribution-selector.vue b/manager/src/components/distribution/distribution-selector.vue new file mode 100644 index 00000000..d644697d --- /dev/null +++ b/manager/src/components/distribution/distribution-selector.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/manager/src/libs/util.js b/manager/src/libs/util.js index 2b46a803..8e155bad 100644 --- a/manager/src/libs/util.js +++ b/manager/src/libs/util.js @@ -7,7 +7,6 @@ let util = {}; /** 已弃用、前端未实现或已移除的菜单 frontRoute,注册路由时跳过 */ const DEPRECATED_FRONT_ROUTES = new Set([ "goods/goods-manage/spec", - "distribution/distrbutionGrade", ]); function isDeprecatedMenu(menu) { diff --git a/manager/src/router/router.js b/manager/src/router/router.js index ab17a940..06dfe87f 100644 --- a/manager/src/router/router.js +++ b/manager/src/router/router.js @@ -455,6 +455,20 @@ export const otherRouter = { meta: { title: "商品销售汇总报表" }, component: () => import("@/views/statistics/goods-sales-summary.vue") }, + { + path: "distributionImportRecord", + title: "分销员导入记录", + name: "distributionImportRecord", + meta: { title: "分销员导入记录" }, + component: () => import("@/views/distribution/distributionImportRecord.vue") + }, + { + path: "distributionGradeHistory", + title: "等级变更记录", + name: "distributionGradeHistory", + meta: { title: "等级变更记录" }, + component: () => import("@/views/distribution/distributionGradeHistory.vue") + }, { path: "procurement/purchase-order/detail", title: "采购单详情", diff --git a/manager/src/styles/element.scss b/manager/src/styles/element.scss index 32300bdd..6448267f 100644 --- a/manager/src/styles/element.scss +++ b/manager/src/styles/element.scss @@ -47,6 +47,20 @@ background-color: transparent; } +/* 全局表格表头 */ +.el-table { + .el-table__header th.el-table__cell { + background: var(--el-color-primary-light-9, #ecf5ff); + color: #303133; + font-weight: normal; + } + + .el-table__header th.el-table__cell .cell { + color: #303133; + font-weight: normal; + } +} + /* 列表操作列统一样式 */ .link-text { color: #409eff; diff --git a/manager/src/views/distribution/dataJson.js b/manager/src/views/distribution/dataJson.js index 63f61dde..9d024a9e 100644 --- a/manager/src/views/distribution/dataJson.js +++ b/manager/src/views/distribution/dataJson.js @@ -1,4 +1,4 @@ -// 分销商状态列表 +// 分销员状态列表 export const distributionStatusList= [ { value:'APPLY', @@ -32,6 +32,43 @@ export const cashStatusList = [ label:'通过' } ] +// 分销客户关系有效状态筛选 +export const relationEffectiveList = [ + { value: true, label: '有效' }, + { value: false, label: '失效' }, +] +export const hasDeadlineList = [ + { value: true, label: '是' }, + { value: false, label: '否' }, +] +// 分销客户关系状态列表 +export const relationStatusList = [ + { value: 'PENDING', label: '待支付转永久' }, + { value: 'TEMPORARY', label: '短期有效' }, + { value: 'PERMANENT', label: '永久有效' }, + { value: 'EXPIRED', label: '已到期' }, + { value: 'UNBOUND', label: '已解绑' }, + { value: 'SELF_BIND', label: '自绑定' }, +] +export const customerRelationChangeTypeList = [ + { value: 'CREATE', label: '绑定' }, + { value: 'EXPIRE', label: '过期' }, + { value: 'ADMIN_REBIND', label: '换绑' }, + { value: 'ADMIN_UNBIND', label: '解绑' }, +] +export const bindModeList = [ + { value: 'PERMANENT', label: '永久锁客' }, + { value: 'SHORT_TERM', label: '短期锁客' }, +] +export const permanentBindModeList = [ + { value: 'SCAN_IMMEDIATE', label: '扫码立即永久' }, + { value: 'PAID_WITHIN_DAYS', label: '规定天数内支付转永久' }, +] +export const bindSourceList = [ + { value: 'SCAN', label: '扫码绑定' }, + { value: 'ORDER', label: '订单触发' }, + { value: 'ADMIN', label: '后台操作' }, +] // 分销订单状态列表 export const orderStatusList = [ { diff --git a/manager/src/views/distribution/distribution.vue b/manager/src/views/distribution/distribution.vue index b6951f28..b343b52f 100644 --- a/manager/src/views/distribution/distribution.vue +++ b/manager/src/views/distribution/distribution.vue @@ -5,27 +5,67 @@ ref="searchForm" :model="searchForm" inline - label-width="70px" + label-width="100px" class="search-form" @keyup.enter="handleSearch" > - + + + + + + + + + + + + + + + - - - - + + 搜索 @@ -33,7 +73,22 @@ - + + + + + + + + +
+ 新增分销员 + 批量设置等级 + 批量导出 + 批量导入 + 导入记录 +
+ - - - - - - - - + + + + + + + - + - - - - - - - + + + - + + @@ -105,81 +163,411 @@
+ +
+ +
+
+ - - + + - - + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ selectedRows.length }} 人 + + + + + + + + + + + +
+
+ 导入文件 + + 选择文件 + + {{ importFileName }} + 未选择文件 +
+
+ + 下载导入模板 + +
+
+
+ + diff --git a/manager/src/views/distribution/distributionApply.vue b/manager/src/views/distribution/distributionApply.vue deleted file mode 100644 index c31c0bf2..00000000 --- a/manager/src/views/distribution/distributionApply.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - diff --git a/manager/src/views/distribution/distributionCustomerRelation.vue b/manager/src/views/distribution/distributionCustomerRelation.vue new file mode 100644 index 00000000..e0d2a080 --- /dev/null +++ b/manager/src/views/distribution/distributionCustomerRelation.vue @@ -0,0 +1,648 @@ + + + + + diff --git a/manager/src/views/distribution/distributionGoods.vue b/manager/src/views/distribution/distributionGoods.vue index cf067931..ced0fb66 100644 --- a/manager/src/views/distribution/distributionGoods.vue +++ b/manager/src/views/distribution/distributionGoods.vue @@ -17,15 +17,58 @@ style="width: 240px" /> + + + + + + + + + + + 搜索 - + + + + + + + +
- 批量下架 + 批量审核 + 批量下架
- + - + + + + + + + + + + + @@ -80,17 +118,26 @@ {{ $filters.unitPrice(row.price, "¥") }} - - - + + + + @@ -108,34 +155,162 @@ />
+ + + + + + 通过 + 驳回 + + + + + + + + + + diff --git a/manager/src/views/distribution/distributionGradeHistory.vue b/manager/src/views/distribution/distributionGradeHistory.vue new file mode 100644 index 00000000..95455f4a --- /dev/null +++ b/manager/src/views/distribution/distributionGradeHistory.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/manager/src/views/distribution/distributionImportRecord.vue b/manager/src/views/distribution/distributionImportRecord.vue new file mode 100644 index 00000000..4f561839 --- /dev/null +++ b/manager/src/views/distribution/distributionImportRecord.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/manager/src/views/distribution/distributionOrder.vue b/manager/src/views/distribution/distributionOrder.vue index 54c21f76..6c263e09 100644 --- a/manager/src/views/distribution/distributionOrder.vue +++ b/manager/src/views/distribution/distributionOrder.vue @@ -1,5 +1,5 @@