feat(core): 初始化项目基础架构和CMS功能模块
- 添加Docker相关配置文件(.dockerignore, .env.example, .gitignore) - 实现服务端API代理功能,支持文件、模块和服务器API转发 - 创建文章详情页、栏目文章列表页和单页内容展示页面 - 集成Ant Design Vue组件库并实现SSR样式提取功能 - 定义API响应数据结构类型和应用布局组件 - 开发开发者应用中心和文章管理页面 - 实现CMS导航菜单获取和多租户切换功能
This commit is contained in:
153
app/api/system/setting/index.ts
Normal file
153
app/api/system/setting/index.ts
Normal file
@@ -0,0 +1,153 @@
|
||||
import request from '@/utils/request';
|
||||
import type { ApiResult, PageResult } from '@/api';
|
||||
import type { Setting, SettingParam } from './model';
|
||||
import { SERVER_API_URL } from '@/config/setting';
|
||||
|
||||
/**
|
||||
* 分页查询设置
|
||||
*/
|
||||
export async function pageSetting(params: SettingParam) {
|
||||
const res = await request.get<ApiResult<PageResult<Setting>>>(
|
||||
SERVER_API_URL + '/system/setting/page',
|
||||
{
|
||||
params
|
||||
}
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设置列表
|
||||
*/
|
||||
export async function listSetting(params?: SettingParam) {
|
||||
const res = await request.get<ApiResult<Setting[]>>(
|
||||
SERVER_API_URL + '/system/setting',
|
||||
{
|
||||
params
|
||||
}
|
||||
);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询
|
||||
*/
|
||||
export async function getSetting(id: number) {
|
||||
const res = await request.get<ApiResult<Setting>>(
|
||||
SERVER_API_URL + '/system/setting/' + id
|
||||
);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据key查询
|
||||
*/
|
||||
export async function getSettingByKey(key: string) {
|
||||
const res = await request.get<ApiResult<any>>(
|
||||
SERVER_API_URL + '/system/setting/getByKey/' + key
|
||||
);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加设置
|
||||
*/
|
||||
export async function addSetting(data: Setting) {
|
||||
const res = await request.post<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting',
|
||||
data
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设置
|
||||
*/
|
||||
export async function updateSetting(data: Setting) {
|
||||
const res = await request.put<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting',
|
||||
data
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据Key修改设置
|
||||
*/
|
||||
export async function updateSettingByKey(data: Setting) {
|
||||
const res = await request.put<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting/updateByKey',
|
||||
data
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设置
|
||||
*/
|
||||
export async function removeSetting(id?: number) {
|
||||
const res = await request.delete<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting/' + id
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除设置
|
||||
*/
|
||||
export async function removeBatchSetting(data: (number | undefined)[]) {
|
||||
const res = await request.delete<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting/batch',
|
||||
{
|
||||
data
|
||||
}
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查IP是否存在
|
||||
*/
|
||||
export async function checkExistence(
|
||||
field: string,
|
||||
value: string,
|
||||
id?: number
|
||||
) {
|
||||
const res = await request.get<ApiResult<unknown>>(
|
||||
SERVER_API_URL + '/system/setting/existence',
|
||||
{
|
||||
params: { field, value, id }
|
||||
}
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
127
app/api/system/setting/model/index.ts
Normal file
127
app/api/system/setting/model/index.ts
Normal file
@@ -0,0 +1,127 @@
|
||||
import type { PageParam } from '@/api';
|
||||
|
||||
/**
|
||||
* 系统设置
|
||||
*/
|
||||
export interface Setting {
|
||||
// 公共字段
|
||||
settingId?: number;
|
||||
settingKey?: string;
|
||||
content?: string;
|
||||
comments?: string;
|
||||
tenantName?: string;
|
||||
tenantId?: string | null;
|
||||
|
||||
// 设置信息
|
||||
siteName?: string;
|
||||
fullName?: string;
|
||||
tenantCode?: string;
|
||||
domain?: string;
|
||||
remarks?: string;
|
||||
icp?: string;
|
||||
copyright?: string;
|
||||
keyword?: string;
|
||||
phone?: string;
|
||||
company?: string;
|
||||
address?: string;
|
||||
email?: string;
|
||||
support?: string;
|
||||
logo?: string;
|
||||
|
||||
// 注册设置
|
||||
roleId?: number;
|
||||
openWxAuth?: number;
|
||||
openWxBindPhone?: number;
|
||||
openWxofficialAuth?: number;
|
||||
openWxofficialBindPhone?: number;
|
||||
tokenExpireTime?: number;
|
||||
|
||||
// 短信设置
|
||||
type?: number;
|
||||
accessKeyId?: string;
|
||||
accessKeySecret?: string;
|
||||
sign?: string;
|
||||
isNoticeUser?: string;
|
||||
userTemplateId?: string;
|
||||
merchantTemplateId?: string;
|
||||
isNoticeMerchant?: string;
|
||||
merchantMobiles?: string;
|
||||
|
||||
// 支付设置
|
||||
payMethod?: string;
|
||||
signMode?: string;
|
||||
alipayAppId?: string;
|
||||
signType?: string;
|
||||
appCertPublicKey?: string;
|
||||
alipayCertPublicKey?: string;
|
||||
alipayRootCert?: string;
|
||||
alipayPublicKey?: string;
|
||||
privateKey?: string;
|
||||
decryptKey?: string;
|
||||
balanceIsEnable?: boolean;
|
||||
wechatIsEnable?: boolean;
|
||||
alipayIsEnable?: boolean;
|
||||
wechatType?: string;
|
||||
mchId?: number;
|
||||
wechatAppId?: string;
|
||||
wechatApiKey?: string;
|
||||
apiclientCert?: string;
|
||||
apiclientKey?: string;
|
||||
spAppId?: string;
|
||||
spMchId?: string;
|
||||
spApiKey?: string;
|
||||
spSubAppId?: string;
|
||||
spSubMchId?: string;
|
||||
spApiclientCert?: string;
|
||||
spApiclientKey?: string;
|
||||
merchantSerialNumber?: string;
|
||||
|
||||
// 微信公众号/小程序设置
|
||||
appId?: string;
|
||||
appSecret?: string;
|
||||
wxOfficialAccount?: string;
|
||||
originalId?: string;
|
||||
|
||||
// 企业微信参数
|
||||
suiteId?: string;
|
||||
secret?: string;
|
||||
corpId?: string;
|
||||
token?: string;
|
||||
encodingAESKey?: string;
|
||||
|
||||
// 打印设置
|
||||
isOpenPrinter?: string;
|
||||
printerType?: string;
|
||||
printerStatus?: string;
|
||||
printerUser?: string;
|
||||
printerUserKey?: string;
|
||||
printerCode?: string;
|
||||
printerKey?: string;
|
||||
printerTimes?: string;
|
||||
|
||||
// chatGPT
|
||||
chatKey?: string;
|
||||
|
||||
// 清除缓存
|
||||
clearCache?: string;
|
||||
|
||||
// 主题
|
||||
theme?: string;
|
||||
|
||||
// 云存储
|
||||
uploadMethod?: any;
|
||||
fileUrl?: string;
|
||||
bucketName?: string;
|
||||
bucketEndpoint?: string;
|
||||
bucketDomain?: string;
|
||||
// accessKeyId?: string; 引用上面的
|
||||
// accessKeySecret?: string; 引用上面的
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统设置搜索条件
|
||||
*/
|
||||
export interface SettingParam extends PageParam {
|
||||
settingId?: number;
|
||||
settingKey?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user