init api router

pull/1/MERGE
xingyuv 2023-03-18 21:42:23 +08:00
parent 34ac3bed8a
commit 4b2ef049f3
289 changed files with 3301 additions and 15987 deletions

49
src/api/base/login.ts Normal file
View File

@ -0,0 +1,49 @@
import { defHttp } from '@/utils/http/axios'
import { TentantNameVO } from './model/loginModel'
import { getRefreshToken } from '@/utils/auth'
enum Api {
Login = '/system/auth/login',
RefreshToken = '/system/auth/refresh-token?refreshToken=',
GetTenantIdByName = '/system/tenant/get-id-by-name?name=',
LoginOut = '/system/auth/logout',
GetUserInfo = '/system/auth/get-permission-info',
GetAsyncRoutes = '/system/auth/list-menus',
GetCaptcha = '/system/captcha/get',
CheckCaptcha = '/system/captcha/check'
}
// 刷新访问令牌
export const refreshToken = () => {
return defHttp.post({ url: Api.RefreshToken + getRefreshToken() })
}
// 使用租户名,获得租户编号
export const getTenantIdByName = (name: string) => {
return defHttp.get<TentantNameVO>({ url: Api.GetTenantIdByName + name })
}
// 登出
export const loginOut = () => {
return defHttp.delete({ url: Api.LoginOut })
}
// 获取用户权限信息
export const getUserInfo = () => {
return defHttp.get({ url: Api.GetUserInfo })
}
// 路由
export const getAsyncRoutes = () => {
return defHttp.get({ url: Api.GetAsyncRoutes })
}
// 获取验证图片 以及token
export const getCaptcha = (data) => {
return defHttp.post({ url: Api.GetCaptcha, data }, { isReturnNativeResponse: true })
}
// 滑动或者点选验证
export const checkCaptcha = (data) => {
return defHttp.post({ url: Api.CheckCaptcha, data }, { isReturnNativeResponse: true })
}

View File

@ -2,7 +2,7 @@ import { defHttp } from '@/utils/http/axios'
import { getMenuListResultModel } from './model/menuModel'
enum Api {
GetMenuList = '/getMenuList'
GetMenuList = '/system/auth/list-menus'
}
/**

View File

@ -0,0 +1,9 @@
export type UserLoginVO = {
username: string
password: string
captchaVerification: string
}
export type TentantNameVO = {
id: number
}

View File

@ -4,11 +4,7 @@
export interface LoginParams {
username: string
password: string
}
export interface RoleInfo {
roleName: string
value: string
captchaVerification: string
}
/**
@ -16,23 +12,23 @@ export interface RoleInfo {
*/
export interface LoginResultModel {
userId: string | number
token: string
role: RoleInfo
accessToken: string
refreshToken: string
expiresTime: number
}
/**
* @description: Get user information return value
*/
export interface GetUserInfoModel {
roles: RoleInfo[]
roles: string[]
permissions: string[]
// 用户id
userId: string | number
// 用户名
username: string
// 真实名字
realName: string
// 头像
avatar: string
// 介绍
desc?: string
user: userModel
}
export interface userModel {
id: string | number
avatar: string
nickname: string
}

124
src/api/base/profile.ts Normal file
View File

@ -0,0 +1,124 @@
import { defHttp } from '@/utils/http/axios'
import { UploadFileParams } from '@/types/axios'
export interface ProfileDept {
id: number
name: string
}
export interface ProfileRole {
id: number
name: string
}
export interface ProfilePost {
id: number
name: string
}
export interface SocialUser {
id: number
type: number
openid: string
token: string
rawTokenInfo: string
nickname: string
avatar: string
rawUserInfo: string
code: string
state: string
}
export interface ProfileVO {
id: number
username: string
nickname: string
dept: ProfileDept
roles: ProfileRole[]
posts: ProfilePost[]
socialUsers: SocialUser[]
email: string
mobile: string
sex: number
avatar: string
status: number
remark: string
loginIp: string
loginDate: Date
createTime: Date
}
export interface UserProfileUpdateReqVO {
nickname: string
email: string
mobile: string
sex: number
}
enum Api {
getUserProfileApi = '/system/user/profile/get',
putUserProfileApi = '/system/user/profile/update',
uploadAvatarApi = '/system/user/profile/update-avatar',
updateUserPwdApi = '/system/user/profile/update-password',
socialBindApi = '/system/social-user/bind',
socialUnbindApi = '/system/social-user/unbind'
}
/**
* @description: getUserProfileApi
*/
export function getUserProfileApi() {
return defHttp.get({ url: Api.getUserProfileApi })
}
/**
* @description: updateUserProfileApi
*/
export function updateUserProfileApi(data: UserProfileUpdateReqVO) {
return defHttp.put({ url: Api.putUserProfileApi, data })
}
// 用户密码重置
export const updateUserPwdApi = (oldPassword: string, newPassword: string) => {
return defHttp.put({
url: Api.updateUserPwdApi,
data: {
oldPassword: oldPassword,
newPassword: newPassword
}
})
}
// 用户头像上传
export const uploadAvatarApi = (data) => {
const params: UploadFileParams = {
file: data
}
return defHttp.uploadFile({ url: Api.uploadAvatarApi }, params)
}
// 社交绑定,使用 code 授权码
export const socialBind = (type, code, state) => {
return defHttp.post({
url: Api.socialBindApi,
data: {
type,
code,
state
}
})
}
// 取消社交绑定
export const socialUnbind = (type, openid) => {
return defHttp.delete({
url: Api.socialUnbindApi,
data: {
type,
openid
}
})
}
// 社交授权的跳转
export const socialAuthRedirect = (type, redirectUri) => {
return defHttp.get({
url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
})
}

View File

