refactor(shop):优化分销商推荐关系模块

- 移除文章API中的MODULES_API_URL前缀,统一使用相对路径
- 调整MODULES_API_URL配置逻辑,支持本地存储自定义接口地址
-修复生产环境判断逻辑错误,确保自定义接口地址正确加载
- 新增下划线与驼峰命名转换工具函数
- 扩展ShopDealerReferee模型字段,增加推荐人和被推荐人的详细信息
- 新增推荐关系树状图展示组件RefereeTree.vue- 修改推荐关系列表页面布局,优化用户信息展示方式- 移除推荐层级筛选条件及部分冗余操作按钮
- 简化编辑弹窗标题及表单项,移除不必要的字段输入
- 调整表格列配置,优化推荐关系可视化展示效果
- 移除详情查看和解除推荐关系功能,简化操作流程
- 修复分页查询参数默认值处理问题,增强代码健壮性
This commit is contained in:
2025-10-21 20:52:50 +08:00
parent bf38e7e6d9
commit eebd164be4
11 changed files with 356 additions and 172 deletions

View File

@@ -1,14 +1,13 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticle, CmsArticleParam } from './model';
import {MODULES_API_URL} from '@/config/setting';
import type {ApiResult, PageResult} from '@/api';
import type {CmsArticle, CmsArticleParam} from './model';
/**
* 分页查询文章
*/
export async function pageCmsArticle(params: CmsArticleParam) {
const res = await request.get<ApiResult<PageResult<CmsArticle>>>(
MODULES_API_URL + '/cms/cms-article/page',
'/cms/cms-article/page',
{
params
}
@@ -24,7 +23,7 @@ export async function pageCmsArticle(params: CmsArticleParam) {
*/
export async function listCmsArticle(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
MODULES_API_URL + '/cms/cms-article',
'/cms/cms-article',
{
params
}
@@ -40,7 +39,7 @@ export async function listCmsArticle(params?: CmsArticleParam) {
*/
export async function addCmsArticle(data: CmsArticle) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article',
'/cms/cms-article',
data
);
if (res.data.code === 0) {
@@ -54,7 +53,7 @@ export async function addCmsArticle(data: CmsArticle) {
*/
export async function updateCmsArticle(data: CmsArticle) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article',
'/cms/cms-article',
data
);
if (res.data.code === 0) {
@@ -68,7 +67,7 @@ export async function updateCmsArticle(data: CmsArticle) {
*/
export async function updateBatchCmsArticle(data: any) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/batch',
'/cms/cms-article/batch',
data
);
if (res.data.code === 0) {
@@ -82,7 +81,7 @@ export async function updateBatchCmsArticle(data: any) {
*/
export async function removeCmsArticle(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/' + id
'/cms/cms-article/' + id
);
if (res.data.code === 0) {
return res.data.message;
@@ -95,7 +94,7 @@ export async function removeCmsArticle(id?: number) {
*/
export async function removeBatchCmsArticle(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/batch',
'/cms/cms-article/batch',
{
data
}
@@ -111,7 +110,7 @@ export async function removeBatchCmsArticle(data: (number | undefined)[]) {
*/
export async function getCmsArticle(id: number) {
const res = await request.get<ApiResult<CmsArticle>>(
MODULES_API_URL + '/cms/cms-article/' + id
'/cms/cms-article/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
@@ -133,7 +132,7 @@ export async function getByCode(code: string) {
}
export async function getCount(params: CmsArticleParam) {
const res = await request.get(MODULES_API_URL + '/cms/cms-article/data', {
const res = await request.get('/cms/cms-article/data', {
params
});
if (res.data.code === 0) {
@@ -150,7 +149,7 @@ export async function importArticles(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/import',
'/cms/cms-article/import',
formData
);
if (res.data.code === 0) {

View File

@@ -148,4 +148,4 @@ export async function importCmsNavigation(file: File) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
}

View File

@@ -8,8 +8,22 @@ export interface ShopDealerReferee {
id?: number;
// 分销商用户ID
dealerId?: number;
// 分销商名称
dealerName?: string;
// 分销商头像
dealerAvatar?: string;
// 分销商手机号
dealerPhone?: string;
// 用户id(被推荐人)
userId?: number;
// 昵称
nickname?: string;
// 头像
avatar?: string;
// 别名
alias?: string;
// 手机号
phone?: string;
// 推荐关系层级(1,2,3)
level?: number;
// 商城ID
@@ -31,4 +45,4 @@ export interface ShopDealerRefereeParam extends PageParam {
startTime?: string;
endTime?: string;
keywords?: string;
}
}