初始化

This commit is contained in:
2024-07-10 13:50:01 +08:00
commit e30966c6c5
1073 changed files with 143076 additions and 0 deletions
@@ -0,0 +1,117 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Ad, AdParam } from './model';
/**
* 分页查询广告位
*/
export async function pageAd(params: AdParam) {
const res = await request.get<ApiResult<PageResult<Ad>>>('/cms/ad/page', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询广告位列表
*/
export async function listAd(params?: AdParam) {
const res = await request.get<ApiResult<Ad[]>>('/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 addAd(data: Ad) {
const res = await request.post<ApiResult<unknown>>('/cms/ad', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改广告位
*/
export async function updateAd(data: Ad) {
const res = await request.put<ApiResult<unknown>>('/cms/ad', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除广告位
*/
export async function removeAd(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/cms/ad/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除广告位
*/
export async function removeBatchAd(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/cms/ad/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateAdStatus(adId?: number, status?: number) {
const res = await request.put<ApiResult<unknown>>('/cms/ad/status', {
adId,
status
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询广告位
*/
export async function getAd(id: number) {
const res = await request.get<ApiResult<Ad>>('/cms/ad/' + 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>>('/cms/ad/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
/**
* 广告位
*/
export interface Ad {
// 广告位id
adId?: number;
// 广告位名称
adType?: string;
// 类型
type?: string;
// 宽
width?: string;
// 高
height?: string;
// 附件
images?: string;
// 用户ID
userId?: number;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
}
/**
* 广告位搜索条件
*/
export interface AdParam extends PageParam {
adId?: string;
name?: number;
type?: number;
userId?: number;
}
@@ -0,0 +1,125 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Article, ArticleParam } from './model';
// const merchantCode = localStorage.getItem('merchantCode');
/**
* 分页查询文章
*/
export async function pageArticle(params: ArticleParam) {
// // 按商户筛选
// if (merchantCode != 'null') {
// params.merchantCode = `${merchantCode}`;
// }
const res = await request.get<ApiResult<PageResult<Article>>>(
'/cms/article/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文章列表
*/
export async function listArticle(params?: ArticleParam) {
const res = await request.get<ApiResult<Article[]>>('/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 addArticle(data: Article) {
const res = await request.post<ApiResult<unknown>>('/cms/article', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章
*/
export async function updateArticle(data: Article) {
const res = await request.put<ApiResult<unknown>>('/cms/article', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章
*/
export async function removeArticle(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/cms/article/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章
*/
export async function removeBatchArticle(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/cms/article/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateArticleStatus(articleId?: number, status?: number) {
const res = await request.put<ApiResult<unknown>>('/cms/article/status', {
articleId,
status
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文章
*/
export async function getArticle(id: number) {
const res = await request.get<ApiResult<Article>>('/cms/article/' + 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>>('/cms/article/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,72 @@
import type { PageParam } from '@/api';
/**
* 文章
*/
export interface Article {
// 文章id
articleId?: number;
// 文章标题
title?: string;
// 展现方式
showType?: number;
// 文章类型
categoryId?: number;
// 封面图
image?: string;
// 附件
files?: string;
// 缩列图
thumbnail?: string;
// 视频地址
video?: string;
// 上传的文件类型
accept?: string;
// 来源
source?: string;
// 文章内容
content?: string;
// 虚拟阅读量
virtualViews?: string;
// 实际阅读量
actualViews?: string;
// 用户ID
userId?: number;
// 用户昵称
nickname?: string;
// 账号
username?: string;
// 用户头像
userAvatar?: string;
// 所属门店ID
shopId?: string;
//
likes?: number;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
}
/**
* 文章搜索条件
*/
export interface ArticleParam extends PageParam {
title?: string;
articleId?: number;
categoryId?: string;
status?: string;
sortNumber?: string;
createTime?: string;
username?: string;
nickname?: string;
userId?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,112 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ArticleCategory, ArticleCategoryParam } from './model';
/**
* 分页查询文章分类
*/
export async function pageArticleCategory(params: ArticleCategoryParam) {
const res = await request.get<ApiResult<PageResult<ArticleCategory>>>(
'/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 listArticleCategory(params?: ArticleCategoryParam) {
const res = await request.get<ApiResult<ArticleCategory[]>>(
'/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 addArticleCategory(data: ArticleCategory) {
const res = await request.post<ApiResult<unknown>>(
'/cms/article-category',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文章分类
*/
export async function updateArticleCategory(data: ArticleCategory) {
const res = await request.put<ApiResult<unknown>>(
'/cms/article-category',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文章分类
*/
export async function removeArticleCategory(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/cms/article-category/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文章分类
*/
export async function removeBatchArticleCategory(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/cms/article-category/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>>(
'/cms/article-category/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 文章分类
*/
export interface ArticleCategory {
// 文章分类id
categoryId?: number;
// 文章分类
title?: string;
// 文章分类图片
image?: string;
// 上级分类
parentId?: number;
// 封面图
avatar?: string;
// 用户ID
userId?: string;
// 所属门店ID
shopId?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
//
key?: number;
//
value?: number;
// 子菜单
children?: ArticleCategory[];
}
/**
* 文章分类搜索条件
*/
export interface ArticleCategoryParam extends PageParam {
title?: string;
categoryId?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,136 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { DocsContent, DocsContentParam } from './model';
/**
* 分页查询文档
*/
export async function pageDocsContent(params: DocsContentParam) {
const res = await request.get<ApiResult<PageResult<DocsContent>>>(
'/cms/docs-content/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文档列表
*/
export async function listDocsContent(params?: DocsContentParam) {
const res = await request.get<ApiResult<DocsContent[]>>('/cms/docs-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 addDocsContent(data: DocsContent) {
const res = await request.post<ApiResult<unknown>>('/cms/docs-content', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文档
*/
export async function updateDocsContent(data: DocsContent) {
const res = await request.put<ApiResult<unknown>>(
'/cms/docs-content',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文档
*/
export async function removeDocsContent(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/cms/docs-content/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文档
*/
export async function removeBatchDocsContent(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/cms/docs-content/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateDocsContentStatus(
docsId?: number,
status?: number
) {
const res = await request.put<ApiResult<unknown>>('/cms/docs-content/status', {
docsId,
status
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文档
*/
export async function getDocsContent(id: number) {
const res = await request.get<ApiResult<DocsContent>>(
'/cms/docs-content/' + 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>>(
'/cms/docs-content/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
* 文档内容
*/
export interface DocsContent {
// 自增ID
docsContentId?: number;
// 文档内容id
docsId?: number;
// 文档内容
content?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
//
key?: number;
//
value?: number;
}
/**
* 文档内容搜索条件
*/
export interface DocsContentParam extends PageParam {
docsId?: number;
content?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,117 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Docs, DocsParam } from './model';
/**
* 分页查询文档
*/
export async function pageDocs(params: DocsParam) {
const res = await request.get<ApiResult<PageResult<Docs>>>('/cms/docs/page', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询文档列表
*/
export async function listDocs(params?: DocsParam) {
const res = await request.get<ApiResult<Docs[]>>('/cms/docs', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文档
*/
export async function addDocs(data: Docs) {
const res = await request.post<ApiResult<unknown>>('/cms/docs', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文档
*/
export async function updateDocs(data: Docs) {
const res = await request.put<ApiResult<unknown>>('/cms/docs', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文档
*/
export async function removeDocs(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/cms/docs/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文档
*/
export async function removeBatchDocs(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/cms/docs/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateDocsStatus(docsId?: number, status?: number) {
const res = await request.put<ApiResult<unknown>>('/cms/docs/status', {
docsId,
status
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文档
*/
export async function getDocs(id: number) {
const res = await request.get<ApiResult<Docs>>('/cms/docs/' + 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>>('/cms/docs/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,71 @@
import type { PageParam } from '@/api';
/**
* 文档
*/
export interface Docs {
// 文档id
docsId?: number;
// 文档标题
title?: string;
// 文档类型 0目录 1文档
type?: number;
// 展现方式
showType?: number;
// 文档类型
categoryId?: number;
// 上级分类
parentId?: number;
// 封面图
avatar?: string;
// 来源
source?: string;
// 文档内容
content?: string;
// 虚拟阅读量
virtualViews?: string;
// 实际阅读量
actualViews?: string;
// 用户ID
userId?: string;
// 用户昵称
nickname?: string;
// 账号
username?: string;
// 用户头像
userAvatar?: string;
// 所属门店ID
shopId?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
//
key?: number;
//
value?: number;
//
docsContentId?: number;
}
/**
* 文档搜索条件
*/
export interface DocsParam extends PageParam {
title?: string;
docsId?: number;
categoryId?: string;
status?: string;
sortNumber?: string;
createTime?: string;
username?: string;
nickname?: string;
// 商户编号
merchantCode?: string;
}
+41
View File
@@ -0,0 +1,41 @@
/**
* 接口统一返回结果
*/
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;
// 排序方式, asc升序, desc降序
order?: string;
// 租户ID
tenantId?: number;
// 搜素关键词
keywords?: string;
createTimeStart?: string;
createTimeEnd?: string;
}
+91
View File
@@ -0,0 +1,91 @@
/**
* 默认字典数据
*/
export async function getLinkType() {
return {
list: [
{ value: '0', label: '应用组件', text: '应用组件', comments: '' },
{ value: '1', label: '外部链接', text: '外部链接', comments: '' }
]
};
}
// 默认字典数据
export function getJson(dictName) {
if (dictName == 'customerFollowStatus') {
return [
{ value: '1', label: '初访', text: '初访', comments: '' },
{ value: '2', label: '意向', text: '意向', comments: '' },
{ value: '3', label: '报价', text: '报价', comments: '' },
{ value: '4', label: '成交', text: '成交', comments: '' },
{ value: '5', label: '暂时搁置', text: '暂时搁置', comments: '' },
{ value: '6', label: '未成交', text: '未成交', comments: '' }
];
}
if (dictName == 'customerCategory') {
return [
{ value: 'my', label: '我创建的', text: '我创建的', comments: '' },
{ value: 'stars', label: '标星客户', text: '标星客户', comments: '' },
{ value: 'join', label: '我协作的', text: '我协作的', comments: '' }
];
}
if (dictName == 'orderType') {
return [
{ value: 'all', label: '全部订单', text: '全部订单', comments: '' },
{ value: 'delivery', label: '待发货', text: '待发货', comments: '' },
{ value: 'receipt', label: '待收货', text: '待收货', comments: '' },
{ value: 'pay', label: '待付款', text: '待付款', comments: '' },
{ value: 'complete', label: '已完成', text: '已完成', comments: '' },
{ value: 'cancel', label: '已取消', text: '已取消', comments: '' }
];
}
if (dictName == 'customerSource') {
return [
{ value: '搜索引擎', label: '搜索引擎', text: '搜索引擎', comments: '' },
{ value: '客户介绍', label: '客户介绍', text: '客户介绍', comments: '' },
{ value: '代理商', label: '代理商', text: '代理商', comments: '' },
{ value: '社交推广', label: '社交推广', text: '社交推广', comments: '' },
{ value: '其他', label: '其他', text: '其他', comments: '' }
];
}
if (dictName == 'serverBrand') {
return [
{ value: '阿里云', label: '阿里云', text: '阿里云', comments: '' },
{ value: '腾讯云', label: '腾讯云', text: '腾讯云', comments: '' },
{ value: '华为云', label: '华为云', text: '华为云', comments: '' },
{ value: '西部数码', label: '西部数码', text: '西部数码', comments: '' },
{ value: '其他', label: '其他', text: '其他', comments: '' }
];
}
if (dictName == 'orderType') {
return [
{ value: 'all', label: '全部订单', text: '全部订单', comments: '' },
{ value: 'delivery', label: '待发货', text: '待发货', comments: '' },
{ value: 'receipt', label: '待收货', text: '待收货', comments: '' },
{ value: 'pay', label: '待付款', text: '待付款', comments: '' },
{ value: 'complete', label: '已完成', text: '已完成', comments: '' },
{ value: 'cancel', label: '已取消', text: '已取消', comments: '' }
];
}
if (dictName == 'sex') {
return [
{ value: '1', label: '男', text: '男', comments: null },
{ value: '2', label: '女', text: '女', comments: null }
];
}
if (dictName == 'payMethod') {
return [
{
value: '余额支付',
label: '余额支付',
text: '余额支付'
},
{
value: '微信支付',
label: '微信支付',
text: '微信支付'
},
{ value: '支付宝', label: '支付宝', text: '支付宝' }
];
}
}
@@ -0,0 +1,142 @@
import request from '@/uni_modules/ws-common/utils/request';
import type { ApiResult } from '@/uni_modules/ws-common/api';
import type { User } from '@/uni_modules/ws-common/api/system/user/model';
import type { UpdatePasswordParam, NoticeResult } from './model';
import { MODULES_API_URL, SERVER_API_URL } from '@/config/setting';
/**
* 解析token
*/
export async function parseToken(token : string) : Promise<any> {
const res = await request.get<ApiResult<any>>(
'https://server.gxwebsoft.com/api/parseToken/' + token
);
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 loginMpWxMobile(data : User) : Promise<User> {
const res = await request.post<ApiResult<unknown>>(SERVER_API_URL + '/wx-login/loginByMpWxPhone', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改当前登录的用户密码
*/
export async function updatePassword(
data : UpdatePasswordParam
) : Promise<string> {
const res = await request.put<ApiResult<unknown>>('/auth/password', data);
if (res.data.code === 0) {
return res.data.message ?? '修改成功';
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询未读通知
*/
export async function getUnreadNotice() : Promise<NoticeResult> {
return {
notice: [
{
color: '#60B2FC',
icon: 'NotificationFilled',
title: '你收到了一封14份新周报',
time: '2020-07-27 18:30:18'
},
{
color: '#F5686F',
icon: 'PushpinFilled',
title: '许经理同意了你的请假申请',
time: '2020-07-27 09:08:36'
},
{
color: '#7CD734',
icon: 'VideoCameraFilled',
title: '陈总邀请你参加视频会议',
time: '2020-07-26 18:30:01'
},
{
color: '#FAAD14',
icon: 'CarryOutFilled',
title: '你推荐的刘诗雨已通过第三轮面试',
time: '2020-07-25 16:38:46'
},
{
color: '#2BCACD',
icon: 'BellFilled',
title: '你的6月加班奖金已发放',
time: '2020-07-25 11:03:31'
}
],
letter: [
{
avatar:
'https://cdn.eleadmin.com/20200609/c184eef391ae48dba87e3057e70238fb.jpg',
title: 'SunSmile 评论了你的日志',
content: '写的不错, 以后多多向你学习~',
time: '2020-07-27 18:30:18'
},
{
avatar:
'https://cdn.eleadmin.com/20200609/948344a2a77c47a7a7b332fe12ff749a.jpg',
title: '刘诗雨 点赞了你的日志',
content: '写的不错, 以后多多向你学习~',
time: '2020-07-27 09:08:36'
},
{
avatar:
'https://cdn.eleadmin.com/20200609/2d98970a51b34b6b859339c96b240dcd.jpg',
title: '酷酷的大叔 评论了你的周报',
content: '写的不错, 以后多多向你学习~',
time: '2020-07-26 18:30:01'
},
{
avatar:
'https://cdn.eleadmin.com/20200609/f6bc05af944a4f738b54128717952107.jpg',
title: 'Jasmine 点赞了你的周报',
content: '写的不错, 以后多多向你学习~',
time: '2020-07-25 11:03:31'
}
],
todo: [
{
status: 0,
title: '刘诗雨的请假审批',
description: '刘诗雨在 07-27 18:30 提交的请假申请'
},
{
status: 1,
title: '第三方代码紧急变更',
description: '需要在 2020-07-27 之前完成'
},
{
status: 2,
title: '信息安全考试',
description: '需要在 2020-07-26 18:30 前完成'
},
{
status: 2,
title: 'EleAdmin发布新版本',
description: '需要在 2020-07-25 11:03 前完成'
}
]
};
}
@@ -0,0 +1,58 @@
/**
* 修改密码参数
*/
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[];
}
@@ -0,0 +1,146 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { App, AppParam } from './model/index';
/**
* 分页查询应用
*/
export async function pageApp(params: AppParam) {
const res = await request.get<ApiResult<PageResult<App>>>('/oa/app/page', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询应用列表
*/
export async function listApp(params?: AppParam) {
const res = await request.get<ApiResult<App[]>>('/oa/app', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询应用
*/
export async function getApp(id: number) {
const res = await request.get<ApiResult<App>>('/oa/app/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用
*/
export async function addApp(data: App) {
const res = await request.post<ApiResult<unknown>>('/oa/app', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改应用
*/
export async function updateApp(data: App) {
const res = await request.put<ApiResult<unknown>>('/oa/app', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除应用
*/
export async function removeApp(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/app/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除应用
*/
export async function removeBatchApp(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/app/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>>('/oa/app/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 getAppSecret(data: App) {
const res = await request.post<ApiResult<App>>(
'/open/app/getAppSecret',
data
);
if (res.data.code === 0 && res.data.data) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function updateAppSecret(data: App) {
const res = await request.post<ApiResult<App>>(
'/oa/app/updateAppSecret',
data
);
if (res.data.code === 0 && res.data.data) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
// 添加菜单
export async function saveMenu(data: App) {
const res = await request.post<ApiResult<unknown>>('/oa/app/saveMenu', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
// 添加菜单按钮
export async function saveAuthority(data: any[]) {
const res = await request.post<ApiResult<unknown>>(
'/oa/app/saveAuthority',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,155 @@
import type { PageParam } from '@/api';
import { AppUser } from '@/api/oa/app/user/model';
/**
* 应用
*/
export interface App {
// 应用id
appId?: number;
// 应用秘钥
appSecret?: string;
// 英文名称
enName?: string;
// 应用名称
appName?: string;
// 上级id, 0是顶级
parentId?: number;
// 应用编号
appCode?: string;
// 应用图标
appIcon?: string;
appQrcode?: string;
// 应用截图
images?: string;
// 应用类型
appType?: string;
appTypeMultiple?: string[];
// 菜单类型
menuType?: number;
// 应用地址
appUrl?: string;
// 后台管理地址
adminUrl?: string;
// 原型图地址
prototypeUrl?: string;
// 下载地址
downUrl?: string;
// 服务器接口地址
serverUrl?: string;
// 模块接口地址
modulesUrl?: string;
// 回调地址
callbackUrl?: string;
// 腾讯文档地址
gitUrl?: string;
docsUrl?: string;
ipAddress?: string;
fileUrl?: string;
// 应用包名
packageName?: string;
// 点击次数
clicks?: string;
// 安装次数
installs?: string;
// 应用介绍
content?: string;
// 开发者(个人)
developer?: string;
director?: string;
projectDirector?: string;
salesman?: string;
// 续费金额
renewMoney?: string;
// 软件定价
price?: string;
// 评分
score?: string;
// 星级
star?: string;
// 菜单组件地址
component?: string;
// 菜单路由地址
path?: string;
// 权限标识
authority?: string;
// 打开位置
target?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 菜单侧栏选中的path
active?: string;
// 其它路由元信息
meta?: string;
// 版本
edition?: string;
// 版本号
version?: string;
// 是否已安装
isUse?: number;
// 排序
sortNumber?: number;
// 备注
comments?: any;
tenantName?: string;
companyId?: number;
companyName?: string;
// 租户编号
tenantCode?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 过期时间
expirationTime?: string;
// 应用状态
appStatus?: string;
// 状态
status?: number;
// 发布者
userId?: any;
// 发布者昵称
nickname?: string;
// 子菜单
children?: App[];
// 权限树回显选中状态, 0未选中, 1选中
checked?: boolean;
//
key?: number;
//
value?: number;
//
parentIds?: number[];
//
openType?: number;
//
search?: any;
// 成员管理
users?: AppUser[];
// 项目需求
requirement?: string;
file1?: string;
file2?: string;
file3?: string;
}
/**
* 应用搜索条件
*/
export interface AppParam extends PageParam {
userId?: number;
appName?: any;
appCode?: string;
appId?: number;
developer?: string;
tenantCode?: string;
parentId?: string;
tenantName?: string;
companyName?: string;
companyId?: number;
status?: number;
nickname?: string;
appStatus?: any;
showExpiration?: boolean;
keywords?: any;
}
@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { AppRenew, AppRenewParam } from '@/api/oa/app/renew/model';
/**
* 分页查询开发成员
*/
export async function pageAppRenew(params: AppRenewParam) {
const res = await request.get<ApiResult<PageResult<AppRenew>>>(
'/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 listAppRenew(params?: AppRenewParam) {
const res = await request.get<ApiResult<AppRenew[]>>('/oa/app-renew', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询开发成员
*/
export async function getAppRenew(id: number) {
const res = await request.get<ApiResult<AppRenew>>('/oa/app-renew/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加开发成员
*/
export async function addAppRenew(data: AppRenew) {
const res = await request.post<ApiResult<unknown>>('/oa/app-renew', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改开发成员
*/
export async function updateAppRenew(data: AppRenew) {
const res = await request.put<ApiResult<unknown>>('/oa/app-renew', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除开发成员
*/
export async function removeAppRenew(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/app-renew/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除开发成员
*/
export async function removeBatchAppRenew(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/app-renew/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>>('/oa/app-renew/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,40 @@
import type { PageParam } from '@/api';
/**
* 开发成员
*/
export interface AppRenew {
appRenewId?: number;
money?: any;
comments?: string;
startTime?: any;
endTime?: any;
userId?: number;
nickname?: string;
email?: string;
phone?: string;
mobile?: string;
appId?: number;
companyId?: number;
status?: any;
images?: string;
files?: any;
createTime?: string;
editStatus?: boolean;
}
/**
* 开发成员搜索条件
*/
export interface AppRenewParam extends PageParam {
userId?: number;
appId?: number;
}
export interface UserItem {
key: string;
isEdit?: boolean;
number?: string;
name?: string;
department?: string;
}
@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { AppUser, AppUserParam } from '@/api/oa/app/user/model';
/**
* 分页查询开发成员
*/
export async function pageAppUser(params: AppUserParam) {
const res = await request.get<ApiResult<PageResult<AppUser>>>(
'/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 listAppUser(params?: AppUserParam) {
const res = await request.get<ApiResult<AppUser[]>>('/oa/app-user', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询开发成员
*/
export async function getAppUser(id: number) {
const res = await request.get<ApiResult<AppUser>>('/oa/app-user/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加开发成员
*/
export async function addAppUser(data: AppUser) {
const res = await request.post<ApiResult<unknown>>('/oa/app-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改开发成员
*/
export async function updateAppUser(data: AppUser) {
const res = await request.put<ApiResult<unknown>>('/oa/app-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除开发成员
*/
export async function removeAppUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/app-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除开发成员
*/
export async function removeBatchAppUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/app-user/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>>(
'/oa/app-user/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,36 @@
import type { PageParam } from '@/api';
/**
* 开发成员
*/
export interface AppUser {
// 开发成员id
appUserId?: number;
role?: number;
userId?: number;
username?: string;
nickname?: string;
avatar?: string;
email?: string;
phone?: string;
mobile?: string;
appId?: number;
status?: string;
createTime?: string;
}
/**
* 开发成员搜索条件
*/
export interface AppUserParam extends PageParam {
userId?: number;
appId?: number;
}
export interface UserItem {
key: string;
isEdit?: boolean;
number?: string;
name?: string;
department?: string;
}
@@ -0,0 +1,14 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { Customer } from './model';
/**
* 申请免费体验
*/
export async function apply(data: Customer) {
const res = await request.post<ApiResult<unknown>>('/customer-apply', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 客户
*/
export interface Customer {
// 客户id
customerId?: number;
// 客户类型
customerType?: string;
// 客户标识
customerCode: string;
// 客户名称
customerName?: string;
// 客户头像
customerAvatar?: string;
// 座机电话
customerPhone?: string;
// 手机号码
customerMobile?: string;
// 联系人
customerContacts?: string;
// 联系地址
customerAddress?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
// 状态
status?: string;
}
/**
* 客户搜索条件
*/
export interface CustomerParam extends PageParam {
customerName?: string;
customerCode?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Assets, AssetsParam } from './model';
/**
* 分页查询资产
*/
export async function pageAssets(params: AssetsParam) {
const res = await request.get<ApiResult<PageResult<Assets>>>(
'/oa/assets/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询资产列表
*/
export async function listAssets(params?: AssetsParam) {
const res = await request.get<ApiResult<Assets[]>>('/oa/assets', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询服务器
*/
export async function getAssets(id: number) {
const res = await request.get<ApiResult<Assets>>('/oa/assets/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加资产
*/
export async function addAssets(data: Assets) {
const res = await request.post<ApiResult<unknown>>('/oa/assets', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改资产
*/
export async function updateAssets(data: Assets) {
const res = await request.put<ApiResult<unknown>>('/oa/assets', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除资产
*/
export async function removeAssets(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/assets/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除资产
*/
export async function removeBatchAssets(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/assets/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>>('/oa/assets/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,85 @@
import type { PageParam } from '@/api';
import type { User } from '@/api/system/user/model';
/**
* 资产
*/
export interface Assets {
// 资产id
assetsId?: number;
// 资产类型
type?: string;
// 资产标识
code: string;
// 资产名称
name?: string;
//
account?: string;
//
password?: string;
//
panel?: string;
//
panelAccount?: string;
//
panelPassword?: string;
//
configuration?: any;
root?: string;
//
sortNumber?: number;
financeAmount?: any;
financeYears?: any;
financeRenew?: any;
financeCustomerName?: string;
financeCustomerContact?: string;
financeCustomerPhone?: string;
//
brandAccount?: string;
brandPassword?: string;
btSign?: string;
openPort?: any;
comments?: string;
// 所属客户
customerId?: number;
customerName?: string;
// 品牌
brand?: string;
// 购买时间
startTime?: string;
// 到期时间
endTime?: string;
// 创建时间
createTime?: string;
// 状态
status?: string;
userId?: number;
companyId?: number;
companyName?: string;
nickname?: string;
// 可见性类型
visibility?: string;
// 可见用户ID
userList?: User[];
systemTotal?: Object;
diskInfo?: Object;
netWork?: Object;
sites?: Object;
}
/**
* 资产搜索条件
*/
export interface AssetsParam extends PageParam {
name?: string;
code?: string;
isExpire?: string;
status?: string;
brand?: string;
customerId?: string;
companyId?: number;
companyName?: string;
userId?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,112 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
AssetsUser,
AssetsUserParam
} from '@/api/oa/assets/user/model/index';
/**
* 分页查询开发成员
*/
export async function pageAssetsUser(params: AssetsUserParam) {
const res = await request.get<ApiResult<PageResult<AssetsUser>>>(
'/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 listAssetsUser(params?: AssetsUserParam) {
const res = await request.get<ApiResult<AssetsUser[]>>('/oa/assets-user', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询开发成员
*/
export async function getAssetsUser(id: number) {
const res = await request.get<ApiResult<AssetsUser>>('/oa/assets-user/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加开发成员
*/
export async function addAssetsUser(data: AssetsUser) {
const res = await request.post<ApiResult<unknown>>('/oa/assets-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改开发成员
*/
export async function updateAssetsUser(data: AssetsUser) {
const res = await request.put<ApiResult<unknown>>('/oa/assets-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除开发成员
*/
export async function removeAssetsUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/assets-user/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除开发成员
*/
export async function removeBatchAssetsUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/assets-user/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>>(
'/oa/assets-user/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 开发成员
*/
export interface AssetsUser {
// 开发成员id
id?: number;
role?: number;
userId?: number;
username?: string;
nickname?: string;
avatar?: string;
email?: string;
phone?: string;
assetsId?: number;
status?: string;
createTime?: string;
}
/**
* 开发成员搜索条件
*/
export interface AssetsUserParam extends PageParam {
userId?: number;
assetsId?: number;
}
export interface UserItem {
key: string;
isEdit?: boolean;
number?: string;
name?: string;
department?: string;
}
@@ -0,0 +1,30 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import { ChatParam } from '@/api/oa/chatgpt/model';
/**
* 发送
*/
export async function send(data: ChatParam) {
const res = await request.post<ApiResult<unknown>>('/open/chat/send', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 请求openAI
* /open/chat/chat
* 'https://chatgpt.websoft.top/api/open/chat/chat',
*/
export async function chat(data: ChatParam) {
const res = await request.post<ApiResult<unknown>>(
'https://chatgpt.websoft.top/api/open/chat/chat',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,17 @@
/**
* 消息
*/
export interface Chat {
noticeId?: number;
content?: any;
tenantId?: number;
}
/**
* 任务搜索条件
*/
export interface ChatParam {
tenantId?: number;
content?: string;
noticeId?: number;
}
@@ -0,0 +1,117 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Customer, CustomerParam } from './model';
/**
* 分页查询客户
*/
export async function pageCustomer(params: CustomerParam) {
const res = await request.get<ApiResult<PageResult<Customer>>>(
'/oa/customer/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询客户列表
*/
export async function listCustomer(params?: CustomerParam) {
const res = await request.get<ApiResult<Customer[]>>('/oa/customer', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询客户
*/
export async function getCustomer(id: number) {
const res = await request.get<ApiResult<Customer>>('/oa/customer/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加客户
*/
export async function addCustomer(data: Customer) {
const res = await request.post<ApiResult<unknown>>('/oa/customer', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改客户
*/
export async function updateCustomer(data: Customer) {
const res = await request.put<ApiResult<unknown>>('/oa/customer', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改客户
*/
export async function updateBatchCustomer(data: Customer[]) {
const res = await request.put<ApiResult<unknown>>('/oa/customer/batch', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除客户
*/
export async function removeCustomer(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/customer/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除客户
*/
export async function removeBatchCustomer(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/customer/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>>('/oa/customer/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,67 @@
import type { PageParam } from '@/api';
/**
* 客户
*/
export interface Customer {
// 客户id
customerId?: number;
// 客户类型
customerType?: string;
// 客户来源
customerSource?: string;
// 客户标识
customerCode: string;
// 客户名称
customerName?: string;
// 客户全称
customerFullName?: string;
// 客户头像
customerAvatar?: string;
// 座机电话
customerPhone?: string;
// 手机号码
customerMobile?: string;
// 联系人
customerContacts?: string;
// 联系地址
customerAddress?: string;
customerProvince?: string;
customerCity?: string;
customerRegion?: string;
longitude?: string;
latitude?: string;
// 跟进状态
progress?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
// 状态
status?: string;
// 用户ID
userId?: any;
// 发布者昵称
nickname?: string;
}
/**
* 客户搜索条件
*/
export interface CustomerParam extends PageParam {
customerName?: string;
customerCode?: string;
customerType?: string;
createTimeStart?: string;
createTimeEnd?: string;
customerCategory?: string;
progress?: string;
customerSource?: string;
betweenTime?: any;
userId?: number;
nickname?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,111 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Notice, NoticeParam } from './model/index';
import { TabsParam } from '@/api/tabs';
/**
* 分页查询消息
*/
export async function pageNotice(params: NoticeParam) {
const res = await request.get<ApiResult<PageResult<Notice>>>(
'/oa/notice/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询消息列表
*/
export async function listNotice(params?: NoticeParam) {
const res = await request.get<ApiResult<Notice[]>>('/oa/notice', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询消息
*/
export async function getNotice(id: number) {
const res = await request.get<ApiResult<Notice>>('/oa/notice/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加消息
*/
export async function addNotice(data: Notice) {
const res = await request.post<ApiResult<unknown>>('/oa/notice', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改消息
*/
export async function updateNotice(data: Notice) {
const res = await request.put<ApiResult<unknown>>('/oa/notice', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除消息
*/
export async function removeNotice(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/notice/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改消息
*/
export async function updateBatchNotices(data: Notice[]) {
const res = await request.put<ApiResult<unknown>>('/oa/notice/batch', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除消息
*/
export async function removeBatchNotice(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/notice/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params?: TabsParam) {
const res = await request.get<ApiResult<TabsParam>>('/oa/notice/count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,40 @@
import type { PageParam } from '@/api';
/**
* 消息
*/
export interface Notice {
// 消息id
noticeRecordId?: number;
noticeId?: number;
title?: string;
channel?: string;
avatar?: string;
content?: string;
files?: string;
developerId?: number;
userId?: number;
sortNumber?: number;
comments?: string;
status?: number;
}
/**
* 消息搜索条件
*/
export interface NoticeParam extends PageParam {
type?: string;
noticeRecordId?: number;
noticeId?: number;
userId?: number;
developerId?: number;
status?: number;
}
// 查询未读数量
export interface NnReadNum {
notice?: string;
letter?: number;
todo?: number;
chatGPT?: number;
}
@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Project, ProjectParam } from './model';
/**
* 分页查询项目
*/
export async function pageProject(params: ProjectParam) {
const res = await request.get<ApiResult<PageResult<Project>>>(
'/oa/project/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询项目列表
*/
export async function listProject(params?: ProjectParam) {
const res = await request.get<ApiResult<Project[]>>('/oa/project', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询项目
*/
export async function getProject(id: number) {
const res = await request.get<ApiResult<Project>>('/oa/project/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加项目
*/
export async function addProject(data: Project) {
const res = await request.post<ApiResult<unknown>>('/oa/project', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改项目
*/
export async function updateProject(data: Project) {
const res = await request.put<ApiResult<unknown>>('/oa/project', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除项目
*/
export async function removeProject(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/project/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除项目
*/
export async function removeBatchProject(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/project/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>>('/oa/project/existence', {
params: { field, value, id }
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,56 @@
import type { PageParam } from '@/api';
/**
* 项目
*/
export interface Project {
// 项目id
projectId?: number;
// 项目类型
projectType?: string;
// 项目分类
projectCategory?: string;
// 项目标识
projectCode: string;
// 项目名称
projectName?: string;
// 项目图标
projectAvatar?: string;
url?: string;
urlDev?: string;
urlAdmin?: string;
account?: string;
money?: string;
realMoney?: string;
annualFee?: string;
qrcode?: string;
progress?: string;
views?: string;
// 项目详情
content?: string;
// 客户ID
customerId?: number;
// 客户名称
customerName?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
// 状态
status?: string;
// 用户ID
userId?: number;
}
/**
* 项目搜索条件
*/
export interface ProjectParam extends PageParam {
projectName?: string;
projectCode?: string;
status?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,100 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { TaskCount, TaskCountParam } from './model/index';
import { TabsParam } from '@/api/tabs';
/**
* 分页查询统计
*/
export async function pageTaskCount(params: TaskCountParam) {
const res = await request.get<ApiResult<PageResult<TaskCount>>>(
'/oa/task-count/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询统计列表
*/
export async function listTaskCount(params?: TaskCountParam) {
const res = await request.get<ApiResult<TaskCount[]>>('/oa/task-count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询统计
*/
export async function getTaskCount(id: number) {
const res = await request.get<ApiResult<TaskCount>>('/oa/task-count/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加统计
*/
export async function addTaskCount(data: TaskCount) {
const res = await request.post<ApiResult<unknown>>('/oa/task-count', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改统计
*/
export async function updateTaskCount(data: TaskCount) {
const res = await request.put<ApiResult<unknown>>('/oa/task-count', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除统计
*/
export async function removeTaskCount(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/task-count/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除统计
*/
export async function removeBatchTaskCount(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/task-count/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params?: TabsParam) {
const res = await request.get<ApiResult<TabsParam>>('/oa/task-count/count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,32 @@
import type { PageParam } from '@/api';
/**
* 统计
*/
export interface TaskCount {
// 统计id
taskCountId?: number;
userId?: number;
nickname?: string;
avatar?: string;
phone?: string;
pending?: number;
unused?: number;
today?: number;
month?: number;
year?: number;
total?: number;
commander?: number;
createTime?: string;
updateTime?: string;
}
/**
* 统计搜索条件
*/
export interface TaskCountParam extends PageParam {
taskCountId?: number;
userId?: number;
roleId?: number;
roleCode?: string;
}
@@ -0,0 +1,103 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { TaskRecord, TaskRecordParam } from './model/index';
import { TabsParam } from '@/api/tabs';
/**
* 分页查询任务
*/
export async function pageTaskRecord(params: TaskRecordParam) {
const res = await request.get<ApiResult<PageResult<TaskRecord>>>(
'/oa/task-record/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询任务列表
*/
export async function listTaskRecord(params?: TaskRecordParam) {
const res = await request.get<ApiResult<TaskRecord[]>>('/oa/task-record', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询任务
*/
export async function getTaskRecord(id: number) {
const res = await request.get<ApiResult<TaskRecord>>('/oa/task-record/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加任务
*/
export async function addTaskRecord(data: TaskRecord) {
const res = await request.post<ApiResult<unknown>>('/oa/task-record', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改任务
*/
export async function updateTaskRecord(data: TaskRecord) {
const res = await request.put<ApiResult<unknown>>('/oa/task-record', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除任务
*/
export async function removeTaskRecord(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/task-record/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除任务
*/
export async function removeBatchTaskRecord(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/oa/task-record/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params?: TabsParam) {
const res = await request.get<ApiResult<TabsParam>>('/oa/task-record/count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
import { User } from '@/api/user/model';
/**
* 任务
*/
export interface TaskRecord {
// 任务id
taskRecordId?: number;
taskId?: number;
parentId?: number;
nickname?: string;
avatar?: string;
content?: string;
files?: any;
appId?: number;
developerId?: number;
userId?: number;
sortNumber?: number;
comments?: string;
status?: string;
children?: TaskRecord[] | [];
createTime?: string;
toUser: User | null;
}
/**
* 任务搜索条件
*/
export interface TaskRecordParam extends PageParam {
taskRecordId?: number;
taskId?: number;
userId?: number;
developerId?: number;
}
@@ -0,0 +1,100 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { TaskUser, TaskUserParam } from './model/index';
import { TabsParam } from '@/api/tabs';
/**
* 分页查询工单成员
*/
export async function pageTaskUser(params: TaskUserParam) {
const res = await request.get<ApiResult<PageResult<TaskUser>>>(
'/oa/task-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询工单成员列表
*/
export async function listTaskUser(params?: TaskUserParam) {
const res = await request.get<ApiResult<TaskUser[]>>('/oa/task-user', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询工单成员
*/
export async function getTaskUser(id: number) {
const res = await request.get<ApiResult<TaskUser>>('/oa/task-user/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加工单成员
*/
export async function addTaskUser(data: TaskUser) {
const res = await request.post<ApiResult<unknown>>('/oa/task-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改工单成员
*/
export async function updateTaskUser(data: TaskUser) {
const res = await request.put<ApiResult<unknown>>('/oa/task-user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除工单成员
*/
export async function removeTaskUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/task-user/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除工单成员
*/
export async function removeBatchTaskUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/task-user/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params?: TabsParam) {
const res = await request.get<ApiResult<TabsParam>>('/oa/task-user/count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,27 @@
import type { PageParam } from '@/api';
/**
* 任务
*/
export interface TaskUser {
// 任务id
taskUserId?: number;
taskId?: number;
role?: number;
userId?: number;
status?: string;
avatar?: string;
name?: string;
username?: string;
email?: string;
phone?: string;
}
/**
* 任务搜索条件
*/
export interface TaskUserParam extends PageParam {
taskUserId?: number;
taskId?: number;
userId?: number;
}
@@ -0,0 +1,132 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Task, TaskParam } from './model/index';
import { TabsParam } from '@/api/tabs';
import { MODULES_API_URL } from "@/config/setting";
/**
* 分页查询任务
*/
export async function pageTask(params: TaskParam) {
const res = await request.get<ApiResult<PageResult<Task>>>('/oa/task/page', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询任务列表
*/
export async function listTask(params?: TaskParam) {
const res = await request.get<ApiResult<Task[]>>('/oa/task', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询任务
*/
export async function getTask(id: number) {
const res = await request.get<ApiResult<Task>>('/oa/task/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加任务
*/
export async function addTask(data: Task) {
const res = await request.post<ApiResult<Task>>('/oa/task', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改任务
*/
export async function updateTask(data: Task) {
const res = await request.put<ApiResult<unknown>>('/oa/task', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除任务
*/
export async function removeTask(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/task/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除任务
*/
export async function removeBatchTask(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/task/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCount(params?: TabsParam) {
const res = await request.get<ApiResult<TabsParam>>('/oa/task/count', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取工单二维码
* @param params
*/
export async function taskQRCode(params: TaskParam) {
const res = await request.get<ApiResult<PageResult<Task>>>(
MODULES_API_URL + '/oa/task/taskQRCode',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取邀请加入二维码
* @param params
*/
export async function taskJoinQRCode(params: TaskParam) {
const res = await request.get<ApiResult<PageResult<Task>>>(
MODULES_API_URL + '/oa/task/taskJoinQRCode',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,109 @@
import type { PageParam } from '@/api';
import { TaskRecord } from '@/api/oa/task-record/model';
import { TaskUser } from '@/api/oa/task-user/model';
/**
* 任务
*/
export interface Task {
// 任务id
taskId?: number;
// 任务名称
name?: string;
// 任务类型
taskType?: string;
// 关联应用
appId?: number;
appName?: string;
// 项目ID
projectId?: string;
// 客户ID
customerId?: string;
// 资产ID
assetsId?: string;
// 开始时间
startTime?: string;
// 结束时间
endTime?: string;
// 任务内容
content?: string;
files?: string;
// 任务发起人
promoter?: number;
promoterName?: string;
promoterAlias?: string;
promoterAvatar?: string;
promoterCompanyName?: string;
// 任务状态
progress?: number;
isRead?: boolean;
// 优先级
priority?: string;
// 品质要求
quality?: string;
// 期限(天)
day?: string;
// 排序
sortNumber?: number;
// 备注
comments?: string;
redirect?: string;
// 创建时间
createTime?: string;
updateTime?: string;
// 状态
status?: number;
// 发布者
userId?: any;
// 发布者昵称
nickname?: string;
// 项目名称
projectName?: string;
// 图片集
images?: [];
avatar?: string;
// 受理人
commander?: number;
commanderName?: string;
commanderAlias?: string;
commanderAvatar?: string;
commanderCompanyName?: string;
commanderRealName?: string;
// 最后回复人
lastRealName?: string;
lastAvatar?: string;
lastReadUser?: number;
lastNickname?: string;
recordList?: TaskRecord[];
users?: TaskUser[];
phone?: string;
phoneXX?: string;
action?: string;
// 机密信息
confidential?: any;
}
/**
* 任务搜索条件
*/
export interface TaskParam extends PageParam {
taskId?: number;
status?: any;
name?: string;
promoter?: number;
promoterName?: string;
commander?: number;
commanderName?: string;
progress?: number;
betweenTime?: any;
userId?: number;
nickname?: string;
keywords?: any;
current?: string;
pending?: number;
appId?: number;
appName?: string;
companyId?: number;
companyName?: string;
taskType?: string;
}
@@ -0,0 +1,9 @@
/**
* 枚举类
*/
export const TOBEARRANGED = 0; // 待安排
export const PENDING = 1; // 待处理
export const PROCESSING = 2; // 处理中
export const TOBECONFIRMED = 3; // 待评价
export const COMPLETED = 4; // 已完成
export const CLOSED = 5; // 已关闭
@@ -0,0 +1,8 @@
export const TASK_STATUS_0 = 0; // 待处理
export const TASK_STATUS_1 = 1; // 已完成
export const ACTION_1 = '派单';
export const ACTION_2 = '已解决';
export const ACTION_3 = '关单';
export const ACTION_4 = '分享';
export const ACTION_5 = '编辑';
@@ -0,0 +1,155 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Tenant, TenantParam } from './model';
import { Menu } from '@/api/system/menu/model';
/**
* 分页查询租户
*/
export async function pageTenant(params: TenantParam) {
// 租户列表查询需要传一个key
// params.tenantCode = 'ZAcxbdmDQFwUKC3e';
const res = await request.get<ApiResult<PageResult<Tenant>>>(
'/system/tenant/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询租户资料
*/
export async function profile(params?: TenantParam) {
const res = await request.get<ApiResult<Tenant>>('/system/tenant/profile', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询租户列表
*/
export async function listTenant(params?: TenantParam) {
const res = await request.get<ApiResult<Tenant[]>>('/system/tenant', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getTenant(id: number) {
const res = await request.get<ApiResult<Tenant>>('/system/tenant/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加租户
*/
export async function addTenant(data: Tenant) {
const res = await request.post<ApiResult<unknown>>('/system/tenant', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改租户
*/
export async function updateTenant(data: Tenant) {
const res = await request.put<ApiResult<unknown>>('/system/tenant', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除租户
*/
export async function removeTenant(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/system/tenant/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除租户
*/
export async function removeBatchTenant(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/system/tenant/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 重置用户密码
*/
export async function updateTenantPassword(
tenantId?: number,
password = 'gxwebsoft.com'
) {
const res = await request.put<ApiResult<unknown>>('/system/tenant/password', {
tenantId,
password
});
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>>(
'/system/tenant/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 initialization(roleId?: number) {
const res = await request.get<ApiResult<Menu[]>>(
'/system/tenant/role-menu/' + roleId
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,39 @@
import type { PageParam } from '@/api';
/**
* 租户
*/
export interface Tenant {
// 租户id
tenantId?: number;
// 租户名称
tenantName?: string;
// 应用ID
appId?: string;
// 应用秘钥
appSecret?: string;
logo?: string;
// 所属客户
companyName?: string;
// 关联客户ID
companyId?: string;
// 备注
comments?: string;
// 创建时间
createTime?: string;
// 状态
status?: number;
//
password?: string;
}
/**
* 租户搜索条件
*/
export interface TenantParam extends PageParam {
tenantName?: string;
appId?: string;
companyId?: number;
companyName?: string;
tenantCode?: string;
}
@@ -0,0 +1,93 @@
import request from '@/utils/request';
import { setToken } from '@/utils/token-util';
import type { ApiResult } from '@/api';
import type {
LoginParam,
LoginResult,
CaptchaResult,
SmsCaptchaResult
} from './model';
import type { User } from '@/api/system/user/model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 登录
*/
export async function login(data : LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/login',
data
);
if (res.data.code === 0) {
setToken(res.data.data?.access_token, data.remember);
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取验证码
*/
export async function getCaptcha() {
const res = await request.get<ApiResult<CaptchaResult>>(SERVER_API_URL + '/captcha');
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 发送短信验证码
*/
export async function sendSmsCaptcha(data : LoginParam) {
const res = await request.post<ApiResult<SmsCaptchaResult>>(
'/sendSmsCaptcha',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 登录
*/
export async function remoteLogin(data : LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
'https://open.gxwebsoft.com/api/login',
data
);
if (res.data.code === 0) {
setToken(res.data.data?.access_token, data.remember);
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取企业微信登录链接
*/
export async function getWxWorkQrConnect(data: any) {
const res = await request.post<ApiResult<unknown>>('/wx-work', data);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function registerUser(data : User) {
const res = await request.post<ApiResult<unknown>>('/register', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function loginMpWxMobile(data : User) {
const res = await request.post<ApiResult<unknown>>('/wx-login/loginByMpWxPhone', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,42 @@
import type { User } from '@/api/system/user/model';
/**
* 登录参数
*/
export interface LoginParam {
// 账号
username?: string;
// 密码
password?: string;
// 租户id
tenantId?: number;
// 是否记住密码
remember?: boolean;
}
/**
* 登录返回结果
*/
export interface LoginResult {
// token
access_token?: string;
// 用户信息
user?: User;
}
/**
* 图形验证码返回结果
*/
export interface CaptchaResult {
// 图形验证码base64数据
base64: string;
// 验证码文本
text: string;
}
/**
* 短信验证码返回结果
*/
export interface SmsCaptchaResult {
// 验证码文本
text: string;
}
+68
View File
@@ -0,0 +1,68 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { Cache, CacheParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 查询缓存数据
*/
export async function listCache(params?: CacheParam) {
const res = await request.get<ApiResult<Cache[]>>('/system/cache', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取缓存数据
* @param key
*/
export async function getCache(key: String) {
const res = await request.get<ApiResult<Cache>>(
SERVER_API_URL + '/system/cache/' + key
);
if (res.data.code === 0) {
return res.data.data;
}
}
/**
* 更新缓存数据
* @param cache
*/
export async function updateCache(cache: Cache) {
const res = await request.post<ApiResult<unknown>>('/system/cache', cache);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除缓存数据
* @param key
*/
export async function removeCache(key?: String) {
const res = await request.delete<ApiResult<unknown>>('/system/cache/' + key);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 更新缓存数据
* @param cache
*/
export async function updateCacheTheme(cache: Cache) {
const res = await request.post<ApiResult<unknown>>(
'/system/cache/theme',
cache
);
if (res.data.code === 0) {
return res.data.message;
}
}
@@ -0,0 +1,18 @@
import type { PageParam } from '@/api';
/**
* 缓存管理
*/
export interface Cache {
key?: string;
content?: string;
uploadMethod?: any;
expireTime?: number; // 过期时间(秒)
}
/**
* 搜索条件
*/
export interface CacheParam extends PageParam {
key?: string;
}
@@ -0,0 +1,156 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
ChatConversation,
ChatConversationParam,
ChatMessage,
ChatMessageParam
} from '@/api/love/chat/model';
/**
* 查询聊天列表
*/
export async function pageChatConversation(params: ChatConversationParam) {
const res = await request.get<ApiResult<PageResult<ChatConversation>>>(
'/love/chat-conversation/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询聊天列表
*/
export async function pageChatMessage(params: ChatMessageParam) {
const res = await request.get<ApiResult<PageResult<ChatMessage>>>(
'/love/chat-message/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询日志列表
*/
export async function listChatConversation(params?: ChatConversationParam) {
const res = await request.get<ApiResult<ChatConversation[]>>(
'/love/chat-conversation',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加日志
*/
export async function addChatMessage(data: ChatMessage) {
const res = await request.post<ApiResult<ChatConversation>>(
'/love/chat-message',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加日志
*/
export async function addChatConversation(data: ChatConversation) {
const res = await request.post<ApiResult<unknown>>(
'/love/chat-conversation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改日志
*/
export async function updateChatConversation(data: any) {
const res = await request.put<ApiResult<unknown>>(
'/love/chat-conversation',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 绑定日志
*/
export async function bindChatConversation(data: ChatConversation) {
const res = await request.put<ApiResult<unknown>>(
'/love/chat-conversation/bind',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量添加
*/
export async function addBatchChatConversation(data: ChatConversation[]) {
const res = await request.post<ApiResult<unknown>>(
'/love/chat-conversation/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除日志
*/
export async function removeChatConversation(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/love/chat-conversation/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除日志
*/
export async function removeBatchChatConversation(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/love/chat-conversation/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,48 @@
import type { PageParam } from '@/api';
import type { User } from '@/api/system/user/model';
export interface ChatConversation {
id?: number;
userId?: number;
friendId?: number;
userInfo?: User;
friendInfo?: User;
content: string;
messages: ChatMessage[];
unRead: number;
createTime?: string;
updateTime: string | number | Date;
}
export interface ChatMessage {
id?: number;
formUserId?: number;
formUserInfo?: User;
toUserInfo?: User;
toUserId?: number;
type: string;
content: string;
status?: number;
createTime?: number;
updateTime?: number;
}
/**
* 搜索条件
*/
export interface ChatConversationParam extends PageParam {
userId?: number;
status: number;
onlyFake: boolean;
keywords: string;
}
/**
* 搜索条件
*/
export interface ChatMessageParam extends PageParam {
formUserId?: number;
toUserId?: number;
type?: string;
keywords: string;
}
@@ -0,0 +1,94 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { Company, CompanyParam } from './model';
import { PageResult } from '@/api';
/**
* 查询企业资料
*/
export async function getCompany(params?: CompanyParam) {
const res = await request.get<ApiResult<Company>>('/oa/company/profile', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询Company列表
*/
export async function pageCompany(params: CompanyParam) {
const res = await request.get<ApiResult<PageResult<Company>>>(
'/oa/company/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加Company
*/
export async function addCompany(data: Company) {
const res = await request.post<ApiResult<unknown>>('/oa/company', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改Company
*/
export async function updateCompany(data: Company) {
const res = await request.put<ApiResult<unknown>>('/oa/company', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除Company
*/
export async function removeCompany(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/oa/company/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除Company
*/
export async function removeBatchCompany(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/oa/company/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
'/system/company/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,67 @@
/**
* 企业信息
*/
export interface Company {
companyId?: number;
shortName?: string;
companyName?: string;
companyType?: number;
companyTypeMultiple?: string;
companyLogo?: string;
companyCode?: string;
domain?: string;
phone?: string;
InvoiceHeader?: string;
startTime?: string;
expirationTime?: string;
version?: number;
members?: number;
storage?: string;
storageMax?: string;
users?: number;
departments?: number;
industryParent?: string;
industryChild?: string;
country?: string;
province?: string;
city?: string;
region?: string;
address?: string;
latitude?: string;
longitude?: string;
businessEntity?: string;
comments?: string;
authentication?: number;
industryId?: number;
industryName?: string;
status?: number;
userId?: number;
sortNumber?: number;
authoritative?: boolean;
tenantId?: number;
tenantName?: string;
tenantCode?: string;
nickname?: string;
code?: number;
createTime?: string;
updateTime?: string;
}
/**
* 企业信息搜索条件
*/
export interface CompanyParam {
companyId?: number;
shortName?: string;
companyName?: string;
domain?: string;
keywords?: string;
authoritative?: number;
authentication?: number;
province?: string;
city?: string;
region?: string;
version?: number;
createTimeStart?: string;
createTimeEnd?: string;
}
@@ -0,0 +1,89 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { DictData, DictDataParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 分页查询字典数据
*/
export async function pageDictData(params: DictDataParam) {
const res = await request.get<ApiResult<PageResult<DictData>>>(
SERVER_API_URL + '/system/dict-data/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询字典数据列表
*/
export async function listDictData(params: DictDataParam) {
const res = await request.get<ApiResult<DictData[]>>(
SERVER_API_URL + '/system/dict-data',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加字典数据
*/
export async function addDictData(data: DictData) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改字典数据
*/
export async function updateDictData(data: DictData) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除字典数据
*/
export async function removeDictData(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除字典数据
*/
export async function removeDictDataBatch(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data/batch',
{ data }
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,35 @@
import { PageParam } from '@/api';
/**
* 字典数据
*/
export interface DictData {
// 字典数据id
dictDataId?: number;
// 字典id
dictId?: number;
// 字典标识
dictCode?: string;
// 字典数据标识
dictDataCode?: string;
// 字典数据名称
dictDataName?: string;
// 排序号
sortNumber?: any;
// 备注
comments?: any;
// 创建时间
createTime?: string;
}
/**
* 字典数据搜索条件
*/
export interface DictDataParam extends PageParam {
// 关键字
keywords?: string;
// 字典标识
dictCode?: string;
// 字典id
dictId?: number;
}
@@ -0,0 +1,61 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { Dict, DictParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 查询字典列表
*/
export async function listDictionaries(params?: DictParam) {
const res = await request.get<ApiResult<Dict[]>>(
SERVER_API_URL + '/system/dict',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加字典
*/
export async function addDict(data: Dict) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改字典
*/
export async function updateDict(data: Dict) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除字典
*/
export async function removeDict(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,29 @@
/**
* 字典
*/
export interface Dict {
// 字典id
dictId?: number;
// 字典标识
dictCode?: string;
// 字典名称
dictName?: string;
// 排序号
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
type?: number;
tenantId?: number;
}
/**
* 字典搜索条件
*/
export interface DictParam {
dictCode?: string;
dictName?: string;
type?: number;
tenantId?: number;
}
@@ -0,0 +1,87 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { DictionaryData, DictionaryDataParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 分页查询字典数据
*/
export async function pageDictionaryData(params: DictionaryDataParam) {
const res = await request.get<ApiResult<PageResult<DictionaryData>>>(
SERVER_API_URL + '/system/dict-data/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询字典数据列表
*/
export async function listDictionaryData(params: DictionaryDataParam) {
const res = await request.get<ApiResult<DictionaryData[]>>(
SERVER_API_URL + '/system/dict-data',
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加字典数据
*/
export async function addDictionaryData(data: DictionaryData) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改字典数据
*/
export async function updateDictionaryData(data: DictionaryData) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除字典数据
*/
export async function removeDictionaryData(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除字典数据
*/
export async function removeDictionaryDataBatch(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dict-data/batch',
{ data }
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,33 @@
import { PageParam } from '@/api';
/**
* 字典数据
*/
export interface DictionaryData {
// 字典数据id
dictDataId?: number;
// 字典id
dictId?: number;
// 字典数据标识
dictDataCode?: string;
// 字典数据名称
dictDataName?: string;
// 排序号
sortNumber?: string;
// 备注
comments?: string;
// 创建时间
createTime?: string;
}
/**
* 字典数据搜索条件
*/
export interface DictionaryDataParam extends PageParam {
// 关键字
keywords?: string;
// 字典标识
dictCode?: string;
// 字典id
dictId?: number;
}
@@ -0,0 +1,61 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { Dictionary, DictionaryParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 查询字典列表
*/
export async function listDictionaries(params?: DictionaryParam) {
const res = await request.get<ApiResult<Dictionary[]>>(
SERVER_API_URL + '/system/dictionary',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加字典
*/
export async function addDictionary(data: Dictionary) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/dictionary',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改字典
*/
export async function updateDictionary(data: Dictionary) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/dictionary',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除字典
*/
export async function removeDictionary(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/dictionary/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,29 @@
/**
* 字典
*/
export interface Dictionary {
// 字典id
dictId?: number;
// 字典标识
dictCode?: string;
// 字典名称
dictName?: string;
// 排序号
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
type?: number;
tenantId?: number;
}
/**
* 字典搜索条件
*/
export interface DictionaryParam {
dictCode?: string;
dictName?: string;
type?: number;
tenantId?: number;
}
@@ -0,0 +1,171 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord, FileRecordParam } from './model';
import { FILE_SERVER, SERVER_API_URL } from '@/config/setting';
import { getCache } from '@/api/system/cache';
/**
* 上传文件
*/
export async function uploadFile(file: File) {
const formData = new FormData();
formData.append('file', file);
let url = FILE_SERVER + '/api/file/upload';
const uploadMethod = localStorage.getItem('uploadMethod');
if (!uploadMethod) {
getCache('setting:upload:').then((res) => {
localStorage.setItem('uploadMethod', res?.uploadMethod);
});
}
if (uploadMethod == 'oss') {
url = SERVER_API_URL + '/oss/upload';
}
if (uploadMethod == 'cos') {
url = '/cos/upload';
}
if (uploadMethod == 'kodo') {
url = '/kodo/upload';
}
const res = await request.post<ApiResult<FileRecord>>(url, formData);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 上传 base64 文件
* @param base64 文件数据
* @param fileName 文件名称
*/
export async function uploadBase64File(base64: string, fileName?: string) {
const formData = new FormData();
formData.append('base64', base64);
if (fileName) {
formData.append('fileName', fileName);
}
const res = await request.post<ApiResult<FileRecord>>(
SERVER_API_URL + '/file/upload/base64',
formData
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 上传证书
*/
export async function uploadCert(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<FileRecord>>(
SERVER_API_URL + '/file/upload',
formData
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询文件上传记录
*/
export async function pageFiles(params: FileRecordParam) {
const res = await request.get<ApiResult<PageResult<FileRecord>>>(
SERVER_API_URL + '/file/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询文件
*/
export async function getFile(id: number) {
const res = await request.get<ApiResult<FileRecord>>(
SERVER_API_URL + '/file/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除文件
*/
export async function removeFile(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/file/remove/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除文件
*/
export async function removeFiles(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/file/remove/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加文件
*/
export async function addFiles(data: FileRecord) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/file',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改文件
*/
export async function updateFiles(data: FileRecord) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/file',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 上传阿里云OSS
*/
export async function uploadOss(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<FileRecord>>(
SERVER_API_URL + '/oss/upload',
formData
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,47 @@
import { PageParam } from '@/api';
/**
* 文件上传记录
*/
export interface FileRecord {
// id
id: number;
// 文件名称
name?: string;
// 文件存储路径
path?: string;
// 文件大小
length?: number;
// 文件类型
contentType?: string;
// 上传人id
createUserId?: number;
// 上传时间
createTime?: string;
// 描述
comments?: string;
// 文件访问地址
url?: string;
// 文件缩略图访问地址
thumbnail?: string;
// 文件下载地址
downloadUrl?: string;
// 上传人账号
createUsername?: string;
// 上传人名称
createNickname?: string;
}
/**
* 文件上传记录查询参数
*/
export interface FileRecordParam extends PageParam {
name?: string;
path?: string;
contentType?: string;
createNickname?: string;
count?: number;
page?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,31 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { LoginRecord, LoginRecordParam } from './model';
/**
* 分页查询登录日志
*/
export async function pageLoginRecords(params: LoginRecordParam) {
const res = await request.get<ApiResult<PageResult<LoginRecord>>>(
'/system/login-record/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询登录日志列表
*/
export async function listLoginRecords(params?: LoginRecordParam) {
const res = await request.get<ApiResult<LoginRecord[]>>(
'/system/login-record',
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,40 @@
import { PageParam } from '@/api';
/**
* 登录日志
*/
export interface LoginRecord {
// 登录日志id
id: number;
// 用户账号
username: string;
// 操作系统
os: string;
// 设备名称
device: string;
// 浏览器类型
browser: string;
// ip地址
ip: string;
// 操作类型, 0登录成功, 1登录失败, 2退出登录, 3续签token
loginType: number;
// 备注
comments: string;
// 操作时间
createTime: string;
// 用户昵称
nickname: string;
}
/**
* 登录日志搜索条件
*/
export interface LoginRecordParam extends PageParam {
username?: string;
nickname?: string;
createTimeStart?: string;
createTimeEnd?: string;
loginType?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,31 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { OperationRecord, OperationRecordParam } from './model';
/**
* 分页查询操作日志
*/
export async function pageOperationRecords(params: OperationRecordParam) {
const res = await request.get<ApiResult<PageResult<OperationRecord>>>(
'/system/operation-record/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询操作日志列表
*/
export async function listOperationRecords(params?: OperationRecordParam) {
const res = await request.get<ApiResult<OperationRecord[]>>(
'/system/operation-record',
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,58 @@
import { PageParam } from '@/api';
/**
* 操作日志
*/
export interface OperationRecord {
// 操作日志id
id?: number;
// 用户id
userId?: number;
// 操作模块
module: string;
// 操作功能
description: string;
// 请求地址
url: string;
// 请求方式
requestMethod: string;
// 调用方法
method: string;
// 请求参数
params: string;
// 返回结果
result: string;
// 异常信息
error: string;
// 消耗时间, 单位毫秒
spendTime: number;
// 操作系统
os: string;
// 设备名称
device: string;
// 浏览器类型
browser: string;
// ip地址
ip: string;
// 状态, 0成功, 1异常
status: number;
// 操作时间
createTime: string;
// 用户昵称
nickname: string;
// 用户账号
username: string;
}
/**
* 操作日志搜索条件
*/
export interface OperationRecordParam extends PageParam {
username?: string;
module?: string;
createTimeStart?: string;
createTimeEnd?: string;
status?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,72 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Organization, OrganizationParam } from './model';
/**
* 分页查询机构
*/
export async function pageOrganizations(params: OrganizationParam) {
const res = await request.get<ApiResult<PageResult<Organization>>>(
'/system/organization/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询机构列表
*/
export async function listOrganizations(params?: OrganizationParam) {
const res = await request.get<ApiResult<Organization[]>>(
'/system/organization',
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加机构
*/
export async function addOrganization(data: Organization) {
const res = await request.post<ApiResult<unknown>>(
'/system/organization',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改机构
*/
export async function updateOrganization(data: Organization) {
const res = await request.put<ApiResult<unknown>>(
'/system/organization',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除机构
*/
export async function removeOrganization(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/system/organization/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,44 @@
import { PageParam } from '@/api';
/**
* 机构
*/
export interface Organization {
// 机构id
organizationId?: number;
// 上级id, 0是顶级
parentId?: number;
// 机构名称
organizationName?: string;
// 机构全称
organizationFullName?: string;
// 机构代码
organizationCode?: string;
// 机构类型(字典)
organizationType?: string;
// 排序号
sortNumber?: number;
// 备注
comments?: string;
// 创建时间
createTime?: string;
// 机构类型名称
organizationTypeName?: string;
//
key?: number;
//
value?: number;
//
title?: string;
children?: Organization[];
}
/**
* 机构搜索条件
*/
export interface OrganizationParam extends PageParam {
organizationName?: string;
parentId?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,122 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Payment, PaymentParam } from './model';
/**
* 分页查询商户
*/
export async function pagePayment(params: PaymentParam) {
const res = await request.get<ApiResult<PageResult<Payment>>>(
'/shop/payment/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询商户列表
*/
export async function listPayment(params?: PaymentParam) {
const res = await request.get<ApiResult<Payment[]>>('/shop/payment', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加商户
*/
export async function addPayment(data: Payment) {
const res = await request.post<ApiResult<unknown>>('/shop/payment', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改商户
*/
export async function updatePayment(data: Payment) {
const res = await request.put<ApiResult<unknown>>('/shop/payment', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除商户
*/
export async function removePayment(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/shop/payment/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除商户
*/
export async function removeBatchPayment(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/shop/payment/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>>('/shop/payment/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 alipay(data: PaymentParam) {
const res = await request.post<ApiResult<unknown>>(
'/shop/payment/alipay',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询商户列表
*/
export async function alipayQuery(orderId) {
const res = await request.get<ApiResult<unknown>>(
'/shop/payment/mp-alipay/query/' + orderId
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
/**
* 支付管理
*/
export interface Payment {
paymentId?: number;
name?: string;
appId?: string;
icon?: string;
signType?: string;
// 公钥
alipayPublicKey?: string;
privateKey?: string;
// 公钥证书
appCertPublicKey?: string;
alipayCertPublicKey?: string;
alipayRootCert?: string;
method?: string;
isMustTemplate?: number;
signMode?: string;
templateId?: number;
isEnable?: number;
isDefault?: number;
others?: string;
sortNumber?: number;
status?: number;
config?: string;
comments?: string;
createTime?: string;
tenantId?: number;
}
/**
* 支付管理搜索条件
*/
export interface PaymentParam extends PageParam {
paymentId?: number;
name?: string;
method?: string;
}
@@ -0,0 +1,10 @@
export interface Fail {
// ID
id?: number;
// 失败提示语
title?: string;
// 描述
comments?: string;
// 跳转地址
redirect?: string;
}
@@ -0,0 +1,10 @@
export interface Success {
// ID
id?: number;
// 提示名称
title?: string | '操作成功';
// 描述
comments?: string | '操作成功';
// 跳转地址
redirect?: string;
}
@@ -0,0 +1,104 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Role, RoleParam } from './model';
import type { Menu } from '../menu/model';
/**
* 分页查询角色
*/
export async function pageRoles(params: RoleParam) {
const res = await request.get<ApiResult<PageResult<Role>>>(
'/system/role/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询角色列表
*/
export async function listRoles(params?: RoleParam) {
const res = await request.get<ApiResult<Role[]>>('/system/role', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加角色
*/
export async function addRole(data: Role) {
const res = await request.post<ApiResult<unknown>>('/system/role', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改角色
*/
export async function updateRole(data: Role) {
const res = await request.put<ApiResult<unknown>>('/system/role', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除角色
*/
export async function removeRole(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/system/role/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除角色
*/
export async function removeRoles(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/system/role/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 获取角色分配的菜单
*/
export async function listRoleMenus(roleId?: number) {
const res = await request.get<ApiResult<Menu[]>>(
'/system/role-menu/' + roleId
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改角色菜单
*/
export async function updateRoleMenus(roleId?: number, data?: number[]) {
const res = await request.put<ApiResult<unknown>>(
'/system/role-menu/' + roleId,
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,26 @@
import type { PageParam } from '@/api';
/**
* 角色
*/
export interface Role {
// 角色id
roleId?: number;
// 角色标识
roleCode?: string;
// 角色名称
roleName?: string;
// 备注
comments?: string;
// 创建时间
createTime?: string;
}
/**
* 角色搜索条件
*/
export interface RoleParam extends PageParam {
roleName?: string;
roleCode?: string;
comments?: string;
}
@@ -0,0 +1,112 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Setting, SettingParam } from './model';
/**
* 分页查询设置
*/
export async function pageSetting(params: SettingParam) {
const res = await request.get<ApiResult<PageResult<Setting>>>(
'/system/setting/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询设置列表
*/
export async function listSetting(params?: SettingParam) {
const res = await request.get<ApiResult<Setting[]>>('/system/setting', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getSetting(id: number) {
const res = await request.get<ApiResult<Setting>>('/system/setting/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加设置
*/
export async function addSetting(data: Setting) {
const res = await request.post<ApiResult<unknown>>('/system/setting', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改设置
*/
export async function updateSetting(data: Setting) {
const res = await request.put<ApiResult<unknown>>('/system/setting', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除设置
*/
export async function removeSetting(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/system/setting/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除设置
*/
export async function removeBatchSetting(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/system/setting/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 检查IP是否存在
*/
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
'/system/setting/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,129 @@
import type { PageParam } from '@/api';
/**
* 系统设置
*/
export interface Setting {
// 公共字段
settingId?: number;
settingKey?: string;
content?: string;
comments?: string;
tenantName?: string;
tenantId?: string | null;
// 设置信息
siteName?: string;
fullName?: string;
tenantCode?: string;
domain?: string;
remarks?: string;
icp?: string;
copyright?: string;
keyword?: string;
phone?: string;
company?: string;
address?: string;
email?: string;
support?: string;
logo?: string;
// 注册设置
roleId?: number;
openWxAuth?: number;
openWxBindPhone?: number;
openWxofficialAuth?: number;
openWxofficialBindPhone?: number;
tokenExpireTime?: number;
// 短信设置
type?: number;
accessKeyId?: string;
accessKeySecret?: string;
sign?: string;
isNoticeUser?: string;
userTemplateId?: string;
merchantTemplateId?: string;
isNoticeMerchant?: string;
merchantMobiles?: string;
// 支付设置
payMethod?: string;
signMode?: string;
alipayAppId?: string;
signType?: string;
appCertPublicKey?: string;
alipayCertPublicKey?: string;
alipayRootCert?: string;
alipayPublicKey?: string;
privateKey?: string;
decryptKey?: string;
balanceIsEnable?: boolean;
wechatIsEnable?: boolean;
alipayIsEnable?: boolean;
wechatType?: string;
mchId?: number;
wechatAppId?: string;
wechatApiKey?: string;
apiclientCert?: string;
apiclientKey?: string;
spAppId?: string;
spMchId?: string;
spApiKey?: string;
spSubAppId?: string;
spSubMchId?: string;
spApiclientCert?: string;
spApiclientKey?: string;
merchantSerialNumber?: string;
// 微信公众号/小程序设置
appId?: string;
appSecret?: string;
wxOfficialAccount?: string;
originalId?: string;
// 企业微信参数
suiteId?: string;
secret?: string;
corpId?: string;
token?: string;
encodingAESKey?: string;
// 打印设置
isOpenPrinter?: string;
printerType?: string;
printerStatus?: string;
printerUser?: string;
printerUserKey?: string;
printerCode?: string;
printerKey?: string;
printerTimes?: string;
// chatGPT
chatKey?: string;
// 清除缓存
clearCache?: string;
// 主题
theme?: string;
// 云存储
uploadMethod?: string;
fileUrl?: string;
bucketName?: string;
bucketEndpoint?: string;
bucketDomain?: string;
// accessKeyId?: string; 引用上面的
// accessKeySecret?: string; 引用上面的
}
/**
* 系统设置搜索条件
*/
export interface SettingParam extends PageParam {
settingId?: number;
settingKey?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,79 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { UserFile, UserFileParam } from './model';
/**
* 分页查询用户文件
*/
export async function pageUserFiles(params: UserFileParam) {
const res = await request.get<ApiResult<PageResult<UserFile>>>(
'/system/user-file/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户文件列表
*/
export async function listUserFiles(params: UserFileParam) {
const res = await request.get<ApiResult<UserFile[]>>('/system/user-file', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加用户文件
*/
export async function addUserFile(data: UserFile) {
const res = await request.post<ApiResult<unknown>>('/system/user-file', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户文件
*/
export async function updateUserFile(data: UserFile) {
const res = await request.put<ApiResult<unknown>>('/system/user-file', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除用户文件
*/
export async function removeUserFile(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/system/user-file/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除用户文件
*/
export async function removeUserFiles(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/system/user-file/batch',
{ data }
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,41 @@
import { PageParam } from '@/api';
/**
* 用户文件
*/
export interface UserFile {
// id
id?: number;
// 用户id
userId?: number;
// 文件名称
name?: string;
// 是否是文件夹, 0否, 1是
isDirectory?: number;
// 上级id
parentId?: number;
// 文件存储路径
path?: string;
// 文件大小
length?: number;
// 文件类型
contentType?: string;
// 上传时间
createTime?: string;
// 文件访问地址
url?: string;
// 文件缩略图访问地址
thumbnail?: string;
// 文件下载地址
downloadUrl?: string;
}
/**
* 用户文件查询参数
*/
export interface UserFileParam extends PageParam {
name?: string;
parentId?: number;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,236 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { User, UserParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 分页查询用户
*/
export async function pageUsers(params: UserParam) {
const res = await request.get<ApiResult<PageResult<User>>>(
SERVER_API_URL + '/system/user/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户列表
*/
export async function listUsers(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/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 getStaffs(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/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 getCompanyList(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询用户
*/
export async function getUser(id: number) {
const res = await request.get<ApiResult<User>>(
SERVER_API_URL + '/system/user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加用户
*/
export async function addUser(data: User) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户
*/
export async function updateUser(data: User) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除用户
*/
export async function removeUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除用户
*/
export async function removeUsers(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateUserStatus(userId?: number, status?: number) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/status',
{
userId,
status
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改推荐状态
*/
export async function updateUserRecommend(form) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/recommend',
form
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 重置用户密码
*/
export async function updateUserPassword(userId?: number, password = '123456') {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/password',
{
userId,
password
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导入用户
*/
export async function importUsers(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 检查用户是否存在
*/
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/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 countUserBalance(params?: UserParam) {
const res = await request.get<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/countUserBalance',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,15 @@
import type { PageParam } from '@/api';
/**
* 用户
*/
export interface Count {
balance?: string;
}
/**
* 用户搜索条件
*/
export interface UserParam extends PageParam {
organizationId?: number;
}
@@ -0,0 +1,112 @@
import type { PageParam } from '@/api';
import type { Role } from '../../role/model';
import type { Company } from '@/api/system/company/model';
/**
* 用户
*/
export interface User {
// 账号类型
type?: number;
// 用户id
userId?: number;
// 账号
username?: string;
// 密码
password?: string;
// 昵称
nickname?: string;
// 别名
alias?: string;
// 头像
avatar?: string;
// 性别(字典)
sex?: string;
// 手机号
phone?: string;
// 邮箱
email?: string;
// 出生日期
birthday?: string;
age?: number;
// 详细地址
address?: string;
longitude?: string;
latitude?: string;
// 会员等级ID
gradeId?: number;
// 个人简介
introduction?: string;
// 机构id
organizationId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 性别名称
sexName?: string;
province?: string;
city?: string;
region?: string;
// 机构名称
organizationName?: string;
// 角色列表
roles?: Role[];
// 权限列表
authorities?: any[];
payTime?: string;
deliveryTime?: string;
receiptTime?: string;
// 创建时间
createTime?: string;
// 租户ID
tenantId?: number;
// 租户名称
tenantName?: string;
logo?: string;
companyInfo?: Company;
// 商户名称
merchantName?: string;
// 商户编号
merchantCode?: string;
code?: string;
//
remember?: boolean;
balance?: number;
points?: number;
payMoney?: number;
setting?: string;
realName?: string;
companyName?: string;
gradeName?: string;
idCard?: string;
comments?: string;
recommend?: number;
userProfile?: any;
system?: any;
}
/**
* 用户搜索条件
*/
export interface UserParam extends PageParam {
keywords?: string;
type?: any;
userId?: number;
username?: string;
nickname?: string;
realName?: string;
gradeId?: unknown;
gradeName?: string;
companyName?: string;
city?: string;
cityMate?: string;
sex?: string;
phone?: string;
status?: number;
organizationId?: number;
parentId?: number;
sexName?: string;
merchantCode?: string;
roleId?: string;
showProfile?: boolean;
isStaff?: boolean;
}
+12
View File
@@ -0,0 +1,12 @@
/**
* 标签页参数
*/
export interface TabsParam {
// 选项卡头显示文字
tab?: string;
// 对应 activeKey
key?: string;
// 记录数
count?: number;
userId?: number;
}
@@ -0,0 +1,103 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { UserBalanceLog, UserBalanceLogParam } from './model';
/**
* 分页查询余额明细
*/
export async function pageUserBalanceLog(params: UserBalanceLogParam) {
const res = await request.get<ApiResult<PageResult<UserBalanceLog>>>(
'/shop/user-balance-log/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询余额明细列表
*/
export async function listUserBalanceLog(params?: UserBalanceLogParam) {
const res = await request.get<ApiResult<UserBalanceLog[]>>(
'/shop/user-balance-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询余额明细
*/
export async function getUserBalanceLog(id: number) {
const res = await request.get<ApiResult<UserBalanceLog>>(
'/shop/user-balance-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加余额明细
*/
export async function addUserBalanceLog(data: UserBalanceLog) {
const res = await request.post<ApiResult<unknown>>(
'/shop/user-balance-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改余额明细
*/
export async function updateUserBalanceLog(data: UserBalanceLog) {
const res = await request.put<ApiResult<unknown>>(
'/shop/user-balance-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除余额明细
*/
export async function removeUserBalanceLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/user-balance-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除余额明细
*/
export async function removeUserBalanceLogs(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/user-balance-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,33 @@
import type { PageParam } from '@/api';
/**
* 余额明细
*/
export interface UserBalanceLog {
logId?: number;
userId?: number;
scene?: number;
money?: string;
describe?: string;
remark?: string;
sortNumber?: number;
MerchantCode?: string;
comments?: string;
status?: number;
deleted?: number;
tenantId?: number;
createTime?: string;
updateTime?: string;
}
/**
* 用户搜索条件
*/
export interface UserBalanceLogParam extends PageParam {
logId?: number;
userId?: number;
scene?: number;
createTimeStart?: string;
createTimeEnd?: string;
MerchantCode?: string;
}
@@ -0,0 +1,103 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { UserFeedback, UserFeedbackParam } from './model';
/**
* 分页查询意见反馈
*/
export async function pageUserFeedback(params: UserFeedbackParam) {
const res = await request.get<ApiResult<PageResult<UserFeedback>>>(
'/shop/user-feedback/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询意见反馈列表
*/
export async function listUserFeedback(params?: UserFeedbackParam) {
const res = await request.get<ApiResult<UserFeedback[]>>(
'/shop/user-feedback',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询意见反馈
*/
export async function getUserFeedback(id: number) {
const res = await request.get<ApiResult<UserFeedback>>(
'/shop/user-feedback/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加意见反馈
*/
export async function addUserFeedback(data: UserFeedback) {
const res = await request.post<ApiResult<unknown>>(
'/shop/user-feedback',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改意见反馈
*/
export async function updateUserFeedback(data: UserFeedback) {
const res = await request.put<ApiResult<unknown>>(
'/shop/user-feedback',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除意见反馈
*/
export async function removeUserFeedback(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/user-feedback/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除意见反馈
*/
export async function removeBatchUserFeedbacks(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/user-feedback/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,29 @@
import type { PageParam } from '@/api';
/**
* 意见反馈
*/
export interface UserFeedback {
id?: number;
userId?: number;
type?: string;
content?: string;
images?: string;
sortNumber?: number;
comments?: string;
status?: number;
deleted?: number;
tenantId?: number;
createTime?: string;
}
/**
* 用户搜索条件
*/
export interface UserFeedbackParam extends PageParam {
id?: number;
userId?: number;
type?: string;
createTimeStart?: string;
createTimeEnd?: string;
}
@@ -0,0 +1,99 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Grade, GradeParam } from '@/api/user/grade/model';
/**
* 分页查询仓库
*/
export async function pageGrade(params: GradeParam) {
const res = await request.get<ApiResult<PageResult<Grade>>>(
'/shop/user-grade/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询仓库列表
*/
export async function listGrade(params?: GradeParam) {
const res = await request.get<ApiResult<Grade[]>>('/shop/user-grade', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加仓库
*/
export async function addGrade(data: Grade) {
const res = await request.post<ApiResult<unknown>>('/shop/user-grade', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改仓库
*/
export async function updateGrade(data: Grade) {
const res = await request.put<ApiResult<unknown>>('/shop/user-grade', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 绑定仓库
*/
export async function bindGrade(data: Grade) {
const res = await request.put<ApiResult<unknown>>('/shop/user-grade/bind', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量添加设备
*/
export async function addBatchGrade(data: Grade[]) {
const res = await request.post<ApiResult<unknown>>('/shop/user-grade/batch', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除仓库
*/
export async function removeGrade(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/shop/user-grade/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除仓库
*/
export async function removeBatchGrade(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/shop/user-grade/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,28 @@
import type { PageParam } from '@/api';
export interface Grade {
gradeId?: number;
name?: string;
weight?: number;
upgrade?: string;
equity?: string;
commission?: string;
status?: number;
comments?: string;
sortNumber?: number;
userId?: number;
deleted?: number;
tenantId?: number;
createTime?: string;
updateTime?: string;
}
/**
* 搜索条件
*/
export interface GradeParam extends PageParam {
gradeId?: number;
name?: string;
status?: number;
keywords?: string;
}
@@ -0,0 +1,14 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { User } from './model';
/**
* 修改当前登录用户信息
*/
export async function authUser(data: User) {
const res = await request.put<ApiResult<unknown>>('/auth/user', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,62 @@
import type { PageResult } from '@/api';
import request from '@/utils/request';
import { ApiResult } from '@/api';
import { NnReadNum, Notice, NoticeParam } from '@/api/oa/notice/model';
/**
* 分页查询通知
*/
export async function pageNotices(params: NoticeParam) {
params.type = 'notice';
const res = await request.get<ApiResult<PageResult<Notice>>>(
'/oa/notice/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询私信
*/
export async function pageLetters(params: NoticeParam) {
params.type = 'letter';
const res = await request.get<ApiResult<PageResult<Notice>>>(
'/oa/notice/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询代办
*/
export async function pageTodos(params: NoticeParam) {
params.type = 'todo';
const res = await request.get<ApiResult<PageResult<Notice>>>(
'/oa/notice/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询未读数量
*/
export async function getUnReadNum() {
const res = await request.get<ApiResult<NnReadNum>>(
'/oa/notice/getUnReadNum'
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,13 @@
/**
* 消息
*/
export interface Message {
// 消息id
id?: number;
// 标题
title?: string;
// 时间
time?: string;
// 状态
status?: number;
}
@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 用户
*/
export interface User {
// 用户id
userId?: number;
// 账号
username?: string;
// 密码
password?: string;
// 昵称
nickname?: string;
// 头像
avatar?: string;
// 性别(字典)
sex?: string;
// 手机号
phone?: string;
// 邮箱
email?: string;
// 出生日期
birthday?: string;
// 手机号
address?: string;
// 个人简介
introduction?: string;
// 机构id
organizationId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 性别名称
sexName?: string;
// 机构名称
organizationName?: string;
// 创建时间
createTime?: string;
}
/**
* 用户搜索条件
*/
export interface UserParam extends PageParam {
userId?: number;
username?: string;
nickname?: string;
sex?: string;
phone?: string;
status?: number;
organizationId?: number;
sexName?: string;
// 商户编号
merchantCode?: string;
}
@@ -0,0 +1,108 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
RechargeOrder,
RechargeOrderParam
} from '@/api/user/recharge/export/model';
/**
* 分页查询充值计划
*/
export async function pageRechargeOrder(params: RechargeOrderParam) {
const res = await request.get<ApiResult<PageResult<RechargeOrder>>>(
'/shop/recharge-order/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询充值计划列表
*/
export async function listRechargeOrder(params?: RechargeOrderParam) {
const res = await request.get<ApiResult<RechargeOrder[]>>(
'/shop/recharge-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 addRechargeOrder(data: RechargeOrder) {
const res = await request.post<ApiResult<unknown>>(
'/shop/recharge-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改充值计划
*/
export async function updateRechargeOrder(data: RechargeOrder) {
const res = await request.put<ApiResult<unknown>>(
'/shop/recharge-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 绑定充值计划
*/
export async function bindRechargeOrder(data: RechargeOrder) {
const res = await request.put<ApiResult<unknown>>(
'/shop/recharge-order/bind',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除充值计划
*/
export async function removeRechargeOrder(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/recharge-order/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除充值计划
*/
export async function removeBatchRechargeOrder(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/recharge-order/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
export interface RechargeOrder {
orderId?: number;
organizationId?: number;
organizationName?: string;
nickname?: string;
payPrice?: number;
comments?: string;
createTime?: string;
tenantId?: number;
expendMoney?: string;
userId?: number;
}
/**
* 搜索条件
*/
export interface RechargeOrderParam extends PageParam {
exportId?: number;
organizationName?: string;
organizationId?: number;
dayTime?: string;
week?: number;
status?: number;
userId?: number;
createTimeStart?: string;
createTimeEnd?: string;
deliveryTimeStart?: string;
deliveryTimeEnd?: string;
}
@@ -0,0 +1,133 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { RechargeOrder, RechargeOrderParam } from './model/index';
/**
* 充值
*/
export async function recharge(data: RechargeOrder) {
const res = await request.post<ApiResult<unknown>>(
'/shop/recharge-order/recharge',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询充值记录
*/
export async function pageRechargeOrder(params: RechargeOrderParam) {
const res = await request.get<ApiResult<PageResult<RechargeOrder>>>(
'/shop/recharge-order/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询充值记录列表
*/
export async function listRechargeOrder(params?: RechargeOrderParam) {
const res = await request.get<ApiResult<RechargeOrder[]>>(
'/shop/recharge-order',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询充值记录
*/
export async function getRechargeOrder(id: number) {
const res = await request.get<ApiResult<RechargeOrder>>(
'/shop/recharge-order/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加充值记录
*/
export async function addRechargeOrder(data: RechargeOrder) {
const res = await request.post<ApiResult<unknown>>(
'/shop/recharge-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改充值记录
*/
export async function updateRechargeOrder(data: RechargeOrder) {
const res = await request.put<ApiResult<unknown>>(
'/shop/recharge-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除充值记录
*/
export async function removeRechargeOrder(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/recharge-order/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除充值记录
*/
export async function removeBatchRechargeOrder(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/recharge-order/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量充值操作
*/
export async function batchRecharge(data: RechargeOrder[]) {
const res = await request.post<ApiResult<unknown>>(
'/shop/recharge-order/batchRecharge',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
@@ -0,0 +1,34 @@
import type { PageParam } from '@/api';
/**
* 充值记录
*/
export interface RechargeOrder {
orderId?: number;
userId?: number;
scene?: number;
orderNo?: string;
money?: string;
payPrice?: number;
organizationId?: number;
rechargeType?: number;
describe?: string;
remark?: string;
sortNumber?: number;
MerchantCode?: string;
comments?: string;
status?: number;
deleted?: number;
tenantId?: number;
createTime?: string;
updateTime?: string;
balance?: number;
}
/**
* 用户搜索条件
*/
export interface RechargeOrderParam extends PageParam {
orderId?: number;
keywords?: string;
}

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