@ -4,9 +4,9 @@ import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userMod
import { ErrorMessageMode } from '@/types/axios'
enum Api {
Login = '/login',
Logout = '/logout',
GetUserInfo = '/getUserInfo',
Login = '/system/auth/login',
Logout = '/system/auth/logout',
GetUserInfo = '/system/auth/get-permission-info',
GetPermCode = '/getPermCode',
TestRetry = '/testRetry'
}
@ -14,7 +14,7 @@ enum Api {
/**
* @description: user login api
*/
export const loginApi = (params: LoginParams, mode: ErrorMessageMode = 'modal') => {
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
return defHttp.post<LoginResultModel>(
{
url: Api.Login,
@ -29,19 +29,19 @@ export const loginApi = (params: LoginParams, mode: ErrorMessageMode = 'modal')
/**
* @description: getUserInfo
*/
export const getUserInfo = () => {
export function getUserInfo() {
return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo }, { errorMessageMode: 'none' })
}
export const getPermCode = () => {
export function getPermCode() {
return defHttp.get<string[]>({ url: Api.GetPermCode })
}
export const doLogout = () => {
export function doLogout() {
return defHttp.get({ url: Api.Logout })
}
export const testRetry = () => {
export function testRetry() {
return defHttp.get(
{ url: Api.TestRetry },
{

32
src/api/bpm/form/index.ts Normal file
View File

@ -0,0 +1,32 @@
import { defHttp } from '@/utils/http/axios'
import { FormVO } from './types'
// 创建工作流的表单定义
export const createFormApi = (data: FormVO) => {
return defHttp.post({ url: '/bpm/form/create', data: data })
}
// 更新工作流的表单定义
export const updateFormApi = (data: FormVO) => {
return defHttp.put({ url: '/bpm/form/update', data: data })
}
// 删除工作流的表单定义
export const deleteFormApi = (id: number) => {
return defHttp.delete({ url: '/bpm/form/delete?id=' + id })
}
// 获得工作流的表单定义
export const getFormApi = (id: number) => {
return defHttp.get({ url: '/bpm/form/get?id=' + id })
}
// 获得工作流的表单定义分页
export const getFormPageApi = (params) => {
return defHttp.get({ url: '/bpm/form/page', params })
}
// 获得动态表单的精简列表
export const getSimpleFormsApi = async () => {
return await defHttp.get({ url: '/bpm/form/list-all-simple' })
}

View File

@ -0,0 +1,9 @@
export type FormVO = {
id: number
name: string
conf: string
fields: string[]
status: number
remark: string
createTime: string
}

View File

@ -0,0 +1,17 @@
import { defHttp } from '@/utils/http/axios'
import { LeaveVO } from './types'
// 创建请假申请
export const createLeaveApi = (data: LeaveVO) => {
return defHttp.post({ url: '/bpm/oa/leave/create', data: data })
}
// 获得请假申请
export const getLeaveApi = (id: number) => {
return defHttp.get({ url: '/bpm/oa/leave/get?id=' + id })
}
// 获得请假申请分页
export const getLeavePageApi = (params) => {
return defHttp.get({ url: '/bpm/oa/leave/page', params })
}

View File

@ -0,0 +1,10 @@
export type LeaveVO = {
id: number
result: number
type: number
reason: string
processInstanceId: string
startTime: string
endTime: string
createTime: string
}

View File

@ -0,0 +1,35 @@
import { defHttp } from '@/utils/http/axios'
import { ModelVO } from './types'
export const getModelPageApi = (params) => {
return defHttp.get({ url: '/bpm/model/page', params })
}
export const getModelApi = (id: number) => {
return defHttp.get({ url: '/bpm/model/get?id=' + id })
}
export const updateModelApi = (data: ModelVO) => {
return defHttp.put({ url: '/bpm/model/update', data: data })
}
// 任务状态修改
export const updateModelStateApi = (id: number, state: number) => {
const data = {
id: id,
state: state
}
return defHttp.put({ url: '/bpm/model/update-state', data: data })
}
export const createModelApi = (data: ModelVO) => {
return defHttp.post({ url: '/bpm/model/create', data: data })
}
export const deleteModelApi = (id: number) => {
return defHttp.delete({ url: '/bpm/model/delete?id=' + id })
}
export const deployModelApi = (id: number) => {
return defHttp.post({ url: '/bpm/model/deploy?id=' + id })
}

View File

@ -0,0 +1,23 @@
export type ProcessDefinitionVO = {
id: string
version: number
deploymentTIme: string
suspensionState: number
}
export type ModelVO = {
id: number
formName: string
key: string
name: string
description: string
category: string
formType: number
formId: number
formCustomCreatePath: string
formCustomViewPath: string
processDefinition: ProcessDefinitionVO
status: number
remark: string
createTime: string
}

View File

@ -0,0 +1,22 @@
import { defHttp } from '@/utils/http/axios'
import { ProcessInstanceVO } from './types'
export const getMyProcessInstancePageApi = (params) => {
return defHttp.get({ url: '/bpm/process-instance/my-page', params })
}
export const createProcessInstanceApi = (data: ProcessInstanceVO) => {
return defHttp.post({ url: '/bpm/process-instance/create', data: data })
}
export const cancelProcessInstanceApi = (id: number, reason: string) => {
const data = {
id: id,
reason: reason
}
return defHttp.delete({ url: '/bpm/process-instance/cancel', data: data })
}
export const getProcessInstanceApi = (id: number) => {
return defHttp.get({ url: '/bpm/process-instance/get?id=' + id })
}

View File

@ -0,0 +1,18 @@
export type task = {
id: string
name: string
}
export type ProcessInstanceVO = {
id: number
name: string
processDefinitionId: string
category: string
result: number
tasks: task[]
fields: string[]
status: number
remark: string
businessKey: string
createTime: string
endTime: string
}

34
src/api/bpm/task/index.ts Normal file
View File

@ -0,0 +1,34 @@
import { defHttp } from '@/utils/http/axios'
export const getTodoTaskPage = (params) => {
return defHttp.get({ url: '/bpm/task/todo-page', params })
}
export const getDoneTaskPage = (params) => {
return defHttp.get({ url: '/bpm/task/done-page', params })
}
export const completeTask = (data) => {
return defHttp.put({ url: '/bpm/task/complete', data })
}
export const approveTask = (data) => {
return defHttp.put({ url: '/bpm/task/approve', data })
}
export const rejectTask = (data) => {
return defHttp.put({ url: '/bpm/task/reject', data })
}
export const backTask = (data) => {
return defHttp.put({ url: '/bpm/task/back', data })
}
export const updateTaskAssignee = (data) => {
return defHttp.put({ url: '/bpm/task/update-assignee', data })
}
export const getTaskListByProcessInstanceId = (processInstanceId) => {
return defHttp.get({
url: '/bpm/task/list-by-process-instance-id?processInstanceId=' + processInstanceId
})
}

39
src/api/bpm/task/types.ts Normal file
View File

@ -0,0 +1,39 @@
export type FormVO = {
id: number
name: string
conf: string
fields: string[]
status: number
remark: string
createTime: string
}
export type TaskProcessVO = {
id: string
name: string
startUserId: number
startUserNickname: string
processDefinitionId: string
}
export type TaskTodoVO = {
id: string
name: string
claimTime: string
createTime: string
suspensionState: number
processInstance: TaskProcessVO
}
export type TaskDoneVO = {
id: string
name: string
claimTime: string
createTime: string
endTime: string
durationInMillis: number
suspensionState: number
result: number
reason: string
processInstance: TaskProcessVO
}

View File

@ -0,0 +1,20 @@
import { defHttp } from '@/utils/http/axios'
import { TaskAssignVO } from './types'
export const getTaskAssignRuleList = (params) => {
return defHttp.get({ url: '/bpm/task-assign-rule/list', params })
}
export const createTaskAssignRule = (data: TaskAssignVO) => {
return defHttp.post({
url: '/bpm/task-assign-rule/create',
data: data
})
}
export const updateTaskAssignRule = (data: TaskAssignVO) => {
return defHttp.put({
url: '/bpm/task-assign-rule/update',
data: data
})
}

View File

@ -0,0 +1,9 @@
export type TaskAssignVO = {
id: number
modelId: string
processDefinitionId: string
taskDefinitionKey: string
taskDefinitionName: string
options: string[]
type: number
}

View File

@ -0,0 +1,38 @@
import { defHttp } from '@/utils/http/axios'
import { UserGroupVO } from './types'
// 创建用户组
export const createUserGroupApi = (data: UserGroupVO) => {
return defHttp.post({
url: '/bpm/user-group/create',
data: data
})
}
// 更新用户组
export const updateUserGroupApi = (data: UserGroupVO) => {
return defHttp.put({
url: '/bpm/user-group/update',
data: data
})
}
// 删除用户组
export const deleteUserGroupApi = (id: number) => {
return defHttp.delete({ url: '/bpm/user-group/delete?id=' + id })
}
// 获得用户组
export const getUserGroupApi = (id: number) => {
return defHttp.get({ url: '/bpm/user-group/get?id=' + id })
}
// 获得用户组分页
export const getUserGroupPageApi = (params) => {
return defHttp.get({ url: '/bpm/user-group/page', params })
}
// 获取用户组精简信息列表
export const listSimpleUserGroupsApi = () => {
return defHttp.get({ url: '/bpm/user-group/list-all-simple' })
}

View File

@ -0,0 +1,9 @@
export type UserGroupVO = {
id: number
name: string
description: string
memberUserIds: number[]
status: number
remark: string
createTime: string
}

View File

@ -1,22 +0,0 @@
import { defHttp } from '@/utils/http/axios'
import { GetAccountInfoModel } from './model/accountModel'
enum Api {
ACCOUNT_INFO = '/account/getAccountInfo',
SESSION_TIMEOUT = '/user/sessionTimeout',
TOKEN_EXPIRED = '/user/tokenExpired'
}
// Get personal center-basic settings
export const accountInfoApi = () => {
return defHttp.get<GetAccountInfoModel>({ url: Api.ACCOUNT_INFO })
}
export const sessionTimeoutApi = () => {
return defHttp.post<void>({ url: Api.SESSION_TIMEOUT })
}
export const tokenExpiredApi = () => {
return defHttp.post<void>({ url: Api.TOKEN_EXPIRED })
}

View File

@ -1,10 +0,0 @@
import { defHttp } from '@/utils/http/axios'
import { AreaModel, AreaParams } from '@/api/demo/model/areaModel'
enum Api {
AREA_RECORD = '/cascader/getAreaRecord'
}
export const areaRecord = (data: AreaParams) => {
return defHttp.post<AreaModel>({ url: Api.AREA_RECORD, data })
}

View File

@ -1,14 +0,0 @@
import { defHttp } from '@/utils/http/axios'
enum Api {
// The address does not exist
Error = '/error'
}
/**
* @description: Trigger ajax error
*/
export const fireErrorApi = () => {
return defHttp.get({ url: Api.Error })
}

View File

@ -1,7 +0,0 @@
export interface GetAccountInfoModel {
email: string
name: string
introduction: string
phone: string
address: string
}

View File

@ -1,12 +0,0 @@
export interface AreaModel {
id: string
code: string
parentCode: string
name: string
levelType: number
[key: string]: string | number
}
export interface AreaParams {
parentCode: string
}

View File

@ -1,15 +0,0 @@
import { BasicFetchResult } from '@/api/model/baseModel'
export interface DemoOptionsItem {
label: string
value: string
}
export interface selectParams {
id: number | string
}
/**
* @description: Request list return value
*/
export type DemoOptionsGetResultModel = BasicFetchResult<DemoOptionsItem>

View File

@ -1,74 +0,0 @@
import { BasicPageParams, BasicFetchResult } from '@/api/model/baseModel'
export type AccountParams = BasicPageParams & {
account?: string
nickname?: string
}
export type RoleParams = {
roleName?: string
status?: string
}
export type RolePageParams = BasicPageParams & RoleParams
export type DeptParams = {
deptName?: string
status?: string
}
export type MenuParams = {
menuName?: string
status?: string
}
export interface AccountListItem {
id: string
account: string
email: string
nickname: string
role: number
createTime: string
remark: string
status: number
}
export interface DeptListItem {
id: string
orderNo: string
createTime: string
remark: string
status: number
}
export interface MenuListItem {
id: string
orderNo: string
createTime: string
status: number
icon: string
component: string
permission: string
}
export interface RoleListItem {
id: string
roleName: string
roleValue: string
status: number
orderNo: string
createTime: string
}
/**
* @description: Request list return value
*/
export type AccountListGetResultModel = BasicFetchResult<AccountListItem>
export type DeptListGetResultModel = BasicFetchResult<DeptListItem>
export type MenuListGetResultModel = BasicFetchResult<MenuListItem>
export type RolePageListGetResultModel = BasicFetchResult<RoleListItem>
export type RoleListGetResultModel = RoleListItem[]

View File

@ -1,20 +0,0 @@
import { BasicPageParams, BasicFetchResult } from '@/api/model/baseModel'
/**
* @description: Request list interface parameters
*/
export type DemoParams = BasicPageParams
export interface DemoListItem {
id: string
beginTime: string
endTime: string
address: string
name: string
no: number
status: number
}
/**
* @description: Request list return value
*/
export type DemoListGetResultModel = BasicFetchResult<DemoListItem>

View File

@ -1,12 +0,0 @@
import { defHttp } from '@/utils/http/axios'
import { DemoOptionsItem, selectParams } from './model/optionsModel'
enum Api {
OPTIONS_LIST = '/select/getDemoOptions'
}
/**
* @description: Get sample options value
*/
export const optionsListApi = (params?: selectParams) => {
return defHttp.get<DemoOptionsItem[]>({ url: Api.OPTIONS_LIST, params })
}

View File

@ -1,51 +0,0 @@
import {
AccountParams,
DeptListItem,
MenuParams,
RoleParams,
RolePageParams,
MenuListGetResultModel,
DeptListGetResultModel,
AccountListGetResultModel,
RolePageListGetResultModel,
RoleListGetResultModel
} from './model/systemModel'
import { defHttp } from '@/utils/http/axios'
enum Api {
AccountList = '/system/getAccountList',
IsAccountExist = '/system/accountExist',
DeptList = '/system/getDeptList',
setRoleStatus = '/system/setRoleStatus',
MenuList = '/system/getMenuList',
RolePageList = '/system/getRoleListByPage',
GetAllRoleList = '/system/getAllRoleList'
}
export const getAccountList = (params: AccountParams) => {
return defHttp.get<AccountListGetResultModel>({ url: Api.AccountList, params })
}
export const getDeptList = (params?: DeptListItem) => {
return defHttp.get<DeptListGetResultModel>({ url: Api.DeptList, params })
}
export const getMenuList = (params?: MenuParams) => {
return defHttp.get<MenuListGetResultModel>({ url: Api.MenuList, params })
}
export const getRoleListByPage = (params?: RolePageParams) => {
return defHttp.get<RolePageListGetResultModel>({ url: Api.RolePageList, params })
}
export const getAllRoleList = (params?: RoleParams) => {
return defHttp.get<RoleListGetResultModel>({ url: Api.GetAllRoleList, params })
}
export const setRoleStatus = (id: number, status: string) => {
return defHttp.post({ url: Api.setRoleStatus, params: { id, status } })
}
export const isAccountExist = (account: string) => {
return defHttp.post({ url: Api.IsAccountExist, params: { account } }, { errorMessageMode: 'none' })
}

View File

@ -1,21 +0,0 @@
import { defHttp } from '@/utils/http/axios'
import { DemoParams, DemoListGetResultModel } from './model/tableModel'
enum Api {
DEMO_LIST = '/table/getDemoList'
}
/**
* @description: Get sample list value
*/
export const demoListApi = (params: DemoParams) => {
return defHttp.get<DemoListGetResultModel>({
url: Api.DEMO_LIST,
params,
headers: {
// @ts-ignore
ignoreCancelToken: true
}
})
}

View File

@ -1,12 +0,0 @@
import { defHttp } from '@/utils/http/axios'
enum Api {
TREE_OPTIONS_LIST = '/tree/getDemoOptions'
}
/**
* @description: Get sample options value
*/
export const treeOptionsListApi = (params?: Recordable) => {
return defHttp.get<Recordable[]>({ url: Api.TREE_OPTIONS_LIST, params })
}

View File

@ -0,0 +1,50 @@
import { defHttp } from '@/utils/http/axios'
export interface ApiAccessLogVO {
id: number
traceId: string
userId: number
userType: number
applicationName: string
requestMethod: string
requestParams: string
requestUrl: string
userIp: string
userAgent: string
beginTime: Date
endTIme: Date
duration: number
resultCode: number
resultMsg: string
createTime: Date
}
export interface ApiAccessLogPageReqVO extends PageParam {
userId?: number
userType?: number
applicationName?: string
requestUrl?: string
beginTime?: Date[]
duration?: number
resultCode?: number
}
export interface ApiAccessLogExportReqVO {
userId?: number
userType?: number
applicationName?: string
requestUrl?: string
beginTime?: Date[]
duration?: number
resultCode?: number
}
// 查询列表API 访问日志
export const getApiAccessLogPageApi = (params: ApiAccessLogPageReqVO) => {
return defHttp.get({ url: '/infra/api-access-log/page', params })
}
// 导出API 访问日志
export const exportApiAccessLogApi = (params: ApiAccessLogExportReqVO) => {
return defHttp.download({ url: '/infra/api-access-log/export-excel', params })
}

View File

@ -0,0 +1,66 @@
import { defHttp } from '@/utils/http/axios'
export interface ApiErrorLogVO {
id: number
traceId: string
userId: number
userType: number
applicationName: string
requestMethod: string
requestParams: string
requestUrl: string
userIp: string
userAgent: string
exceptionTime: Date
exceptionName: string
exceptionMessage: string
exceptionRootCauseMessage: string
exceptionStackTrace: string
exceptionClassName: string
exceptionFileName: string
exceptionMethodName: string
exceptionLineNumber: number
processUserId: number
processStatus: number
processTime: Date
resultCode: number
createTime: Date
}
export interface ApiErrorLogPageReqVO extends PageParam {
userId?: number
userType?: number
applicationName?: string
requestUrl?: string
exceptionTime?: Date[]
processStatus: number
}
export interface ApiErrorLogExportReqVO {
userId?: number
userType?: number
applicationName?: string
requestUrl?: string
exceptionTime?: Date[]
processStatus: number
}
// 查询列表API 访问日志
export const getApiErrorLogPageApi = (params: ApiErrorLogPageReqVO) => {
return defHttp.get({ url: '/infra/api-error-log/page', params })
}
// 更新 API 错误日志的处理状态
export const updateApiErrorLogPageApi = (id: number, processStatus: number) => {
return defHttp.put({
url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus
})
}
// 导出API 访问日志
export const exportApiErrorLogApi = (params: ApiErrorLogExportReqVO) => {
return defHttp.download({
url: '/infra/api-error-log/export-excel',
params
})
}

View File

@ -0,0 +1,57 @@
import { defHttp } from '@/utils/http/axios'
import type { CodegenUpdateReqVO, CodegenCreateListReqVO } from './types'
// 查询列表代码生成表定义
export const getCodegenTablePageApi = (params) => {
return defHttp.get({ url: '/infra/codegen/table/page', params })
}
// 查询详情代码生成表定义
export const getCodegenTableApi = (id: number) => {
return defHttp.get({ url: '/infra/codegen/detail?tableId=' + id })
}
// 新增代码生成表定义
export const createCodegenTableApi = (data: CodegenCreateListReqVO) => {
return defHttp.post({ url: '/infra/codegen/create', data })
}
// 修改代码生成表定义
export const updateCodegenTableApi = (data: CodegenUpdateReqVO) => {
return defHttp.put({ url: '/infra/codegen/update', data })
}
// 基于数据库的表结构,同步数据库的表和字段定义
export const syncCodegenFromDBApi = (id: number) => {
return defHttp.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
}
// 基于 SQL 建表语句,同步数据库的表和字段定义
export const syncCodegenFromSQLApi = (id: number, sql: string) => {
return defHttp.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql })
}
// 预览生成代码
export const previewCodegenApi = (id: number) => {
return defHttp.get({ url: '/infra/codegen/preview?tableId=' + id })
}
// 下载生成代码
export const downloadCodegenApi = (id: number) => {
return defHttp.download({ url: '/infra/codegen/download?tableId=' + id })
}
// 获得表定义
export const getSchemaTableListApi = (params) => {
return defHttp.get({ url: '/infra/codegen/db/table/list', params })
}
// 基于数据库的表结构,创建代码生成器的表定义
export const createCodegenListApi = (data) => {
return defHttp.post({ url: '/infra/codegen/create-list', data })
}
// 删除代码生成表定义
export const deleteCodegenTableApi = (id: number) => {
return defHttp.delete({ url: '/infra/codegen/delete?tableId=' + id })
}

View File

@ -0,0 +1,61 @@
export type CodegenTableVO = {
id: number
tableId: number
isParentMenuIdValid: boolean
dataSourceConfigId: number
scene: number
tableName: string
tableComment: string
remark: string
moduleName: string
businessName: string
className: string
classComment: string
author: string
createTime: Date
updateTime: Date
templateType: number
parentMenuId: number
}
export type CodegenColumnVO = {
id: number
tableId: number
columnName: string
dataType: string
columnComment: string
nullable: number
primaryKey: number
autoIncrement: string
ordinalPosition: number
javaType: string
javaField: string
dictType: string
example: string
createOperation: number
updateOperation: number
listOperation: number
listOperationCondition: string
listOperationResult: number
htmlType: string
}
export type DatabaseTableVO = {
name: string
comment: string
}
export type CodegenDetailVO = {
table: CodegenTableVO
columns: CodegenColumnVO[]
}
export type CodegenPreviewVO = {
filePath: string
code: string
}
export type CodegenUpdateReqVO = {
table: CodegenTableVO
columns: CodegenColumnVO[]
}
export type CodegenCreateListReqVO = {
dataSourceConfigId: number
tableNames: string[]
}

View File

@ -0,0 +1,62 @@
import { defHttp } from '@/utils/http/axios'
export interface ConfigVO {
id: number
category: string
name: string
key: string
value: string
type: number
visible: boolean
remark: string
createTime: Date
}
export interface ConfigPageReqVO extends PageParam {
name?: string
key?: string
type?: number
createTime?: Date[]
}
export interface ConfigExportReqVO {
name?: string
key?: string
type?: number
createTime?: Date[]
}
// 查询参数列表
export const getConfigPageApi = (params: ConfigPageReqVO) => {
return defHttp.get({ url: '/infra/config/page', params })
}
// 查询参数详情
export const getConfigApi = (id: number) => {
return defHttp.get({ url: '/infra/config/get?id=' + id })
}
// 根据参数键名查询参数值
export const getConfigKeyApi = (configKey: string) => {
return defHttp.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
}
// 新增参数
export const createConfigApi = (data: ConfigVO) => {
return defHttp.post({ url: '/infra/config/create', data })
}
// 修改参数
export const updateConfigApi = (data: ConfigVO) => {
return defHttp.put({ url: '/infra/config/update', data })
}
// 删除参数
export const deleteConfigApi = (id: number) => {
return defHttp.delete({ url: '/infra/config/delete?id=' + id })
}
// 导出参数
export const exportConfigApi = (params: ConfigExportReqVO) => {
return defHttp.download({ url: '/infra/config/export', params })
}

View File

@ -0,0 +1,35 @@
import { defHttp } from '@/utils/http/axios'
export interface DataSourceConfigVO {
id: number
name: string
url: string
username: string
password: string
createTime: Date
}
// 查询数据源配置列表
export const getDataSourceConfigListApi = () => {
return defHttp.get({ url: '/infra/data-source-config/list' })
}
// 查询数据源配置详情
export const getDataSourceConfigApi = (id: number) => {
return defHttp.get({ url: '/infra/data-source-config/get?id=' + id })
}
// 新增数据源配置
export const createDataSourceConfigApi = (data: DataSourceConfigVO) => {
return defHttp.post({ url: '/infra/data-source-config/create', data })
}
// 修改数据源配置
export const updateDataSourceConfigApi = (data: DataSourceConfigVO) => {
return defHttp.put({ url: '/infra/data-source-config/update', data })
}
// 删除数据源配置
export const deleteDataSourceConfigApi = (id: number) => {
return defHttp.delete({ url: '/infra/data-source-config/delete?id=' + id })
}

View File

@ -0,0 +1,16 @@
import { defHttp } from '@/utils/http/axios'
// 导出Html
export const exportHtmlApi = () => {
return defHttp.download({ url: '/infra/db-doc/export-html' })
}
// 导出Word
export const exportWordApi = () => {
return defHttp.download({ url: '/infra/db-doc/export-word' })
}
// 导出Markdown
export const exportMarkdownApi = () => {
return defHttp.download({ url: '/infra/db-doc/export-markdown' })
}

View File

@ -0,0 +1,66 @@
import { defHttp } from '@/utils/http/axios'
export interface FileClientConfig {
basePath: string
host?: string
port?: number
username?: string
password?: string
mode?: string
endpoint?: string
bucket?: string
accessKey?: string
accessSecret?: string
domain: string
}
export interface FileConfigVO {
id: number
name: string
storage: number
master: boolean
visible: boolean
config: FileClientConfig
remark: string
createTime: Date
}
export interface FileConfigPageReqVO extends PageParam {
name?: string
storage?: number
createTime?: Date[]
}
// 查询文件配置列表
export const getFileConfigPageApi = (params: FileConfigPageReqVO) => {
return defHttp.get({ url: '/infra/file-config/page', params })
}
// 查询文件配置详情
export const getFileConfigApi = (id: number) => {
return defHttp.get({ url: '/infra/file-config/get?id=' + id })
}
// 更新文件配置为主配置
export const updateFileConfigMasterApi = (id: number) => {
return defHttp.put({ url: '/infra/file-config/update-master?id=' + id })
}
// 新增文件配置
export const createFileConfigApi = (data: FileConfigVO) => {
return defHttp.post({ url: '/infra/file-config/create', data })
}
// 修改文件配置
export const updateFileConfigApi = (data: FileConfigVO) => {
return defHttp.put({ url: '/infra/file-config/update', data })
}
// 删除文件配置
export const deleteFileConfigApi = (id: number) => {
return defHttp.delete({ url: '/infra/file-config/delete?id=' + id })
}
// 测试文件配置
export const testFileConfigApi = (id: number) => {
return defHttp.get({ url: '/infra/file-config/test?id=' + id })
}

View File

@ -0,0 +1,28 @@
import { defHttp } from '@/utils/http/axios'
export interface FileVO {
id: number
configId: number
path: string
name: string
url: string
size: string
type: string
createTime: Date
}
export interface FilePageReqVO extends PageParam {
path?: string
type?: string
createTime?: Date[]
}
// 查询文件列表
export const getFilePageApi = (params: FilePageReqVO) => {
return defHttp.get({ url: '/infra/file/page', params })
}
// 删除文件
export const deleteFileApi = (id: number) => {
return defHttp.delete({ url: '/infra/file/delete?id=' + id })
}

View File

@ -0,0 +1,75 @@
import { defHttp } from '@/utils/http/axios'
export interface JobVO {
id: number
name: string
status: number
handlerName: string
handlerParam: string
cronExpression: string
retryCount: number
retryInterval: number
monitorTimeout: number
createTime: Date
}
export interface JobPageReqVO extends PageParam {
name?: string
status?: number
handlerName?: string
}
export interface JobExportReqVO {
name?: string
status?: number
handlerName?: string
}
// 任务列表
export const getJobPageApi = (params: JobPageReqVO) => {
return defHttp.get({ url: '/infra/job/page', params })
}
// 任务详情
export const getJobApi = (id: number) => {
return defHttp.get({ url: '/infra/job/get?id=' + id })
}
// 新增任务
export const createJobApi = (data: JobVO) => {
return defHttp.post({ url: '/infra/job/create', data })
}
// 修改定时任务调度
export const updateJobApi = (data: JobVO) => {
return defHttp.put({ url: '/infra/job/update', data })
}
// 删除定时任务调度
export const deleteJobApi = (id: number) => {
return defHttp.delete({ url: '/infra/job/delete?id=' + id })
}
// 导出定时任务调度
export const exportJobApi = (params: JobExportReqVO) => {
return defHttp.download({ url: '/infra/job/export-excel', params })
}
// 任务状态修改
export const updateJobStatusApi = (id: number, status: number) => {
const params = {
id,
status
}
return defHttp.put({ url: '/infra/job/update-status', params })
}
// 定时任务立即执行一次
export const runJobApi = (id: number) => {
return defHttp.put({ url: '/infra/job/trigger?id=' + id })
}
// 获得定时任务的下 n 次执行时间
export const getJobNextTimesApi = (id: number) => {
return defHttp.get({ url: '/infra/job/get_next_times?id=' + id })
}

View File

@ -0,0 +1,49 @@
import { defHttp } from '@/utils/http/axios'
export interface JobLogVO {
id: number
jobId: number
handlerName: string
handlerParam: string
cronExpression: string
executeIndex: string
beginTime: string
endTime: string
duration: string
status: number
createTime: string
}
export interface JobLogPageReqVO extends PageParam {
jobId?: number
handlerName?: string
beginTime?: string
endTime?: string
status?: number
}
export interface JobLogExportReqVO {
jobId?: number
handlerName?: string
beginTime?: string
endTime?: string
status?: number
}
// 任务日志列表
export const getJobLogPageApi = (params: JobLogPageReqVO) => {
return defHttp.get({ url: '/infra/job-log/page', params })
}
// 任务日志详情
export const getJobLogApi = (id: number) => {
return defHttp.get({ url: '/infra/job-log/get?id=' + id })
}
// 导出定时任务日志
export const exportJobLogApi = (params: JobLogExportReqVO) => {
return defHttp.download({
url: '/infra/job-log/export-excel',
params
})
}

View File

@ -0,0 +1,41 @@
import { defHttp } from '@/utils/http/axios'
/**
* redis
*/
export const getCacheApi = () => {
return defHttp.get({ url: '/infra/redis/get-monitor-info' })
}
// 获取模块
export const getKeyDefineListApi = () => {
return defHttp.get({ url: '/infra/redis/get-key-define-list' })
}
/**
* redis key
*/
export const getKeyListApi = (keyTemplate: string) => {
return defHttp.get({
url: '/infra/redis/get-key-list',
params: {
keyTemplate
}
})
}
// 获取缓存内容
export const getKeyValueApi = (key: string) => {
return defHttp.get({ url: '/infra/redis/get-key-value?key=' + key })
}
// 根据键名删除缓存
export const deleteKeyApi = (key: string) => {
return defHttp.delete({ url: '/infra/redis/delete-key?key=' + key })
}
export const deleteKeysApi = (keyTemplate: string) => {
return defHttp.delete({
url: '/infra/redis/delete-keys?',
params: {
keyTemplate
}
})
}

View File

@ -0,0 +1,185 @@
export interface RedisMonitorInfoVO {
info: RedisInfoVO
dbSize: number
commandStats: RedisCommandStatsVO[]
}
export interface RedisInfoVO {
io_threaded_reads_processed: string
tracking_clients: string
uptime_in_seconds: string
cluster_connections: string
current_cow_size: string
maxmemory_human: string
aof_last_cow_size: string
master_replid2: string
mem_replication_backlog: string
aof_rewrite_scheduled: string
total_net_input_bytes: string
rss_overhead_ratio: string
hz: string
current_cow_size_age: string
redis_build_id: string
errorstat_BUSYGROUP: string
aof_last_bgrewrite_status: string
multiplexing_api: string
client_recent_max_output_buffer: string
allocator_resident: string
mem_fragmentation_bytes: string
aof_current_size: string
repl_backlog_first_byte_offset: string
tracking_total_prefixes: string
redis_mode: string
redis_git_dirty: string
aof_delayed_fsync: string
allocator_rss_bytes: string
repl_backlog_histlen: string
io_threads_active: string
rss_overhead_bytes: string
total_system_memory: string
loading: string
evicted_keys: string
maxclients: string
cluster_enabled: string
redis_version: string
repl_backlog_active: string
mem_aof_buffer: string
allocator_frag_bytes: string
io_threaded_writes_processed: string
instantaneous_ops_per_sec: string
used_memory_human: string
total_error_replies: string
role: string
maxmemory: string
used_memory_lua: string
rdb_current_bgsave_time_sec: string
used_memory_startup: string
used_cpu_sys_main_thread: string
lazyfree_pending_objects: string
aof_pending_bio_fsync: string
used_memory_dataset_perc: string
allocator_frag_ratio: string
arch_bits: string
used_cpu_user_main_thread: string
mem_clients_normal: string
expired_time_cap_reached_count: string
unexpected_error_replies: string
mem_fragmentation_ratio: string
aof_last_rewrite_time_sec: string
master_replid: string
aof_rewrite_in_progress: string
lru_clock: string
maxmemory_policy: string
run_id: string
latest_fork_usec: string
tracking_total_items: string
total_commands_processed: string
expired_keys: string
errorstat_ERR: string
used_memory: string
module_fork_in_progress: string
errorstat_WRONGPASS: string
aof_buffer_length: string
dump_payload_sanitizations: string
mem_clients_slaves: string
keyspace_misses: string
server_time_usec: string
executable: string
lazyfreed_objects: string
db0: string
used_memory_peak_human: string
keyspace_hits: string
rdb_last_cow_size: string
aof_pending_rewrite: string
used_memory_overhead: string
active_defrag_hits: string
tcp_port: string
uptime_in_days: string
used_memory_peak_perc: string
current_save_keys_processed: string
blocked_clients: string
total_reads_processed: string
expire_cycle_cpu_milliseconds: string
sync_partial_err: string
used_memory_scripts_human: string
aof_current_rewrite_time_sec: string
aof_enabled: string
process_supervised: string
master_repl_offset: string
used_memory_dataset: string
used_cpu_user: string
rdb_last_bgsave_status: string
tracking_total_keys: string
atomicvar_api: string
allocator_rss_ratio: string
client_recent_max_input_buffer: string
clients_in_timeout_table: string
aof_last_write_status: string
mem_allocator: string
used_memory_scripts: string
used_memory_peak: string
process_id: string
master_failover_state: string
errorstat_NOAUTH: string
used_cpu_sys: string
repl_backlog_size: string
connected_slaves: string
current_save_keys_total: string
gcc_version: string
total_system_memory_human: string
sync_full: string
connected_clients: string
module_fork_last_cow_size: string
total_writes_processed: string
allocator_active: string
total_net_output_bytes: string
pubsub_channels: string
current_fork_perc: string
active_defrag_key_hits: string
rdb_changes_since_last_save: string
instantaneous_input_kbps: string
used_memory_rss_human: string
configured_hz: string
expired_stale_perc: string
active_defrag_misses: string
used_cpu_sys_children: string
number_of_cached_scripts: string
sync_partial_ok: string
used_memory_lua_human: string
rdb_last_save_time: string
pubsub_patterns: string
slave_expires_tracked_keys: string
redis_git_sha1: string
used_memory_rss: string
rdb_last_bgsave_time_sec: string
os: string
mem_not_counted_for_evict: string
active_defrag_running: string
rejected_connections: string
aof_rewrite_buffer_length: string
total_forks: string
active_defrag_key_misses: string
allocator_allocated: string
aof_base_size: string
instantaneous_output_kbps: string
second_repl_offset: string
rdb_bgsave_in_progress: string
used_cpu_user_children: string
total_connections_received: string
migrate_cached_sockets: string
}
export interface RedisCommandStatsVO {
command: string
calls: number
usec: number
}
export interface RedisKeyInfo {
keyTemplate: string
keyType: string
valueType: string
timeoutType: number
timeout: number
memo: string
}

78
src/api/pay/app/index.ts Normal file
View File

@ -0,0 +1,78 @@
import { defHttp } from '@/utils/http/axios'
export interface AppVO {
id: number
name: string
status: number
remark: string
payNotifyUrl: string
refundNotifyUrl: string
merchantId: number
merchantName: string
createTime: Date
}
export interface AppPageReqVO extends PageParam {
name?: string
status?: number
remark?: string
payNotifyUrl?: string
refundNotifyUrl?: string
merchantName?: string
createTime?: Date[]
}
export interface AppExportReqVO {
name?: string
status?: number
remark?: string
payNotifyUrl?: string
refundNotifyUrl?: string
merchantName?: string
createTime?: Date[]
}
export interface AppUpdateStatusReqVO {
id: number
status: number
}
// 查询列表支付应用
export const getAppPageApi = (params: AppPageReqVO) => {
return defHttp.get({ url: '/pay/app/page', params })
}
// 查询详情支付应用
export const getAppApi = (id: number) => {
return defHttp.get({ url: '/pay/app/get?id=' + id })
}
// 新增支付应用
export const createAppApi = (data: AppVO) => {
return defHttp.post({ url: '/pay/app/create', data })
}
// 修改支付应用
export const updateAppApi = (data: AppVO) => {
return defHttp.put({ url: '/pay/app/update', data })
}
// 支付应用信息状态修改
export const changeAppStatusApi = (data: AppUpdateStatusReqVO) => {
return defHttp.put({ url: '/pay/app/update-status', data: data })
}
// 删除支付应用
export const deleteAppApi = (id: number) => {
return defHttp.delete({ url: '/pay/app/delete?id=' + id })
}
// 导出支付应用
export const exportAppApi = (params: AppExportReqVO) => {
return defHttp.download({ url: '/pay/app/export-excel', params })
}
// 根据商ID称搜索应用列表
export const getAppListByMerchantIdApi = (merchantId: number) => {
return defHttp.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } })
}

View File

@ -0,0 +1,70 @@
import { defHttp } from '@/utils/http/axios'
export interface ChannelVO {
id: number
code: string
config: string
status: number
remark: string
feeRate: number
merchantId: number
appId: number
createTime: Date
}
export interface ChannelPageReqVO extends PageParam {
code?: string
status?: number
remark?: string
feeRate?: number
merchantId?: number
appId?: number
config?: string
createTime?: Date[]
}
export interface ChannelExportReqVO {
code?: string
status?: number
remark?: string
feeRate?: number
merchantId?: number
appId?: number
config?: string
createTime?: Date[]
}
// 查询列表支付渠道
export const getChannelPageApi = (params: ChannelPageReqVO) => {
return defHttp.get({ url: '/pay/channel/page', params })
}
// 查询详情支付渠道
export const getChannelApi = (merchantId: number, appId: string, code: string) => {
const params = {
merchantId: merchantId,
appId: appId,
code: code
}
return defHttp.get({ url: '/pay/channel/get-channel', params: params })
}
// 新增支付渠道
export const createChannelApi = (data: ChannelVO) => {
return defHttp.post({ url: '/pay/channel/create', data })
}
// 修改支付渠道
export const updateChannelApi = (data: ChannelVO) => {
return defHttp.put({ url: '/pay/channel/update', data })
}
// 删除支付渠道
export const deleteChannelApi = (id: number) => {
return defHttp.delete({ url: '/pay/channel/delete?id=' + id })
}
// 导出支付渠道
export const exportChannelApi = (params: ChannelExportReqVO) => {
return defHttp.download({ url: '/pay/channel/export-excel', params })
}

View File

@ -0,0 +1,77 @@
import { defHttp } from '@/utils/http/axios'
export interface MerchantVO {
id: number
no: string
name: string
shortName: string
status: number
remark: string
createTime: Date
}
export interface MerchantPageReqVO extends PageParam {
no?: string
name?: string
shortName?: string
status?: number
remark?: string
createTime?: Date[]
}
export interface MerchantExportReqVO {
no?: string
name?: string
shortName?: string
status?: number
remark?: string
createTime?: Date[]
}
// 查询列表支付商户
export const getMerchantPageApi = (params: MerchantPageReqVO) => {
return defHttp.get({ url: '/pay/merchant/page', params })
}
// 查询详情支付商户
export const getMerchantApi = (id: number) => {
return defHttp.get({ url: '/pay/merchant/get?id=' + id })
}
// 根据商户名称搜索商户列表
export const getMerchantListByNameApi = (name: string) => {
return defHttp.get({
url: '/pay/merchant/list-by-name?id=',
params: {
name: name
}
})
}
// 新增支付商户
export const createMerchantApi = (data: MerchantVO) => {
return defHttp.post({ url: '/pay/merchant/create', data })
}
// 修改支付商户
export const updateMerchantApi = (data: MerchantVO) => {
return defHttp.put({ url: '/pay/merchant/update', data })
}
// 删除支付商户
export const deleteMerchantApi = (id: number) => {
return defHttp.delete({ url: '/pay/merchant/delete?id=' + id })
}
// 导出支付商户
export const exportMerchantApi = (params: MerchantExportReqVO) => {
return defHttp.download({ url: '/pay/merchant/export-excel', params })
}
// 支付商户状态修改
export const changeMerchantStatusApi = (id: number, status: number) => {
const data = {
id,
status
}
return defHttp.put({ url: '/pay/merchant/update-status', data: data })
}

109
src/api/pay/order/index.ts Normal file
View File

@ -0,0 +1,109 @@
import { defHttp } from '@/utils/http/axios'
export interface OrderVO {
id: number
merchantId: number
appId: number
channelId: number
channelCode: string
merchantOrderId: string
subject: string
body: string
notifyUrl: string
notifyStatus: number
amount: number
channelFeeRate: number
channelFeeAmount: number
status: number
userIp: string
expireTime: Date
successTime: Date
notifyTime: Date
successExtensionId: number
refundStatus: number
refundTimes: number
refundAmount: number
channelUserId: string
channelOrderNo: string
createTime: Date
}
export interface OrderPageReqVO extends PageParam {
merchantId?: number
appId?: number
channelId?: number
channelCode?: string
merchantOrderId?: string
subject?: string
body?: string
notifyUrl?: string
notifyStatus?: number
amount?: number
channelFeeRate?: number
channelFeeAmount?: number
status?: number
expireTime?: Date[]
successTime?: Date[]
notifyTime?: Date[]
successExtensionId?: number
refundStatus?: number
refundTimes?: number
channelUserId?: string
channelOrderNo?: string
createTime?: Date[]
}
export interface OrderExportReqVO {
merchantId?: number
appId?: number
channelId?: number
channelCode?: string
merchantOrderId?: string
subject?: string
body?: string
notifyUrl?: string
notifyStatus?: number
amount?: number
channelFeeRate?: number
channelFeeAmount?: number
status?: number
expireTime?: Date[]
successTime?: Date[]
notifyTime?: Date[]
successExtensionId?: number
refundStatus?: number
refundTimes?: number
channelUserId?: string
channelOrderNo?: string
createTime?: Date[]
}
// 查询列表支付订单
export const getOrderPageApi = async (params: OrderPageReqVO) => {
return defHttp.get({ url: '/pay/order/page', params })
}
// 查询详情支付订单
export const getOrderApi = async (id: number) => {
return defHttp.get({ url: '/pay/order/get?id=' + id })
}
// 新增支付订单
export const createOrderApi = async (data: OrderVO) => {
return defHttp.post({ url: '/pay/order/create', data })
}
// 修改支付订单
export const updateOrderApi = async (data: OrderVO) => {
return defHttp.put({ url: '/pay/order/update', data })
}
// 删除支付订单
export const deleteOrderApi = async (id: number) => {
return defHttp.delete({ url: '/pay/order/delete?id=' + id })
}
// 导出支付订单
export const exportOrderApi = async (params: OrderExportReqVO) => {
return defHttp.download({ url: '/pay/order/export-excel', params })
}

116
src/api/pay/refund/index.ts Normal file
View File

@ -0,0 +1,116 @@
import { defHttp } from '@/utils/http/axios'
export interface RefundVO {
id: number
merchantId: number
appId: number
channelId: number
channelCode: string
orderId: string
tradeNo: string
merchantOrderId: string
merchantRefundNo: string
notifyUrl: string
notifyStatus: number
status: number
type: number
payAmount: number
refundAmount: number
reason: string
userIp: string
channelOrderNo: string
channelRefundNo: string
channelErrorCode: string
channelErrorMsg: string
channelExtras: string
expireTime: Date
successTime: Date
notifyTime: Date
createTime: Date
}
export interface RefundPageReqVO extends PageParam {
merchantId?: number
appId?: number
channelId?: number
channelCode?: string
orderId?: string
tradeNo?: string
merchantOrderId?: string
merchantRefundNo?: string
notifyUrl?: string
notifyStatus?: number
status?: number
type?: number
payAmount?: number
refundAmount?: number
reason?: string
userIp?: string
channelOrderNo?: string
channelRefundNo?: string
channelErrorCode?: string
channelErrorMsg?: string
channelExtras?: string
expireTime?: Date[]
successTime?: Date[]
notifyTime?: Date[]
createTime?: Date[]
}
export interface PayRefundExportReqVO {
merchantId?: number
appId?: number
channelId?: number
channelCode?: string
orderId?: string
tradeNo?: string
merchantOrderId?: string
merchantRefundNo?: string
notifyUrl?: string
notifyStatus?: number
status?: number
type?: number
payAmount?: number
refundAmount?: number
reason?: string
userIp?: string
channelOrderNo?: string
channelRefundNo?: string
channelErrorCode?: string
channelErrorMsg?: string
channelExtras?: string
expireTime?: Date[]
successTime?: Date[]
notifyTime?: Date[]
createTime?: Date[]
}
// 查询列表退款订单
export const getRefundPageApi = (params: RefundPageReqVO) => {
return defHttp.get({ url: '/pay/refund/page', params })
}
// 查询详情退款订单
export const getRefundApi = (id: number) => {
return defHttp.get({ url: '/pay/refund/get?id=' + id })
}
// 新增退款订单
export const createRefundApi = (data: RefundVO) => {
return defHttp.post({ url: '/pay/refund/create', data })
}
// 修改退款订单
export const updateRefundApi = (data: RefundVO) => {
return defHttp.put({ url: '/pay/refund/update', data })
}
// 删除退款订单
export const deleteRefundApi = (id: number) => {
return defHttp.delete({ url: '/pay/refund/delete?id=' + id })
}
// 导出退款订单
export const exportRefundApi = (params: PayRefundExportReqVO) => {
return defHttp.download({ url: '/pay/refund/export-excel', params })
}

View File

@ -0,0 +1,48 @@
import { defHttp } from '@/utils/http/axios'
export interface DeptVO {
id?: number
name: string
parentId: number
status: number
sort: number
leaderUserId: number
phone: string
email: string
createTime: Date
}
export interface DeptPageReqVO {
name?: string
status?: number
}
// 查询部门(精简)列表
export const listSimpleDeptApi = async () => {
return defHttp.get({ url: '/system/dept/list-all-simple' })
}
// 查询部门列表
export const getDeptPageApi = async (params: DeptPageReqVO) => {
return defHttp.get({ url: '/system/dept/list', params })
}
// 查询部门详情
export const getDeptApi = async (id: number) => {
return defHttp.get({ url: '/system/dept/get?id=' + id })
}
// 新增部门
export const createDeptApi = async (data: DeptVO) => {
return defHttp.post({ url: '/system/dept/create', data: data })
}
// 修改部门
export const updateDeptApi = async (params: DeptVO) => {
return defHttp.put({ url: '/system/dept/update', data: params })
}
// 删除部门
export const deleteDeptApi = async (id: number) => {
return defHttp.delete({ url: '/system/dept/delete?id=' + id })
}

View File

@ -0,0 +1,36 @@
import { defHttp } from '@/utils/http/axios'
import type { DictDataVO, DictDataPageReqVO, DictDataExportReqVO } from './types'
// 查询字典数据(精简)列表
export const listSimpleDictDataApi = () => {
return defHttp.get({ url: '/system/dict-data/list-all-simple' })
}
// 查询字典数据列表
export const getDictDataPageApi = (params: DictDataPageReqVO) => {
return defHttp.get({ url: '/system/dict-data/page', params })
}
// 查询字典数据详情
export const getDictDataApi = (id: number) => {
return defHttp.get({ url: '/system/dict-data/get?id=' + id })
}
// 新增字典数据
export const createDictDataApi = (data: DictDataVO) => {
return defHttp.post({ url: '/system/dict-data/create', data })
}
// 修改字典数据
export const updateDictDataApi = (data: DictDataVO) => {
return defHttp.put({ url: '/system/dict-data/update', data })
}
// 删除字典数据
export const deleteDictDataApi = (id: number) => {
return defHttp.delete({ url: '/system/dict-data/delete?id=' + id })
}
// 导出字典类型数据
export const exportDictDataApi = (params: DictDataExportReqVO) => {
return defHttp.get({ url: '/system/dict-data/export', params })
}

View File

@ -0,0 +1,36 @@
import { defHttp } from '@/utils/http/axios'
import type { DictTypeVO, DictTypePageReqVO, DictTypeExportReqVO } from './types'
// 查询字典(精简)列表
export const listSimpleDictTypeApi = () => {
return defHttp.get({ url: '/system/dict-type/list-all-simple' })
}
// 查询字典列表
export const getDictTypePageApi = (params: DictTypePageReqVO) => {
return defHttp.get({ url: '/system/dict-type/page', params })
}
// 查询字典详情
export const getDictTypeApi = (id: number) => {
return defHttp.get({ url: '/system/dict-type/get?id=' + id })
}
// 新增字典
export const createDictTypeApi = (data: DictTypeVO) => {
return defHttp.post({ url: '/system/dict-type/create', data })
}
// 修改字典
export const updateDictTypeApi = (data: DictTypeVO) => {
return defHttp.put({ url: '/system/dict-type/update', data })
}
// 删除字典
export const deleteDictTypeApi = (id: number) => {
return defHttp.delete({ url: '/system/dict-type/delete?id=' + id })
}
// 导出字典类型
export const exportDictTypeApi = (params: DictTypeExportReqVO) => {
return defHttp.get({ url: '/system/dict-type/export', params })
}

View File

@ -0,0 +1,46 @@
export type DictTypeVO = {
id: number
name: string
type: string
status: number
remark: string
createTime: Date
}
export type DictTypePageReqVO = {
name: string
type: string
status: number
createTime: Date[]
}
export type DictTypeExportReqVO = {
name: string
type: string
status: number
createTime: Date[]
}
export type DictDataVO = {
id: number
sort: number
label: string
value: string
dictType: string
status: number
colorType: string
cssClass: string
remark: string
createTime: Date
}
export type DictDataPageReqVO = {
label: string
dictType: string
status: number
}
export type DictDataExportReqVO = {
label: string
dictType: string
status: number
}

View File

@ -0,0 +1,48 @@
import { defHttp } from '@/utils/http/axios'
export interface ErrorCodeVO {
id: number
type: number
applicationName: string
code: number
message: string
memo: string
createTime: Date
}
export interface ErrorCodePageReqVO extends PageParam {
type?: number
applicationName?: string
code?: number
message?: string
createTime?: Date[]
}
// 查询错误码列表
export const getErrorCodePageApi = (params: ErrorCodePageReqVO) => {
return defHttp.get({ url: '/system/error-code/page', params })
}
// 查询错误码详情
export const getErrorCodeApi = (id: number) => {
return defHttp.get({ url: '/system/error-code/get?id=' + id })
}
// 新增错误码
export const createErrorCodeApi = (data: ErrorCodeVO) => {
return defHttp.post({ url: '/system/error-code/create', data })
}
// 修改错误码
export const updateErrorCodeApi = (data: ErrorCodeVO) => {
return defHttp.put({ url: '/system/error-code/update', data })
}
// 删除错误码
export const deleteErrorCodeApi = (id: number) => {
return defHttp.delete({ url: '/system/error-code/delete?id=' + id })
}
// 导出错误码
export const excelErrorCodeApi = (params: ErrorCodePageReqVO) => {
return defHttp.download({ url: '/system/error-code/export-excel', params })
}

View File

@ -0,0 +1,30 @@
import { defHttp } from '@/utils/http/axios'
export interface LoginLogVO {
id: number
logType: number
traceId: number
userId: number
userType: number
username: string
status: number
userIp: string
userAgent: string
createTime: Date
}
export interface LoginLogReqVO extends PageParam {
userIp?: string
username?: string
status?: boolean
createTime?: Date[]
}
// 查询登录日志列表
export const getLoginLogPageApi = (params: LoginLogReqVO) => {
return defHttp.get({ url: '/system/login-log/page', params })
}
// 导出登录日志
export const exportLoginLogApi = (params: LoginLogReqVO) => {
return defHttp.download({ url: '/system/login-log/export', params })
}

View File

@ -0,0 +1,52 @@
import { defHttp } from '@/utils/http/axios'
export interface MenuVO {
id: number
name: string
permission: string
type: number
sort: number
parentId: number
path: string
icon: string
component: string
status: number
visible: boolean
keepAlive: boolean
createTime: Date
}
export interface MenuPageReqVO {
name?: string
status?: number
}
// 查询菜单(精简)列表
export const listSimpleMenusApi = () => {
return defHttp.get({ url: '/system/menu/list-all-simple' })
}
// 查询菜单列表
export const getMenuListApi = (params: MenuPageReqVO) => {
return defHttp.get({ url: '/system/menu/list', params })
}
// 获取菜单详情
export const getMenuApi = (id: number) => {
return defHttp.get({ url: '/system/menu/get?id=' + id })
}
// 新增菜单
export const createMenuApi = (data: MenuVO) => {
return defHttp.post({ url: '/system/menu/create', data })
}
// 修改菜单
export const updateMenuApi = (data: MenuVO) => {
return defHttp.put({ url: '/system/menu/update', data })
}
// 删除菜单
export const deleteMenuApi = (id: number) => {
return defHttp.delete({ url: '/system/menu/delete?id=' + id })
}

View File

@ -0,0 +1,42 @@
import { defHttp } from '@/utils/http/axios'
export interface NoticeVO {
id: number
title: string
type: number
content: string
status: number
remark: string
creator: string
createTime: Date
}
export interface NoticePageReqVO extends PageParam {
title?: string
status?: number
}
// 查询公告列表
export const getNoticePageApi = (params: NoticePageReqVO) => {
return defHttp.get({ url: '/system/notice/page', params })
}
// 查询公告详情
export const getNoticeApi = (id: number) => {
return defHttp.get({ url: '/system/notice/get?id=' + id })
}
// 新增公告
export const createNoticeApi = (data: NoticeVO) => {
return defHttp.post({ url: '/system/notice/create', data })
}
// 修改公告
export const updateNoticeApi = (data: NoticeVO) => {
return defHttp.put({ url: '/system/notice/update', data })
}
// 删除公告
export const deleteNoticeApi = (id: number) => {
return defHttp.delete({ url: '/system/notice/delete?id=' + id })
}

View File

@ -0,0 +1,51 @@
import { defHttp } from '@/utils/http/axios'
export interface OAuth2ClientVO {
id: number
clientId: string
secret: string
name: string
logo: string
description: string
status: number
accessTokenValiditySeconds: number
refreshTokenValiditySeconds: number
redirectUris: string[]
autoApprove: boolean
authorizedGrantTypes: string[]
scopes: string[]
authorities: string[]
resourceIds: string[]
additionalInformation: string
isAdditionalInformationJson: boolean
createTime: Date
}
export interface OAuth2ClientPageReqVO extends PageParam {
name?: string
status?: number
}
// 查询 OAuth2列表
export const getOAuth2ClientPageApi = (params: OAuth2ClientPageReqVO) => {
return defHttp.get({ url: '/system/oauth2-client/page', params })
}
// 查询 OAuth2详情
export const getOAuth2ClientApi = (id: number) => {
return defHttp.get({ url: '/system/oauth2-client/get?id=' + id })
}
// 新增 OAuth2
export const createOAuth2ClientApi = (data: OAuth2ClientVO) => {
return defHttp.post({ url: '/system/oauth2-client/create', data })
}
// 修改 OAuth2
export const updateOAuth2ClientApi = (data: OAuth2ClientVO) => {
return defHttp.put({ url: '/system/oauth2-client/update', data })
}
// 删除 OAuth2
export const deleteOAuth2ClientApi = (id: number) => {
return defHttp.delete({ url: '/system/oauth2-client/delete?id=' + id })
}

View File

@ -0,0 +1,28 @@
import { defHttp } from '@/utils/http/axios'
export interface OAuth2TokenVO {
id: number
accessToken: string
refreshToken: string
userId: number
userType: number
clientId: string
createTime: Date
expiresTime: Date
}
export interface OAuth2TokenPageReqVO extends PageParam {
userId?: number
userType?: number
clientId?: string
}
// 查询 token列表
export const getAccessTokenPageApi = (params: OAuth2TokenPageReqVO) => {
return defHttp.get({ url: '/system/oauth2-token/page', params })
}
// 删除 token
export const deleteAccessTokenApi = (accessToken: number) => {
return defHttp.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
}

View File

@ -0,0 +1,41 @@
import { defHttp } from '@/utils/http/axios'
export type OperateLogVO = {
id: number
userNickname: string
traceId: string
userId: number
module: string
name: string
type: number
content: string
exts: Map<String, Object>
defHttpMethod: string
defHttpUrl: string
userIp: string
userAgent: string
javaMethod: string
javaMethodArgs: string
startTime: Date
duration: number
resultCode: number
resultMsg: string
resultData: string
}
export interface OperateLogPageReqVO extends PageParam {
module?: string
userNickname?: string
type?: number
success?: boolean
startTime?: Date[]
}
// 查询操作日志列表
export const getOperateLogPageApi = (params: OperateLogPageReqVO) => {
return defHttp.get({ url: '/system/operate-log/page', params })
}
// 导出操作日志
export const exportOperateLogApi = (params: OperateLogPageReqVO) => {
return defHttp.download({ url: '/system/operate-log/export', params })
}

View File

@ -0,0 +1,42 @@
import { defHttp } from '@/utils/http/axios'
export interface PermissionAssignUserRoleReqVO {
userId: number
roleIds: number[]
}
export interface PermissionAssignRoleMenuReqVO {
roleId: number
menuIds: number[]
}
export interface PermissionAssignRoleDataScopeReqVO {
roleId: number
dataScope: number
dataScopeDeptIds: number[]
}
// 查询角色拥有的菜单权限
export const listRoleMenusApi = (roleId: number) => {
return defHttp.get({ url: '/system/permission/list-role-resources?roleId=' + roleId })
}
// 赋予角色菜单权限
export const assignRoleMenuApi = (data: PermissionAssignRoleMenuReqVO) => {
return defHttp.post({ url: '/system/permission/assign-role-menu', data })
}
// 赋予角色数据权限
export const assignRoleDataScopeApi = (data: PermissionAssignRoleDataScopeReqVO) => {
return defHttp.post({ url: '/system/permission/assign-role-data-scope', data })
}
// 查询用户拥有的角色数组
export const listUserRolesApi = (userId: number) => {
return defHttp.get({ url: '/system/permission/list-user-roles?userId=' + userId })
}
// 赋予用户角色
export const aassignUserRoleApi = (data: PermissionAssignUserRoleReqVO) => {
return defHttp.post({ url: '/system/permission/assign-user-role', data })
}

View File

@ -0,0 +1,58 @@
import { defHttp } from '@/utils/http/axios'
export interface PostVO {
id?: number
name: string
code: string
sort: number
status: number
remark: string
createTime?: Date
}
export interface PostPageReqVO extends PageParam {
code?: string
name?: string
status?: number
}
export interface PostExportReqVO {
code?: string
name?: string
status?: number
}
// 查询岗位列表
export const getPostPageApi = (params: PostPageReqVO) => {
return defHttp.get<PageResult<PostVO>>({ url: '/system/post/page', params })
}
// 获取岗位精简信息列表
export const listSimplePostsApi = () => {
return defHttp.get({ url: '/system/post/list-all-simple' })
}
// 查询岗位详情
export const getPostApi = (id: number) => {
return defHttp.get({ url: '/system/post/get?id=' + id })
}
// 新增岗位
export const createPostApi = (data: PostVO) => {
return defHttp.post({ url: '/system/post/create', data })
}
// 修改岗位
export const updatePostApi = (data: PostVO) => {
return defHttp.put({ url: '/system/post/update', data })
}
// 删除岗位
export const deletePostApi = (id: number) => {
return defHttp.delete({ url: '/system/post/delete?id=' + id })
}
// 导出岗位
export const exportPostApi = (params: PostExportReqVO) => {
return defHttp.download({ url: '/system/post/export', params })
}

View File

@ -0,0 +1,58 @@
import { defHttp } from '@/utils/http/axios'
export interface RoleVO {
id: number
name: string
code: string
sort: number
status: number
type: number
createTime: Date
}
export interface RolePageReqVO extends PageParam {
name?: string
code?: string
status?: number
createTime?: Date[]
}
export interface UpdateStatusReqVO {
id: number
status: number
}
// 查询角色列表
export const getRolePageApi = (params: RolePageReqVO) => {
return defHttp.get({ url: '/system/role/page', params })
}
// 查询角色(精简)列表
export const listSimpleRolesApi = () => {
return defHttp.get({ url: '/system/role/list-all-simple' })
}
// 查询角色详情
export const getRoleApi = (id: number) => {
return defHttp.get({ url: '/system/role/get?id=' + id })
}
// 新增角色
export const createRoleApi = (data: RoleVO) => {
return defHttp.post({ url: '/system/role/create', data })
}
// 修改角色
export const updateRoleApi = (data: RoleVO) => {
return defHttp.put({ url: '/system/role/update', data })
}
// 修改角色状态
export const updateRoleStatusApi = (data: UpdateStatusReqVO) => {
return defHttp.put({ url: '/system/role/update-status', data })
}
// 删除角色
export const deleteRoleApi = (id: number) => {
return defHttp.delete({ url: '/system/role/delete?id=' + id })
}

View File

@ -0,0 +1,64 @@
import { defHttp } from '@/utils/http/axios'
export interface SensitiveWordVO {
id: number
name: string
status: number
description: string
tags: string[]
createTime: Date
}
export interface SensitiveWordPageReqVO extends PageParam {
name?: string
tag?: string
status?: number
createTime?: Date[]
}
export interface SensitiveWordExportReqVO {
name?: string
tag?: string
status?: number
createTime?: Date[]
}
// 查询敏感词列表
export const getSensitiveWordPageApi = (params: SensitiveWordPageReqVO) => {
return defHttp.get({ url: '/system/sensitive-word/page', params })
}
// 查询敏感词详情
export const getSensitiveWordApi = (id: number) => {
return defHttp.get({ url: '/system/sensitive-word/get?id=' + id })
}
// 新增敏感词
export const createSensitiveWordApi = (data: SensitiveWordVO) => {
return defHttp.post({ url: '/system/sensitive-word/create', data })
}
// 修改敏感词
export const updateSensitiveWordApi = (data: SensitiveWordVO) => {
return defHttp.put({ url: '/system/sensitive-word/update', data })
}
// 删除敏感词
export const deleteSensitiveWordApi = (id: number) => {
return defHttp.delete({ url: '/system/sensitive-word/delete?id=' + id })
}
// 导出敏感词
export const exportSensitiveWordApi = (params: SensitiveWordExportReqVO) => {
return defHttp.download({ url: '/system/sensitive-word/export-excel', params })
}
// 获取所有敏感词的标签数组
export const getSensitiveWordTagsApi = () => {
return defHttp.get({ url: '/system/sensitive-word/get-tags' })
}
// 获得文本所包含的不合法的敏感词数组
export const validateTextApi = (id: number) => {
return defHttp.get({ url: '/system/sensitive-word/validate-text?' + id })
}

View File

@ -0,0 +1,50 @@
import { defHttp } from '@/utils/http/axios'
export interface SmsChannelVO {
id: number
code: string
status: number
signature: string
remark: string
apiKey: string
apiSecret: string
callbackUrl: string
createTime: Date
}
export interface SmsChannelPageReqVO extends PageParam {
signature?: string
code?: string
status?: number
createTime?: Date[]
}
// 查询短信渠道列表
export const getSmsChannelPageApi = (params: SmsChannelPageReqVO) => {
return defHttp.get({ url: '/system/sms-channel/page', params })
}
// 获得短信渠道精简列表
export function getSimpleSmsChannels() {
return defHttp.get({ url: '/system/sms-channel/list-all-simple' })
}
// 查询短信渠道详情
export const getSmsChannelApi = (id: number) => {
return defHttp.get({ url: '/system/sms-channel/get?id=' + id })
}
// 新增短信渠道
export const createSmsChannelApi = (data: SmsChannelVO) => {
return defHttp.post({ url: '/system/sms-channel/create', data })
}
// 修改短信渠道
export const updateSmsChannelApi = (data: SmsChannelVO) => {
return defHttp.put({ url: '/system/sms-channel/update', data })
}
// 删除短信渠道
export const deleteSmsChannelApi = (id: number) => {
return defHttp.delete({ url: '/system/sms-channel/delete?id=' + id })
}

View File

@ -0,0 +1,57 @@
import { defHttp } from '@/utils/http/axios'
export interface SmsLogVO {
id: number
channelId: number
channelCode: string
templateId: number
templateCode: string
templateType: number
templateContent: string
templateParams: Map<string, object>
mobile: string
userId: number
userType: number
sendStatus: number
sendTime: Date
sendCode: number
sendMsg: string
apiSendCode: string
apiSendMsg: string
apidefHttpId: string
apiSerialNo: string
receiveStatus: number
receiveTime: Date
apiReceiveCode: string
apiReceiveMsg: string
createTime: Date
}
export interface SmsLogPageReqVO extends PageParam {
channelId?: number
templateId?: number
mobile?: string
sendStatus?: number
sendTime?: Date[]
receiveStatus?: number
receiveTime?: Date[]
}
export interface SmsLogExportReqVO {
channelId?: number
templateId?: number
mobile?: string
sendStatus?: number
sendTime?: Date[]
receiveStatus?: number
receiveTime?: Date[]
}
// 查询短信日志列表
export const getSmsLogPageApi = (params: SmsLogPageReqVO) => {
return defHttp.get({ url: '/system/sms-log/page', params })
}
// 导出短信日志
export const exportSmsLogApi = (params: SmsLogExportReqVO) => {
return defHttp.download({ url: '/system/sms-log/export', params })
}

View File

@ -0,0 +1,80 @@
import { defHttp } from '@/utils/http/axios'
export interface SmsTemplateVO {
id: number
type: number
status: number
code: string
name: string
content: string
remark: string
apiTemplateId: string
channelId: number
channelCode: string
params: string[]
createTime: Date
}
export interface SendSmsReqVO {
mobile: string
templateCode: string
templateParams: Map<String, Object>
}
export interface SmsTemplatePageReqVO {
type?: number
status?: number
code?: string
content?: string
apiTemplateId?: string
channelId?: number
createTime?: Date[]
}
export interface SmsTemplateExportReqVO {
type?: number
status?: number
code?: string
content?: string
apiTemplateId?: string
channelId?: number
createTime?: Date[]
}
// 查询短信模板列表
export const getSmsTemplatePageApi = (params: SmsTemplatePageReqVO) => {
return defHttp.get({ url: '/system/sms-template/page', params })
}
// 查询短信模板详情
export const getSmsTemplateApi = (id: number) => {
return defHttp.get({ url: '/system/sms-template/get?id=' + id })
}
// 新增短信模板
export const createSmsTemplateApi = (data: SmsTemplateVO) => {
return defHttp.post({ url: '/system/sms-template/create', data })
}
// 修改短信模板
export const updateSmsTemplateApi = (data: SmsTemplateVO) => {
return defHttp.put({ url: '/system/sms-template/update', data })
}
// 删除短信模板
export const deleteSmsTemplateApi = (id: number) => {
return defHttp.delete({ url: '/system/sms-template/delete?id=' + id })
}
// 发送短信
export const sendSmsApi = (data: SendSmsReqVO) => {
return defHttp.post({ url: '/system/sms-template/send-sms', data })
}
// 导出短信模板
export const exportPostApi = (params: SmsTemplateExportReqVO) => {
return defHttp.download({
url: '/system/sms-template/export-excel',
params
})
}

View File

@ -0,0 +1,62 @@
import { defHttp } from '@/utils/http/axios'
export interface TenantVO {
id: number
name: string
contactName: string
contactMobile: string
status: number
domain: string
packageId: number
username: string
password: string
expireTime: Date
accountCount: number
createTime: Date
}
export interface TenantPageReqVO extends PageParam {
name?: string
contactName?: string
contactMobile?: string
status?: number
createTime?: Date[]
}
export interface TenantExportReqVO {
name?: string
contactName?: string
contactMobile?: string
status?: number
createTime?: Date[]
}
// 查询租户列表
export const getTenantPageApi = (params: TenantPageReqVO) => {
return defHttp.get({ url: '/system/tenant/page', params })
}
// 查询租户详情
export const getTenantApi = (id: number) => {
return defHttp.get({ url: '/system/tenant/get?id=' + id })
}
// 新增租户
export const createTenantApi = (data: TenantVO) => {
return defHttp.post({ url: '/system/tenant/create', data })
}
// 修改租户
export const updateTenantApi = (data: TenantVO) => {
return defHttp.put({ url: '/system/tenant/update', data })
}
// 删除租户
export const deleteTenantApi = (id: number) => {
return defHttp.delete({ url: '/system/tenant/delete?id=' + id })
}
// 导出租户
export const exportTenantApi = (params: TenantExportReqVO) => {
return defHttp.download({ url: '/system/tenant/export-excel', params })
}

View File

@ -0,0 +1,49 @@
import { defHttp } from '@/utils/http/axios'
export interface TenantPackageVO {
id: number
name: string
status: number
remark: string
creator: string
updater: string
updateTime: string
menuIds: number[]
createTime: Date
}
export interface TenantPackagePageReqVO extends PageParam {
name?: string
status?: number
remark?: string
createTime?: Date[]
}
// 查询租户套餐列表
export const getTenantPackageTypePageApi = (params: TenantPackagePageReqVO) => {
return defHttp.get({ url: '/system/tenant-package/page', params })
}
// 获得租户
export const getTenantPackageApi = (id: number) => {
return defHttp.get({ url: '/system/tenant-package/get?id=' + id })
}
// 新增租户套餐
export const createTenantPackageTypeApi = (data: TenantPackageVO) => {
return defHttp.post({ url: '/system/tenant-package/create', data })
}
// 修改租户套餐
export const updateTenantPackageTypeApi = (data: TenantPackageVO) => {
return defHttp.put({ url: '/system/tenant-package/update', data })
}
// 删除租户套餐
export const deleteTenantPackageTypeApi = (id: number) => {
return defHttp.delete({ url: '/system/tenant-package/delete?id=' + id })
}
// 获取租户套餐精简信息列表
export const getTenantPackageList = () => {
return defHttp.get({ url: '/system/tenant-package/get-simple-list' })
}

View File

@ -0,0 +1,91 @@
import { defHttp } from '@/utils/http/axios'
export interface UserVO {
id: number
username: string
nickname: string
deptId: number
postIds: string[]
email: string
mobile: string
sex: number
avatar: string
loginIp: string
status: number
remark: string
loginDate: Date
createTime: Date
}
export interface UserPageReqVO extends PageParam {
deptId?: number
username?: string
mobile?: string
status?: number
createTime?: Date[]
}
export interface UserExportReqVO {
code?: string
name?: string
status?: number
createTime?: Date[]
}
// 查询用户管理列表
export const getUserPageApi = (params: UserPageReqVO) => {
return defHttp.get({ url: '/system/user/page', params })
}
// 查询用户详情
export const getUserApi = (id: number) => {
return defHttp.get({ url: '/system/user/get?id=' + id })
}
// 新增用户
export const createUserApi = (data: UserVO) => {
return defHttp.post({ url: '/system/user/create', data })
}
// 修改用户
export const updateUserApi = (data: UserVO) => {
return defHttp.put({ url: '/system/user/update', data })
}
// 删除用户
export const deleteUserApi = (id: number) => {
return defHttp.delete({ url: '/system/user/delete?id=' + id })
}
// 导出用户
export const exportUserApi = (params: UserExportReqVO) => {
return defHttp.download({ url: '/system/user/export', params })
}
// 下载用户导入模板
export const importUserTemplateApi = () => {
return defHttp.download({ url: '/system/user/get-import-template' })
}
// 用户密码重置
export const resetUserPwdApi = (id: number, password: string) => {
const data = {
id,
password
}
return defHttp.put({ url: '/system/user/update-password', data: data })
}
// 用户状态修改
export const updateUserStatusApi = (id: number, status: number) => {
const data = {
id,
status
}
return defHttp.put({ url: '/system/user/update-status', data: data })
}
// 获取用户精简信息列表
export const getListSimpleUsersApi = () => {
return defHttp.get({ url: '/system/user/list-all-simple' })
}

View File

@ -1,5 +1,9 @@
// token key
export const TOKEN_KEY = 'TOKEN__'
export const ACCESS_TOKEN_KEY = 'ACCESS_TOKEN__'
export const REFRESH_TOKEN_KEY = 'REFRESH_TOKEN__'
export const TENANT_ID_KEY = 'TENANT_ID__'
export const LOCALE_KEY = 'LOCALE__'
@ -12,6 +16,9 @@ export const ROLES_KEY = 'ROLES__KEY__'
// project config key
export const PROJ_CFG_KEY = 'PROJ__CFG__KEY__'
// dict info key
export const DICT_KEY = 'DICT__KEY__'
// lock info
export const LOCK_INFO_KEY = 'LOCK__INFO__KEY__'

View File

@ -4,7 +4,9 @@
export enum ResultEnum {
SUCCESS = 0,
ERROR = -1,
TIMEOUT = 401,
TIMEOUT = 400,
UNAUTHORIZED = 401,
INTERNAL_SERVER_ERROR = 500,
TYPE = 'success'
}

View File

@ -1,6 +1,6 @@
export enum RoleEnum {
// super admin
SUPER = 'super',
SUPER = 'super-admin',
// tester
TEST = 'test'

View File

@ -0,0 +1,6 @@
export default {
create: 'Create',
edit: 'Edit',
delete: 'Delete',
detail: 'Detail'
}

View File

@ -1,14 +1,19 @@
export default {
index: 'Index',
action: 'Action',
okText: 'OK',
closeText: 'Close',
cancelText: 'Cancel',
loadingText: 'Loading...',
saveText: 'Save',
delText: 'Delete',
delSuccessText: 'Delete success',
exportSuccessText: 'Export success',
resetText: 'Reset',
searchText: 'Search',
queryText: 'Search',
allOptionText: 'All',
inputText: 'Please enter',
chooseText: 'Please choose',

View File

@ -119,11 +119,11 @@ export default {
uploadWait: 'Please wait for the file upload to finish',
reUploadFailed: 'Re-upload failed files'
},
verify: {
error: 'verification failed',
time: 'The verification is successful and it takes {time} seconds',
redoTip: 'Click the picture to refresh',
dragText: 'Hold down the slider and drag',
successText: 'Verified'
captcha: {
verification: 'Please complete security verification',
slide: 'Swipe right to complete verification',
point: 'Please click',
success: 'Verification succeeded',
fail: 'verification failed'
}
}

View File

@ -2,8 +2,9 @@ export default {
footer: { onlinePreview: 'Preview', onlineDocument: 'Document' },
header: {
// user dropdown
accountCenter: 'Personal Center',
dropdownItemDoc: 'Document',
dropdownItemLoginOut: 'Log Out',
dropdownItemLoginOut: 'Login Out',
tooltipErrorLog: 'Error log',
tooltipLock: 'Lock screen',

View File

@ -0,0 +1,38 @@
export default {
user: {
title: 'Personal Information',
username: 'User Name',
nickname: 'Nick Name',
mobile: 'Phone Number',
email: 'User Mail',
dept: 'Department',
posts: 'Position',
roles: 'Own Role',
sex: 'Sex',
man: 'Man',
woman: 'Woman',
createTime: 'Created Date'
},
info: {
title: 'Basic Information',
basicInfo: 'Basic Information',
resetPwd: 'Reset Password',
userSocial: 'Social Information'
},
rules: {
nickname: 'Please Enter User Nickname',
mail: 'Please Input The Email Address',
truemail: 'Please Input The Correct Email Address',
phone: 'Please Enter The Phone Number',
truephone: 'Please Enter The Correct Phone Number'
},
password: {
oldPassword: 'Old PassWord',
newPassword: 'New Password',
confirmPassword: 'Confirm Password',
oldPwdMsg: 'Please Enter Old Password',
newPwdMsg: 'Please Enter New Password',
cfPwdMsg: 'Please Enter Confirm Password',
diffPwd: 'The Passwords Entered Twice No Match'
}
}

View File

@ -1,4 +1,5 @@
export default {
login: 'Login',
errorLogList: 'Error Log'
errorLogList: 'Error Log',
profile: 'User Center'
}

View File

@ -1,200 +0,0 @@
export default {
charts: {
baiduMap: 'Baidu map',
aMap: 'A map',
googleMap: 'Google map',
charts: 'Chart',
map: 'Map',
line: 'Line',
pie: 'Pie'
},
comp: {
comp: 'Component',
basic: 'Basic',
transition: 'Animation',
countTo: 'Count To',
scroll: 'Scroll',
scrollBasic: 'Basic',
scrollAction: 'Scroll Function',
virtualScroll: 'Virtual Scroll',
tree: 'Tree',
treeBasic: 'Basic',
editTree: 'Searchable/toolbar',
actionTree: 'Function operation',
modal: 'Modal',
drawer: 'Drawer',
desc: 'Desc',
lazy: 'Lazy',
lazyBasic: 'Basic',
lazyTransition: 'Animation',
verify: 'Verify',
verifyDrag: 'Drag ',
verifyRotate: 'Picture Restore',
qrcode: 'QR code',
strength: 'Password strength',
upload: 'Upload',
loading: 'Loading',
cropperImage: 'Cropper Image',
cardList: 'Card List'
},
editor: {
editor: 'Editor',
jsonEditor: 'Json editor',
markdown: 'Markdown editor',
tinymce: 'Rich text',
tinymceBasic: 'Basic',
tinymceForm: 'embedded form'
},
excel: {
excel: 'Excel',
customExport: 'Select export format',
jsonExport: 'JSON data export',
arrayExport: 'Array data export',
importExcel: 'Import'
},
feat: {
feat: 'Page Function',
icon: 'Icon',
tabs: 'Tabs',
tabDetail: 'Tab Detail',
sessionTimeout: 'Session Timeout',
print: 'Print',
contextMenu: 'Context Menu',
download: 'Download',
imgPreview: 'Picture Preview',
copy: 'Clipboard',
msg: 'Message prompt',
watermark: 'Watermark',
ripple: 'Ripple',
fullScreen: 'Full Screen',
errorLog: 'Error Log',
tab: 'Tab with parameters',
tab1: 'Tab with parameter 1',
tab2: 'Tab with parameter 2',
menu: 'Menu with parameters',
menu1: 'Menu with parameters 1',
menu2: 'Menu with parameters 2',
ws: 'Websocket test',
breadcrumb: 'Breadcrumbs',
breadcrumbFlat: 'Flat Mode',
breadcrumbFlatDetail: 'Flat mode details',
requestDemo: 'Retry request demo',
breadcrumbChildren: 'Level mode',
breadcrumbChildrenDetail: 'Level mode detail'
},
flow: {
name: 'Graphics editor',
flowChart: 'FlowChart'
},
form: {
form: 'Form',
basic: 'Basic',
useForm: 'useForm',
refForm: 'RefForm',
advancedForm: 'Shrinkable',
ruleForm: 'Form validation',
dynamicForm: 'Dynamic',
customerForm: 'Custom',
appendForm: 'Append',
tabsForm: 'TabsForm'
},
iframe: {
frame: 'External',
antv: 'antVue doc (embedded)',
doc: 'Project doc (embedded)',
docExternal: 'Project doc (external)'
},
level: { level: 'MultiMenu' },
page: {
page: 'Page',
form: 'Form',
formBasic: 'Basic Form',
formStep: 'Step Form',
formHigh: 'Advanced Form',
desc: 'Details',
descBasic: 'Basic Details',
descHigh: 'Advanced Details',
result: 'Result',
resultSuccess: 'Success',
resultFail: 'Failed',
account: 'Personal',
accountCenter: 'Personal Center',
accountSetting: 'Personal Settings',
exception: 'Exception',
netWorkError: 'Network Error',
notData: 'No data',
list: 'List page',
listCard: 'Card list',
basic: 'Basic list',
listBasic: 'Basic list',
listSearch: 'Search list'
},
permission: {
permission: 'Permission',
front: 'front-end',
frontPage: 'Page',
frontBtn: 'Button',
frontTestA: 'Test page A',
frontTestB: 'Test page B',
back: 'background',
backPage: 'Page',
backBtn: 'Button'
},
setup: {
page: 'Intro page'
},
system: {
moduleName: 'System management',
account: 'Account management',
account_detail: 'Account detail',
password: 'Change password',
dept: 'Department management',
menu: 'Menu management',
role: 'Role management'
},
table: {
table: 'Table',
basic: 'Basic',
treeTable: 'Tree',
fetchTable: 'Remote loading',
fixedColumn: 'Fixed column',
customerCell: 'Custom column',
formTable: 'Open search',
useTable: 'UseTable',
refTable: 'RefTable',
multipleHeader: 'MultiLevel header',
mergeHeader: 'Merge cells',
expandTable: 'Expandable table',
fixedHeight: 'Fixed height',
footerTable: 'Footer',
editCellTable: 'Editable cell',
editRowTable: 'Editable row',
authColumn: 'Auth column',
resizeParentHeightTable: 'resizeParentHeightTable'
}
}

View File

@ -1,7 +1,7 @@
export default {
api: {
operationSuccess: 'Operation Success',
operationFailed: 'Operation failed',
operationSuccess: 'Operation success',
errorTip: 'Error Tip',
successTip: 'Success Tip',
errorMessage: 'The operation failed, the system is abnormal!',
@ -94,6 +94,7 @@ export default {
policyPlaceholder: 'Register after checking',
diffPwd: 'The two passwords are inconsistent',
tenantName: 'TenantName',
userName: 'Username',
password: 'Password',
confirmPassword: 'Confirm Password',

View File

@ -0,0 +1,6 @@
export default {
create: '新增',
edit: '修改',
delete: '删除',
detail: '详情'
}

View File

@ -1,14 +1,19 @@
export default {
index: '序号',
action: '操作',
okText: '确认',
closeText: '关闭',
cancelText: '取消',
loadingText: '加载中...',
saveText: '保存',
delText: '删除',
delSuccessText: '删除成功',
exportSuccessText: '导出成功',
resetText: '重置',
searchText: '搜索',
queryText: '查询',
allOptionText: '全部',
inputText: '请输入',
chooseText: '请选择',

View File

@ -122,13 +122,11 @@ export default {
uploadWait: '请等待文件上传结束后操作',
reUploadFailed: '重新上传失败文件'
},
verify: {
error: '验证失败!',
time: '验证校验成功,耗时{time}秒!',
redoTip: '点击图片可刷新',
dragText: '请按住滑块拖动',
successText: '验证通过'
captcha: {
verification: '请完成安全验证',
slide: '向右滑动完成验证',
point: '请依次点击',
success: '验证成功',
fail: '验证失败'
}
}

View File

@ -2,6 +2,7 @@ export default {
footer: { onlinePreview: '在线预览', onlineDocument: '在线文档' },
header: {
// user dropdown
accountCenter: '个人中心',
dropdownItemDoc: '文档',
dropdownItemLoginOut: '退出系统',

View File

@ -0,0 +1,39 @@
export default {
user: {
title: '个人信息',
username: '用户名称',
nickname: '用户昵称',
mobile: '手机号码',
email: '用户邮箱',
dept: '所属部门',
posts: '所属岗位',
roles: '所属角色',
sex: '性别',
man: '男',
woman: '女',
createTime: '创建日期'
},
info: {
title: '基本信息',
basicInfo: '基本资料',
resetPwd: '修改密码',
userSocial: '社交信息'
},
rules: {
nickname: '请输入用户昵称',
mail: '请输入邮箱地址',
truemail: '请输入正确的邮箱地址',
phone: '请输入正确的手机号码',
truephone: '请输入正确的手机号码'
},
password: {
oldPassword: '旧密码',
newPassword: '新密码',
confirmPassword: '确认密码',
oldPwdMsg: '请输入旧密码',
newPwdMsg: '请输入新密码',
cfPwdMsg: '请输入确认密码',
pwdRules: '长度在 6 到 20 个字符',
diffPwd: '两次输入密码不一致'
}
}

View File

@ -1,4 +1,5 @@
export default {
login: '登录',
errorLogList: '错误日志列表'
errorLogList: '错误日志列表',
profile: '个人中心'
}

View File

@ -1,191 +0,0 @@
export default {
charts: {
baiduMap: '百度地图',
aMap: '高德地图',
googleMap: '谷歌地图',
charts: '图表',
map: '地图',
line: '折线图',
pie: '饼图'
},
comp: {
comp: '组件',
basic: '基础组件',
transition: '动画组件',
countTo: '数字动画',
scroll: '滚动组件',
scrollBasic: '基础滚动',
scrollAction: '滚动函数',
virtualScroll: '虚拟滚动',
tree: 'Tree',
treeBasic: '基础树',
editTree: '可搜索/工具栏',
actionTree: '函数操作示例',
modal: '弹窗扩展',
drawer: '抽屉扩展',
desc: '详情组件',
lazy: '懒加载组件',
lazyBasic: '基础示例',
lazyTransition: '动画效果',
verify: '验证组件',
verifyDrag: '拖拽校验',
verifyRotate: '图片还原',
qrcode: '二维码组件',
strength: '密码强度组件',
upload: '上传组件',
loading: 'Loading',
cropperImage: '图片裁剪',
cardList: '卡片列表'
},
editor: {
editor: '编辑器',
jsonEditor: 'Json编辑器',
markdown: 'markdown编辑器',
tinymce: '富文本',
tinymceBasic: '基础使用',
tinymceForm: '嵌入form'
},
excel: {
excel: 'Excel',
customExport: '选择导出格式',
jsonExport: 'JSON数据导出',
arrayExport: 'Array数据导出',
importExcel: '导入'
},
feat: {
feat: '功能',
icon: '图标',
sessionTimeout: '登录过期',
tabs: '标签页操作',
tabDetail: '标签详情页',
print: '打印',
contextMenu: '右键菜单',
download: '文件下载',
imgPreview: '图片预览',
copy: '剪切板',
msg: '消息提示',
watermark: '水印',
ripple: '水波纹',
fullScreen: '全屏',
errorLog: '错误日志',
tab: 'Tab带参',
tab1: 'Tab带参1',
tab2: 'Tab带参2',
menu: 'Menu带参',
menu1: 'Menu带参1',
menu2: 'Menu带参2',
ws: 'websocket测试',
breadcrumb: '面包屑导航',
breadcrumbFlat: '平级模式',
requestDemo: '测试请求重试',
breadcrumbFlatDetail: '平级详情',
breadcrumbChildren: '层级模式',
breadcrumbChildrenDetail: '层级详情'
},
flow: {
name: '图形编辑器',
flowChart: '流程图'
},
form: {
form: 'Form',
basic: '基础表单',
useForm: 'useForm',
refForm: 'RefForm',
advancedForm: '可收缩表单',
ruleForm: '表单验证',
dynamicForm: '动态表单',
customerForm: '自定义组件',
appendForm: '表单增删示例',
tabsForm: '标签页+多级field'
},
iframe: {
frame: '外部页面',
antv: 'antVue文档(内嵌)',
doc: '项目文档(内嵌)',
docExternal: '项目文档(外链)'
},
level: { level: '多级菜单' },
page: {
page: '页面',
form: '表单页',
formBasic: '基础表单',
formStep: '分步表单',
formHigh: '高级表单',
desc: '详情页',
descBasic: '基础详情页',
descHigh: '高级详情页',
result: '结果页',
resultSuccess: '成功页',
resultFail: '失败页',
account: '个人页',
accountCenter: '个人中心',
accountSetting: '个人设置',
exception: '异常页',
netWorkError: '网络错误',
notData: '无数据',
list: '列表页',
listCard: '卡片列表',
listBasic: '标准列表',
listSearch: '搜索列表'
},
permission: {
permission: '权限管理',
front: '基于前端权限',
frontPage: '页面权限',
frontBtn: '按钮权限',
frontTestA: '权限测试页A',
frontTestB: '权限测试页B',
back: '基于后台权限',
backPage: '页面权限',
backBtn: '按钮权限'
},
setup: {
page: '引导页'
},
system: {
moduleName: '系统管理',
account: '账号管理',
account_detail: '账号详情',
password: '修改密码',
dept: '部门管理',
menu: '菜单管理',
role: '角色管理'
},
table: {
table: 'Table',
basic: '基础表格',
treeTable: '树形表格',
fetchTable: '远程加载示例',
fixedColumn: '固定列',
customerCell: '自定义列',
formTable: '开启搜索区域',
useTable: 'UseTable',
refTable: 'RefTable',
multipleHeader: '多级表头',
mergeHeader: '合并单元格',
expandTable: '可展开表格',
fixedHeight: '定高/头部自定义',
footerTable: '表尾行合计',
editCellTable: '可编辑单元格',
editRowTable: '可编辑行',
authColumn: '权限列',
resizeParentHeightTable: '继承父元素高度'
}
}

View File

@ -1,7 +1,7 @@
export default {
api: {
operationSuccess: '操作成功',
operationFailed: '操作失败',
operationSuccess: '操作成功',
errorTip: '错误提示',
successTip: '成功提示',
errorMessage: '操作失败,系统异常!',
@ -90,6 +90,7 @@ export default {
policyPlaceholder: '勾选后才能注册',
diffPwd: '两次输入密码不一致',
tenantName: '租户',
userName: '账号',
password: '密码',
confirmPassword: '确认密码',

View File

@ -4,7 +4,7 @@ export const PARENT_LAYOUT_NAME = 'ParentLayout'
export const PAGE_NOT_FOUND_NAME = 'PageNotFound'
export const EXCEPTION_COMPONENT = () => import('@/views/sys/exception/Exception.vue')
export const EXCEPTION_COMPONENT = () => import('@/views/base/exception/Exception.vue')
/**
* @description: default layout

View File

@ -7,7 +7,7 @@ import { warn } from '@/utils/log'
import { createRouter, createWebHashHistory } from 'vue-router'
export type LayoutMapKey = 'LAYOUT'
const IFRAME = () => import('@/views/sys/iframe/FrameBlank.vue')
const IFRAME = () => import('@/views/base/iframe/FrameBlank.vue')
const LayoutMap = new Map<string, () => Promise<typeof import('*.vue')>>()
@ -36,6 +36,10 @@ function asyncImportRoute(routes: AppRouteRecordRaw[] | undefined) {
} else if (name) {
item.component = getParentLayout()
}
const meta = item.meta || {}
meta.title = item.name
meta.icon = item.icon
item.meta = meta
children && asyncImportRoute(children)
})
}
@ -69,18 +73,29 @@ function dynamicImport(dynamicViewsModules: Record<string, () => Promise<Recorda
// 将背景对象变成路由对象
export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] {
routeList.forEach((route) => {
if (route.children && route.parentId == 0) {
route.component = 'LAYOUT'
} else if (!route.children) {
route.component = route.component as string
}
const component = route.component as string
if (component) {
if (component.toUpperCase() === 'LAYOUT') {
route.component = LayoutMap.get(component.toUpperCase())
route.component = LayoutMap.get('LAYOUT'.toUpperCase())
const meta = route.meta || {}
meta.title = route.name
meta.icon = route.icon
route.meta = meta
} else {
//处理顶级非目录路由
const meta = route.meta || {}
meta.title = route.name
meta.icon = route.icon
meta.single = true
route.children = [cloneDeep(route)]
route.component = LAYOUT
route.name = `${route.name}Parent`
route.path = ''
const meta = route.meta || {}
meta.single = true
meta.affix = false
route.meta = meta
}
} else {

View File

@ -10,7 +10,7 @@ import { router } from '@/router'
import { PermissionModeEnum } from '@/enums/appEnum'
import { pathToRegexp } from 'path-to-regexp'
const modules = import.meta.globEager('./modules/**/*.ts')
const modules = import.meta.glob('./modules/**/*.ts', { eager: true })
const menuModules: MenuModule[] = []

View File

@ -1,5 +1,4 @@
import type { AppRouteRecordRaw } from '@/router/types'
import { t } from '@/hooks/web/useI18n'
import { REDIRECT_NAME, LAYOUT, EXCEPTION_COMPONENT, PAGE_NOT_FOUND_NAME } from '@/router/constant'
// 404 on a page
@ -39,7 +38,7 @@ export const REDIRECT_ROUTE: AppRouteRecordRaw = {
{
path: '/redirect/:path(.*)',
name: REDIRECT_NAME,
component: () => import('@/views/sys/redirect/index.vue'),
component: () => import('@/views/base/redirect/index.vue'),
meta: {
title: REDIRECT_NAME,
hideBreadcrumb: true
@ -47,27 +46,3 @@ export const REDIRECT_ROUTE: AppRouteRecordRaw = {
}
]
}
export const ERROR_LOG_ROUTE: AppRouteRecordRaw = {
path: '/error-log',
name: 'ErrorLog',
component: LAYOUT,
redirect: '/error-log/list',
meta: {
title: 'ErrorLog',
hideBreadcrumb: true,
hideChildrenInMenu: true
},
children: [
{
path: 'list',
name: 'ErrorLogList',
component: () => import('@/views/sys/error-log/index.vue'),
meta: {
title: t('routes.basic.errorLogList'),
hideBreadcrumb: true,
currentActiveMenu: '/error-log'
}
}
]
}

View File

@ -2,12 +2,12 @@ import type { AppRouteRecordRaw, AppRouteModule } from '@/router/types'
import { PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '@/router/routes/basic'
import { mainOutRoutes } from './mainOut'
import { PageEnum } from '@/enums/pageEnum'
import { t } from '@/hooks/web/useI18n'
import { LAYOUT } from '@/router/constant'
// import.meta.globEager() 直接引入所有的模块 Vite 独有的功能
const modules = import.meta.globEager('./modules/**/*.ts')
// import.meta.glob() 直接引入所有的模块 Vite 独有的功能
const modules = import.meta.glob('./modules/**/*.ts', { eager: true })
const routeModuleList: AppRouteModule[] = []
// 加入到路由集合中
@ -32,12 +32,36 @@ export const RootRoute: AppRouteRecordRaw = {
export const LoginRoute: AppRouteRecordRaw = {
path: '/login',
name: 'Login',
component: () => import('@/views/sys/login/Login.vue'),
component: () => import('@/views/base/login/Login.vue'),
meta: {
title: t('routes.basic.login')
}
}
export const ProfileRoute: AppRouteRecordRaw = {
path: '/profile',
component: LAYOUT,
name: 'Profile',
meta: {
title: t('routes.basic.profile'),
hidden: true
},
children: [
{
path: 'index',
component: () => import('@/views/base/profile/index.vue'),
name: 'UserProfile',
meta: {
canTo: true,
hidden: true,
noTagsView: false,
icon: 'ep:user',
title: t('routes.basic.profile')
}
}
]
}
// Basic routing without permission
// 未经许可的基本路由
export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE]
export const basicRoutes = [LoginRoute, RootRoute, ProfileRoute, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE]

View File

@ -1,22 +0,0 @@
/**
The routing of this file will not show the layout.
It is an independent new page.
the contents of the file still need to log in to access
*/
import type { AppRouteModule } from '@/router/types'
// test
// http:ip:port/main-out
export const mainOutRoutes: AppRouteModule[] = [
{
path: '/main-out',
name: 'MainOut',
component: () => import('@/views/demo/main-out/index.vue'),
meta: {
title: 'MainOut',
ignoreAuth: true
}
}
]
export const mainOutRouteNames = mainOutRoutes.map((item) => item.name)

View File

@ -18,7 +18,7 @@ const about: AppRouteModule = {
{
path: 'index',
name: 'AboutPage',
component: () => import('@/views/sys/about/index.vue'),
component: () => import('@/views/base/about/index.vue'),
meta: {
title: t('routes.dashboard.about'),
icon: 'simple-icons:about-dot-me',

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