初始化2

This commit is contained in:
2026-04-08 17:10:58 +08:00
commit 4986d90eb9
532 changed files with 112617 additions and 0 deletions

View File

@@ -0,0 +1,314 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsWebsite, CmsWebsiteParam } from './model';
import { MODULES_API_URL, SERVER_API_URL } from '@/config/setting';
/**
* 获取网站信息
*/
export async function getSiteInfo() {
const res = await request.get<ApiResult<CmsWebsite>>(
MODULES_API_URL + '/cms/cms-website/getSiteInfo',
{
params: {}
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询网站信息记录表
*/
export async function pageCmsWebsite(params: CmsWebsiteParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsite>>>(
MODULES_API_URL + '/cms/cms-website/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站信息记录表列表
*/
export async function listCmsWebsite(params?: CmsWebsiteParam) {
const res = await request.get<ApiResult<CmsWebsite[]>>(
MODULES_API_URL + '/cms/cms-website',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加网站信息记录表
*/
export async function addCmsWebsite(data: CmsWebsite): Promise<CmsWebsite> {
const res = await request.post<ApiResult<CmsWebsite>>(
MODULES_API_URL + '/cms/cms-website',
data
);
console.log('addCmsWebsite 响应:', res);
// 处理响应数据
const responseData = res.data;
// 检查是否为 ApiResult 格式
if (responseData && typeof responseData === 'object' && 'code' in responseData) {
// 是 ApiResult 格式
if (responseData.code === 0) {
// 确保返回的数据不为空
if (!responseData.data) {
console.warn('addCmsWebsite: 后端返回的data字段为空', responseData);
// 返回一个包含websiteId的默认对象
return {
websiteName: data.websiteName,
websiteCode: data.websiteCode,
websiteType: data.websiteType,
type: data.type,
comments: data.comments
} as CmsWebsite;
}
return responseData.data;
}
return Promise.reject(new Error(responseData.message || '创建失败'));
} else {
// 直接返回 CmsWebsite 对象
console.log('addCmsWebsite: 后端直接返回CmsWebsite对象', responseData);
return responseData as CmsWebsite;
}
}
/**
* 修改网站信息记录表
*/
export async function updateCmsWebsite(data: CmsWebsite) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站信息记录表
*/
export async function removeCmsWebsite(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站信息记录表
*/
export async function removeBatchCmsWebsite(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站信息记录表
*/
export async function getCmsWebsite(id: number) {
const res = await request.get<ApiResult<CmsWebsite>>(
MODULES_API_URL + '/cms/cms-website/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 清除缓存
*/
export async function removeSiteInfoCache(key?: string) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/clearSiteInfo/' + key
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function pageCmsWebsiteAll(params: CmsWebsiteParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsite>>>(
MODULES_API_URL + '/cms/cms-website/pageAll',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站
*/
export async function getCmsWebsiteAll(id: number) {
const res = await request.get<ApiResult<CmsWebsite>>(
'/cms/cms-website/getAll/' + id
);
if (res.data.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站信息记录表
*/
export async function updateCmsWebsiteAll(data: CmsWebsite) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-website/updateAll',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
// ---- 发布管理 API ----
/**
* 提交上架申请
*/
export async function submitPublishReview(data: {
websiteId: number
priceType: string
price?: number
subscriptionPeriod?: string
appDescription?: string
detailDescription?: string
screenshots?: string
}) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/submitReview',
data
)
if (res.data.code === 0) return res.data.message
return Promise.reject(new Error(res.data.message))
}
/**
* 下架应用
*/
export async function unpublishCmsWebsite(websiteId: number) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/unpublish/' + websiteId
)
if (res.data.code === 0) return res.data.message
return Promise.reject(new Error(res.data.message))
}
/**
* 撤回审核申请
*/
export async function withdrawPublishReview(websiteId: number) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/withdrawReview/' + websiteId
)
if (res.data.code === 0) return res.data.message
return Promise.reject(new Error(res.data.message))
}
/**
* 管理员审核通过
*/
export async function approvePublishReview(websiteId: number) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/approveReview/' + websiteId
)
if (res.data.code === 0) return res.data.message
return Promise.reject(new Error(res.data.message))
}
/**
* 管理员审核拒绝
*/
export async function rejectPublishReview(data: { websiteId: number; rejectReason: string }) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/rejectReview',
data
)
if (res.data.code === 0) return res.data.message
return Promise.reject(new Error(res.data.message))
}
/**
* 获取发布审核记录列表(管理员用)
*/
export async function pagePublishReviews(params: {
page?: number
limit?: number
publishStatus?: string
keywords?: string
}) {
const res = await request.get<ApiResult<PageResult<CmsWebsite>>>(
MODULES_API_URL + '/cms/cms-website/pageReviews',
{ params }
)
if (res.data.code === 0) return res.data.data
return Promise.reject(new Error(res.data.message))
}
/**
* 分页查询应用产品CmsWebsite 表,兼容 product 字段名)
*/
export async function pageAppProductAll(params: any) {
const res = await request.get<ApiResult<PageResult<any>>>(
SERVER_API_URL + '/cms/cms-website/pageAll',
{ params }
)
if (res.data.code === 0) {
// 字段映射website -> product 兼容
const data = res.data.data
if (data?.list) {
data.list = data.list.map((item: any) => ({
...item,
productId: item.websiteId,
productName: item.websiteName,
productCode: item.websiteCode,
productSecret: item.websiteSecret,
icon: item.websiteIcon,
logo: item.websiteLogo,
description: item.comments,
userId: item.userId,
}))
}
return data
}
return Promise.reject(new Error(res.data.message))
}