This commit is contained in:
2026-05-31 12:09:14 +08:00
commit e4f9eedb80
1121 changed files with 209380 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ShopSetting, ShopSettingParam } from './model';
/**
* 分页查询商城设置
*/
export async function pageShopSetting(params: ShopSettingParam) {
const res = await request.get<ApiResult<PageResult<ShopSetting>>>(
'/shop/shop-setting/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询商城设置列表
*/
export async function listShopSetting(params?: ShopSettingParam) {
const res = await request.get<ApiResult<ShopSetting[]>>(
'/shop/shop-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 getShopSettingByCategory(category: string) {
const res = await request.get<ApiResult<ShopSetting[]>>(
`/shop/shop-setting/category/${category}`
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取分类设置值(Map格式)
*/
export async function getShopSettingCategoryValues(category: string) {
const res = await request.get<ApiResult<Record<string, string>>>(
`/shop/shop-setting/category/${category}/values`
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据key获取完整设置
*/
export async function getShopSettingByKey(key: string) {
const res = await request.get<ApiResult<ShopSetting>>(
`/shop/shop-setting/info/${key}`
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 保存或更新设置
*/
export async function saveShopSetting(data: ShopSetting) {
const res = await request.post<ApiResult<unknown>>(
'/shop/shop-setting',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 更新设置
*/
export async function updateShopSetting(data: ShopSetting) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-setting',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量保存分类设置(主要使用方式)
*/
export async function batchSaveShopSetting(
category: string,
values: Record<string, unknown>
) {
const res = await request.post<ApiResult<unknown>>(
`/shop/shop-setting/batch/${category}`,
values
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除设置
*/
export async function removeShopSetting(settingId: number) {
const res = await request.delete<ApiResult<unknown>>(
`/shop/shop-setting/${settingId}`
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
+90
View File
@@ -0,0 +1,90 @@
import type { PageParam } from '@/api';
/**
* 商城设置
*/
export interface ShopSetting {
// 设置ID
settingId?: number;
// 设置分类: basic/order/points/dealer/notify/payment
category?: string;
// 设置项标识
settingKey?: string;
// 设置项名称
settingName?: string;
// 设置值(JSON格式)
settingValue?: string;
// 设置类型: string/number/boolean/json
valueType?: string;
// 设置说明
description?: string;
// 排序号
sortNumber?: number;
// 是否启用 0否 1是
isEnabled?: number;
// 是否公开(前端可读)0否 1是
isPublic?: number;
// 租户id
tenantId?: number;
// 创建时间
createdTime?: number;
// 更新时间
updatedTime?: number;
/* ——— 基础设置 ——— */
shopName?: string;
shopLogo?: string;
shopDesc?: string;
shopPhone?: string;
shopAddress?: string;
shopEnabled?: boolean | number;
/* ——— 订单设置 ——— */
orderAutoConfirmDays?: number;
orderAutoCloseMins?: number;
orderAutoCommentDays?: number;
orderFreightFreeAmount?: number;
orderRefundEnabled?: boolean | number;
/* ——— 积分设置 ——— */
pointsEnabled?: boolean | number;
pointsSigninEnabled?: boolean | number;
pointsSigninAmount?: number;
pointsOrderRate?: number;
pointsExchangeRate?: number;
/* ——— 分销设置 ——— */
dealerEnabled?: boolean | number;
dealerApplyEnabled?: boolean | number;
dealerLevel1Rate?: number;
dealerLevel2Rate?: number;
dealerWithdrawMin?: number;
/* ——— 通知设置 ——— */
notifyOrderEnabled?: boolean | number;
notifyPayEnabled?: boolean | number;
notifyRefundEnabled?: boolean | number;
notifyShipEnabled?: boolean | number;
notifySignEnabled?: boolean | number;
/* ——— 支付设置 ——— */
payWechatEnabled?: boolean | number;
payWechatAppId?: string;
payWechatMchId?: string;
payWechatApiKey?: string;
payAlipayEnabled?: boolean | number;
payAlipayAppId?: string;
payAlipayPrivateKey?: string;
payAlipayPublicKey?: string;
payBalanceEnabled?: boolean | number;
}
/**
* 商城设置搜索条件
*/
export interface ShopSettingParam extends PageParam {
settingId?: number;
category?: string;
settingKey?: string;
keywords?: string;
}