init
96
src/App.vue
Normal file
@@ -0,0 +1,96 @@
|
||||
<script lang="ts" setup>
|
||||
import { isDark } from '@/utils/is'
|
||||
import { useAppStore } from '@/store/modules/app'
|
||||
import { useDesign } from '@/hooks/web/useDesign'
|
||||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
||||
import routerSearch from '@/components/RouterSearch/index.vue'
|
||||
|
||||
defineOptions({ name: 'APP' })
|
||||
|
||||
const { getPrefixCls } = useDesign()
|
||||
const prefixCls = getPrefixCls('app')
|
||||
const appStore = useAppStore()
|
||||
const currentSize = computed(() => appStore.getCurrentSize)
|
||||
const greyMode = computed(() => appStore.getGreyMode)
|
||||
const { wsCache } = useCache()
|
||||
|
||||
// 根据浏览器当前主题设置系统主题色
|
||||
const setDefaultTheme = () => {
|
||||
let isDarkTheme = wsCache.get(CACHE_KEY.IS_DARK)
|
||||
if (isDarkTheme === null) {
|
||||
isDarkTheme = isDark()
|
||||
}
|
||||
appStore.setIsDark(isDarkTheme)
|
||||
}
|
||||
setDefaultTheme()
|
||||
|
||||
const popperContainer = ref<Element | null>()
|
||||
|
||||
// 使用 ResizeObserver 监测尺寸变化
|
||||
const resizeObserver = new ResizeObserver((entries) => {
|
||||
entries.forEach((entry) => {
|
||||
const popper = entry.target as HTMLElement
|
||||
|
||||
if (popper.offsetWidth > 0 && popper.offsetHeight > 0) {
|
||||
const originalWidth = popper.offsetWidth
|
||||
// 把节点的高度改为节点的宽度
|
||||
popper.style.setProperty('height', `${originalWidth}px`, 'important')
|
||||
|
||||
// 停止观察(如果需要持续监测可保留)
|
||||
resizeObserver.unobserve(popper)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
// body下el-popper-container里面的样式修改。这里功能不完善
|
||||
if (appStore.getMobile) {
|
||||
popperContainer.value = document.querySelector('[id^="el-popper-container"]')
|
||||
}
|
||||
})
|
||||
|
||||
watch(
|
||||
() => popperContainer.value,
|
||||
(value) => {
|
||||
if (value) {
|
||||
const poppers = value.querySelectorAll('.el-popper')
|
||||
poppers.forEach((popper: HTMLElement) => {
|
||||
resizeObserver.observe(popper)
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<template>
|
||||
<ConfigGlobal :size="currentSize">
|
||||
<div class="h-100% w-100%" :class="greyMode ? `${prefixCls}-grey-mode` : ''">
|
||||
<RouterView />
|
||||
</div>
|
||||
<routerSearch />
|
||||
</ConfigGlobal>
|
||||
</template>
|
||||
<style lang="scss">
|
||||
$prefix-cls: #{$namespace}-app;
|
||||
|
||||
.size {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
@extend .size;
|
||||
|
||||
padding: 0 !important;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
|
||||
#app {
|
||||
@extend .size;
|
||||
}
|
||||
}
|
||||
|
||||
.#{$prefix-cls}-grey-mode {
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
</style>
|
||||
8
src/api/bpm/activity/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const getActivityList = async (params) => {
|
||||
return await request.get({
|
||||
url: '/bpm/activity/list',
|
||||
params
|
||||
})
|
||||
}
|
||||
21
src/api/bpm/definition/index.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const getProcessDefinitionBpmnXML = async (id: number) => {
|
||||
return await request.get({
|
||||
url: '/bpm/process-definition/get-bpmn-xml?id=' + id
|
||||
})
|
||||
}
|
||||
|
||||
export const getProcessDefinitionPage = async (params) => {
|
||||
return await request.get({
|
||||
url: '/bpm/process-definition/page',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export const getProcessDefinitionList = async (params) => {
|
||||
return await request.get({
|
||||
url: '/bpm/process-definition/list',
|
||||
params
|
||||
})
|
||||
}
|
||||
59
src/api/bpm/model/index.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
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: string
|
||||
formCustomCreatePath: string
|
||||
formCustomViewPath: string
|
||||
processDefinition?: ProcessDefinitionVO
|
||||
status?: number
|
||||
remark?: string
|
||||
createTime?: string
|
||||
bpmnXml?: string
|
||||
}
|
||||
|
||||
export const getModelPage = async (params) => {
|
||||
return await request.get({ url: '/bpm/model/page', params })
|
||||
}
|
||||
|
||||
export const getModel = async (id: number) => {
|
||||
return await request.get({ url: '/bpm/model/get?id=' + id })
|
||||
}
|
||||
|
||||
export const updateModel = async (data: ModelVO) => {
|
||||
return await request.put({ url: '/bpm/model/update', data: data })
|
||||
}
|
||||
|
||||
// 任务状态修改
|
||||
export const updateModelState = async (id: number, state: number) => {
|
||||
const data = {
|
||||
id: id,
|
||||
state: state
|
||||
}
|
||||
return await request.put({ url: '/bpm/model/update-state', data: data })
|
||||
}
|
||||
|
||||
export const createModel = async (data: ModelVO) => {
|
||||
return await request.post({ url: '/bpm/model/create', data: data })
|
||||
}
|
||||
|
||||
export const deleteModel = async (id: number) => {
|
||||
return await request.delete({ url: '/bpm/model/delete?id=' + id })
|
||||
}
|
||||
|
||||
export const deployModel = async (id: number) => {
|
||||
return await request.post({ url: '/bpm/model/deploy?id=' + id })
|
||||
}
|
||||
70
src/api/bpm/processInstance/index.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
export type ProcessInstanceCCVO = {
|
||||
type: number,
|
||||
taskName: string,
|
||||
taskKey: string,
|
||||
processInstanceName: string,
|
||||
processInstanceKey: string,
|
||||
startUserId: string,
|
||||
options:string [],
|
||||
reason: string
|
||||
}
|
||||
|
||||
export const getMyProcessInstancePage = async (params) => {
|
||||
return await request.get({ url: '/bpm/process-instance/my-page', params })
|
||||
}
|
||||
|
||||
export const createProcessInstance = async (data) => {
|
||||
return await request.post({ url: '/bpm/process-instance/create', data: data })
|
||||
}
|
||||
|
||||
export const cancelProcessInstance = async (id: number, reason: string) => {
|
||||
const data = {
|
||||
id: id,
|
||||
reason: reason
|
||||
}
|
||||
return await request.delete({ url: '/bpm/process-instance/cancel', data: data })
|
||||
}
|
||||
|
||||
export const getProcessInstance = async (id: number) => {
|
||||
return await request.get({ url: '/bpm/process-instance/get?id=' + id })
|
||||
}
|
||||
|
||||
/**
|
||||
* 抄送
|
||||
* @param data 抄送数据
|
||||
* @returns 是否抄送成功
|
||||
*/
|
||||
export const createProcessInstanceCC = async (data) => {
|
||||
return await request.post({ url: '/bpm/process-instance/cc/create', data: data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 抄送列表
|
||||
* @param params
|
||||
* @returns
|
||||
*/
|
||||
export const getProcessInstanceCCPage = async (params) => {
|
||||
return await request.get({ url: '/bpm/process-instance/cc/my-page', params })
|
||||
}
|
||||
81
src/api/bpm/task/index.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type TaskVO = {
|
||||
id: number
|
||||
}
|
||||
|
||||
export const getTodoTaskPage = async (params) => {
|
||||
return await request.get({ url: '/bpm/task/todo-page', params })
|
||||
}
|
||||
|
||||
export const getDoneTaskPage = async (params) => {
|
||||
return await request.get({ url: '/bpm/task/done-page', params })
|
||||
}
|
||||
|
||||
export const completeTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/complete', data })
|
||||
}
|
||||
|
||||
export const approveTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/approve', data })
|
||||
}
|
||||
|
||||
export const rejectTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/reject', data })
|
||||
}
|
||||
export const backTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/back', data })
|
||||
}
|
||||
|
||||
export const updateTaskAssignee = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/update-assignee', data })
|
||||
}
|
||||
|
||||
export const getTaskListByProcessInstanceId = async (processInstanceId) => {
|
||||
return await request.get({
|
||||
url: '/bpm/task/list-by-process-instance-id?processInstanceId=' + processInstanceId
|
||||
})
|
||||
}
|
||||
|
||||
// 导出任务
|
||||
export const exportTask = async (params) => {
|
||||
return await request.download({ url: '/bpm/task/export', params })
|
||||
}
|
||||
|
||||
// 获取所有可回退的节点
|
||||
export const getReturnList = async (params) => {
|
||||
return await request.get({ url: '/bpm/task/return-list', params })
|
||||
}
|
||||
|
||||
// 回退
|
||||
export const returnTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/return', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 委派
|
||||
*/
|
||||
export const delegateTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/delegate', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 加签
|
||||
*/
|
||||
export const taskAddSign = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/create-sign', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取减签任务列表
|
||||
*/
|
||||
export const getChildrenTaskList = async (id: string) => {
|
||||
return await request.get({ url: '/bpm/task/children-list?taskId=' + id })
|
||||
}
|
||||
|
||||
/**
|
||||
* 减签
|
||||
*/
|
||||
export const taskSubSign = async (data) => {
|
||||
return await request.delete({ url: '/bpm/task/delete-sign', data })
|
||||
}
|
||||
29
src/api/bpm/taskAssignRule/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type TaskAssignVO = {
|
||||
id: number
|
||||
modelId: string
|
||||
processDefinitionId: string
|
||||
taskDefinitionKey: string
|
||||
taskDefinitionName: string
|
||||
options: string[]
|
||||
type: number
|
||||
}
|
||||
|
||||
export const getTaskAssignRuleList = async (params) => {
|
||||
return await request.get({ url: '/bpm/task-assign-rule/list', params })
|
||||
}
|
||||
|
||||
export const createTaskAssignRule = async (data: TaskAssignVO) => {
|
||||
return await request.post({
|
||||
url: '/bpm/task-assign-rule/create',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export const updateTaskAssignRule = async (data: TaskAssignVO) => {
|
||||
return await request.put({
|
||||
url: '/bpm/task-assign-rule/update',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
47
src/api/bpm/userGroup/index.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type UserGroupVO = {
|
||||
id: number
|
||||
name: string
|
||||
description: string
|
||||
memberUserIds: number[]
|
||||
status: number
|
||||
remark: string
|
||||
createTime: string
|
||||
}
|
||||
|
||||
// 创建用户组
|
||||
export const createUserGroup = async (data: UserGroupVO) => {
|
||||
return await request.post({
|
||||
url: '/bpm/user-group/create',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新用户组
|
||||
export const updateUserGroup = async (data: UserGroupVO) => {
|
||||
return await request.put({
|
||||
url: '/bpm/user-group/update',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除用户组
|
||||
export const deleteUserGroup = async (id: number) => {
|
||||
return await request.delete({ url: '/bpm/user-group/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 获得用户组
|
||||
export const getUserGroup = async (id: number) => {
|
||||
return await request.get({ url: '/bpm/user-group/get?id=' + id })
|
||||
}
|
||||
|
||||
// 获得用户组分页
|
||||
export const getUserGroupPage = async (params) => {
|
||||
return await request.get({ url: '/bpm/user-group/page', params })
|
||||
}
|
||||
|
||||
// 获取用户组精简信息列表
|
||||
export const getSimpleUserGroupList = async (): Promise<UserGroupVO[]> => {
|
||||
return await request.get({ url: '/bpm/user-group/list-all-simple' })
|
||||
}
|
||||
257
src/api/dashboard.ts
Normal file
@@ -0,0 +1,257 @@
|
||||
// 模拟大屏数据接口
|
||||
export interface DashboardData {
|
||||
totalCount: number
|
||||
formalEmployeeCount: number
|
||||
externalStaffCount: number
|
||||
visitorCount: number
|
||||
parkStatistics: {
|
||||
name: string
|
||||
formal: number
|
||||
external: number
|
||||
visitor: number
|
||||
}[]
|
||||
riskStatistics: {
|
||||
overdue: number
|
||||
processed: number
|
||||
pending: number
|
||||
processing: number
|
||||
other: number
|
||||
}
|
||||
alertData: {
|
||||
total: number
|
||||
processed: number
|
||||
pending: number
|
||||
processing: number
|
||||
details: Array<{
|
||||
description: string
|
||||
alarm_level_code: string
|
||||
alarm_status: string
|
||||
alarm_biz_id: string
|
||||
}>
|
||||
}
|
||||
timeoutWorkOrders: {
|
||||
total: number
|
||||
details: Array<{
|
||||
description: string
|
||||
alarm_level_code: string
|
||||
alarm_status: string
|
||||
alarm_biz_id: string
|
||||
}>
|
||||
}
|
||||
hiddenDangerData: {
|
||||
general: number
|
||||
major: number
|
||||
progress: {
|
||||
overdue: number
|
||||
processed: number
|
||||
pending: number
|
||||
processing: number
|
||||
}
|
||||
top3Types: {
|
||||
access: number
|
||||
consumption: number
|
||||
inspection: number
|
||||
}
|
||||
safetyIndex: number
|
||||
}
|
||||
}
|
||||
|
||||
// 模拟数据
|
||||
const mockData: DashboardData = {
|
||||
totalCount: 0,
|
||||
formalEmployeeCount: 0,
|
||||
externalStaffCount: 0,
|
||||
visitorCount: 0,
|
||||
parkStatistics: [
|
||||
// { name: '雄安', formal: 320, external: 120, visitor: 220 },
|
||||
// { name: '北京丰台', formal: 302, external: 132, visitor: 182 },
|
||||
// { name: '北京恒毅', formal: 301, external: 101, visitor: 191 },
|
||||
// { name: '上海', formal: 334, external: 134, visitor: 234 },
|
||||
// { name: '重庆', formal: 390, external: 90, visitor: 290 },
|
||||
// { name: '成都', formal: 330, external: 230, visitor: 330 }
|
||||
],
|
||||
riskStatistics: {
|
||||
overdue: 0,
|
||||
processed: 0,
|
||||
pending: 0,
|
||||
processing: 0,
|
||||
other: 0
|
||||
},
|
||||
alertData: {
|
||||
total: 0,
|
||||
processed: 0,
|
||||
pending: 0,
|
||||
processing: 0,
|
||||
details: [
|
||||
// {
|
||||
// description: '2024-07-10 上午8:00 雄安园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283935'
|
||||
// },
|
||||
// {
|
||||
// description: '2025-07-09 上海XXX区域A1门禁告警 处理中 紧急',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283936'
|
||||
// },
|
||||
// {
|
||||
// description: '2025-07-09 上海XXX区域A1门禁告警 处理中 紧急',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }, {
|
||||
// description: '2024-07-10 上午8:00 雄安园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283935'
|
||||
// },
|
||||
// {
|
||||
// description: '2025-07-09 上海XXX区域A1门禁告警 处理中 紧急',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283936'
|
||||
// },
|
||||
// {
|
||||
// description: '2025-07-09 上海XXX区域A1门禁告警 处理中 紧急',
|
||||
// alarm_level_code: 'major',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }
|
||||
]
|
||||
},
|
||||
timeoutWorkOrders: {
|
||||
total: 0,
|
||||
details: [
|
||||
// {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// },
|
||||
// {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }, {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }, {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }, {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// }, {
|
||||
// description: '2025-08-10 上午8:00 武汉园区隐患内容管理 状态 处理',
|
||||
// alarm_level_code: 'general',
|
||||
// alarm_status: '已关闭',
|
||||
// alarm_biz_id: '20250827164305283937'
|
||||
// },
|
||||
]
|
||||
},
|
||||
hiddenDangerData: {
|
||||
general: 0,
|
||||
major: 0,
|
||||
progress: {
|
||||
overdue: 0,
|
||||
processed: 0,
|
||||
pending: 0,
|
||||
processing: 0
|
||||
},
|
||||
top3Types: {
|
||||
access: 0,
|
||||
consumption: 0,
|
||||
inspection: 0
|
||||
},
|
||||
safetyIndex: 1
|
||||
}
|
||||
}
|
||||
|
||||
// 模拟接口延迟
|
||||
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
|
||||
|
||||
// 模拟获取大屏数据
|
||||
export const getDashboardData = async (): Promise<DashboardData> => {
|
||||
// await delay(500) // 模拟网络延迟
|
||||
return {...mockData}
|
||||
}
|
||||
|
||||
// 模拟更新数据(用于动画演示)
|
||||
export const updateDashboardData = async (): Promise<DashboardData> => {
|
||||
await delay(300)
|
||||
|
||||
// 生成随机数据
|
||||
const newData: DashboardData = {
|
||||
...mockData,
|
||||
totalCount: Math.floor(Math.random() * 20000) + 20000,
|
||||
formalEmployeeCount: Math.floor(Math.random() * 200) + 100,
|
||||
externalStaffCount: Math.floor(Math.random() * 100) + 30,
|
||||
visitorCount: Math.floor(Math.random() * 500) + 400,
|
||||
parkStatistics: mockData.parkStatistics.map(park => ({
|
||||
...park,
|
||||
formal: Math.floor(Math.random() * 200) + 200,
|
||||
external: Math.floor(Math.random() * 100) + 50,
|
||||
visitor: Math.floor(Math.random() * 200) + 150
|
||||
})),
|
||||
alertData: {
|
||||
...mockData.alertData,
|
||||
total: Math.floor(Math.random() * 200) + 300,
|
||||
processed: Math.floor(Math.random() * 200) + 300,
|
||||
pending: Math.floor(Math.random() * 200) + 300
|
||||
},
|
||||
timeoutWorkOrders: {
|
||||
...mockData.timeoutWorkOrders,
|
||||
total: Math.floor(Math.random() * 20) + 5
|
||||
},
|
||||
hiddenDangerData: {
|
||||
...mockData.hiddenDangerData,
|
||||
general: Math.floor(Math.random() * 500) + 1000,
|
||||
major: Math.floor(Math.random() * 500) + 1000,
|
||||
safetyIndex: Math.floor(Math.random() * 20) + 70
|
||||
}
|
||||
}
|
||||
|
||||
return newData
|
||||
}
|
||||
|
||||
// 模拟获取告警详情数据
|
||||
export const getAlertDetails = async (type: 'risk' | 'timeout'): Promise<Array<{
|
||||
description: string
|
||||
alarm_level_code: string
|
||||
alarm_status: string
|
||||
alarm_biz_id: string
|
||||
}>> => {
|
||||
await delay(200)
|
||||
|
||||
if (type === 'risk') {
|
||||
return mockData.alertData.details
|
||||
} else {
|
||||
return mockData.timeoutWorkOrders.details
|
||||
}
|
||||
}
|
||||
|
||||
// 模拟获取园区统计数据
|
||||
export const getParkStatistics = async (): Promise<DashboardData['parkStatistics']> => {
|
||||
await delay(300)
|
||||
return mockData.parkStatistics
|
||||
}
|
||||
|
||||
// 模拟获取风险统计数据
|
||||
export const getRiskStatistics = async (): Promise<DashboardData['riskStatistics']> => {
|
||||
await delay(200)
|
||||
return mockData.riskStatistics
|
||||
}
|
||||
|
||||
// 模拟获取隐患治理数据
|
||||
export const getHiddenDangerData = async (): Promise<DashboardData['hiddenDangerData']> => {
|
||||
await delay(250)
|
||||
return mockData.hiddenDangerData
|
||||
}
|
||||
31
src/api/design/dic/index.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
|
||||
//获取字典表格选择器配置
|
||||
export const getDicTableConfig = (tableId, dicConfigStr) => {
|
||||
return request.post({
|
||||
url: `/jeelowcode/dbform/get/dict-table-web-config/${tableId}`, data: {
|
||||
jeeLowCode_dictTableField: dicConfigStr
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//获取字典表格选择器值回显文本
|
||||
export const getDicTableText = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/get/table-label`, data })
|
||||
}
|
||||
|
||||
//获取用户选择器列表数据
|
||||
export const getUserSelectList = (data) => {
|
||||
return request.post({ url: `/jeelowcode/adapter/user/list`, data })
|
||||
}
|
||||
|
||||
//获取用户选择器的部门列表
|
||||
export const getUserSelectDeptList = (type) => {
|
||||
return request.get({ url: `/jeelowcode/adapter/dept/list?type=${type}` })
|
||||
}
|
||||
|
||||
//获取用户选择器的角色列表
|
||||
export const getUserSelectRoleList = () => {
|
||||
return request.get({ url: `/jeelowcode/adapter/role/list` })
|
||||
}
|
||||
63
src/api/design/form/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/config/axios'
|
||||
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
|
||||
|
||||
//获取表单设计列表
|
||||
export const getFormList = (params) => {
|
||||
return request.post({ url: `/jeelowcode/desform/page`, params })
|
||||
}
|
||||
|
||||
//获取模板表单列表
|
||||
export const getTemplateFormList = () => {
|
||||
return request.get({ url: `/jeelowcode/desform/get/template` })
|
||||
}
|
||||
|
||||
//新增表单设计
|
||||
export const saveFormData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.post({ url: '/jeelowcode/desform/save', data })
|
||||
}
|
||||
|
||||
//修改表单设计
|
||||
export const updateFormData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/jeelowcode/desform/update', data })
|
||||
}
|
||||
|
||||
//获取表单设计详情数据
|
||||
export const getFormDetail = (params) => {
|
||||
return request.get({ url: `/jeelowcode/desform/detail`, params })
|
||||
}
|
||||
|
||||
//外部链接访问获取详情数据
|
||||
export const getOpenFormDetail = (params) => {
|
||||
return request.get({ url: `/jeelowcode/open/desform/get/detail`, params })
|
||||
}
|
||||
|
||||
|
||||
//删除表单设计数据
|
||||
export const deleteFormData = (ids) => {
|
||||
return request.delete({ url: `/jeelowcode/desform/delete`, data: ids })
|
||||
}
|
||||
|
||||
//解除表单设计锁定
|
||||
export const unlockForm = (id) => {
|
||||
return request.post({ url: `/jeelowcode/desform/unlock/${id}` })
|
||||
}
|
||||
|
||||
|
||||
//获取表单设计分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/jeelowcode/group/desform/list`, params })
|
||||
}
|
||||
//新增表单设计分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/group/desform/save`, data })
|
||||
}
|
||||
//修改表单设计分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/jeelowcode/group/desform/update`, data })
|
||||
}
|
||||
//删除表单设计分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/group/desform/delete', data: ids })
|
||||
}
|
||||
37
src/api/design/general/index.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const getActionApi = (url, option) => {
|
||||
return request.get({ url, ...option })
|
||||
}
|
||||
|
||||
export const postActionApi = (url, option) => {
|
||||
return request.post({ url, ...option })
|
||||
}
|
||||
|
||||
export const putActionApi = (url, option) => {
|
||||
return request.put({ url, ...option })
|
||||
}
|
||||
|
||||
export const deleteActionApi = (url, option) => {
|
||||
return request.delete({ url, ...option })
|
||||
}
|
||||
|
||||
export const downloadActionApi = (url, option) => {
|
||||
return request.download({ url, ...option })
|
||||
}
|
||||
|
||||
export const uploadActionApi = (url, option) => {
|
||||
return request.upload({ url, ...option })
|
||||
}
|
||||
|
||||
|
||||
// 获取历史Js增强/SQL增强/表单设计版本列表 type: desform js sql
|
||||
export const getHistoryList = (params) => {
|
||||
return request.get({ url: `/jeelowcode/history/page`, params })
|
||||
}
|
||||
|
||||
//获取历史Js增强/SQL增强/表单设计版本详情
|
||||
export const getHistoryDetail = (params) => {
|
||||
return request.get({ url: `/jeelowcode/history/getDetail`, params })
|
||||
}
|
||||
|
||||
24
src/api/design/i18n/index.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const getImportList = (params) => {
|
||||
return request.post({ url: `/jeelowcode/i18n/page`, params })
|
||||
}
|
||||
//导出Excel表数据
|
||||
export const exportExcelData = (data) => {
|
||||
return request.download({ url: `/jeelowcode/i18n/export`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//导入的数据
|
||||
export const uploadExcelData = (data) => {
|
||||
return request.upload({ url: `/jeelowcode/i18n/import`, data })
|
||||
}
|
||||
|
||||
//查询导入进度
|
||||
export const getImportProgress = (batchCode) => {
|
||||
return request.get({ url: `/jeelowcode/i18n/import/progress?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//上传文件
|
||||
export const uploadFile = (data) => {
|
||||
return request.upload({ url: '/infra/file/jeelowcode/upload', data: data })
|
||||
}
|
||||
83
src/api/design/module/index.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
import request from '@/config/axios'
|
||||
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
|
||||
|
||||
//获取多模块组合列表
|
||||
export const getModuleList = (data) => {
|
||||
const url = `/jeelowcode/tab/page?pageNo=${data.pageNo}&pageSize=${data.pageSize}`
|
||||
delete data.pageNo
|
||||
delete data.pageSize
|
||||
return request.post({ url, data })
|
||||
}
|
||||
|
||||
//新增多模块组合配置
|
||||
export const saveModuleData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/tab/save', data })
|
||||
}
|
||||
|
||||
//修改多模块组合配置
|
||||
export const updateModuleData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/tab/update', data })
|
||||
}
|
||||
|
||||
//删除多模块组合配置
|
||||
export const deleteModuleData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/tab/delete', data: ids })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取多模块组合详情数据
|
||||
* @param id
|
||||
*/
|
||||
export const getModuleDetail = (id) => {
|
||||
return request.post({ url: `/jeelowcode/tab/detail?id=${id}` })
|
||||
}
|
||||
|
||||
|
||||
//获取多模块组合分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/jeelowcode/group/tab/list`, params })
|
||||
}
|
||||
//新增多模块组合分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/group/tab/save`, data })
|
||||
}
|
||||
//修改多模块组合分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/jeelowcode/group/tab/update`, data })
|
||||
}
|
||||
//删除多模块组合分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/group/tab/delete', data: ids })
|
||||
}
|
||||
|
||||
//新增Js增强
|
||||
export const saveJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.post({ url: '/jeelowcode/tab/js/save', data })
|
||||
}
|
||||
|
||||
//修改Js增强
|
||||
export const updateJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/jeelowcode/tab/js/update', data })
|
||||
}
|
||||
|
||||
//获取Js增强详情数据
|
||||
export const getJsDetail = (params) => {
|
||||
return request.get({ url: `/jeelowcode/tab/js/detail`, params })
|
||||
}
|
||||
|
||||
//解除Js增强锁定
|
||||
export const unlockJs = (moduleId, type) => {
|
||||
return request.post({ url: `/jeelowcode/tab/js/unlock/${moduleId}?type=${type}` })
|
||||
}
|
||||
|
||||
//获取显示配置
|
||||
export const getModelViewData = (moduleId) => {
|
||||
return request.get({ url: `/jeelowcode/tab/get/web-config?tabId=${moduleId}` })
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
92
src/api/design/report/index.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
//获取报表列表
|
||||
export const getDbList = (data) => {
|
||||
let url = `/jeelowcode/report/page`
|
||||
if (data.pageSize !== undefined) {
|
||||
url = url + `?pageNo=${data.pageNo}&pageSize=${data.pageSize}`
|
||||
delete data.pageNo
|
||||
delete data.pageSize
|
||||
}
|
||||
return request.post({ url, data })
|
||||
}
|
||||
|
||||
//新增报表配置
|
||||
export const saveDbData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/report/save', data })
|
||||
}
|
||||
|
||||
//修改报表配置
|
||||
export const updateDbData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/report/update', data })
|
||||
}
|
||||
|
||||
//删除报表配置
|
||||
export const deleteDbData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/report/delete', data: ids })
|
||||
}
|
||||
|
||||
//获取报表详情数据
|
||||
export const getDbDetail = (id) => {
|
||||
return request.post({ url: `/jeelowcode/report/detail?reportId=${id}`, data: ['all'] })
|
||||
}
|
||||
|
||||
|
||||
//获取报表分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/jeelowcode/group/report/list`, params })
|
||||
}
|
||||
//新增报表分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/group/report/save`, data })
|
||||
}
|
||||
//修改报表分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/jeelowcode/group/report/update`, data })
|
||||
}
|
||||
//删除报表分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/group/report/delete', data: ids })
|
||||
}
|
||||
|
||||
|
||||
//校验报表编码是否存在
|
||||
export const verifyReportCode = (code) => {
|
||||
return request.get({ url: '/jeelowcode/report/check/report-code?reportCode=' + code })
|
||||
}
|
||||
|
||||
|
||||
//复制报表
|
||||
export const copyReportData = (reportCode, newReportCode) => {
|
||||
return request.get({ url: `/jeelowcode/report/copy/${reportCode}?reportCode=${newReportCode}` })
|
||||
}
|
||||
|
||||
//获取报表Web配置数据
|
||||
export const getWebConfig = (reportCode) => {
|
||||
return request.get({ url: '/jeelowcode/report/get/web-config?reportCode=' + reportCode })
|
||||
}
|
||||
|
||||
//导出报表数据
|
||||
export const exportExcelData = (reportCode, data?) => {
|
||||
return request.download({ url: `/jeelowcode/excel/exportReport/${reportCode}`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//获取报表数据
|
||||
export const getTableList = (reportCode, data?, isOpen?) => {
|
||||
return request.post({ url: `/jeelowcode/${isOpen ? 'open/report' : 'report-data'}/list/${reportCode}`, data })
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量获取报表数据
|
||||
* reportCodes:报表编码 多个用逗号隔开 xxx,xxx
|
||||
* data:报表对应的搜索值
|
||||
* 格式 {
|
||||
* 报表编码:{搜索配置}
|
||||
* }
|
||||
* */
|
||||
export const batchGetTableList = (reportCodes: string, data?) => {
|
||||
return request.post({ url: `/jeelowcode/report-data/batch/list/${reportCodes}`, data })
|
||||
}
|
||||
|
||||
|
||||
6
src/api/design/sys/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
//获取表单设计详情数据
|
||||
export const clearCache = () => {
|
||||
return request.get({ url: '/jeelowcode/dbform/clear-cache' })
|
||||
}
|
||||
57
src/api/design/table/auth.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
|
||||
interface FieldData {
|
||||
tenantId: string | number
|
||||
dbformId: string
|
||||
fieldCode: string
|
||||
listIsView?: 'Y' | 'N'
|
||||
formIsView?: 'Y' | 'N'
|
||||
formIsEdit?: 'Y' | 'N'
|
||||
enableState?: 'Y' | 'N'
|
||||
}
|
||||
|
||||
//获取权限租户列表数据
|
||||
export const getAllTenant = () => {
|
||||
return request.get({ url: `/jeelowcode/adapter/tenant/list` })
|
||||
}
|
||||
|
||||
//获取字段权限列表
|
||||
export const getFieldAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/list-field?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存字段权限配置
|
||||
export const saveFieldAuth = (data: FieldData) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/save-field`, data })
|
||||
}
|
||||
|
||||
//获取按钮权限列表
|
||||
export const getButtonAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/list-button?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存字段权限配置
|
||||
export const saveButtonAuth = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/save-button`, data })
|
||||
}
|
||||
|
||||
//获取规则列表
|
||||
export const getDataAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/list-data?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存数据规则配置
|
||||
export const saveDataAuth = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/save-data-tenant`, data })
|
||||
}
|
||||
|
||||
//添加、修改数据规则数据
|
||||
export const saveRuleData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-role/save-data-rule`, data })
|
||||
}
|
||||
|
||||
//删除数据规则
|
||||
export const deleteRuleData = (ruleId) => {
|
||||
return request.delete({ url: `/jeelowcode/dbform-role/del-data-rule?ruleId=${ruleId}` })
|
||||
}
|
||||
27
src/api/design/table/customButton.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
|
||||
//获取自定义按钮列表
|
||||
export const getBtnList = (params) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/button/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增自定义按钮
|
||||
export const saveBtnData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/enhance/button/save', data })
|
||||
}
|
||||
|
||||
//修改自定义按钮
|
||||
export const updateBtnData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/enhance/button/update', data })
|
||||
}
|
||||
|
||||
//获取自定义按钮详情数据
|
||||
export const getBtnDetail = (id) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/button/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除自定义按钮数据
|
||||
export const deleteBtnData = (ids) => {
|
||||
return request.delete({ url: `/jeelowcode/enhance/button/delete`, data: ids })
|
||||
}
|
||||
237
src/api/design/table/index.ts
Normal file
@@ -0,0 +1,237 @@
|
||||
import request from '@/config/axios'
|
||||
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
|
||||
|
||||
//获取表单开发列表
|
||||
export const getDbList = (data) => {
|
||||
const url = `/jeelowcode/dbform/page?pageNo=${data.pageNo}&pageSize=${data.pageSize}`
|
||||
delete data.pageNo
|
||||
delete data.pageSize
|
||||
return request.post({ url, data })
|
||||
}
|
||||
|
||||
//新增表单开发配置
|
||||
export const saveDbData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/dbform/save', data })
|
||||
}
|
||||
|
||||
//修改表单开发配置
|
||||
export const updateDbData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/dbform/update', data })
|
||||
}
|
||||
|
||||
//删除表单开发配置
|
||||
export const deleteDbData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/dbform/delete', data: ids })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取表单开发详情数据
|
||||
* @param id
|
||||
* @param typeList Array[string] 查询类型 all dict export foreignkey web
|
||||
*/
|
||||
export const getDbDetail = (id, typeList) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/detail?dbFormId=${id}`, data: typeList })
|
||||
}
|
||||
|
||||
|
||||
//获取表单开发分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/jeelowcode/group/dbform/list`, params })
|
||||
}
|
||||
//新增表单开发分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/group/dbform/save`, data })
|
||||
}
|
||||
//修改表单开发分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/jeelowcode/group/dbform/update`, data })
|
||||
}
|
||||
//删除表单开发分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/group/dbform/delete', data: ids })
|
||||
}
|
||||
|
||||
|
||||
//校验表明是否存在
|
||||
export const verifyDbName = (name) => {
|
||||
return request.get({ url: '/jeelowcode/dbform/check/table?tableName=' + name })
|
||||
}
|
||||
|
||||
//同步数据库
|
||||
export const asyncDbData = (tableId, syncModel) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/sync-db/${tableId}?syncModel=${syncModel}` })
|
||||
}
|
||||
|
||||
//复制表单开发
|
||||
export const copyDbData = (tableId, tableName) => {
|
||||
return request.get({ url: `/jeelowcode/dbform/copy/${tableId}?tableName=${tableName}` })
|
||||
}
|
||||
|
||||
//获取Web配置数据
|
||||
export const getWebConfig = (tableId) => {
|
||||
return request.get({ url: '/jeelowcode/dbform/get/web-config?dbformId=' + tableId })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有表名和表字段(字典配置用)
|
||||
* @param systemFlag 'Y' 是否查询系统表
|
||||
* @param dataSourcesCode 数据源
|
||||
* @param onlyTableName 'Y' 是否只查表
|
||||
*/
|
||||
export const getAllDbDicData = (params = {}) => {
|
||||
return request.get({ url: '/jeelowcode/dbform/get/all-table', params })
|
||||
}
|
||||
|
||||
//获取表单懒加载控件回显结构数据
|
||||
export const getLazyStructureData = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/get/tree-parent`, data: { jeeLowCode_treeParent: encryptAES(JSON.stringify(data)) } })
|
||||
}
|
||||
|
||||
//视图表数据源SQL测试
|
||||
export const viewDataOriginTest = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/explain/datasource-sql`, data })
|
||||
}
|
||||
|
||||
//视图表数据源SQL解析
|
||||
export const viewDataOriginAnalysis = (data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform/explain/sqlfield`, data })
|
||||
}
|
||||
|
||||
//获取未在表单开发的数据库表
|
||||
export const getSqlFormDicData = () => {
|
||||
return request.get({ url: `/jeelowcode/dbform/get/not-in-dbform-tables` })
|
||||
}
|
||||
|
||||
//获取通过数据库表反向生成的配置数据
|
||||
export const getSqlFormConfig = (tableName) => {
|
||||
return request.get({ url: `/jeelowcode/dbform/get/tables-field?tableName=${tableName}` })
|
||||
}
|
||||
|
||||
//通过AI生成表信息
|
||||
export const getAiCreatedTable = (prompt) => {
|
||||
return request.get({ url: `/jeelowcode/dbform/ai/create-table?prompt=${prompt}`, moerData: { timeout: 120000 } })
|
||||
}
|
||||
|
||||
//上传文件/图片
|
||||
export const upLoadData = (data) => {
|
||||
return request.upload({ url: '/infra/file/jeelowcode/upload', data })
|
||||
}
|
||||
|
||||
|
||||
//获取表数据
|
||||
export const getTableList = (tableId, data, isOpen?) => {
|
||||
return request.post({ url: `/jeelowcode/${isOpen ? 'open' : 'dbform-data'}/list/${tableId}`, data })
|
||||
}
|
||||
|
||||
//新增表数据
|
||||
export const saveTableData = (tableId, data, isOpen?) => {
|
||||
return request.post({ url: `/jeelowcode/${isOpen ? 'open' : 'dbform-data'}/save/${tableId}`, data })
|
||||
}
|
||||
|
||||
//批量新增表数据
|
||||
export const batchSaveTableData = (tableId, data: object[], isOpen?) => {
|
||||
return request.post({ url: `/jeelowcode/${isOpen ? 'open' : 'dbform-data'}/save/batch/${tableId}`, data })
|
||||
}
|
||||
|
||||
//修改表数据
|
||||
export const updateTableData = (tableId, data) => {
|
||||
return request.put({ url: `/jeelowcode/dbform-data/edit/${tableId}`, data })
|
||||
}
|
||||
|
||||
//批量修改表数据
|
||||
export const batchUpdateTableData = (tableId, data) => {
|
||||
return request.put({ url: `/jeelowcode/dbform-data/edit/batch/${tableId}`, data })
|
||||
}
|
||||
|
||||
//删除表数据
|
||||
export const deleteTableData = (tableId, ids) => {
|
||||
return request.delete({ url: `/jeelowcode/dbform-data/delete/${tableId}`, data: ids })
|
||||
}
|
||||
|
||||
//获取表数据详情
|
||||
export const getTableDetail = (tableId, id, isOpen) => {
|
||||
return request.post({ url: `/jeelowcode/${isOpen ? 'open' : 'dbform-data'}/detail/${tableId}/${id}` })
|
||||
}
|
||||
|
||||
//导出Excel表数据
|
||||
export const exportExcelData = (tableId, data) => {
|
||||
return request.download({ url: `/jeelowcode/excel/exportExcel/${tableId}`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//下载导入模板
|
||||
export const downloadImportTemplate = (tableId) => {
|
||||
return request.download({ url: `/jeelowcode/excel/exportExcelTemplate/${tableId}` })
|
||||
}
|
||||
|
||||
//上传需要导入的数据
|
||||
export const uploadViewExcelData = (tableId, data) => {
|
||||
return request.upload({ url: `/jeelowcode/excel/viewExcel/${tableId}`, data: data })
|
||||
}
|
||||
|
||||
//查询预览导入进度
|
||||
export const getViewImportProgress = (tableId, batchCode) => {
|
||||
return request.get({ url: `/jeelowcode/excel/viewProgress/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//获取上传的导入数据
|
||||
export const getUploadImportData = (tableId, params) => {
|
||||
return request.post({ url: `/jeelowcode/excel/view/page/${tableId}`, params })
|
||||
}
|
||||
|
||||
//修改上传的导入数据
|
||||
export const updateUploadImportData = (tableId, data) => {
|
||||
return request.post({ url: `/jeelowcode/excel/update/fileData/${tableId}`, data })
|
||||
}
|
||||
//删除上传的导入数据
|
||||
export const deleteUploadImportData = (tableId, id) => {
|
||||
return request.post({ url: `/jeelowcode/excel/del/fileData/${tableId}`, data: { id } })
|
||||
}
|
||||
|
||||
//导入上传数据
|
||||
export const importUploadData = (tableId, batchCode) => {
|
||||
return request.post({ url: `/jeelowcode/excel/run/import/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//获取历史导入记录
|
||||
export const getHistoryImportData = (tableId, params) => {
|
||||
return request.post({ url: `/jeelowcode/excel/file/list/${tableId}`, params })
|
||||
}
|
||||
|
||||
//撤销导入
|
||||
export const cancelImportData = (tableId, batchCode) => {
|
||||
return request.post({ url: `/jeelowcode/excel/rollback/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
|
||||
//获取导入进度
|
||||
export const getImportProgress = (tableId, params) => {
|
||||
return request.get({ url: `/jeelowcode/excel/importProgress/${tableId}`, params })
|
||||
}
|
||||
|
||||
//设置导入状态
|
||||
export const setImportState = (tableId, params) => {
|
||||
return request.get({ url: `/jeelowcode/excel/importOpTask/${tableId}`, params })
|
||||
}
|
||||
|
||||
//下载导入失败的excel
|
||||
export const downloadImportError = (tableId, batchCode) => {
|
||||
return request.download({ url: `/jeelowcode/excel/downloadErrorExcel/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//校验值是否唯一
|
||||
export const verifyDataOnly = (tableId, data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-data/unique/${tableId}`, data })
|
||||
}
|
||||
|
||||
//获取表数据统计信息
|
||||
export const getTableDataSummary = (tableId, data) => {
|
||||
return request.post({ url: `/jeelowcode/dbform-data/summary/${tableId}`, data })
|
||||
}
|
||||
|
||||
//获取地区控件回显数据
|
||||
export const getRegionEchoData = (data) => {
|
||||
return request.post({ url: `/system/area/view-parent-list`, data })
|
||||
}
|
||||
|
||||
|
||||
|
||||
28
src/api/design/table/javaEnhance.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
|
||||
//获取Java增强列表
|
||||
export const getJavaList = (params) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/java/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增Java增强
|
||||
export const saveJavaData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/enhance/java/save', data })
|
||||
}
|
||||
|
||||
//修改Java增强
|
||||
export const updateJavaData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/enhance/java/update', data })
|
||||
}
|
||||
|
||||
//获取Java增强详情数据
|
||||
export const getJavaDetail = (id) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/java/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除Java增强数据
|
||||
export const deleteJavaData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/enhance/java/delete', data: ids })
|
||||
}
|
||||
|
||||
24
src/api/design/table/jsEnhance.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import request from '@/config/axios'
|
||||
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
|
||||
|
||||
//新增Js增强
|
||||
export const saveJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.post({ url: '/jeelowcode/enhance/js/save', data })
|
||||
}
|
||||
|
||||
//修改Js增强
|
||||
export const updateJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/jeelowcode/enhance/js/update', data })
|
||||
}
|
||||
|
||||
//获取Js增强详情数据
|
||||
export const getJsDetail = (params) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/js/detail`, params })
|
||||
}
|
||||
|
||||
//解除Js增强锁定
|
||||
export const unlockJs = (dbformId, type) => {
|
||||
return request.post({ url: `/jeelowcode/enhance/js/unlock/${dbformId}?type=${type}` })
|
||||
}
|
||||
27
src/api/design/table/qslEnhance.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
|
||||
//获取SQL增强列表
|
||||
export const getSqlList = (params) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/sql/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增SQL增强
|
||||
export const saveSqlData = (data) => {
|
||||
return request.post({ url: '/jeelowcode/enhance/sql/save', data })
|
||||
}
|
||||
|
||||
//修改SQL增强
|
||||
export const updateSqlData = (data) => {
|
||||
return request.put({ url: '/jeelowcode/enhance/sql/update', data })
|
||||
}
|
||||
|
||||
//获取SQL增强详情数据
|
||||
export const getSqlDetail = (id) => {
|
||||
return request.get({ url: `/jeelowcode/enhance/sql/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除SQL增强数据
|
||||
export const deleteSqlData = (ids) => {
|
||||
return request.delete({ url: '/jeelowcode/enhance/sql/delete', data: ids })
|
||||
}
|
||||
48
src/api/infra/config/index.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ConfigVO {
|
||||
id: number | undefined
|
||||
category: string
|
||||
name: string
|
||||
key: string
|
||||
value: string
|
||||
type: number
|
||||
visible: boolean
|
||||
remark: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询参数列表
|
||||
export const getConfigPage = (params: PageParam) => {
|
||||
return request.get({ url: '/infra/config/page', params })
|
||||
}
|
||||
|
||||
// 查询参数详情
|
||||
export const getConfig = (id: number) => {
|
||||
return request.get({ url: '/infra/config/get?id=' + id })
|
||||
}
|
||||
|
||||
// 根据参数键名查询参数值
|
||||
export const getConfigKey = (configKey: string) => {
|
||||
return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
|
||||
}
|
||||
|
||||
// 新增参数
|
||||
export const createConfig = (data: ConfigVO) => {
|
||||
return request.post({ url: '/infra/config/create', data })
|
||||
}
|
||||
|
||||
// 修改参数
|
||||
export const updateConfig = (data: ConfigVO) => {
|
||||
return request.put({ url: '/infra/config/update', data })
|
||||
}
|
||||
|
||||
// 删除参数
|
||||
export const deleteConfig = (id: number) => {
|
||||
return request.delete({ url: '/infra/config/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出参数
|
||||
export const exportConfig = (params) => {
|
||||
return request.download({ url: '/infra/config/export', params })
|
||||
}
|
||||
38
src/api/infra/dataSourceConfig/index.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface DataSourceConfigVO {
|
||||
id: number | undefined
|
||||
dbCode: string,
|
||||
name: string
|
||||
dbType: string,
|
||||
driverClass: string,
|
||||
url: string
|
||||
username: string
|
||||
password: string
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 新增数据源配置
|
||||
export const createDataSourceConfig = (data: DataSourceConfigVO) => {
|
||||
return request.post({ url: '/infra/data-source-config/create', data })
|
||||
}
|
||||
|
||||
// 修改数据源配置
|
||||
export const updateDataSourceConfig = (data: DataSourceConfigVO) => {
|
||||
return request.put({ url: '/infra/data-source-config/update', data })
|
||||
}
|
||||
|
||||
// 删除数据源配置
|
||||
export const deleteDataSourceConfig = (id: number) => {
|
||||
return request.delete({ url: '/infra/data-source-config/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 查询数据源配置详情
|
||||
export const getDataSourceConfig = (id: number) => {
|
||||
return request.get({ url: '/infra/data-source-config/get?id=' + id })
|
||||
}
|
||||
|
||||
// 查询数据源配置列表
|
||||
export const getDataSourceConfigList = () => {
|
||||
return request.get({ url: '/infra/data-source-config/list' })
|
||||
}
|
||||
16
src/api/infra/dbDoc/index.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 导出Html
|
||||
export const exportHtml = () => {
|
||||
return request.download({ url: '/infra/db-doc/export-html' })
|
||||
}
|
||||
|
||||
// 导出Word
|
||||
export const exportWord = () => {
|
||||
return request.download({ url: '/infra/db-doc/export-word' })
|
||||
}
|
||||
|
||||
// 导出Markdown
|
||||
export const exportMarkdown = () => {
|
||||
return request.download({ url: '/infra/db-doc/export-markdown' })
|
||||
}
|
||||
46
src/api/infra/file/index.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface FilePageReqVO extends PageParam {
|
||||
path?: string
|
||||
type?: string
|
||||
createTime?: Date[]
|
||||
}
|
||||
|
||||
// 文件预签名地址 Response VO
|
||||
export interface FilePresignedUrlRespVO {
|
||||
// 文件配置编号
|
||||
configId: number
|
||||
// 文件上传 URL
|
||||
uploadUrl: string
|
||||
// 文件 URL
|
||||
url: string
|
||||
}
|
||||
|
||||
// 查询文件列表
|
||||
export const getFilePage = (params: FilePageReqVO) => {
|
||||
return request.get({ url: '/infra/file/page', params })
|
||||
}
|
||||
|
||||
// 删除文件
|
||||
export const deleteFile = (id: number) => {
|
||||
return request.delete({ url: '/infra/file/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 获取文件预签名地址
|
||||
export const getFilePresignedUrl = (path: string) => {
|
||||
return request.get<FilePresignedUrlRespVO>({
|
||||
url: '/infra/file/presigned-url',
|
||||
params: { path }
|
||||
})
|
||||
}
|
||||
|
||||
// 创建文件
|
||||
export const createFile = (data: any) => {
|
||||
return request.post({ url: '/infra/file/create', data })
|
||||
}
|
||||
|
||||
// 上传文件
|
||||
export const updateFile = (data: any) => {
|
||||
return request.upload({ url: '/infra/file/upload', data })
|
||||
}
|
||||
|
||||
61
src/api/infra/fileConfig/index.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import request from '@/config/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 const getFileConfigPage = (params: PageParam) => {
|
||||
return request.get({ url: '/infra/file-config/page', params })
|
||||
}
|
||||
|
||||
// 查询文件配置详情
|
||||
export const getFileConfig = (id: number) => {
|
||||
return request.get({ url: '/infra/file-config/get?id=' + id })
|
||||
}
|
||||
|
||||
// 更新文件配置为主配置
|
||||
export const updateFileConfigMaster = (id: number) => {
|
||||
return request.put({ url: '/infra/file-config/update-master?id=' + id })
|
||||
}
|
||||
|
||||
// 新增文件配置
|
||||
export const createFileConfig = (data: FileConfigVO) => {
|
||||
return request.post({ url: '/infra/file-config/create', data })
|
||||
}
|
||||
|
||||
// 修改文件配置
|
||||
export const updateFileConfig = (data: FileConfigVO) => {
|
||||
return request.put({ url: '/infra/file-config/update', data })
|
||||
}
|
||||
|
||||
// 删除文件配置
|
||||
export const deleteFileConfig = (id: number) => {
|
||||
return request.delete({ url: '/infra/file-config/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 测试文件配置
|
||||
export const testFileConfig = (id: number) => {
|
||||
return request.get({ url: '/infra/file-config/test?id=' + id })
|
||||
}
|
||||
63
src/api/infra/job/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/config/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 const getJobPage = (params: PageParam) => {
|
||||
return request.get({ url: '/infra/job/page', params })
|
||||
}
|
||||
|
||||
// 任务详情
|
||||
export const getJob = (id: number) => {
|
||||
return request.get({ url: '/infra/job/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增任务
|
||||
export const createJob = (data: JobVO) => {
|
||||
return request.post({ url: '/infra/job/create', data })
|
||||
}
|
||||
|
||||
// 修改定时任务调度
|
||||
export const updateJob = (data: JobVO) => {
|
||||
return request.put({ url: '/infra/job/update', data })
|
||||
}
|
||||
|
||||
// 删除定时任务调度
|
||||
export const deleteJob = (id: number) => {
|
||||
return request.delete({ url: '/infra/job/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出定时任务调度
|
||||
export const exportJob = (params) => {
|
||||
return request.download({ url: '/infra/job/export-excel', params })
|
||||
}
|
||||
|
||||
// 任务状态修改
|
||||
export const updateJobStatus = (id: number, status: number) => {
|
||||
const params = {
|
||||
id,
|
||||
status
|
||||
}
|
||||
return request.put({ url: '/infra/job/update-status', params })
|
||||
}
|
||||
|
||||
// 定时任务立即执行一次
|
||||
export const runJob = (id: number) => {
|
||||
return request.put({ url: '/infra/job/trigger?id=' + id })
|
||||
}
|
||||
|
||||
// 获得定时任务的下 n 次执行时间
|
||||
export const getJobNextTimes = (id: number) => {
|
||||
return request.get({ url: '/infra/job/get_next_times?id=' + id })
|
||||
}
|
||||
33
src/api/infra/jobLog/index.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface JobLogVO {
|
||||
id: number
|
||||
jobId: number
|
||||
handlerName: string
|
||||
handlerParam: string
|
||||
cronExpression: string
|
||||
executeIndex: string
|
||||
beginTime: Date
|
||||
endTime: Date
|
||||
duration: string
|
||||
status: number
|
||||
createTime: string
|
||||
}
|
||||
|
||||
// 任务日志列表
|
||||
export const getJobLogPage = (params: PageParam) => {
|
||||
return request.get({ url: '/infra/job-log/page', params })
|
||||
}
|
||||
|
||||
// 任务日志详情
|
||||
export const getJobLog = (id: number) => {
|
||||
return request.get({ url: '/infra/job-log/get?id=' + id })
|
||||
}
|
||||
|
||||
// 导出定时任务日志
|
||||
export const exportJobLog = (params) => {
|
||||
return request.download({
|
||||
url: '/infra/job-log/export-excel',
|
||||
params
|
||||
})
|
||||
}
|
||||
8
src/api/infra/redis/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
/**
|
||||
* 获取redis 监控信息
|
||||
*/
|
||||
export const getCache = () => {
|
||||
return request.get({ url: '/infra/redis/get-monitor-info' })
|
||||
}
|
||||
176
src/api/infra/redis/types.ts
Normal file
@@ -0,0 +1,176 @@
|
||||
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
|
||||
}
|
||||
99
src/api/login/index.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import request from '@/config/axios'
|
||||
import { getRefreshToken } from '@/utils/auth'
|
||||
import type { UserLoginVO } from './types'
|
||||
|
||||
export interface SmsCodeVO {
|
||||
mobile: string
|
||||
scene: number
|
||||
}
|
||||
|
||||
export interface SmsLoginVO {
|
||||
mobile: string
|
||||
code: string
|
||||
}
|
||||
|
||||
// 登录
|
||||
export const login = (data: UserLoginVO) => {
|
||||
return request.post({ url: '/system/auth/login', data })
|
||||
}
|
||||
|
||||
// 刷新访问令牌
|
||||
export const refreshToken = () => {
|
||||
return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() })
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换部门/角色
|
||||
* @param loginDeptId 部门id
|
||||
* @param loginRoleId 角色id
|
||||
*/
|
||||
export const switchLogin = (data) => {
|
||||
return request.post({ url: '/system/auth/switch-login', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换租户
|
||||
* @param tenantId 租户id
|
||||
*/
|
||||
export const switchTenant = (data) => {
|
||||
return request.post({ url: '/system/auth/switch-tenant', data })
|
||||
}
|
||||
|
||||
|
||||
// 使用租户名,获得租户编号
|
||||
export const getTenantIdByName = (name: string) => {
|
||||
return request.get({ url: '/system/tenant/get-id-by-name?name=' + name })
|
||||
}
|
||||
|
||||
// 使用租户域名,获得租户信息
|
||||
export const getTenantByWebsite = (website: string) => {
|
||||
return request.get({ url: '/system/tenant/get-by-website?website=' + website })
|
||||
}
|
||||
|
||||
// 登出
|
||||
export const loginOut = () => {
|
||||
return request.post({ url: '/system/auth/logout' })
|
||||
}
|
||||
|
||||
// 获取用户权限信息
|
||||
export const getInfo = () => {
|
||||
return request.get({ url: '/system/auth/get-permission-info' })
|
||||
}
|
||||
|
||||
//获取登录验证码
|
||||
export const sendSmsCode = (data: SmsCodeVO) => {
|
||||
return request.post({ url: '/system/auth/send-sms-code', data })
|
||||
}
|
||||
|
||||
// 短信验证码登录
|
||||
export const smsLogin = (data: SmsLoginVO) => {
|
||||
return request.post({ url: '/system/auth/sms-login', data })
|
||||
}
|
||||
|
||||
// 社交快捷登录,使用 code 授权码
|
||||
export function socialLogin(type: string, code: string, state: string) {
|
||||
return request.post({
|
||||
url: '/system/auth/social-login',
|
||||
data: {
|
||||
type,
|
||||
code,
|
||||
state
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 社交授权的跳转
|
||||
export const socialAuthRedirect = (type: number, redirectUri: string) => {
|
||||
return request.get({
|
||||
url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
|
||||
})
|
||||
}
|
||||
// 获取验证图片以及 token
|
||||
export const getCode = (data) => {
|
||||
return request.postOriginal({ url: 'system/captcha/get', data })
|
||||
}
|
||||
|
||||
// 滑动或者点选验证
|
||||
export const reqCheck = (data) => {
|
||||
return request.postOriginal({ url: 'system/captcha/check', data })
|
||||
}
|
||||
41
src/api/login/oauth2/index.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 获得授权信息
|
||||
export const getAuthorize = (clientId: string) => {
|
||||
return request.get({ url: '/system/oauth2/authorize?clientId=' + clientId })
|
||||
}
|
||||
|
||||
// 发起授权
|
||||
export const authorize = (
|
||||
responseType: string,
|
||||
clientId: string,
|
||||
redirectUri: string,
|
||||
state: string,
|
||||
autoApprove: boolean,
|
||||
checkedScopes: string[],
|
||||
uncheckedScopes: string[]
|
||||
) => {
|
||||
// 构建 scopes
|
||||
const scopes = {}
|
||||
for (const scope of checkedScopes) {
|
||||
scopes[scope] = true
|
||||
}
|
||||
for (const scope of uncheckedScopes) {
|
||||
scopes[scope] = false
|
||||
}
|
||||
// 发起请求
|
||||
return request.post({
|
||||
url: '/system/oauth2/authorize',
|
||||
headers: {
|
||||
'Content-type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
params: {
|
||||
response_type: responseType,
|
||||
client_id: clientId,
|
||||
redirect_uri: redirectUri,
|
||||
state: state,
|
||||
auto_approve: autoApprove,
|
||||
scope: JSON.stringify(scopes)
|
||||
}
|
||||
})
|
||||
}
|
||||
31
src/api/login/types.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
export type UserLoginVO = {
|
||||
username: string
|
||||
password: string
|
||||
captchaVerification: string
|
||||
socialType?: string
|
||||
socialCode?: string
|
||||
socialState?: string
|
||||
}
|
||||
|
||||
export type TokenType = {
|
||||
id: number // 编号
|
||||
accessToken: string // 访问令牌
|
||||
refreshToken: string // 刷新令牌
|
||||
userId: number // 用户编号
|
||||
userType: number //用户类型
|
||||
clientId: string //客户端编号
|
||||
expiresTime: number //过期时间
|
||||
}
|
||||
|
||||
export type UserVO = {
|
||||
id: number
|
||||
username: string
|
||||
nickname: string
|
||||
deptId: number
|
||||
email: string
|
||||
mobile: string
|
||||
sex: number
|
||||
avatar: string
|
||||
loginIp: string
|
||||
loginDate: string
|
||||
}
|
||||
19
src/api/system/apiLog/index.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
type LogType = 'info' | 'error'
|
||||
|
||||
// 获取请求日志列表
|
||||
export const getLogPage = (logType: LogType, params) => {
|
||||
return request.get({ url: `/jeelowcode/apilog/page`, params: { logType, ...params } })
|
||||
}
|
||||
|
||||
// 获取日志详情
|
||||
export const getLogDetail = (logType: LogType, id: string) => {
|
||||
return request.get({ url: `/jeelowcode/apilog/detail?logType=${logType}&id=${id}`, })
|
||||
}
|
||||
|
||||
// 清除日志记录
|
||||
export const deleteLog = (logType: LogType, delDate: string) => {
|
||||
return request.delete({ url: `/jeelowcode/apilog/delete?logType=${logType}&delDate=${delDate}`, })
|
||||
}
|
||||
|
||||
11
src/api/system/area/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 获得地区树
|
||||
export const getAreaTree = async () => {
|
||||
return await request.get({ url: '/system/area/tree' })
|
||||
}
|
||||
|
||||
// 获得 IP 对应的地区名
|
||||
export const getAreaByIp = async (ip: string) => {
|
||||
return await request.get({ url: '/system/area/get-by-ip?ip=' + ip })
|
||||
}
|
||||
43
src/api/system/dept/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface DeptVO {
|
||||
id?: number
|
||||
name: string
|
||||
parentId: number
|
||||
status: number
|
||||
sort: number
|
||||
leaderUserId: number
|
||||
phone: string
|
||||
email: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询部门(精简)列表
|
||||
export const getSimpleDeptList = async (): Promise<DeptVO[]> => {
|
||||
return await request.get({ url: '/system/dept/simple-list' })
|
||||
}
|
||||
|
||||
// 查询部门列表
|
||||
export const getDeptPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/dept/list', params })
|
||||
}
|
||||
|
||||
// 查询部门详情
|
||||
export const getDept = async (id: number) => {
|
||||
return await request.get({ url: '/system/dept/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增部门
|
||||
export const createDept = async (data: DeptVO) => {
|
||||
return await request.post({ url: '/system/dept/create', data: data })
|
||||
}
|
||||
|
||||
// 修改部门
|
||||
export const updateDept = async (params: DeptVO) => {
|
||||
return await request.put({ url: '/system/dept/update', data: params })
|
||||
}
|
||||
|
||||
// 删除部门
|
||||
export const deleteDept = async (id: number) => {
|
||||
return await request.delete({ url: '/system/dept/delete?id=' + id })
|
||||
}
|
||||
49
src/api/system/dict/dict.data.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type DictDataVO = {
|
||||
id: number | undefined
|
||||
sort: number | undefined
|
||||
label: string
|
||||
value: string
|
||||
dictType: string
|
||||
status: number
|
||||
colorType: string
|
||||
cssClass: string
|
||||
remark: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询字典数据(精简)列表
|
||||
export const getSimpleDictDataList = () => {
|
||||
return request.get({ url: '/system/dict-data/simple-list' })
|
||||
}
|
||||
|
||||
// 查询字典数据列表
|
||||
export const getDictDataPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/dict-data/page', params })
|
||||
}
|
||||
|
||||
// 查询字典数据详情
|
||||
export const getDictData = (id: number) => {
|
||||
return request.get({ url: '/system/dict-data/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增字典数据
|
||||
export const createDictData = (data: DictDataVO) => {
|
||||
return request.post({ url: '/system/dict-data/create', data })
|
||||
}
|
||||
|
||||
// 修改字典数据
|
||||
export const updateDictData = (data: DictDataVO) => {
|
||||
return request.put({ url: '/system/dict-data/update', data })
|
||||
}
|
||||
|
||||
// 删除字典数据
|
||||
export const deleteDictData = (id: number) => {
|
||||
return request.delete({ url: '/system/dict-data/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出字典类型数据
|
||||
export const exportDictData = (params) => {
|
||||
return request.download({ url: '/system/dict-data/export', params })
|
||||
}
|
||||
44
src/api/system/dict/dict.type.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type DictTypeVO = {
|
||||
id: number | undefined
|
||||
name: string
|
||||
type: string
|
||||
status: number
|
||||
remark: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询字典(精简)列表
|
||||
export const getSimpleDictTypeList = () => {
|
||||
return request.get({ url: '/system/dict-type/list-all-simple' })
|
||||
}
|
||||
|
||||
// 查询字典列表
|
||||
export const getDictTypePage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/dict-type/page', params })
|
||||
}
|
||||
|
||||
// 查询字典详情
|
||||
export const getDictType = (id: number) => {
|
||||
return request.get({ url: '/system/dict-type/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增字典
|
||||
export const createDictType = (data: DictTypeVO) => {
|
||||
return request.post({ url: '/system/dict-type/create', data })
|
||||
}
|
||||
|
||||
// 修改字典
|
||||
export const updateDictType = (data: DictTypeVO) => {
|
||||
return request.put({ url: '/system/dict-type/update', data })
|
||||
}
|
||||
|
||||
// 删除字典
|
||||
export const deleteDictType = (id: number) => {
|
||||
return request.delete({ url: '/system/dict-type/delete?id=' + id })
|
||||
}
|
||||
// 导出字典类型
|
||||
export const exportDictType = (params) => {
|
||||
return request.download({ url: '/system/dict-type/export', params })
|
||||
}
|
||||
45
src/api/system/duty/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface DutyVO {
|
||||
id?: number
|
||||
name: string
|
||||
sort: number
|
||||
status: number
|
||||
remark: string
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 查询职务列表
|
||||
export const getDutyPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/duty/page', params })
|
||||
}
|
||||
|
||||
// 获取职务精简信息列表
|
||||
export const getSimpleDutyList = async (): Promise<DutyVO[]> => {
|
||||
return await request.get({ url: '/system/duty/simple-list' })
|
||||
}
|
||||
|
||||
// 查询职务详情
|
||||
export const getDuty = async (id: number) => {
|
||||
return await request.get({ url: '/system/duty/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增职务
|
||||
export const createDuty = async (data: DutyVO) => {
|
||||
return await request.post({ url: '/system/duty/create', data })
|
||||
}
|
||||
|
||||
// 修改职务
|
||||
export const updateDuty = async (data: DutyVO) => {
|
||||
return await request.put({ url: '/system/duty/update', data })
|
||||
}
|
||||
|
||||
// 删除职务
|
||||
export const deleteDuty = async (id: number) => {
|
||||
return await request.delete({ url: '/system/duty/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出职务
|
||||
export const exportDuty = async (params) => {
|
||||
return await request.download({ url: '/system/duty/export', params })
|
||||
}
|
||||
40
src/api/system/errorCode/index.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ErrorCodeVO {
|
||||
id: number | undefined
|
||||
type: number
|
||||
applicationName: string
|
||||
code: number | undefined
|
||||
message: string
|
||||
memo: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询错误码列表
|
||||
export const getErrorCodePage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/error-code/page', params })
|
||||
}
|
||||
|
||||
// 查询错误码详情
|
||||
export const getErrorCode = (id: number) => {
|
||||
return request.get({ url: '/system/error-code/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增错误码
|
||||
export const createErrorCode = (data: ErrorCodeVO) => {
|
||||
return request.post({ url: '/system/error-code/create', data })
|
||||
}
|
||||
|
||||
// 修改错误码
|
||||
export const updateErrorCode = (data: ErrorCodeVO) => {
|
||||
return request.put({ url: '/system/error-code/update', data })
|
||||
}
|
||||
|
||||
// 删除错误码
|
||||
export const deleteErrorCode = (id: number) => {
|
||||
return request.delete({ url: '/system/error-code/delete?id=' + id })
|
||||
}
|
||||
// 导出错误码
|
||||
export const excelErrorCode = (params) => {
|
||||
return request.download({ url: '/system/error-code/export-excel', params })
|
||||
}
|
||||
25
src/api/system/loginLog/index.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface LoginLogVO {
|
||||
id: number
|
||||
logType: number
|
||||
traceId: number
|
||||
userId: number
|
||||
userType: number
|
||||
username: string
|
||||
result: number
|
||||
status: number
|
||||
userIp: string
|
||||
userAgent: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询登录日志列表
|
||||
export const getLoginLogPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/login-log/page', params })
|
||||
}
|
||||
|
||||
// 导出登录日志
|
||||
export const exportLoginLog = (params) => {
|
||||
return request.download({ url: '/system/login-log/export', params })
|
||||
}
|
||||
41
src/api/system/mail/account/index.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface MailAccountVO {
|
||||
id: number
|
||||
mail: string
|
||||
username: string
|
||||
password: string
|
||||
host: string
|
||||
port: number
|
||||
sslEnable: boolean
|
||||
}
|
||||
|
||||
// 查询邮箱账号列表
|
||||
export const getMailAccountPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/mail-account/page', params })
|
||||
}
|
||||
|
||||
// 查询邮箱账号详情
|
||||
export const getMailAccount = async (id: number) => {
|
||||
return await request.get({ url: '/system/mail-account/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增邮箱账号
|
||||
export const createMailAccount = async (data: MailAccountVO) => {
|
||||
return await request.post({ url: '/system/mail-account/create', data })
|
||||
}
|
||||
|
||||
// 修改邮箱账号
|
||||
export const updateMailAccount = async (data: MailAccountVO) => {
|
||||
return await request.put({ url: '/system/mail-account/update', data })
|
||||
}
|
||||
|
||||
// 删除邮箱账号
|
||||
export const deleteMailAccount = async (id: number) => {
|
||||
return await request.delete({ url: '/system/mail-account/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 获得邮箱账号精简列表
|
||||
export const getSimpleMailAccountList = async () => {
|
||||
return request.get({ url: '/system/mail-account/simple-list' })
|
||||
}
|
||||
30
src/api/system/mail/log/index.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface MailLogVO {
|
||||
id: number
|
||||
userId: number
|
||||
userType: number
|
||||
toMail: string
|
||||
accountId: number
|
||||
fromMail: string
|
||||
templateId: number
|
||||
templateCode: string
|
||||
templateNickname: string
|
||||
templateTitle: string
|
||||
templateContent: string
|
||||
templateParams: string
|
||||
sendStatus: number
|
||||
sendTime: Date
|
||||
sendMessageId: string
|
||||
sendException: string
|
||||
}
|
||||
|
||||
// 查询邮件日志列表
|
||||
export const getMailLogPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/mail-log/page', params })
|
||||
}
|
||||
|
||||
// 查询邮件日志详情
|
||||
export const getMailLog = async (id: number) => {
|
||||
return await request.get({ url: '/system/mail-log/get?id=' + id })
|
||||
}
|
||||
50
src/api/system/mail/template/index.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface MailTemplateVO {
|
||||
id: number
|
||||
name: string
|
||||
code: string
|
||||
accountId: number
|
||||
nickname: string
|
||||
title: string
|
||||
content: string
|
||||
params: string
|
||||
status: number
|
||||
remark: string
|
||||
}
|
||||
|
||||
export interface MailSendReqVO {
|
||||
mail: string
|
||||
templateCode: string
|
||||
templateParams: Map<String, Object>
|
||||
}
|
||||
|
||||
// 查询邮件模版列表
|
||||
export const getMailTemplatePage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/mail-template/page', params })
|
||||
}
|
||||
|
||||
// 查询邮件模版详情
|
||||
export const getMailTemplate = async (id: number) => {
|
||||
return await request.get({ url: '/system/mail-template/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增邮件模版
|
||||
export const createMailTemplate = async (data: MailTemplateVO) => {
|
||||
return await request.post({ url: '/system/mail-template/create', data })
|
||||
}
|
||||
|
||||
// 修改邮件模版
|
||||
export const updateMailTemplate = async (data: MailTemplateVO) => {
|
||||
return await request.put({ url: '/system/mail-template/update', data })
|
||||
}
|
||||
|
||||
// 删除邮件模版
|
||||
export const deleteMailTemplate = async (id: number) => {
|
||||
return await request.delete({ url: '/system/mail-template/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 发送邮件
|
||||
export const sendMail = (data: MailSendReqVO) => {
|
||||
return request.post({ url: '/system/mail-template/send-mail', data })
|
||||
}
|
||||
54
src/api/system/menu/index.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface MenuVO {
|
||||
id: number
|
||||
name: string
|
||||
permission: string
|
||||
type: number
|
||||
sort: number
|
||||
parentId: number
|
||||
path: string
|
||||
icon: string
|
||||
component: string
|
||||
componentName?: string
|
||||
status: number
|
||||
visible: boolean
|
||||
keepAlive: boolean
|
||||
alwaysShow?: boolean
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询菜单(精简)列表
|
||||
export const getSimpleMenusList = () => {
|
||||
return request.get({ url: '/system/menu/simple-list' })
|
||||
}
|
||||
|
||||
// 查询菜单列表
|
||||
export const getMenuList = (params) => {
|
||||
return request.get({ url: '/system/menu/list', params })
|
||||
}
|
||||
|
||||
// 获取菜单详情
|
||||
export const getMenu = (id: number) => {
|
||||
return request.get({ url: '/system/menu/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增菜单
|
||||
export const createMenu = (data: MenuVO) => {
|
||||
return request.post({ url: '/system/menu/create', data })
|
||||
}
|
||||
|
||||
//批量新增菜单
|
||||
export const batchCreateMenu = (data: Array<MenuVO>) => {
|
||||
return request.post({ url: '/system/menu/batch/create', data })
|
||||
}
|
||||
|
||||
// 修改菜单
|
||||
export const updateMenu = (data: MenuVO) => {
|
||||
return request.put({ url: '/system/menu/update', data })
|
||||
}
|
||||
|
||||
// 删除菜单
|
||||
export const deleteMenu = (ids: number[], type?: number) => {
|
||||
return request.delete({ url: '/system/menu/delete', params: { type }, data: ids })
|
||||
}
|
||||
42
src/api/system/notice/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface NoticeVO {
|
||||
id: number | undefined
|
||||
title: string
|
||||
type: number
|
||||
content: string
|
||||
status: number
|
||||
remark: string
|
||||
creator: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询公告列表
|
||||
export const getNoticePage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/notice/page', params })
|
||||
}
|
||||
|
||||
// 查询公告详情
|
||||
export const getNotice = (id: number) => {
|
||||
return request.get({ url: '/system/notice/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增公告
|
||||
export const createNotice = (data: NoticeVO) => {
|
||||
return request.post({ url: '/system/notice/create', data })
|
||||
}
|
||||
|
||||
// 修改公告
|
||||
export const updateNotice = (data: NoticeVO) => {
|
||||
return request.put({ url: '/system/notice/update', data })
|
||||
}
|
||||
|
||||
// 删除公告
|
||||
export const deleteNotice = (id: number) => {
|
||||
return request.delete({ url: '/system/notice/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 推送公告
|
||||
export const pushNotice = (id: number) => {
|
||||
return request.post({ url: '/system/notice/push?id=' + id })
|
||||
}
|
||||
49
src/api/system/notify/message/index.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from '@/config/axios'
|
||||
import qs from 'qs'
|
||||
|
||||
export interface NotifyMessageVO {
|
||||
id: number
|
||||
userId: number
|
||||
userType: number
|
||||
templateId: number
|
||||
templateCode: string
|
||||
templateNickname: string
|
||||
templateContent: string
|
||||
templateType: number
|
||||
templateParams: string
|
||||
readStatus: boolean
|
||||
readTime: Date
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询站内信消息列表
|
||||
export const getNotifyMessagePage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/notify-message/page', params })
|
||||
}
|
||||
|
||||
// 获得我的站内信分页
|
||||
export const getMyNotifyMessagePage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/notify-message/my-page', params })
|
||||
}
|
||||
|
||||
// 批量标记已读
|
||||
export const updateNotifyMessageRead = async (ids) => {
|
||||
return await request.put({
|
||||
url: '/system/notify-message/update-read?' + qs.stringify({ ids: ids }, { indices: false })
|
||||
})
|
||||
}
|
||||
|
||||
// 标记所有站内信为已读
|
||||
export const updateAllNotifyMessageRead = async () => {
|
||||
return await request.put({ url: '/system/notify-message/update-all-read' })
|
||||
}
|
||||
|
||||
// 获取当前用户的最新站内信列表
|
||||
export const getUnreadNotifyMessageList = async () => {
|
||||
return await request.get({ url: '/system/notify-message/get-unread-list' })
|
||||
}
|
||||
|
||||
// 获得当前用户的未读站内信数量
|
||||
export const getUnreadNotifyMessageCount = async () => {
|
||||
return await request.get({ url: '/system/notify-message/get-unread-count' })
|
||||
}
|
||||
50
src/api/system/notify/template/index.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface NotifyTemplateVO {
|
||||
id?: number
|
||||
name: string
|
||||
nickname: string
|
||||
code: string
|
||||
content: string
|
||||
type?: number
|
||||
params: string
|
||||
status: number
|
||||
remark: string
|
||||
}
|
||||
|
||||
export interface NotifySendReqVO {
|
||||
userIdList: number[]
|
||||
userType: number | string
|
||||
templateCode: string
|
||||
templateParams: Map<String, Object>
|
||||
}
|
||||
|
||||
// 查询站内信模板列表
|
||||
export const getNotifyTemplatePage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/notify-template/page', params })
|
||||
}
|
||||
|
||||
// 查询站内信模板详情
|
||||
export const getNotifyTemplate = async (id: number) => {
|
||||
return await request.get({ url: '/system/notify-template/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增站内信模板
|
||||
export const createNotifyTemplate = async (data: NotifyTemplateVO) => {
|
||||
return await request.post({ url: '/system/notify-template/create', data })
|
||||
}
|
||||
|
||||
// 修改站内信模板
|
||||
export const updateNotifyTemplate = async (data: NotifyTemplateVO) => {
|
||||
return await request.put({ url: '/system/notify-template/update', data })
|
||||
}
|
||||
|
||||
// 删除站内信模板
|
||||
export const deleteNotifyTemplate = async (id: number) => {
|
||||
return await request.delete({ url: '/system/notify-template/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 发送站内信
|
||||
export const sendNotify = (data: NotifySendReqVO) => {
|
||||
return request.post({ url: '/system/notify-template/send-notify', data })
|
||||
}
|
||||
47
src/api/system/oauth2/client.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import request from '@/config/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
|
||||
}
|
||||
|
||||
// 查询 OAuth2 客户端的列表
|
||||
export const getOAuth2ClientPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/oauth2-client/page', params })
|
||||
}
|
||||
|
||||
// 查询 OAuth2 客户端的详情
|
||||
export const getOAuth2Client = (id: number) => {
|
||||
return request.get({ url: '/system/oauth2-client/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增 OAuth2 客户端
|
||||
export const createOAuth2Client = (data: OAuth2ClientVO) => {
|
||||
return request.post({ url: '/system/oauth2-client/create', data })
|
||||
}
|
||||
|
||||
// 修改 OAuth2 客户端
|
||||
export const updateOAuth2Client = (data: OAuth2ClientVO) => {
|
||||
return request.put({ url: '/system/oauth2-client/update', data })
|
||||
}
|
||||
|
||||
// 删除 OAuth2
|
||||
export const deleteOAuth2Client = (id: number) => {
|
||||
return request.delete({ url: '/system/oauth2-client/delete?id=' + id })
|
||||
}
|
||||
22
src/api/system/oauth2/token.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface OAuth2TokenVO {
|
||||
id: number
|
||||
accessToken: string
|
||||
refreshToken: string
|
||||
userId: number
|
||||
userType: number
|
||||
clientId: string
|
||||
createTime: Date
|
||||
expiresTime: Date
|
||||
}
|
||||
|
||||
// 查询 token列表
|
||||
export const getAccessTokenPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/oauth2-token/page', params })
|
||||
}
|
||||
|
||||
// 删除 token
|
||||
export const deleteAccessToken = (accessToken: string) => {
|
||||
return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
|
||||
}
|
||||
59
src/api/system/operatelog/index.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export type OperateLogVO = {
|
||||
id: number
|
||||
userNickname: string
|
||||
traceId: string
|
||||
userId: number
|
||||
module: string
|
||||
name: string
|
||||
type: number
|
||||
content: string
|
||||
exts: Map<String, Object>
|
||||
requestMethod: string
|
||||
requestUrl: string
|
||||
userIp: string
|
||||
userAgent: string
|
||||
javaMethod: string
|
||||
javaMethodArgs: string
|
||||
startTime: Date
|
||||
duration: number
|
||||
resultCode: number
|
||||
resultMsg: string
|
||||
resultData: string
|
||||
}
|
||||
|
||||
export type OperateLogV2VO = {
|
||||
id: number
|
||||
userNickname: string
|
||||
traceId: string
|
||||
userType: number
|
||||
userId: number
|
||||
userName: string
|
||||
type: string
|
||||
subType: string
|
||||
bizId: number
|
||||
action: string
|
||||
extra: string
|
||||
requestMethod: string
|
||||
requestUrl: string
|
||||
userIp: string
|
||||
userAgent: string
|
||||
creator: string
|
||||
creatorName: string
|
||||
createTime: Date
|
||||
// 数据扩展,渲染时使用
|
||||
title: string // 操作标题(如果为空则取 name 值)
|
||||
colSize: number // 变更记录行数
|
||||
contentStrList: string[]
|
||||
tagsContentList: string[]
|
||||
}
|
||||
|
||||
// 查询操作日志列表
|
||||
export const getOperateLogPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/operate-log/page', params })
|
||||
}
|
||||
// 导出操作日志
|
||||
export const exportOperateLog = (params) => {
|
||||
return request.download({ url: '/system/operate-log/export', params })
|
||||
}
|
||||
42
src/api/system/permission/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/config/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 getRoleMenuList = async (roleId: number) => {
|
||||
return await request.get({ url: '/system/permission/list-role-menus?roleId=' + roleId })
|
||||
}
|
||||
|
||||
// 赋予角色菜单权限
|
||||
export const assignRoleMenu = async (data: PermissionAssignRoleMenuReqVO) => {
|
||||
return await request.post({ url: '/system/permission/assign-role-menu', data })
|
||||
}
|
||||
|
||||
// 赋予角色数据权限
|
||||
export const assignRoleDataScope = async (data: PermissionAssignRoleDataScopeReqVO) => {
|
||||
return await request.post({ url: '/system/permission/assign-role-data-scope', data })
|
||||
}
|
||||
|
||||
// 查询用户拥有的角色数组
|
||||
export const getUserRoleList = async (userId: number) => {
|
||||
return await request.get({ url: '/system/permission/list-user-roles?userId=' + userId })
|
||||
}
|
||||
|
||||
// 赋予用户角色
|
||||
export const assignUserRole = async (data: PermissionAssignUserRoleReqVO) => {
|
||||
return await request.post({ url: '/system/permission/assign-user-role', data })
|
||||
}
|
||||
45
src/api/system/position/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface PositionVO {
|
||||
id?: number
|
||||
name: string
|
||||
sort: number
|
||||
status: number
|
||||
remark: string
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 查询职位列表
|
||||
export const getPositionPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/position/page', params })
|
||||
}
|
||||
|
||||
// 获取职位精简信息列表
|
||||
export const getSimplePositionList = async (): Promise<PositionVO[]> => {
|
||||
return await request.get({ url: '/system/position/simple-list' })
|
||||
}
|
||||
|
||||
// 查询职位详情
|
||||
export const getPosition = async (id: number) => {
|
||||
return await request.get({ url: '/system/position/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增职位
|
||||
export const createPosition = async (data: PositionVO) => {
|
||||
return await request.post({ url: '/system/position/create', data })
|
||||
}
|
||||
|
||||
// 修改职位
|
||||
export const updatePosition = async (data: PositionVO) => {
|
||||
return await request.put({ url: '/system/position/update', data })
|
||||
}
|
||||
|
||||
// 删除职位
|
||||
export const deletePosition = async (id: number) => {
|
||||
return await request.delete({ url: '/system/position/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出职位
|
||||
export const exportPosition = async (params) => {
|
||||
return await request.download({ url: '/system/position/export', params })
|
||||
}
|
||||
45
src/api/system/post/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface PostVO {
|
||||
id?: number
|
||||
name: string
|
||||
sort: number
|
||||
status: number
|
||||
remark: string
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 查询岗位列表
|
||||
export const getPostPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/post/page', params })
|
||||
}
|
||||
|
||||
// 获取岗位精简信息列表
|
||||
export const getSimplePostList = async (): Promise<PostVO[]> => {
|
||||
return await request.get({ url: '/system/post/simple-list' })
|
||||
}
|
||||
|
||||
// 查询岗位详情
|
||||
export const getPost = async (id: number) => {
|
||||
return await request.get({ url: '/system/post/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增岗位
|
||||
export const createPost = async (data: PostVO) => {
|
||||
return await request.post({ url: '/system/post/create', data })
|
||||
}
|
||||
|
||||
// 修改岗位
|
||||
export const updatePost = async (data: PostVO) => {
|
||||
return await request.put({ url: '/system/post/update', data })
|
||||
}
|
||||
|
||||
// 删除岗位
|
||||
export const deletePost = async (id: number) => {
|
||||
return await request.delete({ url: '/system/post/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出岗位
|
||||
export const exportPost = async (params) => {
|
||||
return await request.download({ url: '/system/post/export', params })
|
||||
}
|
||||
45
src/api/system/rank/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface RankVO {
|
||||
id?: number
|
||||
name: string
|
||||
sort: number
|
||||
status: number
|
||||
remark: string
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 查询职级列表
|
||||
export const getRankPage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/rank/page', params })
|
||||
}
|
||||
|
||||
// 获取职级精简信息列表
|
||||
export const getSimpleRankList = async (): Promise<RankVO[]> => {
|
||||
return await request.get({ url: '/system/rank/simple-list' })
|
||||
}
|
||||
|
||||
// 查询职级详情
|
||||
export const getRank = async (id: number) => {
|
||||
return await request.get({ url: '/system/rank/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增职级
|
||||
export const createRank = async (data: RankVO) => {
|
||||
return await request.post({ url: '/system/rank/create', data })
|
||||
}
|
||||
|
||||
// 修改职级
|
||||
export const updateRank = async (data: RankVO) => {
|
||||
return await request.put({ url: '/system/rank/update', data })
|
||||
}
|
||||
|
||||
// 删除职级
|
||||
export const deleteRank = async (id: number) => {
|
||||
return await request.delete({ url: '/system/rank/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出职级
|
||||
export const exportRank = async (params) => {
|
||||
return await request.download({ url: '/system/rank/export', params })
|
||||
}
|
||||
6
src/api/system/risk/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 下载用户导入模板
|
||||
export const importRiskTemplate = () => {
|
||||
return request.download({ url: '/system/user/get-import-template' })
|
||||
}
|
||||
61
src/api/system/role/index.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface RoleVO {
|
||||
id: number
|
||||
name: string
|
||||
code: string
|
||||
sort: number
|
||||
status: number
|
||||
type: number
|
||||
dataScope: number
|
||||
dataScopeDeptIds: number[]
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
export interface UpdateStatusReqVO {
|
||||
id: number
|
||||
status: number
|
||||
}
|
||||
|
||||
// 查询角色列表
|
||||
export const getRolePage = async (params: PageParam) => {
|
||||
return await request.get({ url: '/system/role/page', params })
|
||||
}
|
||||
|
||||
// 查询角色(精简)列表
|
||||
export const getSimpleRoleList = async (): Promise<RoleVO[]> => {
|
||||
return await request.get({ url: '/system/role/simple-list' })
|
||||
}
|
||||
|
||||
// 查询角色详情
|
||||
export const getRole = async (id: number) => {
|
||||
return await request.get({ url: '/system/role/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增角色
|
||||
export const createRole = async (data: RoleVO) => {
|
||||
return await request.post({ url: '/system/role/create', data })
|
||||
}
|
||||
|
||||
// 修改角色
|
||||
export const updateRole = async (data: RoleVO) => {
|
||||
return await request.put({ url: '/system/role/update', data })
|
||||
}
|
||||
|
||||
// 修改角色状态
|
||||
export const updateRoleStatus = async (data: UpdateStatusReqVO) => {
|
||||
return await request.put({ url: '/system/role/update-status', data })
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export const deleteRole = async (id: number) => {
|
||||
return await request.delete({ url: '/system/role/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出角色
|
||||
export const exportRole = (params) => {
|
||||
return request.download({
|
||||
url: '/system/role/export-excel',
|
||||
params
|
||||
})
|
||||
}
|
||||
58
src/api/system/sensitiveWord/index.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import request from '@/config/axios'
|
||||
import qs from 'qs'
|
||||
|
||||
export interface SensitiveWordVO {
|
||||
id: number
|
||||
name: string
|
||||
status: number
|
||||
description: string
|
||||
tags: string[]
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
export interface SensitiveWordTestReqVO {
|
||||
text: string
|
||||
tag: string[]
|
||||
}
|
||||
|
||||
// 查询敏感词列表
|
||||
export const getSensitiveWordPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/sensitive-word/page', params })
|
||||
}
|
||||
|
||||
// 查询敏感词详情
|
||||
export const getSensitiveWord = (id: number) => {
|
||||
return request.get({ url: '/system/sensitive-word/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增敏感词
|
||||
export const createSensitiveWord = (data: SensitiveWordVO) => {
|
||||
return request.post({ url: '/system/sensitive-word/create', data })
|
||||
}
|
||||
|
||||
// 修改敏感词
|
||||
export const updateSensitiveWord = (data: SensitiveWordVO) => {
|
||||
return request.put({ url: '/system/sensitive-word/update', data })
|
||||
}
|
||||
|
||||
// 删除敏感词
|
||||
export const deleteSensitiveWord = (id: number) => {
|
||||
return request.delete({ url: '/system/sensitive-word/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出敏感词
|
||||
export const exportSensitiveWord = (params) => {
|
||||
return request.download({ url: '/system/sensitive-word/export-excel', params })
|
||||
}
|
||||
|
||||
// 获取所有敏感词的标签数组
|
||||
export const getSensitiveWordTagList = () => {
|
||||
return request.get({ url: '/system/sensitive-word/get-tags' })
|
||||
}
|
||||
|
||||
// 获得文本所包含的不合法的敏感词数组
|
||||
export const validateText = (query: SensitiveWordTestReqVO) => {
|
||||
return request.get({
|
||||
url: '/system/sensitive-word/validate-text?' + qs.stringify(query, { arrayFormat: 'repeat' })
|
||||
})
|
||||
}
|
||||
43
src/api/system/sms/smsChannel/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface SmsChannelVO {
|
||||
id: number
|
||||
code: string
|
||||
status: number
|
||||
signature: string
|
||||
remark: string
|
||||
apiKey: string
|
||||
apiSecret: string
|
||||
callbackUrl: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询短信渠道列表
|
||||
export const getSmsChannelPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/sms-channel/page', params })
|
||||
}
|
||||
|
||||
// 获得短信渠道精简列表
|
||||
export function getSimpleSmsChannelList() {
|
||||
return request.get({ url: '/system/sms-channel/simple-list' })
|
||||
}
|
||||
|
||||
// 查询短信渠道详情
|
||||
export const getSmsChannel = (id: number) => {
|
||||
return request.get({ url: '/system/sms-channel/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增短信渠道
|
||||
export const createSmsChannel = (data: SmsChannelVO) => {
|
||||
return request.post({ url: '/system/sms-channel/create', data })
|
||||
}
|
||||
|
||||
// 修改短信渠道
|
||||
export const updateSmsChannel = (data: SmsChannelVO) => {
|
||||
return request.put({ url: '/system/sms-channel/update', data })
|
||||
}
|
||||
|
||||
// 删除短信渠道
|
||||
export const deleteSmsChannel = (id: number) => {
|
||||
return request.delete({ url: '/system/sms-channel/delete?id=' + id })
|
||||
}
|
||||
37
src/api/system/sms/smsLog/index.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface SmsLogVO {
|
||||
id: number | null
|
||||
channelId: number | null
|
||||
channelCode: string
|
||||
templateId: number | null
|
||||
templateCode: string
|
||||
templateType: number | null
|
||||
templateContent: string
|
||||
templateParams: Map<string, object> | null
|
||||
apiTemplateId: string
|
||||
mobile: string
|
||||
userId: number | null
|
||||
userType: number | null
|
||||
sendStatus: number | null
|
||||
sendTime: Date | null
|
||||
apiSendCode: string
|
||||
apiSendMsg: string
|
||||
apiRequestId: string
|
||||
apiSerialNo: string
|
||||
receiveStatus: number | null
|
||||
receiveTime: Date | null
|
||||
apiReceiveCode: string
|
||||
apiReceiveMsg: string
|
||||
createTime: Date | null
|
||||
}
|
||||
|
||||
// 查询短信日志列表
|
||||
export const getSmsLogPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/sms-log/page', params })
|
||||
}
|
||||
|
||||
// 导出短信日志
|
||||
export const exportSmsLog = (params) => {
|
||||
return request.download({ url: '/system/sms-log/export-excel', params })
|
||||
}
|
||||
60
src/api/system/sms/smsTemplate/index.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import request from '@/config/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 const getSmsTemplatePage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/sms-template/page', params })
|
||||
}
|
||||
|
||||
// 查询短信模板详情
|
||||
export const getSmsTemplate = (id: number) => {
|
||||
return request.get({ url: '/system/sms-template/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增短信模板
|
||||
export const createSmsTemplate = (data: SmsTemplateVO) => {
|
||||
return request.post({ url: '/system/sms-template/create', data })
|
||||
}
|
||||
|
||||
// 修改短信模板
|
||||
export const updateSmsTemplate = (data: SmsTemplateVO) => {
|
||||
return request.put({ url: '/system/sms-template/update', data })
|
||||
}
|
||||
|
||||
// 删除短信模板
|
||||
export const deleteSmsTemplate = (id: number) => {
|
||||
return request.delete({ url: '/system/sms-template/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出短信模板
|
||||
export const exportSmsTemplate = (params) => {
|
||||
return request.download({
|
||||
url: '/system/sms-template/export-excel',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 发送短信
|
||||
export const sendSms = (data: SendSmsReqVO) => {
|
||||
return request.post({ url: '/system/sms-template/send-sms', data })
|
||||
}
|
||||
37
src/api/system/social/client/index.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface SocialClientVO {
|
||||
id: number
|
||||
name: string
|
||||
socialType: number
|
||||
userType: number
|
||||
clientId: string
|
||||
clientSecret: string
|
||||
agentId: string
|
||||
status: number
|
||||
}
|
||||
|
||||
// 查询社交客户端列表
|
||||
export const getSocialClientPage = async (params) => {
|
||||
return await request.get({ url: `/system/social-client/page`, params })
|
||||
}
|
||||
|
||||
// 查询社交客户端详情
|
||||
export const getSocialClient = async (id: number) => {
|
||||
return await request.get({ url: `/system/social-client/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增社交客户端
|
||||
export const createSocialClient = async (data: SocialClientVO) => {
|
||||
return await request.post({ url: `/system/social-client/create`, data })
|
||||
}
|
||||
|
||||
// 修改社交客户端
|
||||
export const updateSocialClient = async (data: SocialClientVO) => {
|
||||
return await request.put({ url: `/system/social-client/update`, data })
|
||||
}
|
||||
|
||||
// 删除社交客户端
|
||||
export const deleteSocialClient = async (id: number) => {
|
||||
return await request.delete({ url: `/system/social-client/delete?id=` + id })
|
||||
}
|
||||
24
src/api/system/social/user/index.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface SocialUserVO {
|
||||
id: number
|
||||
type: number
|
||||
openid: string
|
||||
token: string
|
||||
rawTokenInfo: string
|
||||
nickname: string
|
||||
avatar: string
|
||||
rawUserInfo: string
|
||||
code: string
|
||||
state: string
|
||||
}
|
||||
|
||||
// 查询社交用户列表
|
||||
export const getSocialUserPage = async (params) => {
|
||||
return await request.get({ url: `/system/social-user/page`, params })
|
||||
}
|
||||
|
||||
// 查询社交用户详情
|
||||
export const getSocialUser = async (id: number) => {
|
||||
return await request.get({ url: `/system/social-user/get?id=` + id })
|
||||
}
|
||||
67
src/api/system/tenant/index.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import request from '@/config/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 getTenantPage = (params: TenantPageReqVO) => {
|
||||
return request.get({ url: '/system/tenant/page', params })
|
||||
}
|
||||
|
||||
// 查询所有租户
|
||||
export const getTenantAll = () => {
|
||||
return request.get({ url: '/system/tenant/all' })
|
||||
}
|
||||
|
||||
// 查询租户详情
|
||||
export const getTenant = (id: number) => {
|
||||
return request.get({ url: '/system/tenant/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增租户
|
||||
export const createTenant = (data: TenantVO) => {
|
||||
return request.post({ url: '/system/tenant/create', data })
|
||||
}
|
||||
|
||||
// 修改租户
|
||||
export const updateTenant = (data: TenantVO) => {
|
||||
return request.put({ url: '/system/tenant/update', data })
|
||||
}
|
||||
|
||||
// 删除租户
|
||||
export const deleteTenant = (id: number) => {
|
||||
return request.delete({ url: '/system/tenant/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出租户
|
||||
export const exportTenant = (params: TenantExportReqVO) => {
|
||||
return request.download({ url: '/system/tenant/export-excel', params })
|
||||
}
|
||||
42
src/api/system/tenantPackage/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface TenantPackageVO {
|
||||
id: number
|
||||
name: string
|
||||
status: number
|
||||
remark: string
|
||||
creator: string
|
||||
updater: string
|
||||
updateTime: string
|
||||
menuIds: number[]
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询租户套餐列表
|
||||
export const getTenantPackagePage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/tenant-package/page', params })
|
||||
}
|
||||
|
||||
// 获得租户
|
||||
export const getTenantPackage = (id: number) => {
|
||||
return request.get({ url: '/system/tenant-package/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增租户套餐
|
||||
export const createTenantPackage = (data: TenantPackageVO) => {
|
||||
return request.post({ url: '/system/tenant-package/create', data })
|
||||
}
|
||||
|
||||
// 修改租户套餐
|
||||
export const updateTenantPackage = (data: TenantPackageVO) => {
|
||||
return request.put({ url: '/system/tenant-package/update', data })
|
||||
}
|
||||
|
||||
// 删除租户套餐
|
||||
export const deleteTenantPackage = (id: number) => {
|
||||
return request.delete({ url: '/system/tenant-package/delete?id=' + id })
|
||||
}
|
||||
// 获取租户套餐精简信息列表
|
||||
export const getTenantPackageList = () => {
|
||||
return request.get({ url: '/system/tenant-package/simple-list' })
|
||||
}
|
||||
81
src/api/system/user/index.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
import request from '@/config/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 const getUserPage = (params: PageParam) => {
|
||||
return request.get({ url: '/system/user/page', params })
|
||||
}
|
||||
|
||||
// 查询所有用户列表
|
||||
export const getAllUser = () => {
|
||||
return request.get({ url: '/system/user/all' })
|
||||
}
|
||||
|
||||
// 查询用户详情
|
||||
export const getUser = (id: number) => {
|
||||
return request.get({ url: '/system/user/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增用户
|
||||
export const createUser = (data: UserVO) => {
|
||||
return request.post({ url: '/system/user/create', data })
|
||||
}
|
||||
|
||||
// 修改用户
|
||||
export const updateUser = (data: UserVO) => {
|
||||
return request.put({ url: '/system/user/update', data })
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export const deleteUser = (id: number) => {
|
||||
return request.delete({ url: '/system/user/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出用户
|
||||
export const exportUser = (params) => {
|
||||
return request.download({ url: '/system/user/export', params })
|
||||
}
|
||||
|
||||
// 下载用户导入模板
|
||||
export const importUserTemplate = () => {
|
||||
return request.download({ url: '/system/user/get-import-template' })
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export const resetUserPwd = (id: number, password: string) => {
|
||||
const data = {
|
||||
id,
|
||||
password
|
||||
}
|
||||
return request.put({ url: '/system/user/update-password', data: data })
|
||||
}
|
||||
|
||||
// 用户状态修改
|
||||
export const updateUserStatus = (id: number, status: number) => {
|
||||
const data = {
|
||||
id,
|
||||
status
|
||||
}
|
||||
return request.put({ url: '/system/user/update-status', data: data })
|
||||
}
|
||||
|
||||
// 获取用户精简信息列表
|
||||
export const getSimpleUserList = (): Promise<UserVO[]> => {
|
||||
return request.get({ url: '/system/user/simple-list' })
|
||||
}
|
||||
84
src/api/system/user/profile.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
interface DicVo {
|
||||
name: string
|
||||
id: number
|
||||
}
|
||||
export interface ProfileVO {
|
||||
id: number
|
||||
username: string
|
||||
nickname: string
|
||||
rankInfoList: DicVo[]
|
||||
deptInfoList: {
|
||||
deptId: number
|
||||
deptName: string
|
||||
dutyInfoList: DicVo[]
|
||||
positionInfoList: DicVo[]
|
||||
postInfoList: DicVo[]
|
||||
roleInfoList: DicVo[]
|
||||
dutyStr?: string
|
||||
positionStr?: string
|
||||
postStr?: string
|
||||
roleStr?: string
|
||||
}[]
|
||||
dept: {
|
||||
id: number
|
||||
name: string
|
||||
}
|
||||
roles: {
|
||||
id: number
|
||||
name: string
|
||||
}[]
|
||||
posts: {
|
||||
id: number
|
||||
name: string
|
||||
}[]
|
||||
socialUsers: {
|
||||
type: number
|
||||
openid: string
|
||||
}[]
|
||||
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
|
||||
}
|
||||
|
||||
// 查询用户个人信息
|
||||
export const getUserProfile = () => {
|
||||
return request.get({ url: '/system/user/profile/get' })
|
||||
}
|
||||
|
||||
// 修改用户个人信息
|
||||
export const updateUserProfile = (data: UserProfileUpdateReqVO) => {
|
||||
return request.put({ url: '/system/user/profile/update', data })
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export const updateUserPassword = (oldPassword: string, newPassword: string) => {
|
||||
return request.put({
|
||||
url: '/system/user/profile/update-password',
|
||||
data: {
|
||||
oldPassword: oldPassword,
|
||||
newPassword: newPassword
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 用户头像上传
|
||||
export const uploadAvatar = (data) => {
|
||||
// return request.upload({ url: '/system/user/profile/update-avatar', data: data })
|
||||
return request.upload({ url: '/infra/file/jeelowcode/upload', data: data })
|
||||
|
||||
}
|
||||
31
src/api/system/user/socialUser.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 社交绑定,使用 code 授权码
|
||||
export const socialBind = (type, code, state) => {
|
||||
return request.post({
|
||||
url: '/system/social-user/bind',
|
||||
data: {
|
||||
type,
|
||||
code,
|
||||
state
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 取消社交绑定
|
||||
export const socialUnbind = (type, openid) => {
|
||||
return request.delete({
|
||||
url: '/system/social-user/unbind',
|
||||
data: {
|
||||
type,
|
||||
openid
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 社交授权的跳转
|
||||
export const socialAuthRedirect = (type, redirectUri) => {
|
||||
return request.get({
|
||||
url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
|
||||
})
|
||||
}
|
||||
BIN
src/assets/images/1_224520_821.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/24508_654.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/circle_bg.png
Normal file
|
After Width: | Height: | Size: 321 KiB |
BIN
src/assets/images/left_panel_bg.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
src/assets/images/left_panel_bg_2.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
src/assets/images/line_1.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
src/assets/images/panel_top_bg_1.png
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
src/assets/images/panel_top_bg_2.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
0
src/assets/images/property1.jpg
Normal file
0
src/assets/images/property2.jpg
Normal file
1
src/assets/images/right-bg1.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="876" height="445" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient gradientUnits="userSpaceOnUse" x1="107.75" y1="-107.75" x2="768.25" y2="552.75" id="a"><stop stop-color="#0e226e" offset="0"/><stop stop-color="#000847" offset="1"/></linearGradient><linearGradient gradientUnits="userSpaceOnUse" x1="107.75" y1="-107.75" x2="768.25" y2="552.75" id="b"><stop stop-color="#135db3" offset="0"/><stop stop-color="#0ff" offset=".38"/><stop stop-color="#90d2f0" offset=".68"/><stop stop-color="#104277" offset="1"/></linearGradient><mask fill="#fff" id="c"><path d="M0 445V29h549.6L578.4.6 876 2v443H0Z" fill-rule="evenodd"/></mask></defs><path d="M0 445V29h549.6L578.4.6 876 2v443H0Z" fill="url(#a)"/><path d="M0 445V29h549.6L578.4.6 876 2v443H0Z" stroke-width="4" stroke="url(#b)" fill="none" mask="url(#c)"/></svg>
|
||||
|
After Width: | Height: | Size: 831 B |
BIN
src/assets/images/right-bg2.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
1
src/assets/images/right-bg2.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="876" height="443" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient gradientUnits="userSpaceOnUse" x1="601.069" y1="-128.202" x2="274.931" y2="571.202" id="a"><stop stop-color="#030d4f" offset="0"/><stop stop-color="#030d4f" offset=".02"/><stop stop-color="#05176a" offset=".75"/><stop stop-color="#05176a" offset="1"/></linearGradient><linearGradient gradientUnits="userSpaceOnUse" x1="108.25" y1="-108.25" x2="767.75" y2="551.25" id="b"><stop stop-color="#135db3" offset="0"/><stop stop-color="#0ff" offset=".38"/><stop stop-color="#90d2f0" offset=".68"/><stop stop-color="#104277" offset="1"/></linearGradient><mask fill="#fff" id="c"><path d="M0 443V27h655l19-27h202v443H0Z" fill-rule="evenodd"/></mask></defs><path d="M0 443V27h655l19-27h202v443H0Z" fill="url(#a)"/><path d="M0 443V27h655l19-27h202v443H0Z" stroke-width="4" stroke="url(#b)" fill="none" mask="url(#c)"/></svg>
|
||||
|
After Width: | Height: | Size: 899 B |
BIN
src/assets/images/right_panel_bg.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
src/assets/images/screen/back_image.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/screen/circle_image.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
src/assets/images/screen/finished.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
src/assets/images/screen/inProcess.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
src/assets/images/screen/left_bottom_img.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
src/assets/images/screen/left_center_img.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
src/assets/images/screen/left_top_2_img.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
src/assets/images/screen/left_top_img.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
src/assets/images/screen/park/park_xiong_an_img.png
Normal file
|
After Width: | Height: | Size: 996 KiB |
BIN
src/assets/images/screen/park/point_img.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
src/assets/images/screen/participants_icon.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/assets/images/screen/right_bottom_img.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/images/screen/right_center_img.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/assets/images/screen/right_top_img.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
src/assets/images/screen/tip_bg_image.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
src/assets/images/screen/to_completed_icon.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/assets/images/screen/training_plan_icon.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |