This commit is contained in:
2026-01-29 10:43:43 +08:00
commit 4a76df3391
426 changed files with 74975 additions and 0 deletions

116
api/cms/cmsProduct/index.ts Normal file
View File

@@ -0,0 +1,116 @@
import request from '~/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsProduct, CmsProductParam } from './model';
/**
* 分页查询产品
*/
export async function pageCmsProduct(params: CmsProductParam) {
const res = await request.get<ApiResult<PageResult<CmsProduct>>>(
'/cms/cms-product/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询产品列表
*/
export async function listCmsProduct(params?: CmsProductParam) {
const res = await request.get<ApiResult<CmsProduct[]>>(
'/cms/cms-product',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加产品
*/
export async function addCmsProduct(data: CmsProduct) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改产品
*/
export async function updateCmsProduct(data: CmsProduct) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除产品
*/
export async function removeCmsProduct(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除产品
*/
export async function removeBatchCmsProduct(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询产品
*/
export async function getCmsProduct(id: number) {
const res = await request.get<ApiResult<CmsProduct>>(
'/cms/cms-product/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function getCount(params: CmsProductParam) {
const res = await request.get('/cms/cms-product/data', {
params
});
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,98 @@
import type { PageParam } from '@/api';
/**
* 产品
*/
export interface CmsProduct {
// 自增ID
productId?: number;
// 类型 0软件产品 1实物商品 2虚拟商品
type?: number;
// 产品编码
code?: string;
// 产品标题
title?: string;
// 封面图
image?: string;
// 产品详情
content?: string;
// 父级分类ID
parentId?: number;
// 父级栏目名称
parentName?: string;
// 产品分类ID
categoryId?: number;
// 分类名称
categoryName?: string;
// 关联的菜单ID
menuId?: number;
// 控制台入口
path?: string;
// 产品规格 0单规格 1多规格
specs?: number;
// 货架
position?: string;
// 单位名称 (个)
unitName?: string;
// 进货价格
price?: string;
// 销售价格
salePrice?: string;
// 标签
tag?: string;
// 库存计算方式(10下单减库存 20付款减库存)
deductStockType?: number;
// 交付方式
deliveryMethod?: number;
// 购买时长
durationMethod?: number;
// 服务套餐
serverMethod?: number;
// 套餐版本
packageMethod?: number;
// 可购买数量
canBuyNumber?: number;
// 轮播图
files?: string;
// 销量
sales?: number;
// 库存
stock?: number;
// 消费赚取积分
gainIntegral?: string;
// 推荐
recommend?: number;
// 是否官方自营
official?: number;
// 商户ID
merchantId?: number;
// 状态0未上架1上架
isShow?: string;
// 状态, 0上架 1待上架 2待审核 3审核不通过
status?: number;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 产品搜索条件
*/
export interface CmsProductParam extends PageParam {
productId?: number;
type?: number;
official?: number;
status?: number;
keywords?: string;
}