feat(system): 添加API密钥管理功能

- 新增API密钥创建表单界面
- 实现API密钥名称输入验证
- 添加密钥信息展示与编辑功能- 集成访问密钥管理模块
- 支持API密钥的增删改查操作
- 完善密钥权限校验逻辑
This commit is contained in:
2025-10-15 13:10:30 +08:00
commit 0e7082bbb0
1127 changed files with 217948 additions and 0 deletions

106
src/api/cms/cmsAd/index.ts Normal file
View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsAd, CmsAdParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询广告位
*/
export async function pageCmsAd(params: CmsAdParam) {
const res = await request.get<ApiResult<PageResult<CmsAd>>>(
MODULES_API_URL + '/cms/cms-ad/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询广告位列表
*/
export async function listCmsAd(params?: CmsAdParam) {
const res = await request.get<ApiResult<CmsAd[]>>(
MODULES_API_URL + '/cms/cms-ad',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加广告位
*/
export async function addCmsAd(data: CmsAd) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改广告位
*/
export async function updateCmsAd(data: CmsAd) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除广告位
*/
export async function removeCmsAd(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除广告位
*/
export async function removeBatchCmsAd(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询广告位
*/
export async function getCmsAd(id: number) {
const res = await request.get<ApiResult<CmsAd>>(
MODULES_API_URL + '/cms/cms-ad/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,65 @@
import type { PageParam } from '@/api';
/**
* 广告位
*/
export interface CmsAd {
// ID
adId?: number;
// 类型
type?: number;
// 唯一标识
code?: string;
// 栏目分类
categoryId?: number;
// 栏目名称
categoryName?: string;
// 页面ID
designId?: number;
// 广告类型
adType?: string;
// 广告位名称
name?: string;
// 宽
width?: string;
// 高
height?: string;
// css样式
style?: string;
// 广告图片
images?: any;
// 广告图片
imageList?: any;
// 路由/链接地址
path?: string;
// 用户ID
userId?: number;
// 语言
lang?: string;
// 页面ID
pageId?: number;
// 页面名称
pageName?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
merchantId?: number;
}
/**
* 广告位搜索条件
*/
export interface CmsAdParam extends PageParam {
adId?: number;
pageId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsAdRecord, CmsAdRecordParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询广告图片
*/
export async function pageCmsAdRecord(params: CmsAdRecordParam) {
const res = await request.get<ApiResult<PageResult<CmsAdRecord>>>(
MODULES_API_URL + '/cms/cms-ad-record/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询广告图片列表
*/
export async function listCmsAdRecord(params?: CmsAdRecordParam) {
const res = await request.get<ApiResult<CmsAdRecord[]>>(
MODULES_API_URL + '/cms/cms-ad-record',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加广告图片
*/
export async function addCmsAdRecord(data: CmsAdRecord) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改广告图片
*/
export async function updateCmsAdRecord(data: CmsAdRecord) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除广告图片
*/
export async function removeCmsAdRecord(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad-record/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除广告图片
*/
export async function removeBatchCmsAdRecord(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-ad-record/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询广告图片
*/
export async function getCmsAdRecord(id: number) {
const res = await request.get<ApiResult<CmsAdRecord>>(
MODULES_API_URL + '/cms/cms-ad-record/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 广告图片
*/
export interface CmsAdRecord {
// ID
adRecordId?: number;
// 广告标题
title?: string;
// 图片地址
path?: string;
// 链接地址
url?: string;
// 广告位ID
adId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 广告图片搜索条件
*/
export interface CmsAdRecordParam extends PageParam {
adRecordId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,160 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticle, CmsArticleParam } from './model';
import {MODULES_API_URL} from '@/config/setting';
/**
* 分页查询文章
*/
export async function pageCmsArticle(params: CmsArticleParam) {
const res = await request.get<ApiResult<PageResult<CmsArticle>>>(
MODULES_API_URL + '/cms/cms-article/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文章列表
*/
export async function listCmsArticle(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
MODULES_API_URL + '/cms/cms-article',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文章
*/
export async function addCmsArticle(data: CmsArticle) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章
*/
export async function updateCmsArticle(data: CmsArticle) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改文章
*/
export async function updateBatchCmsArticle(data: any) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章
*/
export async function removeCmsArticle(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章
*/
export async function removeBatchCmsArticle(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文章
*/
export async function getCmsArticle(id: number) {
const res = await request.get<ApiResult<CmsArticle>>(
MODULES_API_URL + '/cms/cms-article/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据code查询文章
*/
export async function getByCode(code: string) {
const res = await request.get<ApiResult<CmsArticle>>(
'/cms/cms-article/getByCode/' + code
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params: CmsArticleParam) {
const res = await request.get(MODULES_API_URL + '/cms/cms-article/data', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 文章批量导入
*/
export async function importArticles(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,131 @@
import type { PageParam } from '@/api';
/**
* 文章
*/
export interface CmsArticle {
// 文章ID
articleId?: number;
// 文章标题
title?: string;
// 文章类型 0常规 1视频
type?: number;
// 文章模型
model?: string;
// 文章编号
code?: string;
// 文章详情
detail?: string;
// 列表显示方式(10小图展示 20大图展示)
showType?: number;
// 话题
topic?: string;
// 标签
tags?: any;
// 父级ID
parentId?: number;
parentName?: string;
// 栏目ID
categoryId?: number;
// 栏目名称
categoryName?: string;
// 封面图
image?: string;
// 来源
source?: string;
// 摘要
overview?: string;
// 虚拟阅读量(仅用作展示)
virtualViews?: number;
// 实际阅读量
actualViews?: number;
// 浏览权限(0公开 1会员 2密码)
permission?: number;
// 访问密码
password?: string;
// 确认密码
password2?: string;
// 发布来源客户端 (APP、H5、小程序等)
platform?: string;
// 文章附件
files?: string;
// 视频地址
video?: string;
// 接受的文件类型
accept?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 街道地址
address?: string;
// 点赞数
likes?: number;
// 评论数
commentNumbers?: number;
// 提醒谁看
toUsers?: string;
// 文章内容
content?: string;
// 编辑器类型
editor?: number;
// PDF地址
pdfUrl?: string;
// 用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 作者
author?: string;
// 语言
lang?: string;
// 是否推荐
recommend?: number;
// 是否同步翻译其他语言版本
translation?: boolean;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0已发布, 1待审核 2已驳回 3违规内容
status?: number;
// 状态描述
statusText?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 是否移动端
isMobile?: boolean;
// 二维码
qrcode?: string;
// 文章路径
url?: string;
}
/**
* 文章搜索条件
*/
export interface CmsArticleParam extends PageParam {
articleId?: number;
model?: string;
status?: number;
keywords?: string;
}
export interface CmsArticleCount {
totalNum?: number;
totalNum2?: number;
totalNum3?: number;
totalNum4?: number;
}

View File

@@ -0,0 +1,108 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticleCategory, CmsArticleCategoryParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询文章分类表
*/
export async function pageCmsArticleCategory(params: CmsArticleCategoryParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleCategory>>>(
MODULES_API_URL + '/cms/cms-article-category/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文章分类表列表
*/
export async function listCmsArticleCategory(params?: CmsArticleCategoryParam) {
const res = await request.get<ApiResult<CmsArticleCategory[]>>(
MODULES_API_URL + '/cms/cms-article-category',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文章分类表
*/
export async function addCmsArticleCategory(data: CmsArticleCategory) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-category',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章分类表
*/
export async function updateCmsArticleCategory(data: CmsArticleCategory) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-category',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章分类表
*/
export async function removeCmsArticleCategory(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-category/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章分类表
*/
export async function removeBatchCmsArticleCategory(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-category/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文章分类表
*/
export async function getCmsArticleCategory(id: number) {
const res = await request.get<ApiResult<CmsArticleCategory>>(
MODULES_API_URL + '/cms/cms-article-category/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,59 @@
import type { PageParam } from '@/api';
/**
* 文章分类表
*/
export interface CmsArticleCategory {
// 文章分类ID
categoryId?: number;
// 分类标识
categoryCode?: string;
// 分类名称
title?: string;
// 类型 0列表 1单页 2外链
type?: number;
// 分类图片
image?: string;
// 上级分类ID
parentId?: number;
// 路由/链接地址
path?: string;
// 组件路径
component?: string;
// 绑定的页面
pageId?: number;
// 用户ID
userId?: number;
// 文章数量
count?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 是否推荐
recommend?: number;
// 是否显示在首页
showIndex?: number;
// 状态, 0正常, 1禁用
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
value?: number;
label?: string;
}
/**
* 文章分类表搜索条件
*/
export interface CmsArticleCategoryParam extends PageParam {
categoryId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticleComment, CmsArticleCommentParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询文章评论表
*/
export async function pageCmsArticleComment(params: CmsArticleCommentParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleComment>>>(
MODULES_API_URL + '/cms/cms-article-comment/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文章评论表列表
*/
export async function listCmsArticleComment(params?: CmsArticleCommentParam) {
const res = await request.get<ApiResult<CmsArticleComment[]>>(
MODULES_API_URL + '/cms/cms-article-comment',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文章评论表
*/
export async function addCmsArticleComment(data: CmsArticleComment) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-comment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章评论表
*/
export async function updateCmsArticleComment(data: CmsArticleComment) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-comment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章评论表
*/
export async function removeCmsArticleComment(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-comment/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章评论表
*/
export async function removeBatchCmsArticleComment(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-comment/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文章评论表
*/
export async function getCmsArticleComment(id: number) {
const res = await request.get<ApiResult<CmsArticleComment>>(
MODULES_API_URL + '/cms/cms-article-comment/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 文章评论表
*/
export interface CmsArticleComment {
// 评价ID
commentId?: number;
// 文章ID
articleId?: number;
// 评分 (10好评 20中评 30差评)
score?: number;
// 评价内容
content?: string;
// 是否为图片评价
isPicture?: number;
// 评论者ID
userId?: number;
// 被评价者ID
toUserId?: number;
// 回复的评论ID
replyCommentId?: number;
// 回复者ID
replyUserId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0未读, 1已读
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 文章评论表搜索条件
*/
export interface CmsArticleCommentParam extends PageParam {
commentId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticleContent, CmsArticleContentParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询文章记录表
*/
export async function pageCmsArticleContent(params: CmsArticleContentParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleContent>>>(
MODULES_API_URL + '/cms/cms-article-content/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文章记录表列表
*/
export async function listCmsArticleContent(params?: CmsArticleContentParam) {
const res = await request.get<ApiResult<CmsArticleContent[]>>(
MODULES_API_URL + '/cms/cms-article-content',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文章记录表
*/
export async function addCmsArticleContent(data: CmsArticleContent) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-content',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章记录表
*/
export async function updateCmsArticleContent(data: CmsArticleContent) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-content',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章记录表
*/
export async function removeCmsArticleContent(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-content/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章记录表
*/
export async function removeBatchCmsArticleContent(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-content/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文章记录表
*/
export async function getCmsArticleContent(id: number) {
const res = await request.get<ApiResult<CmsArticleContent>>(
MODULES_API_URL + '/cms/cms-article-content/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 文章记录表
*/
export interface CmsArticleContent {
//
id?: number;
// 文章ID
articleId?: number;
// 文章内容
content?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 文章记录表搜索条件
*/
export interface CmsArticleContentParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticleCount, CmsArticleCountParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询点赞文章
*/
export async function pageCmsArticleCount(params: CmsArticleCountParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleCount>>>(
MODULES_API_URL + '/cms/cms-article-count/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询点赞文章列表
*/
export async function listCmsArticleCount(params?: CmsArticleCountParam) {
const res = await request.get<ApiResult<CmsArticleCount[]>>(
MODULES_API_URL + '/cms/cms-article-count',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加点赞文章
*/
export async function addCmsArticleCount(data: CmsArticleCount) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-count',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改点赞文章
*/
export async function updateCmsArticleCount(data: CmsArticleCount) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-count',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除点赞文章
*/
export async function removeCmsArticleCount(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-count/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除点赞文章
*/
export async function removeBatchCmsArticleCount(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-count/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询点赞文章
*/
export async function getCmsArticleCount(id: number) {
const res = await request.get<ApiResult<CmsArticleCount>>(
MODULES_API_URL + '/cms/cms-article-count/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 点赞文章
*/
export interface CmsArticleCount {
// 主键ID
id?: number;
// 文章ID
articleId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 点赞文章搜索条件
*/
export interface CmsArticleCountParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsArticleLike, CmsArticleLikeParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询点赞文章
*/
export async function pageCmsArticleLike(params: CmsArticleLikeParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleLike>>>(
MODULES_API_URL + '/cms/cms-article-like/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询点赞文章列表
*/
export async function listCmsArticleLike(params?: CmsArticleLikeParam) {
const res = await request.get<ApiResult<CmsArticleLike[]>>(
MODULES_API_URL + '/cms/cms-article-like',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加点赞文章
*/
export async function addCmsArticleLike(data: CmsArticleLike) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-like',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改点赞文章
*/
export async function updateCmsArticleLike(data: CmsArticleLike) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-like',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除点赞文章
*/
export async function removeCmsArticleLike(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-like/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除点赞文章
*/
export async function removeBatchCmsArticleLike(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-like/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询点赞文章
*/
export async function getCmsArticleLike(id: number) {
const res = await request.get<ApiResult<CmsArticleLike>>(
MODULES_API_URL + '/cms/cms-article-like/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 点赞文章
*/
export interface CmsArticleLike {
// 主键ID
id?: number;
// 文章ID
articleId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 点赞文章搜索条件
*/
export interface CmsArticleLikeParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsDesign, CmsDesignParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询页面管理记录表
*/
export async function pageCmsDesign(params: CmsDesignParam) {
const res = await request.get<ApiResult<PageResult<CmsDesign>>>(
MODULES_API_URL + '/cms/cms-design/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询页面管理记录表列表
*/
export async function listCmsDesign(params?: CmsDesignParam) {
const res = await request.get<ApiResult<CmsDesign[]>>(
MODULES_API_URL + '/cms/cms-design',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加页面管理记录表
*/
export async function addCmsDesign(data: CmsDesign) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-design',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改页面管理记录表
*/
export async function updateCmsDesign(data: CmsDesign) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-design',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除页面管理记录表
*/
export async function removeCmsDesign(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-design/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除页面管理记录表
*/
export async function removeBatchCmsDesign(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-design/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询页面管理记录表
*/
export async function getCmsDesign(id: number) {
const res = await request.get<ApiResult<CmsDesign>>(
MODULES_API_URL + '/cms/cms-design/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,64 @@
import type { PageParam } from '@/api';
/**
* 页面管理记录表
*/
export interface CmsDesign {
pageId?: number;
name?: string;
keywords?: string;
description?: string;
path?: string;
component?: string;
photo?: string;
content?: string;
// 类型
type?: string;
categoryId?: number;
// 宽
width?: string;
// 高
height?: string;
// 页面样式
style?: string;
// 附件
images?: string;
// 用户ID
userId?: number;
// 设为首页
home?: number;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
// 页面布局
layout?: string;
backgroundColor?: string;
// 关联网站导航ID
navigationId?: number;
showLayout?: boolean;
btn?: any[];
showBanner?: boolean;
showButton?: boolean;
// 是否同步翻译其他语言版本
translation?: boolean;
buyUrl?: string;
demoUrl?: string;
account?: string;
docUrl?: string;
parentId?: number;
}
/**
* 页面管理记录表搜索条件
*/
export interface CmsDesignParam extends PageParam {
pageId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,153 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsDomain, CmsDomainParam } from './model';
import { SERVER_API_URL} from '@/config/setting';
/**
* 分页查询网站域名记录表
*/
export async function pageCmsDomain(params: CmsDomainParam) {
const res = await request.get<ApiResult<PageResult<CmsDomain>>>(
SERVER_API_URL + '/cms/cms-domain/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站域名记录表列表
*/
export async function listCmsDomain(params?: CmsDomainParam) {
const res = await request.get<ApiResult<CmsDomain[]>>(
SERVER_API_URL + '/cms/cms-domain',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加网站域名记录表
*/
export async function addCmsDomain(data: CmsDomain) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站域名记录表
*/
export async function updateCmsDomain(data: CmsDomain) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/domain',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站域名记录表
*/
export async function removeCmsDomain(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站域名记录表
*/
export async function removeBatchCmsDomain(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站域名记录表
*/
export async function getCmsDomain(id: number) {
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/cms-domain/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
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 + '/cms/cms-domain/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function resolvable(id: number) {
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/cms-domain/resolvable/' + id
);
if (res.data.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据授权主域名
*/
export async function getAuthorizedDomain() {
if(!localStorage.getItem('WebsiteId')){
return false;
}
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/cms-domain/getAuthorizedDomain/' + localStorage.getItem('WebsiteId')
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 网站域名记录表
*/
export interface CmsDomain {
// ID
id?: number;
// 类型 0赠送域名 1绑定域名
type?: number;
// 域名
domain?: string;
// 主机记录
hostName?: string;
// 记录值
hostValue?: string;
// 状态
status?: number;
// 排序号
sortNumber?: number;
// 网站ID
websiteId?: number;
// 租户ID
appId?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 网站域名记录表搜索条件
*/
export interface CmsDomainParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsForm, CmsFormParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询表单设计表
*/
export async function pageCmsForm(params: CmsFormParam) {
const res = await request.get<ApiResult<PageResult<CmsForm>>>(
MODULES_API_URL + '/cms/cms-form/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询表单设计表列表
*/
export async function listCmsForm(params?: CmsFormParam) {
const res = await request.get<ApiResult<CmsForm[]>>(
MODULES_API_URL + '/cms/cms-form',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加表单设计表
*/
export async function addCmsForm(data: CmsForm) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改表单设计表
*/
export async function updateCmsForm(data: CmsForm) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除表单设计表
*/
export async function removeCmsForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除表单设计表
*/
export async function removeBatchCmsForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询表单设计表
*/
export async function getCmsForm(id: number) {
const res = await request.get<ApiResult<CmsForm>>(
MODULES_API_URL + '/cms/cms-form/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,53 @@
import type { PageParam } from '@/api';
/**
* 表单设计表
*/
export interface CmsForm {
// ID
formId?: number;
// 表单标题
name?: string;
// 顶部图片
photo?: string;
// 背景图片
background?: string;
// 视频文件
video?: string;
// 提交次数
submitNumber?: number;
// 页面布局
layout?: string;
// 是否隐藏顶部图片
hidePhoto?: number;
// 是否隐藏背景图片
hideBackground?: number;
// 是否隐藏视频
hideVideo?: number;
// 背景图片透明度
opacity?: string;
// 用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 表单设计表搜索条件
*/
export interface CmsFormParam extends PageParam {
formId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsFormRecord, CmsFormRecordParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询表单数据记录表
*/
export async function pageCmsFormRecord(params: CmsFormRecordParam) {
const res = await request.get<ApiResult<PageResult<CmsFormRecord>>>(
MODULES_API_URL + '/cms/cms-form-record/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询表单数据记录表列表
*/
export async function listCmsFormRecord(params?: CmsFormRecordParam) {
const res = await request.get<ApiResult<CmsFormRecord[]>>(
MODULES_API_URL + '/cms/cms-form-record',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加表单数据记录表
*/
export async function addCmsFormRecord(data: CmsFormRecord) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改表单数据记录表
*/
export async function updateCmsFormRecord(data: CmsFormRecord) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除表单数据记录表
*/
export async function removeCmsFormRecord(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form-record/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除表单数据记录表
*/
export async function removeBatchCmsFormRecord(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-form-record/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询表单数据记录表
*/
export async function getCmsFormRecord(id: number) {
const res = await request.get<ApiResult<CmsFormRecord>>(
MODULES_API_URL + '/cms/cms-form-record/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
/**
* 表单数据记录表
*/
export interface CmsFormRecord {
// ID
formRecordId?: number;
// 手机号
phone?: string;
// 表单数据
formData?: string;
// 表单ID
formId?: number;
// 用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 姓名
name?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 表单数据记录表搜索条件
*/
export interface CmsFormRecordParam extends PageParam {
formRecordId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsLang, CmsLangParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询国际化
*/
export async function pageCmsLang(params: CmsLangParam) {
const res = await request.get<ApiResult<PageResult<CmsLang>>>(
MODULES_API_URL + '/cms/cms-lang/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询国际化列表
*/
export async function listCmsLang(params?: CmsLangParam) {
const res = await request.get<ApiResult<CmsLang[]>>(
MODULES_API_URL + '/cms/cms-lang',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加国际化
*/
export async function addCmsLang(data: CmsLang) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改国际化
*/
export async function updateCmsLang(data: CmsLang) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除国际化
*/
export async function removeCmsLang(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除国际化
*/
export async function removeBatchCmsLang(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询国际化
*/
export async function getCmsLang(id: number) {
const res = await request.get<ApiResult<CmsLang>>(
MODULES_API_URL + '/cms/cms-lang/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 国际化
*/
export interface CmsLang {
// ID
id?: number;
// 名称
name?: string;
// 编码
code?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0已发布, 1待审核 2已驳回 3违规内容
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 国际化搜索条件
*/
export interface CmsLangParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsLangLog, CmsLangLogParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询国际化记录启用
*/
export async function pageCmsLangLog(params: CmsLangLogParam) {
const res = await request.get<ApiResult<PageResult<CmsLangLog>>>(
MODULES_API_URL + '/cms/cms-lang-log/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询国际化记录启用列表
*/
export async function listCmsLangLog(params?: CmsLangLogParam) {
const res = await request.get<ApiResult<CmsLangLog[]>>(
MODULES_API_URL + '/cms/cms-lang-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加国际化记录启用
*/
export async function addCmsLangLog(data: CmsLangLog) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改国际化记录启用
*/
export async function updateCmsLangLog(data: CmsLangLog) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除国际化记录启用
*/
export async function removeCmsLangLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除国际化记录启用
*/
export async function removeBatchCmsLangLog(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-lang-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询国际化记录启用
*/
export async function getCmsLangLog(id: number) {
const res = await request.get<ApiResult<CmsLangLog>>(
MODULES_API_URL + '/cms/cms-lang-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,27 @@
import type { PageParam } from '@/api';
/**
* 国际化记录启用
*/
export interface CmsLangLog {
// ID
id?: number;
// 名称
lang?: string;
// 关联ID
langId?: number;
// 编码
code?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 国际化记录启用搜索条件
*/
export interface CmsLangLogParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,120 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsLink, CmsLinkParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询常用链接
*/
export async function pageCmsLink(params: CmsLinkParam) {
const res = await request.get<ApiResult<PageResult<CmsLink>>>(
MODULES_API_URL + '/cms/cms-link/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询常用链接列表
*/
export async function listCmsLink(params?: CmsLinkParam) {
const res = await request.get<ApiResult<CmsLink[]>>(
MODULES_API_URL + '/cms/cms-link',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加常用链接
*/
export async function addCmsLink(data: CmsLink) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-link',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改常用链接
*/
export async function updateCmsLink(data: CmsLink) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-link',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除常用链接
*/
export async function removeCmsLink(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-link/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改常用链接
*/
export async function updateBatchCmsLink(data: any) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-link/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除常用链接
*/
export async function removeBatchCmsLink(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-link/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询常用链接
*/
export async function getCmsLink(id: number) {
const res = await request.get<ApiResult<CmsLink>>(
MODULES_API_URL + '/cms/cms-link/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,45 @@
import type { PageParam } from '@/api';
/**
* 常用链接
*/
export interface CmsLink {
// 自增ID
id?: number;
// 链接名称
name?: string;
// 图标
icon?: string;
// 链接地址
url?: string;
// 链接分类
categoryId?: number;
// 应用ID
appId?: number;
// 用户ID
userId?: number;
// 语言
lang?: string;
// 是否推荐
recommend?: number;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 状态, 0正常, 1待确认
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 常用链接搜索条件
*/
export interface CmsLinkParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsModel, CmsModelParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询模型
*/
export async function pageCmsModel(params: CmsModelParam) {
const res = await request.get<ApiResult<PageResult<CmsModel>>>(
MODULES_API_URL + '/cms/cms-model/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询模型列表
*/
export async function listCmsModel(params?: CmsModelParam) {
const res = await request.get<ApiResult<CmsModel[]>>(
MODULES_API_URL + '/cms/cms-model',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加模型
*/
export async function addCmsModel(data: CmsModel) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-model',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改模型
*/
export async function updateCmsModel(data: CmsModel) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-model',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除模型
*/
export async function removeCmsModel(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-model/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除模型
*/
export async function removeBatchCmsModel(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-model/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询模型
*/
export async function getCmsModel(id: number) {
const res = await request.get<ApiResult<CmsModel>>(
MODULES_API_URL + '/cms/cms-model/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,63 @@
import type { PageParam } from '@/api';
/**
* 模型
*/
export interface CmsModel {
// ID
modelId?: number;
// 模型名称
name?: string;
// 唯一标识
model?: string;
// 详情页组件
componentDetail?: string;
// 菜单组件地址, 目录可为空
component?: string;
// 模型banner图片
banner?: string;
// 缩列图
thumb?: string;
// 文件后缀
suffix?: string;
// 封面图宽
imageWidth?: string;
// 封面图高
imageHeight?: string;
// 样式
style?: string;
// Banner上的标题
title?: string;
// Banner上的描述
desc?: string;
// 列表显示方式(10小图展示 20大图展示)
showType?: number;
// 是否禁用
disabled?: boolean;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0已发布, 1待审核 2已驳回 3违规内容
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
label?: string;
value?: string;
}
/**
* 模型搜索条件
*/
export interface CmsModelParam extends PageParam {
modelId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,151 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsNavigation, CmsNavigationParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询网站导航记录表
*/
export async function pageCmsNavigation(params: CmsNavigationParam) {
const res = await request.get<ApiResult<PageResult<CmsNavigation>>>(
MODULES_API_URL + '/cms/cms-navigation/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站导航记录表列表
*/
export async function listCmsNavigation(params?: CmsNavigationParam) {
const res = await request.get<ApiResult<CmsNavigation[]>>(
MODULES_API_URL + '/cms/cms-navigation',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询导航列表(树形结构)
*/
export async function treeNavigation(params?: CmsNavigationParam) {
const res = await request.get<ApiResult<CmsNavigation[]>>(
MODULES_API_URL + '/cms/cms-navigation/tree',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加网站导航记录表
*/
export async function addCmsNavigation(data: CmsNavigation) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-navigation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站导航记录表
*/
export async function updateCmsNavigation(data: CmsNavigation) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-navigation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站导航记录表
*/
export async function removeCmsNavigation(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-navigation/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站导航记录表
*/
export async function removeBatchCmsNavigation(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-navigation/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站导航记录表
*/
export async function getCmsNavigation(id: number) {
const res = await request.get<ApiResult<CmsNavigation>>(
MODULES_API_URL + '/cms/cms-navigation/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据code查询导航
*/
export async function getByCode(code: string) {
const res = await request.get<ApiResult<CmsNavigation>>(
'/cms/cms-navigation/getByCode/' + code
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导航批量导入
*/
export async function importCmsNavigation(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-navigation/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,106 @@
import type { PageParam } from '@/api';
/**
* 网站导航记录表
*/
export interface CmsNavigation {
// ID
navigationId?: number;
// 上级id, 0是顶级
parentId?: number;
// 菜单名称
title?: string;
// 模型
model?: string;
// 标识
code?: string;
// 菜单路由地址
path?: string;
// 菜单组件地址, 目录可为空
component?: string;
componentPath?: string;
// 打开位置
target?: string;
// 菜单图标
icon?: string;
// banner图片
banner?: string;
// 图标颜色
color?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 可见类型 0所有人 1登录可见 2密码可见
permission?: number;
// 访问密码
password?: string;
// 位置 0不限 1顶部 2底部
position?: number;
// 仅在顶部显示
top?: number;
// 仅在底部显示
bottom?: number;
// 菜单侧栏选中的path
active?: string;
// 其它路由元信息
meta?: string;
// css样式
style?: string;
// 父级栏目路由
parentPath?: string;
// 父级栏目名称
parentName?: string;
// 父级栏目位置
parentPosition?: number;
// 模型名称
modelName?: string;
// 类型(已废弃)
type?: number;
// 绑定的页面(已废弃)
pageId?: number;
// 项目ID
itemId?: number;
// 是否微信小程序菜单
isMpWeixin?: string;
gutter?: number;
span?: number;
readNum?: number;
// 用户ID
userId?: number;
// 国际化语言
lang?: string;
// 设为首页
home?: number;
// 是否推荐
recommend?: boolean;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
children?: CmsNavigation[];
disabled?: boolean;
label?: string;
value?: number;
suffix?: string;
showBanner?: boolean;
showLayout?: boolean;
langCategoryId?: number;
}
/**
* 网站导航记录表搜索条件
*/
export interface CmsNavigationParam extends PageParam {
navigationId?: number;
model?: string;
lang?: string;
recommend?: boolean;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsOrder, CmsOrderParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询订单
*/
export async function pageCmsOrder(params: CmsOrderParam) {
const res = await request.get<ApiResult<PageResult<CmsOrder>>>(
MODULES_API_URL + '/cms/cms-order/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询订单列表
*/
export async function listCmsOrder(params?: CmsOrderParam) {
const res = await request.get<ApiResult<CmsOrder[]>>(
MODULES_API_URL + '/cms/cms-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 addCmsOrder(data: CmsOrder) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改订单
*/
export async function updateCmsOrder(data: CmsOrder) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除订单
*/
export async function removeCmsOrder(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-order/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除订单
*/
export async function removeBatchCmsOrder(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-order/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询订单
*/
export async function getCmsOrder(id: number) {
const res = await request.get<ApiResult<CmsOrder>>(
MODULES_API_URL + '/cms/cms-order/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,66 @@
import type { PageParam } from '@/api';
/**
* 订单
*/
export interface CmsOrder {
// 订单号
orderId?: number;
// 订单标题
title?: string;
// 订单编号
orderNo?: string;
// 订单类型0商城 1询价 2留言
type?: number;
// 关联项目ID配合订单类型使用
itemId?: number;
// 真实姓名
realName?: string;
// 手机号码
phone?: string;
// 电子邮箱
email?: string;
// 收货地址
address?: string;
// 订单内容
content?: string;
// 订单附件
files?: string;
// 订单总额
totalPrice?: string;
// 实际付款
payPrice?: string;
// 报价询价
price?: string;
// 购买数量
totalNum?: number;
// 二维码地址,保存订单号,支付成功后才生成
qrcode?: string;
// 下单渠道0网站 1小程序 2其他
channel?: number;
// 过期时间
expirationTime?: string;
// 订单是否已结算(0未结算 1已结算)
isSettled?: boolean;
// 用户id
userId?: number;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 订单搜索条件
*/
export interface CmsOrderParam extends PageParam {
orderId?: number;
isSettled?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsStatistics, CmsStatisticsParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询站点统计信息表
*/
export async function pageCmsStatistics(params: CmsStatisticsParam) {
const res = await request.get<ApiResult<PageResult<CmsStatistics>>>(
MODULES_API_URL + '/cms/cms-statistics/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询站点统计信息表列表
*/
export async function listCmsStatistics(params?: CmsStatisticsParam) {
const res = await request.get<ApiResult<CmsStatistics[]>>(
MODULES_API_URL + '/cms/cms-statistics',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加站点统计信息表
*/
export async function addCmsStatistics(data: CmsStatistics) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-statistics',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改站点统计信息表
*/
export async function updateCmsStatistics(data: CmsStatistics) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-statistics',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除站点统计信息表
*/
export async function removeCmsStatistics(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-statistics/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除站点统计信息表
*/
export async function removeBatchCmsStatistics(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-statistics/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询站点统计信息表
*/
export async function getCmsStatistics(id: number) {
const res = await request.get<ApiResult<CmsStatistics>>(
MODULES_API_URL + '/cms/cms-statistics/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,79 @@
import type { PageParam } from '@/api';
/**
* 站点统计信息表
*/
export interface CmsStatistics {
// 自增ID
id?: number;
// 站点ID
websiteId?: number;
// 用户总数
userCount?: number;
// 订单总数
orderCount?: number;
// 商品总数
productCount?: number;
// 总销售额
totalSales?: number;
// 本月销售额
monthSales?: number;
// 今日销售额
todaySales?: number;
// 昨日销售额
yesterdaySales?: number;
// 本周销售额
weekSales?: number;
// 本年销售额
yearSales?: number;
// 今日订单数
todayOrders?: number;
// 本月订单数
monthOrders?: number;
// 今日新增用户
todayUsers?: number;
// 本月新增用户
monthUsers?: number;
// 今日访问量
todayVisits?: number;
// 总访问量
totalVisits?: number;
// 商户总数
merchantCount?: number;
// 活跃用户数
activeUsers?: number;
// 转化率(%)
conversionRate?: string;
// 平均订单金额
avgOrderAmount?: string;
// 统计日期
statisticsDate?: string;
// 统计类型: 1日统计, 2月统计, 3年统计
statisticsType?: number;
// 运行天数
runDays?: number;
// 排序号
sortNumber?: number;
// 操作用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 状态: 0禁用, 1启用
status?: string;
// 是否删除: 0否, 1是
deleted?: string;
// 租户ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 站点统计信息表搜索条件
*/
export interface CmsStatisticsParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsTemplate, CmsTemplateParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询网站模版
*/
export async function pageCmsTemplate(params: CmsTemplateParam) {
const res = await request.get<ApiResult<PageResult<CmsTemplate>>>(
MODULES_API_URL + '/cms/cms-template/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站模版列表
*/
export async function listCmsTemplate(params?: CmsTemplateParam) {
const res = await request.get<ApiResult<CmsTemplate[]>>(
MODULES_API_URL + '/cms/cms-template',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加网站模版
*/
export async function addCmsTemplate(data: CmsTemplate) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-template',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站模版
*/
export async function updateCmsTemplate(data: CmsTemplate) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-template',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站模版
*/
export async function removeCmsTemplate(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-template/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站模版
*/
export async function removeBatchCmsTemplate(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-template/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站模版
*/
export async function getCmsTemplate(id: number) {
const res = await request.get<ApiResult<CmsTemplate>>(
MODULES_API_URL + '/cms/cms-template/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,59 @@
import type { PageParam } from '@/api';
/**
* 网站模版
*/
export interface CmsTemplate {
// ID
id?: number;
// 模版名称
name?: string;
// 模版标识
code?: string;
// 缩列图
image?: string;
// 类型 1企业官网 2其他
type?: number;
// 网站关键词
keywords?: string;
// 域名前缀
prefix?: string;
// 预览地址
domain?: string;
// 模版下载地址
downUrl?: string;
// 色系
color?: string;
// 应用版本 10免费版 20授权版 30永久授权
version?: number;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 备注
comments?: string;
// 是否推荐
recommend?: string;
// 是否共享模板
share?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 网站模版搜索条件
*/
export interface CmsTemplateParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,119 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsWebsite, CmsWebsiteParam } from './model';
import {MODULES_API_URL} from '@/config/setting';
/**
* 分页查询网站信息记录表
*/
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) {
const res = await request.post<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 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));
}

View File

@@ -0,0 +1,160 @@
import type { PageParam } from '@/api';
import {CmsWebsiteSetting} from "@/api/cms/cmsWebsiteSetting/model";
import {CmsNavigation} from "@/api/cms/cmsNavigation/model";
/**
* 网站信息记录表
*/
export interface CmsWebsite {
// 站点ID
websiteId?: number;
// 网站名称
websiteName?: string;
// 网站标识
websiteCode?: string;
// 网站LOGO
websiteIcon?: string;
// 网站LOGO
websiteLogo?: string;
// 网站LOGO(深色模式)
websiteDarkLogo?: string;
// 网站类型
websiteType?: string;
// 网站截图
files?: string;
// 网站类型
type?: number;
// 网站关键词
keywords?: string;
// 域名前缀
prefix?: string;
// 绑定域名
domain?: string;
// 全局样式
style?: string;
// 后台管理地址
adminUrl?: string;
// 应用版本 10标准版 20专业版 30永久授权
version?: number;
// 允许展示到插件市场
market?: boolean;
// 应用类型 0应用 1插件
plugin?: boolean;
// 默认编辑器
editor?: number,
// 服务到期时间
expirationTime?: string;
// 模版ID
templateId?: number;
// 行业类型
category?: string;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 企业ID
companyId?: number;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 街道地址
address?: string;
// 联系电话
phone?: string;
// 电子邮箱
email?: string;
// ICP备案号
icpNo?: string;
// 公安备案
policeNo?: string;
// 备注
comments?: string;
// 是否推荐
recommend?: number;
// 是否运行中
running?: number;
// 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停
status?: number;
// 维护说明
statusText?: string;
// 关闭说明
statusClose?: string;
// 全局样式
styles?: string;
// 语言
lang?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 网站配置
config?: any;
// 短信验证码
smsCode?: string;
// 短信验证码
code?: string;
// 是否记住密码
remember?: boolean;
// 企业名称
companyName?: string;
// 是否注册未超级管理员
isSuperAdmin?: boolean;
// 用户名
username?: string;
// 网站配置
setting?: CmsWebsiteSetting;
}
export interface AppInfo {
appId?: number;
appName?: string;
description?: string;
keywords?: string;
appCode?: string;
mpQrCode?: string;
title?: string;
logo?: string;
icon?: string;
domain?: string;
running?: number;
version?: number;
expirationTime?: string;
expired?: boolean;
expiredDays?: number;
soon?: number;
statusIcon?: string;
statusText?: string;
config?: Object;
serverTime?: Object;
topNavs?: CmsNavigation[];
bottomNavs?: CmsNavigation[];
setting?: Object;
createTime?: string;
}
/**
* 网站信息记录表搜索条件
*/
export interface CmsWebsiteParam extends PageParam {
websiteId?: number;
status?: number;
plugin?: boolean;
keywords?: string;
}

View File

@@ -0,0 +1,73 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsWebsite, CmsWebsiteParam } from './model';
import {MODULES_API_URL} from '@/config/setting';
/**
* 分页查询网站信息记录表
*/
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));
}
/**
* 查询网站信息记录表列表
*/
export async function listCmsWebsiteAll(params?: CmsWebsiteParam) {
const res = await request.get<ApiResult<CmsWebsite[]>>(
MODULES_API_URL + '/cms/cms-website/listAll',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站信息记录表
*/
export async function updateCmsWebsiteAll(data: CmsWebsite) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/updateAll',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站信息记录表
*/
export async function removeCmsWebsiteAll(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website/removeAll/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCmsWebsiteAll(id: number){
const res = await request.get<ApiResult<CmsWebsite>>(
MODULES_API_URL + '/cms/cms-website/getAll/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,132 @@
import type { PageParam } from '@/api';
import {CmsWebsiteSetting} from "@/api/cms/cmsWebsiteSetting/model";
/**
* 网站信息记录表
*/
export interface CmsWebsite {
// 站点ID
websiteId?: number;
// 网站名称
websiteName?: string;
// 网站标识
websiteCode?: string;
// 网站LOGO
websiteIcon?: string;
// 网站LOGO
websiteLogo?: string;
// 网站LOGO(深色模式)
websiteDarkLogo?: string;
// 网站类型
websiteType?: string;
// 网站截图
files?: string;
// 网站类型
type?: number;
// 网站关键词
keywords?: string;
// 域名前缀
prefix?: string;
// 绑定域名
domain?: string;
// 全局样式
style?: string;
// 后台管理地址
adminUrl?: string;
// 应用版本 10标准版 20专业版 30永久授权
version?: number;
// 允许展示到插件市场
market?: boolean;
// 应用类型 0应用 1插件
plugin?: boolean;
// 默认编辑器
editor?: number,
// 服务到期时间
expirationTime?: string;
// 模版ID
templateId?: number;
// 行业类型
category?: string;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 企业ID
companyId?: number;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 街道地址
address?: string;
// 联系电话
phone?: string;
// 电子邮箱
email?: string;
// ICP备案号
icpNo?: string;
// 公安备案
policeNo?: string;
// 备注
comments?: string;
// 是否推荐
recommend?: number;
// 是否运行中
running?: number;
// 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停
status?: number;
// 维护说明
statusText?: string;
// 关闭说明
statusClose?: string;
// 全局样式
styles?: string;
// 语言
lang?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 网站配置
config?: any;
// 短信验证码
smsCode?: string;
// 短信验证码
code?: string;
// 是否记住密码
remember?: boolean;
// 企业名称
companyName?: string;
// 是否注册未超级管理员
isSuperAdmin?: boolean;
// 用户名
username?: string;
// 网站配置
setting?: CmsWebsiteSetting;
}
/**
* 网站信息记录表搜索条件
*/
export interface CmsWebsiteParam extends PageParam {
websiteId?: number;
status?: number;
plugin?: boolean;
keywords?: string;
}

View File

@@ -0,0 +1,167 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model';
import {MODULES_API_URL, TEMPLATE_ID} from '@/config/setting';
/**
* 分页查询应用参数
*/
export async function pageCmsWebsiteField(params: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsiteField>>>(
MODULES_API_URL + '/cms/cms-website-field/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询应用参数列表
*/
export async function listCmsWebsiteField(params?: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<CmsWebsiteField[]>>(
MODULES_API_URL + '/cms/cms-website-field',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用参数
*/
export async function addCmsWebsiteField(data: CmsWebsiteField) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-field',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改应用参数
*/
export async function updateCmsWebsiteField(data: CmsWebsiteField) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-field',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除应用参数
*/
export async function removeCmsWebsiteField(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-field/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除应用参数
*/
export async function removeBatchCmsWebsiteField(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-field/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询应用参数
*/
export async function getCmsWebsiteField(id: number) {
const res = await request.get<ApiResult<CmsWebsiteField>>(
MODULES_API_URL + '/cms/cms-website-field/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据code查询应用参数
*/
export async function getCmsWebsiteFieldByCode(code: string) {
const res = await request.get<ApiResult<CmsWebsiteField>>(
MODULES_API_URL + '/cms/cms-website-field/getByCode/' + code
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 恢复项目参数
*/
export async function undeleteWebsiteField(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/website-field/undelete/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 参数批量导入
*/
export async function importWebsiteField(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-field/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询项目参数列表
*/
export async function configWebsiteField(params?: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<Config>>(
MODULES_API_URL + '/cms/cms-website-field/config',
{
params,
headers: {
TenantId: TEMPLATE_ID
}
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,65 @@
import type { PageParam } from '@/api';
/**
* 应用参数
*/
export interface CmsWebsiteField {
// 自增ID
id?: number;
// 类型0文本 1图片 2其他
type?: number;
// 名称
name?: string;
// 默认值
defaultValue?: string;
// 可修改的值 [on|off]
modifyRange?: string;
// 备注
comments?: string;
// css样式
style?: string;
// 名称
value?: any;
// 语言
lang?: string;
// 是否加密
encrypted?: boolean;
// 模板
template?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 应用参数搜索条件
*/
export interface CmsWebsiteFieldParam extends PageParam {
id?: number;
keywords?: string;
}
export interface Config {
siteName?: string;
siteLogo?: string;
domain?: string;
icpNo?: string;
copyright?: string;
loginBgImg?: string;
address?: string;
tel?: string;
kefu2?: string;
kefu1?: string;
email?: string;
loginTitle?: string;
sysLogo?: string;
// 添加API地址配置项
ApiUrl?: string;
// 添加主题配置项
theme?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CmsWebsiteSetting, CmsWebsiteSettingParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询网站设置
*/
export async function pageCmsWebsiteSetting(params: CmsWebsiteSettingParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsiteSetting>>>(
MODULES_API_URL + '/cms/cms-website-setting/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站设置列表
*/
export async function listCmsWebsiteSetting(params?: CmsWebsiteSettingParam) {
const res = await request.get<ApiResult<CmsWebsiteSetting[]>>(
MODULES_API_URL + '/cms/cms-website-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 addCmsWebsiteSetting(data: CmsWebsiteSetting) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-setting',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站设置
*/
export async function updateCmsWebsiteSetting(data: CmsWebsiteSetting) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-setting',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站设置
*/
export async function removeCmsWebsiteSetting(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-setting/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站设置
*/
export async function removeBatchCmsWebsiteSetting(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-setting/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询网站设置
*/
export async function getCmsWebsiteSetting(id: number) {
const res = await request.get<ApiResult<CmsWebsiteSetting>>(
MODULES_API_URL + '/cms/cms-website-setting/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 网站设置
*/
export interface CmsWebsiteSetting {
// 自增ID
id?: number;
// 关联网站ID
websiteId?: number;
// 是否官方插件
official?: string;
// 是否展示在插件市场
market?: string;
// 是否允许被搜索
search?: string;
// 是否共享
share?: string;
// 文章是否需要审核
articleReview?: boolean;
// 是否插件 0应用1 插件
plugin?: string;
// 编辑器类型 1 md-editor-v3, 2 tinymce-editor
editor?: number;
// 显示站内搜索
searchBtn?: string;
// 显示登录注册功能
loginBtn?: string;
// 显示悬浮客服工具
floatTool?: boolean;
// 显示版权信息
showCopyright?: boolean;
// 显示版权链接
copyrightLink?: string;
// 导航栏最多显示数量
maxMenuNum?: string;
// 排序号
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 网站设置搜索条件
*/
export interface CmsWebsiteSettingParam extends PageParam {
id?: number;
keywords?: string;
}

113
src/api/cms/link/index.ts Normal file
View File

@@ -0,0 +1,113 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Link, LinkParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询链接
*/
export async function pageLink(params: LinkParam) {
const res = await request.get<ApiResult<PageResult<Link>>>(
MODULES_API_URL + '/oa/link/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询链接列表
*/
export async function listLink(params?: LinkParam) {
const res = await request.get<ApiResult<Link[]>>(
MODULES_API_URL + '/oa/link',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加链接
*/
export async function addLink(data: Link) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/link',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改链接
*/
export async function updateLink(data: Link) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/link',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除链接
*/
export async function removeLink(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/link/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除链接
*/
export async function removeBatchLink(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/link/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>>(
MODULES_API_URL + '/oa/link/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
* 链接
*/
export interface Link {
id?: number;
name?: string;
icon?: string;
url?: string;
linkType?: string;
appId?: number;
categoryId?: number;
userId?: number;
comments?: string;
recommend?: number;
sortNumber?: number;
deleted?: number;
status?: number;
createTime?: number;
}
/**
* 链接搜索条件
*/
export interface LinkParam extends PageParam {
id?: number;
linkType?: string;
categoryId?: number;
name?: string;
}

View File

@@ -0,0 +1,117 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { HouseInfo, HouseInfoParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询房源信息表
*/
export async function pageHouseInfo(params: HouseInfoParam) {
const res = await request.get<ApiResult<PageResult<HouseInfo>>>(
MODULES_API_URL + '/house/house-info/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询房源信息表列表
*/
export async function listHouseInfo(params?: HouseInfoParam) {
const res = await request.get<ApiResult<HouseInfo[]>>(
MODULES_API_URL + '/house/house-info',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加房源信息表
*/
export async function addHouseInfo(data: HouseInfo) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-info',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改房源信息表
*/
export async function updateHouseInfo(data: HouseInfo) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-info',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除房源信息表
*/
export async function removeHouseInfo(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-info/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除房源信息表
*/
export async function removeBatchHouseInfo(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-info/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询房源信息表
*/
export async function getHouseInfo(id: number) {
const res = await request.get<ApiResult<HouseInfo>>(
MODULES_API_URL + '/house/house-info/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改房源信息
*/
export async function updateBatchHouseInfo(data: any) {
const res = await request.put<ApiResult<unknown>>('/house/house-info/batch', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,103 @@
import type { PageParam } from '@/api';
/**
* 房源信息表
*/
export interface HouseInfo {
// 自增ID
houseId?: number;
// 房源标题
houseTitle?: string;
// 房产所在的城市
cityByHouse?: string;
// 户型
houseType?: string;
// 租赁方式
leaseMethod?: string;
// 租金
rent?: string;
// 月租金
monthlyRent?: string;
// 佣金
commission?: string;
// 物业费
propertyFees?: string;
// 面积
extent?: string;
// 楼层
floor?: string;
// 房号
roomNumber?: string;
// 真实姓名
realName?: string;
// 联系电话
phone?: string;
// 进入房屋的密码
password?: string;
// 房屋朝向
toward?: string;
// 房屋标签
houseLabel?: string;
// 办公室配套
supporting?: string;
// 房源视频
videoUrl?: string;
// 图片附件
files?: string;
// 房源介绍
content?: string;
// 到期时间
expirationTime?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 所在地区
area?: string;
// 详细地址
address?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 是否推荐
recommend?: number;
// 是否必看
mustSee?: number;
// 是否可溢价
premium?: string;
// 租期
tenancy?: string;
// 备注
comments?: string;
// 是否实名认证
authentication?: number;
// 状态 10待审核 20驳回 30通过
status?: number;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 昵称
nickname?: string;
// 是否编辑
isEdit?: boolean;
}
/**
* 房源信息表搜索条件
*/
export interface HouseInfoParam extends PageParam {
houseId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { HouseLikeLog, HouseLikeLogParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询房源点赞表
*/
export async function pageHouseLikeLog(params: HouseLikeLogParam) {
const res = await request.get<ApiResult<PageResult<HouseLikeLog>>>(
MODULES_API_URL + '/house/house-like-log/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询房源点赞表列表
*/
export async function listHouseLikeLog(params?: HouseLikeLogParam) {
const res = await request.get<ApiResult<HouseLikeLog[]>>(
MODULES_API_URL + '/house/house-like-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加房源点赞表
*/
export async function addHouseLikeLog(data: HouseLikeLog) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-like-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改房源点赞表
*/
export async function updateHouseLikeLog(data: HouseLikeLog) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-like-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除房源点赞表
*/
export async function removeHouseLikeLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-like-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除房源点赞表
*/
export async function removeBatchHouseLikeLog(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-like-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询房源点赞表
*/
export async function getHouseLikeLog(id: number) {
const res = await request.get<ApiResult<HouseLikeLog>>(
MODULES_API_URL + '/house/house-like-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
* 房源点赞表
*/
export interface HouseLikeLog {
// ID
id?: number;
// 房源ID
houseId?: number;
// 房主ID
houseUserId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 更新时间
updateTime?: string;
// 删除
deleted?: number;
}
/**
* 房源点赞表搜索条件
*/
export interface HouseLikeLogParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { HouseReservation, HouseReservationParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询预约记录表
*/
export async function pageHouseReservation(params: HouseReservationParam) {
const res = await request.get<ApiResult<PageResult<HouseReservation>>>(
MODULES_API_URL + '/house/house-reservation/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询预约记录表列表
*/
export async function listHouseReservation(params?: HouseReservationParam) {
const res = await request.get<ApiResult<HouseReservation[]>>(
MODULES_API_URL + '/house/house-reservation',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加预约记录表
*/
export async function addHouseReservation(data: HouseReservation) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-reservation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改预约记录表
*/
export async function updateHouseReservation(data: HouseReservation) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-reservation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除预约记录表
*/
export async function removeHouseReservation(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-reservation/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除预约记录表
*/
export async function removeBatchHouseReservation(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-reservation/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询预约记录表
*/
export async function getHouseReservation(id: number) {
const res = await request.get<ApiResult<HouseReservation>>(
MODULES_API_URL + '/house/house-reservation/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,63 @@
import type { PageParam } from '@/api';
/**
* 预约记录表
*/
export interface HouseReservation {
// ID
logId?: number;
// 订单号
logNo?: string;
// 类型
type?: number;
// 付款金额
money?: string;
// 房源ID
houseId?: number;
// 用户ID
userId?: number;
// 真实姓名
realName?: string;
// 联系电话
phone?: string;
// 付款时间
payTime?: string;
// 付款状态(10未付款 20已付款)
payStatus?: number;
// 到期时间
expirationTime?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 所在地区
area?: string;
// 街道地址
address?: string;
// 订单是否已结算(0未结算 1已结算)
isSettled?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 预约记录表搜索条件
*/
export interface HouseReservationParam extends PageParam {
logId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { HouseUser, HouseUserParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询用户表
*/
export async function pageHouseUser(params: HouseUserParam) {
const res = await request.get<ApiResult<PageResult<HouseUser>>>(
MODULES_API_URL + '/house/house-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户表列表
*/
export async function listHouseUser(params?: HouseUserParam) {
const res = await request.get<ApiResult<HouseUser[]>>(
MODULES_API_URL + '/house/house-user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加用户表
*/
export async function addHouseUser(data: HouseUser) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户表
*/
export async function updateHouseUser(data: HouseUser) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除用户表
*/
export async function removeHouseUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除用户表
*/
export async function removeBatchHouseUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询用户表
*/
export async function getHouseUser(id: number) {
const res = await request.get<ApiResult<HouseUser>>(
MODULES_API_URL + '/house/house-user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,131 @@
import type { PageParam } from '@/api';
/**
* 用户表
*/
export interface HouseUser {
// 用户id
userId?: number;
// 用户类型0个人用户 6开发者 10企业
type?: number;
// 账号
username?: string;
// 密码
password?: string;
// 昵称
nickname?: string;
// 手机号
phone?: string;
// 性别 1男 2女
sex?: number;
// 职务
position?: string;
// 注册来源客户端 (APP、H5、小程序等)
platform?: string;
// 邮箱
email?: string;
// 邮箱是否验证, 0否, 1是
emailVerified?: number;
// 别名
alias?: string;
// 真实姓名
realName?: string;
// 单位姓名
companyName?: string;
// 证件号码
idCard?: string;
// 出生日期
birthday?: string;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 街道地址
address?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 用户可用余额
balance?: string;
// 用户可用积分
points?: number;
// 用户总支付的金额
payMoney?: string;
// 实际消费的金额(不含退款)
expendMoney?: string;
// 会员等级ID
gradeId?: number;
// 个人简介
introduction?: string;
// 机构id
organizationId?: number;
// 头像
avatar?: string;
// 背景图
bgImage?: string;
// 企业ID
companyId?: number;
// 客户ID
customerId?: number;
// 用户编码
userCode?: string;
// 是否已实名认证
certification?: number;
// 兴趣爱好
interest?: string;
// 身高
height?: string;
// 体重
weight?: string;
// 月薪
monthlyPay?: string;
// 学历
education?: string;
// 职业
vocation?: string;
// 年龄
age?: number;
// 是否线下会员
offline?: string;
// 关注数
followers?: number;
// 粉丝数
fans?: number;
// 点赞数
likes?: number;
// 评论数
commentNumbers?: number;
// 是否推荐
recommend?: number;
// 备注
comments?: string;
// 状态, 0在线, 1离线
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 商户编码
merchantCode?: string;
// 租户id
tenantId?: number;
// 最后结算时间
settlementTime?: string;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
// 是否管理员1是2否
isAdmin?: boolean;
}
/**
* 用户表搜索条件
*/
export interface HouseUserParam extends PageParam {
userId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { HouseViewsLog, HouseViewsLogParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询看房记录表
*/
export async function pageHouseViewsLog(params: HouseViewsLogParam) {
const res = await request.get<ApiResult<PageResult<HouseViewsLog>>>(
MODULES_API_URL + '/house/house-views-log/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询看房记录表列表
*/
export async function listHouseViewsLog(params?: HouseViewsLogParam) {
const res = await request.get<ApiResult<HouseViewsLog[]>>(
MODULES_API_URL + '/house/house-views-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加看房记录表
*/
export async function addHouseViewsLog(data: HouseViewsLog) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-views-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改看房记录表
*/
export async function updateHouseViewsLog(data: HouseViewsLog) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-views-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除看房记录表
*/
export async function removeHouseViewsLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-views-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除看房记录表
*/
export async function removeBatchHouseViewsLog(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/house/house-views-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询看房记录表
*/
export async function getHouseViewsLog(id: number) {
const res = await request.get<ApiResult<HouseViewsLog>>(
MODULES_API_URL + '/house/house-views-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
* 看房记录表
*/
export interface HouseViewsLog {
// ID
id?: number;
// 房源ID
houseId?: number;
// 房主ID
houseUserId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 更新时间
updateTime?: string;
// 删除
deleted?: number;
}
/**
* 看房记录表搜索条件
*/
export interface HouseViewsLogParam extends PageParam {
id?: number;
keywords?: string;
}

61
src/api/index.ts Normal file
View File

@@ -0,0 +1,61 @@
/**
* 接口统一返回结果
*/
export interface ApiResult<T> {
// 状态码
code: number;
// 状态信息
message?: string;
// 返回数据
data?: T;
}
/**
* 分页查询统一结果
*/
export interface PageResult<T> {
// 返回数据
list: T[];
// 总数量
count: number;
}
/**
* 分页查询基本参数
*/
export interface PageParam {
// 第几页
page?: number;
// 每页多少条
limit?: number;
// 排序字段
sort?: string;
sortNum?: string;
// 排序方式, asc升序, desc降序
order?: string;
// 租户ID
tenantId?: number;
// 企业ID
companyId?: number;
// 商户ID
merchantId?: number;
merchantName?: string;
categoryIds?: any;
// 商品分类
categoryId?: number;
categoryName?: string;
// 搜素关键词
keywords?: string;
// 起始时间
createTimeStart?: string;
// 结束时间
createTimeEnd?: string;
timeStart?: number;
timeEnd?: number;
isExpireTime?: number;
showSoldStatus?: boolean;
dateTime?: string;
sceneType?: string;
userId?: number;
lang?: string;
}

153
src/api/layout/index.ts Normal file
View File

@@ -0,0 +1,153 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { User } from '@/api/system/user/model';
import type { UpdatePasswordParam, NoticeResult } from './model';
import {SERVER_API_URL} from '@/config/setting';
import { Company } from '@/api/system/company/model';
import { CmsWebsite } from '@/api/cms/cmsWebsite/model';
import {Menu} from "@/api/system/menu/model";
/**
* 获取当前登录的用户信息、菜单、权限、角色
*/
export async function getTenantInfo(): Promise<Company> {
const res = await request.get<ApiResult<Company>>(
SERVER_API_URL + '/auth/tenant'
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取网站信息 https://cms-api.websoft.top/api
*/
export async function getSiteInfo() {
const res = await request.get<ApiResult<CmsWebsite>>(
'/shop/getShopInfo',
{
params: {}
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取当前登录的用户信息、菜单、权限、角色
*/
export async function getUserInfo(): Promise<User> {
const res = await request.get<ApiResult<User>>(SERVER_API_URL + '/auth/user');
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改当前登录用户信息
*/
export async function updateLoginUser(data: User) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/auth/user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取服务器时间(实时)
* @return
*/
export async function getServerTime() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getServerTime'
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取未来7天的日期
* @return
*/
export async function getNext7day() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getNext7day'
);
console.log('res.data.code: ', res.data.code);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 向子模块传递token
* @param url
*/
export async function transferToken(url: string): Promise<string> {
const res = await request.get<ApiResult<unknown>>(url);
return Promise.reject(new Error(res.data.message));
}
/**
* 修改当前登录的用户密码
*/
export async function updatePassword(
data: UpdatePasswordParam
): Promise<string> {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/auth/password',
data
);
if (res.data.code === 0) {
return res.data.message ?? '修改成功';
}
return Promise.reject(new Error(res.data.message));
}
/**
* 创建完整网站并初始化
*/
export async function createCmsWebSite(data: CmsWebsite){
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/superAdminRegister',data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 租户初始化
*/
export async function initialization(roleId?: number) {
const res = await request.get<ApiResult<Menu[]>>(
SERVER_API_URL + '/system/tenant/role-menu/' + roleId
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询未读通知
*/
export async function getUnreadNotice(): Promise<NoticeResult> {
return {
notice: [],
letter: [],
todo: []
};
}

View File

@@ -0,0 +1,74 @@
/**
* 首页布局样式
*/
export interface Layout {
// 内容区域的宽度
width?: string;
// 文字颜色
color?: string;
// 高亮颜色
hover?: string;
// 背景颜色
backgroundColor?: string;
headerStyle?: any;
siteNameStyle?: any;
}
/**
* 修改密码参数
*/
export interface UpdatePasswordParam {
// 新密码
password: string;
// 原始密码
oldPassword: string;
}
/**
* 通知数据格式
*/
export interface NoticeModel {
// 图标颜色
color?: string;
// 图标
icon?: string;
// 标题
title?: string;
// 时间
time?: string;
}
/**
* 私信数据格式
*/
export interface LetterModel {
// 头像
avatar?: string;
// 标题
title?: string;
// 内容
content?: string;
// 时间
time?: string;
}
/**
* 代办数据格式
*/
export interface TodoModel {
// 状态
status?: number;
// 标题
title?: string;
// 描述
description?: string;
}
/**
* 查询未读通知返回结果
*/
export interface NoticeResult {
notice: NoticeModel[];
letter: LetterModel[];
todo: TodoModel[];
}

View File

@@ -0,0 +1,50 @@
import {MODULES_API_URL} from '@/config/setting';
/**
* 小程序码参数
*/
export interface MiniProgramCodeParam {
page?: string;
scene: string;
width?: number;
checkPath?: boolean;
envVersion?: 'release' | 'trial' | 'develop';
}
/**
* 生成小程序码
*/
export async function generateMiniProgramCode(data: MiniProgramCodeParam) {
try {
const url = '/wx-login/getOrderQRCodeUnlimited/' + data.scene;
const fullUrl = MODULES_API_URL + `${url}`;
console.log('生成小程序码URL:', fullUrl);
console.log('小程序码参数:', data);
console.log('scene 参数:', data.scene);
// 直接返回URL让浏览器处理图片加载
// scene 参数中包含了租户ID信息
return fullUrl;
} catch (error: any) {
console.error('生成小程序码失败:', error);
throw new Error(error.message || '生成小程序码失败');
}
}
/**
* 生成邀请小程序码
*/
export async function generateInviteCode(inviterId: number) {
const scene = `uid_${inviterId}`;
console.log('生成邀请小程序码 scene:', scene);
return generateMiniProgramCode({
page: 'pages/index/index',
scene: scene,
width: 180,
checkPath: true,
envVersion: 'trial'
});
}

106
src/api/oa/oaApp/index.ts Normal file
View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaApp, OaAppParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询应用
*/
export async function pageOaApp(params: OaAppParam) {
const res = await request.get<ApiResult<PageResult<OaApp>>>(
MODULES_API_URL + '/oa/oa-app/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询应用列表
*/
export async function listOaApp(params?: OaAppParam) {
const res = await request.get<ApiResult<OaApp[]>>(
MODULES_API_URL + '/oa/oa-app',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用
*/
export async function addOaApp(data: OaApp) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改应用
*/
export async function updateOaApp(data: OaApp) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除应用
*/
export async function removeOaApp(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除应用
*/
export async function removeBatchOaApp(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询应用
*/
export async function getOaApp(id: number) {
const res = await request.get<ApiResult<OaApp>>(
MODULES_API_URL + '/oa/oa-app/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,149 @@
import type { PageParam } from '@/api';
/**
* 应用
*/
export interface OaApp {
// 应用ID
appId?: number;
// 应用名称
appName?: string;
// 应用标识
appCode?: string;
// 应用秘钥
appSecret?: string;
// 上级id, 0是顶级
parentId?: number;
// 应用类型
appType?: string;
// 应用类型
appTypeMultiple?: string;
// 类型, 0菜单, 1按钮
menuType?: number;
// 企业ID
companyId?: number;
// 企业名称
companyName?: string;
// 应用图标
appIcon?: string;
// 二维码
appQrcode?: string;
// 链接地址
appUrl?: string;
// 后台管理地址
adminUrl?: string;
// 下载地址
downUrl?: string;
// 链接地址
serverUrl?: string;
// 文件服务器
fileUrl?: string;
// 回调地址
callbackUrl?: string;
// 腾讯文档地址
docsUrl?: string;
// 代码仓库地址
gitUrl?: string;
// 原型图地址
prototypeUrl?: string;
// IP白名单
ipAddress?: string;
// 应用截图
images?: string;
// 应用包名
packageName?: string;
// 下载次数
clicks?: number;
// 安装次数
installs?: number;
// 备注
comments?: string;
// 应用介绍
content?: string;
// 项目需求
requirement?: string;
// 开发者(个人或公司)
developer?: string;
// 项目负责人
director?: string;
// 项目经理
projectDirector?: string;
// 业务员
salesman?: string;
// 软件定价
price?: string;
// 划线价格
linePrice?: string;
// 评分
score?: string;
// 星级
star?: string;
// 菜单路由地址
path?: string;
// 菜单组件地址, 目录可为空
component?: string;
// 权限标识
authority?: string;
// 打开位置
target?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 禁止搜索1禁止 0 允许
search?: number;
// 菜单侧栏选中的path
active?: string;
// 其它路由元信息
meta?: string;
// 版本0正式版 1基础版 2开发版
edition?: string;
// 版本号
version?: string;
// 是否已安装
isUse?: number;
// 附近1
file1?: string;
// 附件2
file2?: string;
// 附件3
file3?: string;
// 是否显示续费提醒
showExpiration?: number;
// 是否作为案例展示
showCase?: number;
// 是否显示在首页
showIndex?: number;
// 是否推荐
recommend?: number;
// 到期时间
expirationTime?: string;
// 续费金额
renewMoney?: string;
// 应用状态
appStatus?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 用户ID
userId?: number;
// 机构id
organizationId?: number;
// 租户编号
tenantCode?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 应用搜索条件
*/
export interface OaAppParam extends PageParam {
appId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAppField, OaAppFieldParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询应用参数
*/
export async function pageOaAppField(params: OaAppFieldParam) {
const res = await request.get<ApiResult<PageResult<OaAppField>>>(
MODULES_API_URL + '/oa/oa-app-field/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询应用参数列表
*/
export async function listOaAppField(params?: OaAppFieldParam) {
const res = await request.get<ApiResult<OaAppField[]>>(
MODULES_API_URL + '/oa/oa-app-field',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用参数
*/
export async function addOaAppField(data: OaAppField) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-field',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改应用参数
*/
export async function updateOaAppField(data: OaAppField) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-field',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除应用参数
*/
export async function removeOaAppField(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-field/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除应用参数
*/
export async function removeBatchOaAppField(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-field/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询应用参数
*/
export async function getOaAppField(id: number) {
const res = await request.get<ApiResult<OaAppField>>(
MODULES_API_URL + '/oa/oa-app-field/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,33 @@
import type { PageParam } from '@/api';
/**
* 应用参数
*/
export interface OaAppField {
// 自增ID
id?: number;
// 应用ID
appId?: number;
// 名称
name?: string;
// 备注
comments?: string;
// 用户ID
userId?: number;
// 状态, 0正常, 1删除
status?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 应用参数搜索条件
*/
export interface OaAppFieldParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAppRenew, OaAppRenewParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询续费管理
*/
export async function pageOaAppRenew(params: OaAppRenewParam) {
const res = await request.get<ApiResult<PageResult<OaAppRenew>>>(
MODULES_API_URL + '/oa/oa-app-renew/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询续费管理列表
*/
export async function listOaAppRenew(params?: OaAppRenewParam) {
const res = await request.get<ApiResult<OaAppRenew[]>>(
MODULES_API_URL + '/oa/oa-app-renew',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加续费管理
*/
export async function addOaAppRenew(data: OaAppRenew) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-renew',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改续费管理
*/
export async function updateOaAppRenew(data: OaAppRenew) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-renew',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除续费管理
*/
export async function removeOaAppRenew(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-renew/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除续费管理
*/
export async function removeBatchOaAppRenew(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-renew/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询续费管理
*/
export async function getOaAppRenew(id: number) {
const res = await request.get<ApiResult<OaAppRenew>>(
MODULES_API_URL + '/oa/oa-app-renew/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
/**
* 续费管理
*/
export interface OaAppRenew {
// 自增ID
appRenewId?: number;
// 应用ID
appId?: number;
// 续费金额
money?: string;
// 备注
comments?: string;
// 开始时间
startTime?: string;
// 到期时间
endTime?: string;
// 企业ID
companyId?: number;
// 用户ID
userId?: number;
// 付款凭证
images?: string;
// 用户姓名
nickname?: string;
// 状态, 0正常, 1待确认
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 续费管理搜索条件
*/
export interface OaAppRenewParam extends PageParam {
appRenewId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAppUrl, OaAppUrlParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询项目域名
*/
export async function pageOaAppUrl(params: OaAppUrlParam) {
const res = await request.get<ApiResult<PageResult<OaAppUrl>>>(
MODULES_API_URL + '/oa/oa-app-url/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询项目域名列表
*/
export async function listOaAppUrl(params?: OaAppUrlParam) {
const res = await request.get<ApiResult<OaAppUrl[]>>(
MODULES_API_URL + '/oa/oa-app-url',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加项目域名
*/
export async function addOaAppUrl(data: OaAppUrl) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-url',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改项目域名
*/
export async function updateOaAppUrl(data: OaAppUrl) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-url',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除项目域名
*/
export async function removeOaAppUrl(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-url/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除项目域名
*/
export async function removeBatchOaAppUrl(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-url/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询项目域名
*/
export async function getOaAppUrl(id: number) {
const res = await request.get<ApiResult<OaAppUrl>>(
MODULES_API_URL + '/oa/oa-app-url/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
* 项目域名
*/
export interface OaAppUrl {
// 自增ID
appUrlId?: number;
// 应用ID
appId?: number;
// 域名类型
name?: string;
// 域名
domain?: string;
// 账号
account?: string;
// 密码
password?: string;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1待确认
status?: number;
// 创建时间
createTime?: string;
// 租户id
tenantId?: number;
}
/**
* 项目域名搜索条件
*/
export interface OaAppUrlParam extends PageParam {
appUrlId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAppUser, OaAppUserParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询应用成员
*/
export async function pageOaAppUser(params: OaAppUserParam) {
const res = await request.get<ApiResult<PageResult<OaAppUser>>>(
MODULES_API_URL + '/oa/oa-app-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询应用成员列表
*/
export async function listOaAppUser(params?: OaAppUserParam) {
const res = await request.get<ApiResult<OaAppUser[]>>(
MODULES_API_URL + '/oa/oa-app-user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用成员
*/
export async function addOaAppUser(data: OaAppUser) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改应用成员
*/
export async function updateOaAppUser(data: OaAppUser) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除应用成员
*/
export async function removeOaAppUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除应用成员
*/
export async function removeBatchOaAppUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/oa/oa-app-user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询应用成员
*/
export async function getOaAppUser(id: number) {
const res = await request.get<ApiResult<OaAppUser>>(
MODULES_API_URL + '/oa/oa-app-user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
* 应用成员
*/
export interface OaAppUser {
// 自增ID
appUserId?: number;
// 角色10体验成员 20开发者成员 30管理员
role?: number;
// 用户ID
userId?: number;
// 应用ID
appId?: number;
// 昵称
nickname?: string;
// 状态, 0正常, 1待确认
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 应用成员搜索条件
*/
export interface OaAppUserParam extends PageParam {
appUserId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssets, OaAssetsParam } from './model';
/**
* 分页查询云服务器
*/
export async function pageOaAssets(params: OaAssetsParam) {
const res = await request.get<ApiResult<PageResult<OaAssets>>>(
'/oa/oa-assets/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询云服务器列表
*/
export async function listOaAssets(params?: OaAssetsParam) {
const res = await request.get<ApiResult<OaAssets[]>>(
'/oa/oa-assets',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加云服务器
*/
export async function addOaAssets(data: OaAssets) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改云服务器
*/
export async function updateOaAssets(data: OaAssets) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除云服务器
*/
export async function removeOaAssets(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除云服务器
*/
export async function removeBatchOaAssets(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询云服务器
*/
export async function getOaAssets(id: number) {
const res = await request.get<ApiResult<OaAssets>>(
'/oa/oa-assets/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,102 @@
import type { PageParam } from '@/api';
/**
* 云服务器
*/
export interface OaAssets {
// 资产ID
assetsId?: number;
// 资产名称
name?: string;
// 资产标识
code?: string;
// 资产类型
type?: string;
// 服务器厂商
brand?: string;
// 服务器配置
configuration?: string;
// 初始账号
account?: string;
// 初始密码
password?: string;
// (阿里云/腾讯云)登录账号
brandAccount?: string;
// (阿里云/腾讯云)登录密码
brandPassword?: string;
// 宝塔面板
panel?: string;
// 宝塔面板账号
panelAccount?: string;
// 宝塔面板密码
panelPassword?: string;
// 财务信息-合同金额
financeAmount?: string;
// 购买年限
financeYears?: number;
// 续费金额
financeRenew?: string;
// 客户名称
financeCustomerName?: string;
// 客户联系人
financeCustomerContact?: string;
// 客户联系电话
financeCustomerPhone?: string;
// 客户ID
customerId?: number;
// 客户名称
customerName?: string;
// 开放端口
openPort?: string;
// 数据库端口
mysqlPort?: string;
// 详情内容
content?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 即将过期
soon?: number;
// 置顶状态
isTop?: string;
// 可见性(public,private,protected)
visibility?: string;
// 宝塔接口秘钥
btSign?: string;
// 文章排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 客户ID
companyId?: number;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 机构id
organizationId?: number;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 租户名称
tenantName?: string;
// 租户头像
logo?: string;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 云服务器搜索条件
*/
export interface OaAssetsParam extends PageParam {
assetsId?: number;
deleted?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsCode, OaAssetsCodeParam } from './model';
/**
* 分页查询代码仓库
*/
export async function pageOaAssetsCode(params: OaAssetsCodeParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsCode>>>(
'/oa/oa-assets-code/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询代码仓库列表
*/
export async function listOaAssetsCode(params?: OaAssetsCodeParam) {
const res = await request.get<ApiResult<OaAssetsCode[]>>(
'/oa/oa-assets-code',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加代码仓库
*/
export async function addOaAssetsCode(data: OaAssetsCode) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-code',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改代码仓库
*/
export async function updateOaAssetsCode(data: OaAssetsCode) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-code',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除代码仓库
*/
export async function removeOaAssetsCode(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-code/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除代码仓库
*/
export async function removeBatchOaAssetsCode(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-code/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询代码仓库
*/
export async function getOaAssetsCode(id: number) {
const res = await request.get<ApiResult<OaAssetsCode>>(
'/oa/oa-assets-code/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,49 @@
import type { PageParam } from '@/api';
/**
* 代码仓库
*/
export interface OaAssetsCode {
// ID
id?: number;
// 服务器ID
assetsId?: number;
// 名称
name?: string;
// 英文标识
code?: string;
// 仓库地址
gitUrl?: string;
// 仓库品牌
brand?: string;
// 置顶状态
isTop?: string;
// 详情内容
content?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 代码仓库搜索条件
*/
export interface OaAssetsCodeParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsDomain, OaAssetsDomainParam } from './model';
/**
* 分页查询域名
*/
export async function pageOaAssetsDomain(params: OaAssetsDomainParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsDomain>>>(
'/oa/oa-assets-domain/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询域名列表
*/
export async function listOaAssetsDomain(params?: OaAssetsDomainParam) {
const res = await request.get<ApiResult<OaAssetsDomain[]>>(
'/oa/oa-assets-domain',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加域名
*/
export async function addOaAssetsDomain(data: OaAssetsDomain) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-domain',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改域名
*/
export async function updateOaAssetsDomain(data: OaAssetsDomain) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-domain',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除域名
*/
export async function removeOaAssetsDomain(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-domain/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除域名
*/
export async function removeBatchOaAssetsDomain(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-domain/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询域名
*/
export async function getOaAssetsDomain(id: number) {
const res = await request.get<ApiResult<OaAssetsDomain>>(
'/oa/oa-assets-domain/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,58 @@
import type { PageParam } from '@/api';
/**
* 域名
*/
export interface OaAssetsDomain {
// ID
domainId?: number;
// 服务器ID
assetsId?: number;
// 域名
name?: string;
// 域名标识
code?: string;
// 注册厂商
brand?: string;
// 面板
panel?: string;
// 初始账号
account?: string;
// 初始密码
password?: string;
// 价格
price?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 域名搜索条件
*/
export interface OaAssetsDomainParam extends PageParam {
domainId?: number;
name?: string;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsEmail, OaAssetsEmailParam } from './model';
/**
* 分页查询企业邮箱记录表
*/
export async function pageOaAssetsEmail(params: OaAssetsEmailParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsEmail>>>(
'/oa/oa-assets-email/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询企业邮箱记录表列表
*/
export async function listOaAssetsEmail(params?: OaAssetsEmailParam) {
const res = await request.get<ApiResult<OaAssetsEmail[]>>(
'/oa/oa-assets-email',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加企业邮箱记录表
*/
export async function addOaAssetsEmail(data: OaAssetsEmail) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-email',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改企业邮箱记录表
*/
export async function updateOaAssetsEmail(data: OaAssetsEmail) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-email',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除企业邮箱记录表
*/
export async function removeOaAssetsEmail(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-email/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除企业邮箱记录表
*/
export async function removeBatchOaAssetsEmail(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-email/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询企业邮箱记录表
*/
export async function getOaAssetsEmail(id: number) {
const res = await request.get<ApiResult<OaAssetsEmail>>(
'/oa/oa-assets-email/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 企业邮箱记录表
*/
export interface OaAssetsEmail {
// ID
emailId?: number;
// 邮箱名称
name?: string;
// 域名标识
code?: string;
// 邮箱型号
type?: string;
// 品牌厂商
brand?: string;
// 初始账号
system?: string;
// 价格
price?: string;
// 详情内容
content?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 企业邮箱记录表搜索条件
*/
export interface OaAssetsEmailParam extends PageParam {
emailId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsMysql, OaAssetsMysqlParam } from './model';
/**
* 分页查询云数据库
*/
export async function pageOaAssetsMysql(params: OaAssetsMysqlParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsMysql>>>(
'/oa/oa-assets-mysql/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询云数据库列表
*/
export async function listOaAssetsMysql(params?: OaAssetsMysqlParam) {
const res = await request.get<ApiResult<OaAssetsMysql[]>>(
'/oa/oa-assets-mysql',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加云数据库
*/
export async function addOaAssetsMysql(data: OaAssetsMysql) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-mysql',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改云数据库
*/
export async function updateOaAssetsMysql(data: OaAssetsMysql) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-mysql',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除云数据库
*/
export async function removeOaAssetsMysql(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-mysql/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除云数据库
*/
export async function removeBatchOaAssetsMysql(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-mysql/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询云数据库
*/
export async function getOaAssetsMysql(id: number) {
const res = await request.get<ApiResult<OaAssetsMysql>>(
'/oa/oa-assets-mysql/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,63 @@
import type { PageParam } from '@/api';
/**
* 云数据库
*/
export interface OaAssetsMysql {
// ID
mysqlId?: number;
// 服务器ID
assetsId?: number;
// 服务器
assetsName?: string;
// 数据库名
name?: string;
// 数据库标识
code?: string;
// 注册厂商
brand?: string;
// ip地址
ip?: string;
// 端口
port?: string;
// 管理面板
panel?: string;
// 初始账号
account?: string;
// 初始密码
password?: string;
// 价格
price?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 云数据库搜索条件
*/
export interface OaAssetsMysqlParam extends PageParam {
mysqlId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsServer, OaAssetsServerParam } from './model';
/**
* 分页查询服务
*/
export async function pageOaAssetsServer(params: OaAssetsServerParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsServer>>>(
'/oa/oa-assets-server/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询服务列表
*/
export async function listOaAssetsServer(params?: OaAssetsServerParam) {
const res = await request.get<ApiResult<OaAssetsServer[]>>(
'/oa/oa-assets-server',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加服务
*/
export async function addOaAssetsServer(data: OaAssetsServer) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-server',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改服务
*/
export async function updateOaAssetsServer(data: OaAssetsServer) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-server',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除服务
*/
export async function removeOaAssetsServer(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-server/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除服务
*/
export async function removeBatchOaAssetsServer(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-server/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询服务
*/
export async function getOaAssetsServer(id: number) {
const res = await request.get<ApiResult<OaAssetsServer>>(
'/oa/oa-assets-server/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,45 @@
import type { PageParam } from '@/api';
/**
* 服务
*/
export interface OaAssetsServer {
// 插件id
id?: number;
// 服务名称
server?: string;
// 接口地址
serverUrl?: string;
// 排序号
sortNumber?: number;
// 服务器ID
assetsId?: number;
// 服务器ID
ip?: string;
// 备注
comments?: string;
// 状态, 10待审核 20已通过 30已驳回
status?: number;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 租户名称
tenantName?: string;
// logo
logo?: string;
// 创建时间
createTime?: string;
}
/**
* 服务搜索条件
*/
export interface OaAssetsServerParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsSite, OaAssetsSiteParam } from './model';
/**
* 分页查询网站信息记录表
*/
export async function pageOaAssetsSite(params: OaAssetsSiteParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsSite>>>(
'/cms/cms-website/pageAll',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询网站信息记录表列表
*/
export async function listOaAssetsSite(params?: OaAssetsSiteParam) {
const res = await request.get<ApiResult<OaAssetsSite[]>>(
'/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 addOaAssetsSite(data: OaAssetsSite) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-website',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改网站信息记录表
*/
export async function updateOaAssetsSite(data: OaAssetsSite) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-website',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除网站信息记录表
*/
export async function removeOaAssetsSite(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/cms/cms-website/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除网站信息记录表
*/
export async function removeBatchOaAssetsSite(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/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 getOaAssetsSite(id: number) {
const res = await request.get<ApiResult<OaAssetsSite>>(
'/cms/cms-website/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,111 @@
import type { PageParam } from '@/api';
/**
* 网站信息记录表
*/
export interface OaAssetsSite {
// 站点ID
websiteId?: number;
// 网站名称
websiteName?: string;
// 网站标识
websiteCode?: string;
// 网站LOGO
websiteIcon?: string;
// 网站LOGO
websiteLogo?: string;
// 网站LOGO(深色模式)
websiteDarkLogo?: string;
// 网站类型
websiteType?: string;
// 网站关键词
keywords?: string;
// 域名前缀
prefix?: string;
// 绑定域名
domain?: string;
// 全局样式
style?: string;
// 后台管理地址
adminUrl?: string;
// 应用版本 10免费版 20授权版 30永久授权
version?: number;
// 服务到期时间
expirationTime?: string;
// 模版ID
templateId?: number;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 企业ID
companyId?: number;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 经纬度
lngAndLat?: string;
// 街道地址
address?: string;
// 联系电话
phone?: string;
// 电子邮箱
email?: string;
// ICP备案号
icpNo?: string;
// 公安备案
policeNo?: string;
// 备注
comments?: string;
// 管理员备注
remarks?: string;
// 是否推荐
recommend?: number;
// 是否运行
running?: number;
// 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停
status?: number;
// 维护说明
statusText?: string;
// 关闭说明
statusClose?: string;
// 全局样式
styles?: string;
// 排序号
sortNumber?: number;
// 服务器ID
assetsId?: number;
// 服务器名称
assetsName?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 网站信息记录表搜索条件
*/
export interface OaAssetsSiteParam extends PageParam {
websiteId?: number;
version?: number;
websiteName?: string;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsSoftwareCert, OaAssetsSoftwareCertParam } from './model';
/**
* 分页查询计算机软件著作权登记
*/
export async function pageOaAssetsSoftwareCert(params: OaAssetsSoftwareCertParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsSoftwareCert>>>(
'/oa/oa-assets-software-cert/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询计算机软件著作权登记列表
*/
export async function listOaAssetsSoftwareCert(params?: OaAssetsSoftwareCertParam) {
const res = await request.get<ApiResult<OaAssetsSoftwareCert[]>>(
'/oa/oa-assets-software-cert',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加计算机软件著作权登记
*/
export async function addOaAssetsSoftwareCert(data: OaAssetsSoftwareCert) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-software-cert',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改计算机软件著作权登记
*/
export async function updateOaAssetsSoftwareCert(data: OaAssetsSoftwareCert) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-software-cert',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除计算机软件著作权登记
*/
export async function removeOaAssetsSoftwareCert(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-software-cert/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除计算机软件著作权登记
*/
export async function removeBatchOaAssetsSoftwareCert(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-software-cert/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询计算机软件著作权登记
*/
export async function getOaAssetsSoftwareCert(id: number) {
const res = await request.get<ApiResult<OaAssetsSoftwareCert>>(
'/oa/oa-assets-software-cert/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 计算机软件著作权登记
*/
export interface OaAssetsSoftwareCert {
// ID
id?: number;
// 名称
name?: string;
// 软件著作权标识
code?: string;
// 证书类型
type?: string;
// 品牌厂商
brand?: string;
// 价格
price?: string;
// 详情内容
content?: string;
// 证书下载地址
certUrl?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 计算机软件著作权登记搜索条件
*/
export interface OaAssetsSoftwareCertParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsSsl, OaAssetsSslParam } from './model';
/**
* 分页查询ssl证书
*/
export async function pageOaAssetsSsl(params: OaAssetsSslParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsSsl>>>(
'/oa/oa-assets-ssl/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询ssl证书列表
*/
export async function listOaAssetsSsl(params?: OaAssetsSslParam) {
const res = await request.get<ApiResult<OaAssetsSsl[]>>(
'/oa/oa-assets-ssl',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加ssl证书
*/
export async function addOaAssetsSsl(data: OaAssetsSsl) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-ssl',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改ssl证书
*/
export async function updateOaAssetsSsl(data: OaAssetsSsl) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-ssl',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除ssl证书
*/
export async function removeOaAssetsSsl(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-ssl/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除ssl证书
*/
export async function removeBatchOaAssetsSsl(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-ssl/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询ssl证书
*/
export async function getOaAssetsSsl(id: number) {
const res = await request.get<ApiResult<OaAssetsSsl>>(
'/oa/oa-assets-ssl/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,67 @@
import type { PageParam } from '@/api';
/**
* ssl证书
*/
export interface OaAssetsSsl {
// ID
sslId?: number;
// 证书名称
name?: string;
// 证书标识
code?: string;
// 证书类型
type?: string;
// 品牌厂商
brand?: string;
// 价格
price?: string;
// 详情内容
content?: string;
// 证书key
certKey?: string;
// 证书pem
certPem?: string;
// 证书下载地址
certUrl?: string;
// 证书crt
certCrt?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: number;
// 即将过期提醒, -1即将过期 大于0 正常
soon?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 租户名称
tenantName?: string;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* ssl证书搜索条件
*/
export interface OaAssetsSslParam extends PageParam {
sslId?: number;
name?: string;
tenantName?: string;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsTrademark, OaAssetsTrademarkParam } from './model';
/**
* 分页查询商标注册
*/
export async function pageOaAssetsTrademark(params: OaAssetsTrademarkParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsTrademark>>>(
'/oa/oa-assets-trademark/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询商标注册列表
*/
export async function listOaAssetsTrademark(params?: OaAssetsTrademarkParam) {
const res = await request.get<ApiResult<OaAssetsTrademark[]>>(
'/oa/oa-assets-trademark',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加商标注册
*/
export async function addOaAssetsTrademark(data: OaAssetsTrademark) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-trademark',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改商标注册
*/
export async function updateOaAssetsTrademark(data: OaAssetsTrademark) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-trademark',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除商标注册
*/
export async function removeOaAssetsTrademark(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-trademark/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除商标注册
*/
export async function removeBatchOaAssetsTrademark(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-trademark/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询商标注册
*/
export async function getOaAssetsTrademark(id: number) {
const res = await request.get<ApiResult<OaAssetsTrademark>>(
'/oa/oa-assets-trademark/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 商标注册
*/
export interface OaAssetsTrademark {
// ID
id?: number;
// 商标名称
name?: string;
// 商标标识
code?: string;
// 商标类型
type?: string;
// 品牌厂商
brand?: string;
// 价格
price?: string;
// 详情内容
content?: string;
// 证书下载
certUrl?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 商标注册搜索条件
*/
export interface OaAssetsTrademarkParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsUser, OaAssetsUserParam } from './model';
/**
* 分页查询服务器成员管理
*/
export async function pageOaAssetsUser(params: OaAssetsUserParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsUser>>>(
'/oa/oa-assets-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询服务器成员管理列表
*/
export async function listOaAssetsUser(params?: OaAssetsUserParam) {
const res = await request.get<ApiResult<OaAssetsUser[]>>(
'/oa/oa-assets-user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加服务器成员管理
*/
export async function addOaAssetsUser(data: OaAssetsUser) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改服务器成员管理
*/
export async function updateOaAssetsUser(data: OaAssetsUser) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除服务器成员管理
*/
export async function removeOaAssetsUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除服务器成员管理
*/
export async function removeBatchOaAssetsUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询服务器成员管理
*/
export async function getOaAssetsUser(id: number) {
const res = await request.get<ApiResult<OaAssetsUser>>(
'/oa/oa-assets-user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
* 服务器成员管理
*/
export interface OaAssetsUser {
// 自增ID
id?: number;
// 角色10体验成员 20开发者成员 30管理员
role?: number;
// 用户ID
userId?: number;
// 应用ID
assetsId?: number;
// 昵称
nickname?: string;
// 状态, 0正常, 1待确认
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 服务器成员管理搜索条件
*/
export interface OaAssetsUserParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaAssetsVhost, OaAssetsVhostParam } from './model';
/**
* 分页查询虚拟主机记录表
*/
export async function pageOaAssetsVhost(params: OaAssetsVhostParam) {
const res = await request.get<ApiResult<PageResult<OaAssetsVhost>>>(
'/oa/oa-assets-vhost/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询虚拟主机记录表列表
*/
export async function listOaAssetsVhost(params?: OaAssetsVhostParam) {
const res = await request.get<ApiResult<OaAssetsVhost[]>>(
'/oa/oa-assets-vhost',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加虚拟主机记录表
*/
export async function addOaAssetsVhost(data: OaAssetsVhost) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-assets-vhost',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改虚拟主机记录表
*/
export async function updateOaAssetsVhost(data: OaAssetsVhost) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-assets-vhost',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除虚拟主机记录表
*/
export async function removeOaAssetsVhost(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-vhost/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除虚拟主机记录表
*/
export async function removeBatchOaAssetsVhost(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-assets-vhost/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询虚拟主机记录表
*/
export async function getOaAssetsVhost(id: number) {
const res = await request.get<ApiResult<OaAssetsVhost>>(
'/oa/oa-assets-vhost/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 虚拟主机记录表
*/
export interface OaAssetsVhost {
// ID
vhostId?: number;
// 域名
name?: string;
// 域名标识
code?: string;
// 主机型号
type?: string;
// 品牌厂商
brand?: string;
// 初始账号
account?: string;
// 初始密码
password?: string;
// 价格
price?: string;
// 详情内容
content?: string;
// ssl证书
ssl?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 置顶状态
isTop?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 描述
comments?: string;
// 服务器ID
assetsId?: number;
// 用户ID
userId?: number;
// 可见用户
userIds?: string;
// 状态, 0正常, 1冻结
status?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 虚拟主机记录表搜索条件
*/
export interface OaAssetsVhostParam extends PageParam {
vhostId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OaCompany, OaCompanyParam } from './model';
/**
* 分页查询企业信息
*/
export async function pageOaCompany(params: OaCompanyParam) {
const res = await request.get<ApiResult<PageResult<OaCompany>>>(
'/oa/oa-company/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询企业信息列表
*/
export async function listOaCompany(params?: OaCompanyParam) {
const res = await request.get<ApiResult<OaCompany[]>>(
'/oa/oa-company',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加企业信息
*/
export async function addOaCompany(data: OaCompany) {
const res = await request.post<ApiResult<unknown>>(
'/oa/oa-company',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改企业信息
*/
export async function updateOaCompany(data: OaCompany) {
const res = await request.put<ApiResult<unknown>>(
'/oa/oa-company',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除企业信息
*/
export async function removeOaCompany(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-company/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除企业信息
*/
export async function removeBatchOaCompany(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/oa-company/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询企业信息
*/
export async function getOaCompany(id: number) {
const res = await request.get<ApiResult<OaCompany>>(
'/oa/oa-company/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,117 @@
import type { PageParam } from '@/api';
/**
* 企业信息
*/
export interface OaCompany {
// 企业id
companyId?: number;
// 企业简称
shortName?: string;
// 企业全称
companyName?: string;
// 企业标识
companyCode?: string;
// 类型 10企业 20政府单位
companyType?: string;
// 企业类型多选
companyTypeMultiple?: string;
// 应用标识
companyLogo?: string;
// 应用类型
appType?: string;
// 绑定域名
domain?: string;
// 联系电话
phone?: string;
// 座机电话
tel?: string;
// 邮箱
email?: string;
// 发票抬头
invoiceHeader?: string;
// 企业法人
businessEntity?: string;
// 服务开始时间
startTime?: string;
// 服务到期时间
expirationTime?: string;
// 应用版本 10体验版 20授权版 30旗舰版
version?: number;
// 成员数量(人数上限)
members?: number;
// 成员数量(当前)
users?: number;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 部门数量
departments?: number;
// 存储空间
storage?: string;
// 存储空间(上限)
storageMax?: string;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 街道地址
address?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 备注
comments?: string;
// 是否实名认证
authentication?: number;
// 企业默认主体
authoritative?: number;
// request合法域名
requestUrl?: string;
// socket合法域名
socketUrl?: string;
// 主控端域名
serverUrl?: string;
// 业务域名
modulesUrl?: string;
// 是否推荐
recommend?: number;
// 点赞数量
likes?: number;
// 点击数量
clicks?: number;
// 购买数量
buys?: number;
// 是否含税, 0不含, 1含
isTax?: number;
// 当前克隆的租户ID
planId?: number;
// 状态
status?: number;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 企业信息搜索条件
*/
export interface OaCompanyParam extends PageParam {
companyId?: number;
keywords?: string;
}

Some files were not shown because too many files have changed in this diff Show More