feat(app): 初始化项目配置和页面结构
- 添加 .dockerignore 和 .env.example 配置文件 - 添加 .gitignore 忽略规则配置 - 创建服务端代理API路由(_file、_modules、_server) - 集成 Ant Design Vue 组件库并配置SSR样式提取 - 定义API响应类型封装 - 创建基础布局组件(blank、console) - 实现应用中心页面和组件(AppsCenter) - 添加文章列表测试页面 - 配置控制台导航菜单结构 - 实现控制台头部组件 - 创建联系页面表单
This commit is contained in:
221
app/api/shop/shopDealerOrder/index.ts
Normal file
221
app/api/shop/shopDealerOrder/index.ts
Normal file
@@ -0,0 +1,221 @@
|
||||
import request from '@/utils/request';
|
||||
import type { ApiResult, PageResult } from '@/api';
|
||||
import type { ShopDealerOrder, ShopDealerOrderParam } from './model';
|
||||
import { utils, writeFile } from 'xlsx';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { getTenantId } from '@/utils/domain';
|
||||
|
||||
/**
|
||||
* 分页查询分销商订单记录表
|
||||
*/
|
||||
export async function pageShopDealerOrder(params: ShopDealerOrderParam) {
|
||||
const res = await request.get<ApiResult<PageResult<ShopDealerOrder>>>(
|
||||
'/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<ApiResult<ShopDealerOrder[]>>(
|
||||
'/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<ApiResult<unknown>>(
|
||||
'/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<ApiResult<unknown>>(
|
||||
'/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<ApiResult<unknown>>(
|
||||
'/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<ApiResult<unknown>>(
|
||||
'/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<ApiResult<ShopDealerOrder>>(
|
||||
'/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));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入分销商订单
|
||||
*/
|
||||
export async function importShopDealerOrder(file: File) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post<ApiResult<unknown>>(
|
||||
'/shop/shop-dealer-order/import',
|
||||
formData
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分销商订单
|
||||
*/
|
||||
export async function exportShopDealerOrder(params?: ShopDealerOrderParam) {
|
||||
// 显示导出加载提示
|
||||
message.loading('正在准备导出数据...', 0);
|
||||
|
||||
try {
|
||||
// 获取数据
|
||||
const list = await listShopDealerOrder(params);
|
||||
|
||||
if (!list || list.length === 0) {
|
||||
message.destroy();
|
||||
message.warning('没有数据可以导出');
|
||||
return;
|
||||
}
|
||||
|
||||
// 构建导出数据
|
||||
const array: (string | number)[][] = [
|
||||
[
|
||||
'订单ID',
|
||||
'买家用户ID',
|
||||
'订单总金额',
|
||||
'一级分销商ID',
|
||||
'一级佣金',
|
||||
'二级分销商ID',
|
||||
'二级佣金',
|
||||
'三级分销商ID',
|
||||
'三级佣金',
|
||||
'订单状态',
|
||||
'结算状态',
|
||||
'结算时间',
|
||||
'创建时间'
|
||||
]
|
||||
];
|
||||
|
||||
list.forEach((order: ShopDealerOrder) => {
|
||||
array.push([
|
||||
order.orderId || '',
|
||||
order.userId || '',
|
||||
order.orderPrice || '0',
|
||||
order.firstUserId || '',
|
||||
order.firstMoney || '0',
|
||||
order.secondUserId || '',
|
||||
order.secondMoney || '0',
|
||||
order.thirdUserId || '',
|
||||
order.thirdMoney || '0',
|
||||
order.isInvalid === 0 ? '有效' : '失效',
|
||||
order.isSettled === 0 ? '未结算' : '已结算',
|
||||
order.settleTime ? new Date(order.settleTime).toLocaleString() : '',
|
||||
order.createTime || ''
|
||||
]);
|
||||
});
|
||||
|
||||
// 创建工作簿
|
||||
const sheetName = `shop_dealer_order_${getTenantId()}`;
|
||||
const workbook = {
|
||||
SheetNames: [sheetName],
|
||||
Sheets: {}
|
||||
};
|
||||
|
||||
const sheet = utils.aoa_to_sheet(array);
|
||||
workbook.Sheets[sheetName] = sheet;
|
||||
|
||||
// 设置列宽
|
||||
sheet['!cols'] = [
|
||||
{ wch: 15 }, // 订单ID
|
||||
{ wch: 12 }, // 买家用户ID
|
||||
{ wch: 12 }, // 订单总金额
|
||||
{ wch: 15 }, // 一级分销商ID
|
||||
{ wch: 12 }, // 一级佣金
|
||||
{ wch: 15 }, // 二级分销商ID
|
||||
{ wch: 12 }, // 二级佣金
|
||||
{ wch: 15 }, // 三级分销商ID
|
||||
{ wch: 12 }, // 三级佣金
|
||||
{ wch: 10 }, // 订单状态
|
||||
{ wch: 10 }, // 结算状态
|
||||
{ wch: 20 }, // 结算时间
|
||||
{ wch: 20 } // 创建时间
|
||||
];
|
||||
|
||||
message.destroy();
|
||||
message.loading('正在生成Excel文件...', 0);
|
||||
|
||||
// 延迟写入文件,确保消息提示显示
|
||||
setTimeout(() => {
|
||||
writeFile(workbook, `${sheetName}.xlsx`);
|
||||
message.destroy();
|
||||
message.success(`成功导出 ${list.length} 条记录`);
|
||||
}, 1000);
|
||||
|
||||
} catch (error: any) {
|
||||
message.destroy();
|
||||
message.error(error.message || '导出失败,请重试');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user