From 32fe74c71f267f57a17c18fda0bed063c23a80e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Mon, 11 Aug 2025 11:31:52 +0800 Subject: [PATCH] =?UTF-8?q?featshop():=20=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=94=80=E5=95=86=E7=9B=B8=E5=85=B3=20API=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=92=8C=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增分销商申请、资金明细、订单记录、推荐关系、设置、用户记录、提现明细等 API 接口 - 创建对应的模型接口和搜索参数接口 - 实现基本的 CRUD 操作函数- 优化优惠券列表展示字段 - 添加分销商申请列表搜索组件 --- .env.development | 3 + index.html | 1 + src/api/shop/shopDealerApply/index.ts | 106 +++++++ src/api/shop/shopDealerApply/model/index.ts | 41 +++ src/api/shop/shopDealerCapital/index.ts | 106 +++++++ src/api/shop/shopDealerCapital/model/index.ts | 35 ++ src/api/shop/shopDealerOrder/index.ts | 106 +++++++ src/api/shop/shopDealerOrder/model/index.ts | 47 +++ src/api/shop/shopDealerReferee/index.ts | 106 +++++++ src/api/shop/shopDealerReferee/model/index.ts | 29 ++ src/api/shop/shopDealerSetting/index.ts | 106 +++++++ src/api/shop/shopDealerSetting/model/index.ts | 25 ++ src/api/shop/shopDealerUser/index.ts | 106 +++++++ src/api/shop/shopDealerUser/model/index.ts | 49 +++ src/api/shop/shopDealerWithdraw/index.ts | 106 +++++++ .../shop/shopDealerWithdraw/model/index.ts | 47 +++ src/api/shop/shopOrder/model/index.ts | 4 + src/views/shop/shopCoupon/index.vue | 112 ++++--- .../shopDealerApply/components/search.vue | 42 +++ .../components/shopDealerApplyEdit.vue | 242 ++++++++++++++ src/views/shop/shopDealerApply/index.vue | 274 ++++++++++++++++ .../shopDealerCapital/components/search.vue | 42 +++ .../components/shopDealerCapitalEdit.vue | 218 +++++++++++++ src/views/shop/shopDealerCapital/index.vue | 256 +++++++++++++++ .../shopDealerOrder/components/search.vue | 42 +++ .../components/shopDealerOrderEdit.vue | 266 ++++++++++++++++ src/views/shop/shopDealerOrder/index.vue | 292 +++++++++++++++++ .../shopDealerReferee/components/search.vue | 42 +++ .../components/shopDealerRefereeEdit.vue | 194 ++++++++++++ src/views/shop/shopDealerReferee/index.vue | 238 ++++++++++++++ .../shopDealerSetting/components/search.vue | 42 +++ .../components/shopDealerSettingEdit.vue | 185 +++++++++++ src/views/shop/shopDealerSetting/index.vue | 223 +++++++++++++ .../shop/shopDealerUser/components/search.vue | 42 +++ .../components/shopDealerUserEdit.vue | 274 ++++++++++++++++ src/views/shop/shopDealerUser/index.vue | 298 ++++++++++++++++++ .../shopDealerWithdraw/components/search.vue | 42 +++ .../components/shopDealerWithdrawEdit.vue | 266 ++++++++++++++++ src/views/shop/shopDealerWithdraw/index.vue | 292 +++++++++++++++++ .../shop/shopOrder/components/orderInfo.vue | 6 +- src/views/shop/shopUserCoupon/index.vue | 1 + 41 files changed, 4915 insertions(+), 39 deletions(-) create mode 100644 src/api/shop/shopDealerApply/index.ts create mode 100644 src/api/shop/shopDealerApply/model/index.ts create mode 100644 src/api/shop/shopDealerCapital/index.ts create mode 100644 src/api/shop/shopDealerCapital/model/index.ts create mode 100644 src/api/shop/shopDealerOrder/index.ts create mode 100644 src/api/shop/shopDealerOrder/model/index.ts create mode 100644 src/api/shop/shopDealerReferee/index.ts create mode 100644 src/api/shop/shopDealerReferee/model/index.ts create mode 100644 src/api/shop/shopDealerSetting/index.ts create mode 100644 src/api/shop/shopDealerSetting/model/index.ts create mode 100644 src/api/shop/shopDealerUser/index.ts create mode 100644 src/api/shop/shopDealerUser/model/index.ts create mode 100644 src/api/shop/shopDealerWithdraw/index.ts create mode 100644 src/api/shop/shopDealerWithdraw/model/index.ts create mode 100644 src/views/shop/shopDealerApply/components/search.vue create mode 100644 src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue create mode 100644 src/views/shop/shopDealerApply/index.vue create mode 100644 src/views/shop/shopDealerCapital/components/search.vue create mode 100644 src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue create mode 100644 src/views/shop/shopDealerCapital/index.vue create mode 100644 src/views/shop/shopDealerOrder/components/search.vue create mode 100644 src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue create mode 100644 src/views/shop/shopDealerOrder/index.vue create mode 100644 src/views/shop/shopDealerReferee/components/search.vue create mode 100644 src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue create mode 100644 src/views/shop/shopDealerReferee/index.vue create mode 100644 src/views/shop/shopDealerSetting/components/search.vue create mode 100644 src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue create mode 100644 src/views/shop/shopDealerSetting/index.vue create mode 100644 src/views/shop/shopDealerUser/components/search.vue create mode 100644 src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue create mode 100644 src/views/shop/shopDealerUser/index.vue create mode 100644 src/views/shop/shopDealerWithdraw/components/search.vue create mode 100644 src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue create mode 100644 src/views/shop/shopDealerWithdraw/index.vue diff --git a/.env.development b/.env.development index 0b7ff2f..fbcc74b 100644 --- a/.env.development +++ b/.env.development @@ -1,3 +1,6 @@ VITE_APP_NAME=后台管理(开发环境) VITE_API_URL=http://127.0.0.1:9200/api #VITE_SERVER_API_URL=http://127.0.0.1:8000/api + + +#VITE_API_URL=https://cms-api.s209.websoft.top/api diff --git a/index.html b/index.html index 9a94342..300c7c8 100644 --- a/index.html +++ b/index.html @@ -15,6 +15,7 @@ position: relative; top: calc(50% - 18px); left: calc(50% - 18px); + } .ele-admin-loading span { diff --git a/src/api/shop/shopDealerApply/index.ts b/src/api/shop/shopDealerApply/index.ts new file mode 100644 index 0000000..e52a887 --- /dev/null +++ b/src/api/shop/shopDealerApply/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerApply, ShopDealerApplyParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商申请记录表 + */ +export async function pageShopDealerApply(params: ShopDealerApplyParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-apply/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商申请记录表列表 + */ +export async function listShopDealerApply(params?: ShopDealerApplyParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-apply', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商申请记录表 + */ +export async function addShopDealerApply(data: ShopDealerApply) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-apply', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商申请记录表 + */ +export async function updateShopDealerApply(data: ShopDealerApply) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-apply', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商申请记录表 + */ +export async function removeShopDealerApply(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-apply/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商申请记录表 + */ +export async function removeBatchShopDealerApply(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-apply/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商申请记录表 + */ +export async function getShopDealerApply(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-apply/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerApply/model/index.ts b/src/api/shop/shopDealerApply/model/index.ts new file mode 100644 index 0000000..f181689 --- /dev/null +++ b/src/api/shop/shopDealerApply/model/index.ts @@ -0,0 +1,41 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商申请记录表 + */ +export interface ShopDealerApply { + // 主键ID + applyId?: number; + // 用户ID + userId?: number; + // 姓名 + realName?: string; + // 手机号 + mobile?: string; + // 推荐人用户ID + refereeId?: number; + // 申请方式(10需后台审核 20无需审核) + applyType?: number; + // 申请时间 + applyTime?: number; + // 审核状态 (10待审核 20审核通过 30驳回) + applyStatus?: number; + // 审核时间 + auditTime?: number; + // 驳回原因 + rejectReason?: string; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商申请记录表搜索条件 + */ +export interface ShopDealerApplyParam extends PageParam { + applyId?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerCapital/index.ts b/src/api/shop/shopDealerCapital/index.ts new file mode 100644 index 0000000..6878189 --- /dev/null +++ b/src/api/shop/shopDealerCapital/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerCapital, ShopDealerCapitalParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商资金明细表 + */ +export async function pageShopDealerCapital(params: ShopDealerCapitalParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-capital/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商资金明细表列表 + */ +export async function listShopDealerCapital(params?: ShopDealerCapitalParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-capital', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商资金明细表 + */ +export async function addShopDealerCapital(data: ShopDealerCapital) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-capital', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商资金明细表 + */ +export async function updateShopDealerCapital(data: ShopDealerCapital) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-capital', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商资金明细表 + */ +export async function removeShopDealerCapital(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-capital/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商资金明细表 + */ +export async function removeBatchShopDealerCapital(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-capital/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商资金明细表 + */ +export async function getShopDealerCapital(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-capital/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerCapital/model/index.ts b/src/api/shop/shopDealerCapital/model/index.ts new file mode 100644 index 0000000..e6a6bc2 --- /dev/null +++ b/src/api/shop/shopDealerCapital/model/index.ts @@ -0,0 +1,35 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商资金明细表 + */ +export interface ShopDealerCapital { + // 主键ID + id?: number; + // 分销商用户ID + userId?: number; + // 订单ID + orderId?: number; + // 资金流动类型 (10佣金收入 20提现支出 30转账支出 40转账收入) + flowType?: number; + // 金额 + money?: string; + // 描述 + describe?: string; + // 对方用户ID + toUserId?: number; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商资金明细表搜索条件 + */ +export interface ShopDealerCapitalParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerOrder/index.ts b/src/api/shop/shopDealerOrder/index.ts new file mode 100644 index 0000000..951ef51 --- /dev/null +++ b/src/api/shop/shopDealerOrder/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerOrder, ShopDealerOrderParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商订单记录表 + */ +export async function pageShopDealerOrder(params: ShopDealerOrderParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-order/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商订单记录表列表 + */ +export async function listShopDealerOrder(params?: ShopDealerOrderParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-order', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商订单记录表 + */ +export async function addShopDealerOrder(data: ShopDealerOrder) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-order', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商订单记录表 + */ +export async function updateShopDealerOrder(data: ShopDealerOrder) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-order', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商订单记录表 + */ +export async function removeShopDealerOrder(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-order/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商订单记录表 + */ +export async function removeBatchShopDealerOrder(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-order/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商订单记录表 + */ +export async function getShopDealerOrder(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-order/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerOrder/model/index.ts b/src/api/shop/shopDealerOrder/model/index.ts new file mode 100644 index 0000000..37017b8 --- /dev/null +++ b/src/api/shop/shopDealerOrder/model/index.ts @@ -0,0 +1,47 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商订单记录表 + */ +export interface ShopDealerOrder { + // 主键ID + id?: number; + // 买家用户ID + userId?: number; + // 订单ID + orderId?: number; + // 订单总金额(不含运费) + orderPrice?: string; + // 分销商用户id(一级) + firstUserId?: number; + // 分销商用户id(二级) + secondUserId?: number; + // 分销商用户id(三级) + thirdUserId?: number; + // 分销佣金(一级) + firstMoney?: string; + // 分销佣金(二级) + secondMoney?: string; + // 分销佣金(三级) + thirdMoney?: string; + // 订单是否失效(0未失效 1已失效) + isInvalid?: number; + // 佣金结算(0未结算 1已结算) + isSettled?: number; + // 结算时间 + settleTime?: number; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商订单记录表搜索条件 + */ +export interface ShopDealerOrderParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerReferee/index.ts b/src/api/shop/shopDealerReferee/index.ts new file mode 100644 index 0000000..0c912da --- /dev/null +++ b/src/api/shop/shopDealerReferee/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerReferee, ShopDealerRefereeParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商推荐关系表 + */ +export async function pageShopDealerReferee(params: ShopDealerRefereeParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-referee/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商推荐关系表列表 + */ +export async function listShopDealerReferee(params?: ShopDealerRefereeParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-referee', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商推荐关系表 + */ +export async function addShopDealerReferee(data: ShopDealerReferee) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-referee', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商推荐关系表 + */ +export async function updateShopDealerReferee(data: ShopDealerReferee) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-referee', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商推荐关系表 + */ +export async function removeShopDealerReferee(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-referee/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商推荐关系表 + */ +export async function removeBatchShopDealerReferee(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-referee/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商推荐关系表 + */ +export async function getShopDealerReferee(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-referee/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerReferee/model/index.ts b/src/api/shop/shopDealerReferee/model/index.ts new file mode 100644 index 0000000..258c004 --- /dev/null +++ b/src/api/shop/shopDealerReferee/model/index.ts @@ -0,0 +1,29 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商推荐关系表 + */ +export interface ShopDealerReferee { + // 主键ID + id?: number; + // 分销商用户ID + dealerId?: number; + // 用户id(被推荐人) + userId?: number; + // 推荐关系层级(1,2,3) + level?: number; + // 商城ID + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商推荐关系表搜索条件 + */ +export interface ShopDealerRefereeParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerSetting/index.ts b/src/api/shop/shopDealerSetting/index.ts new file mode 100644 index 0000000..9ffa14d --- /dev/null +++ b/src/api/shop/shopDealerSetting/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerSetting, ShopDealerSettingParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商设置表 + */ +export async function pageShopDealerSetting(params: ShopDealerSettingParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-setting/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商设置表列表 + */ +export async function listShopDealerSetting(params?: ShopDealerSettingParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-setting', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商设置表 + */ +export async function addShopDealerSetting(data: ShopDealerSetting) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-setting', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商设置表 + */ +export async function updateShopDealerSetting(data: ShopDealerSetting) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-setting', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商设置表 + */ +export async function removeShopDealerSetting(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-setting/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商设置表 + */ +export async function removeBatchShopDealerSetting(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-setting/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商设置表 + */ +export async function getShopDealerSetting(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-setting/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerSetting/model/index.ts b/src/api/shop/shopDealerSetting/model/index.ts new file mode 100644 index 0000000..12126c3 --- /dev/null +++ b/src/api/shop/shopDealerSetting/model/index.ts @@ -0,0 +1,25 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商设置表 + */ +export interface ShopDealerSetting { + // 设置项标示 + key?: string; + // 设置项描述 + describe?: string; + // 设置内容(json格式) + values?: string; + // 商城ID + tenantId?: number; + // 更新时间 + updateTime?: number; +} + +/** + * 分销商设置表搜索条件 + */ +export interface ShopDealerSettingParam extends PageParam { + key?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerUser/index.ts b/src/api/shop/shopDealerUser/index.ts new file mode 100644 index 0000000..30d571a --- /dev/null +++ b/src/api/shop/shopDealerUser/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerUser, ShopDealerUserParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商用户记录表 + */ +export async function pageShopDealerUser(params: ShopDealerUserParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-user/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商用户记录表列表 + */ +export async function listShopDealerUser(params?: ShopDealerUserParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-user', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商用户记录表 + */ +export async function addShopDealerUser(data: ShopDealerUser) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-user', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商用户记录表 + */ +export async function updateShopDealerUser(data: ShopDealerUser) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-user', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商用户记录表 + */ +export async function removeShopDealerUser(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-user/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商用户记录表 + */ +export async function removeBatchShopDealerUser(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-user/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商用户记录表 + */ +export async function getShopDealerUser(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-user/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerUser/model/index.ts b/src/api/shop/shopDealerUser/model/index.ts new file mode 100644 index 0000000..98c904f --- /dev/null +++ b/src/api/shop/shopDealerUser/model/index.ts @@ -0,0 +1,49 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商用户记录表 + */ +export interface ShopDealerUser { + // 主键ID + id?: number; + // 自增ID + userId?: number; + // 姓名 + realName?: string; + // 手机号 + mobile?: string; + // 支付密码 + payPassword?: string; + // 当前可提现佣金 + money?: string; + // 已冻结佣金 + freezeMoney?: string; + // 累积提现佣金 + totalMoney?: string; + // 推荐人用户ID + refereeId?: number; + // 成员数量(一级) + firstNum?: number; + // 成员数量(二级) + secondNum?: number; + // 成员数量(三级) + thirdNum?: number; + // 专属二维码 + qrcode?: string; + // 是否删除 + isDelete?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商用户记录表搜索条件 + */ +export interface ShopDealerUserParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/shop/shopDealerWithdraw/index.ts b/src/api/shop/shopDealerWithdraw/index.ts new file mode 100644 index 0000000..c161eb3 --- /dev/null +++ b/src/api/shop/shopDealerWithdraw/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { ShopDealerWithdraw, ShopDealerWithdrawParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询分销商提现明细表 + */ +export async function pageShopDealerWithdraw(params: ShopDealerWithdrawParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/shop-dealer-withdraw/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询分销商提现明细表列表 + */ +export async function listShopDealerWithdraw(params?: ShopDealerWithdrawParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-withdraw', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加分销商提现明细表 + */ +export async function addShopDealerWithdraw(data: ShopDealerWithdraw) { + const res = await request.post>( + MODULES_API_URL + '/shop/shop-dealer-withdraw', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改分销商提现明细表 + */ +export async function updateShopDealerWithdraw(data: ShopDealerWithdraw) { + const res = await request.put>( + MODULES_API_URL + '/shop/shop-dealer-withdraw', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除分销商提现明细表 + */ +export async function removeShopDealerWithdraw(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-withdraw/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除分销商提现明细表 + */ +export async function removeBatchShopDealerWithdraw(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/shop-dealer-withdraw/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询分销商提现明细表 + */ +export async function getShopDealerWithdraw(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/shop-dealer-withdraw/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/shop/shopDealerWithdraw/model/index.ts b/src/api/shop/shopDealerWithdraw/model/index.ts new file mode 100644 index 0000000..3193e62 --- /dev/null +++ b/src/api/shop/shopDealerWithdraw/model/index.ts @@ -0,0 +1,47 @@ +import type { PageParam } from '@/api/index'; + +/** + * 分销商提现明细表 + */ +export interface ShopDealerWithdraw { + // 主键ID + id?: number; + // 分销商用户ID + userId?: number; + // 提现金额 + money?: string; + // 打款方式 (10微信 20支付宝 30银行卡) + payType?: number; + // 支付宝姓名 + alipayName?: string; + // 支付宝账号 + alipayAccount?: string; + // 开户行名称 + bankName?: string; + // 银行开户名 + bankAccount?: string; + // 银行卡号 + bankCard?: string; + // 申请状态 (10待审核 20审核通过 30驳回 40已打款) + applyStatus?: number; + // 审核时间 + auditTime?: number; + // 驳回原因 + rejectReason?: string; + // 来源客户端(APP、H5、小程序等) + platform?: string; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 分销商提现明细表搜索条件 + */ +export interface ShopDealerWithdrawParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/shop/shopOrder/model/index.ts b/src/api/shop/shopOrder/model/index.ts index c053f87..2ba4d0e 100644 --- a/src/api/shop/shopOrder/model/index.ts +++ b/src/api/shop/shopOrder/model/index.ts @@ -123,6 +123,10 @@ export interface ShopOrder { isSettled?: number; // 系统版本号 0当前版本 value=其他版本 version?: number; + // 买家备注 + buyerRemarks: undefined, + // 商家备注 + merchantRemarks: undefined, // 用户id userId?: number; // 备注 diff --git a/src/views/shop/shopCoupon/index.vue b/src/views/shop/shopCoupon/index.vue index b898f92..c915977 100644 --- a/src/views/shop/shopCoupon/index.vue +++ b/src/views/shop/shopCoupon/index.vue @@ -3,7 +3,7 @@ toDateString(text, 'yyyy-MM-dd') + }, + { + title: '修改时间', + dataIndex: 'updateTime', + key: 'updateTime', + align: 'center', + }, { title: '发放总数量(-1表示无限制)', dataIndex: 'totalCount', @@ -184,33 +247,6 @@ key: 'enabled', align: 'center', }, - { - title: '创建用户ID', - dataIndex: 'userId', - key: 'userId', - align: 'center', - }, - { - title: '排序', - dataIndex: 'sortNumber', - key: 'sortNumber', - align: 'center', - }, - { - title: '状态', - dataIndex: 'status', - key: 'status', - align: 'center', - }, - { - title: '创建时间', - dataIndex: 'createTime', - key: 'createTime', - align: 'center', - sorter: true, - ellipsis: true, - customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd') - }, { title: '操作', key: 'action', @@ -241,7 +277,7 @@ /* 删除单个 */ const remove = (row: ShopCoupon) => { const hide = message.loading('请求中..', 0); - removeShopCoupon(row.id) + removeShopCoupon(row.shopCouponId) .then((msg) => { hide(); message.success(msg); diff --git a/src/views/shop/shopDealerApply/components/search.vue b/src/views/shop/shopDealerApply/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerApply/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue b/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue new file mode 100644 index 0000000..61710ca --- /dev/null +++ b/src/views/shop/shopDealerApply/components/shopDealerApplyEdit.vue @@ -0,0 +1,242 @@ + + + + diff --git a/src/views/shop/shopDealerApply/index.vue b/src/views/shop/shopDealerApply/index.vue new file mode 100644 index 0000000..a598221 --- /dev/null +++ b/src/views/shop/shopDealerApply/index.vue @@ -0,0 +1,274 @@ + + + + + + + diff --git a/src/views/shop/shopDealerCapital/components/search.vue b/src/views/shop/shopDealerCapital/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerCapital/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue b/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue new file mode 100644 index 0000000..ba73cf5 --- /dev/null +++ b/src/views/shop/shopDealerCapital/components/shopDealerCapitalEdit.vue @@ -0,0 +1,218 @@ + + + + diff --git a/src/views/shop/shopDealerCapital/index.vue b/src/views/shop/shopDealerCapital/index.vue new file mode 100644 index 0000000..40a746d --- /dev/null +++ b/src/views/shop/shopDealerCapital/index.vue @@ -0,0 +1,256 @@ + + + + + + + diff --git a/src/views/shop/shopDealerOrder/components/search.vue b/src/views/shop/shopDealerOrder/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerOrder/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue b/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue new file mode 100644 index 0000000..43b88ce --- /dev/null +++ b/src/views/shop/shopDealerOrder/components/shopDealerOrderEdit.vue @@ -0,0 +1,266 @@ + + + + diff --git a/src/views/shop/shopDealerOrder/index.vue b/src/views/shop/shopDealerOrder/index.vue new file mode 100644 index 0000000..9881b39 --- /dev/null +++ b/src/views/shop/shopDealerOrder/index.vue @@ -0,0 +1,292 @@ + + + + + + + diff --git a/src/views/shop/shopDealerReferee/components/search.vue b/src/views/shop/shopDealerReferee/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerReferee/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue b/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue new file mode 100644 index 0000000..ec079a1 --- /dev/null +++ b/src/views/shop/shopDealerReferee/components/shopDealerRefereeEdit.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/views/shop/shopDealerReferee/index.vue b/src/views/shop/shopDealerReferee/index.vue new file mode 100644 index 0000000..a75d007 --- /dev/null +++ b/src/views/shop/shopDealerReferee/index.vue @@ -0,0 +1,238 @@ + + + + + + + diff --git a/src/views/shop/shopDealerSetting/components/search.vue b/src/views/shop/shopDealerSetting/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerSetting/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue b/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue new file mode 100644 index 0000000..26d9f88 --- /dev/null +++ b/src/views/shop/shopDealerSetting/components/shopDealerSettingEdit.vue @@ -0,0 +1,185 @@ + + + + diff --git a/src/views/shop/shopDealerSetting/index.vue b/src/views/shop/shopDealerSetting/index.vue new file mode 100644 index 0000000..0ac6cae --- /dev/null +++ b/src/views/shop/shopDealerSetting/index.vue @@ -0,0 +1,223 @@ + + + + + + + diff --git a/src/views/shop/shopDealerUser/components/search.vue b/src/views/shop/shopDealerUser/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerUser/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue b/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue new file mode 100644 index 0000000..5ef6741 --- /dev/null +++ b/src/views/shop/shopDealerUser/components/shopDealerUserEdit.vue @@ -0,0 +1,274 @@ + + + + diff --git a/src/views/shop/shopDealerUser/index.vue b/src/views/shop/shopDealerUser/index.vue new file mode 100644 index 0000000..0d97101 --- /dev/null +++ b/src/views/shop/shopDealerUser/index.vue @@ -0,0 +1,298 @@ + + + + + + + diff --git a/src/views/shop/shopDealerWithdraw/components/search.vue b/src/views/shop/shopDealerWithdraw/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/shop/shopDealerWithdraw/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue b/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue new file mode 100644 index 0000000..3404e72 --- /dev/null +++ b/src/views/shop/shopDealerWithdraw/components/shopDealerWithdrawEdit.vue @@ -0,0 +1,266 @@ + + + + diff --git a/src/views/shop/shopDealerWithdraw/index.vue b/src/views/shop/shopDealerWithdraw/index.vue new file mode 100644 index 0000000..3d15ef8 --- /dev/null +++ b/src/views/shop/shopDealerWithdraw/index.vue @@ -0,0 +1,292 @@ + + + + + + + diff --git a/src/views/shop/shopOrder/components/orderInfo.vue b/src/views/shop/shopOrder/components/orderInfo.vue index 35b0ee1..5121f85 100644 --- a/src/views/shop/shopOrder/components/orderInfo.vue +++ b/src/views/shop/shopOrder/components/orderInfo.vue @@ -417,7 +417,7 @@ - {{ form.merchantRemarks }} + {{ form.merchantRemarks || '-'}} @@ -622,6 +622,10 @@ const form = reactive({ userId: undefined, // 备注 comments: undefined, + // 买家备注 + buyerRemarks: undefined, + // 商家备注 + merchantRemarks: undefined, // 排序号 sortNumber: undefined, // 是否删除, 0否, 1是 diff --git a/src/views/shop/shopUserCoupon/index.vue b/src/views/shop/shopUserCoupon/index.vue index b96f815..076d577 100644 --- a/src/views/shop/shopUserCoupon/index.vue +++ b/src/views/shop/shopUserCoupon/index.vue @@ -59,6 +59,7 @@ ColumnItem } from 'ele-admin-pro/es/ele-pro-table/types'; import Search from './components/search.vue'; + import {getPageTitle} from '@/utils/common'; import ShopUserCouponEdit from './components/shopUserCouponEdit.vue'; import { pageShopUserCoupon, removeShopUserCoupon, removeBatchShopUserCoupon } from '@/api/shop/shopUserCoupon'; import type { ShopUserCoupon, ShopUserCouponParam } from '@/api/shop/shopUserCoupon/model';