Signed-off-by: chy <chy@163.com>
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' })
|
||||
}
|
||||
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: `/lideeyunji/dbform/get/dict-table-web-config/${tableId}`, data: {
|
||||
lideeYunji_dictTableField: dicConfigStr
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//获取字典表格选择器值回显文本
|
||||
export const getDicTableText = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/get/table-label`, data })
|
||||
}
|
||||
|
||||
//获取用户选择器列表数据
|
||||
export const getUserSelectList = (data) => {
|
||||
return request.post({ url: `/lideeyunji/adapter/user/list`, data })
|
||||
}
|
||||
|
||||
//获取用户选择器的部门列表
|
||||
export const getUserSelectDeptList = (type) => {
|
||||
return request.get({ url: `/lideeyunji/adapter/dept/list?type=${type}` })
|
||||
}
|
||||
|
||||
//获取用户选择器的角色列表
|
||||
export const getUserSelectRoleList = () => {
|
||||
return request.get({ url: `/lideeyunji/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: `/lideeyunji/desform/page`, params })
|
||||
}
|
||||
|
||||
//获取模板表单列表
|
||||
export const getTemplateFormList = () => {
|
||||
return request.get({ url: `/lideeyunji/desform/get/template` })
|
||||
}
|
||||
|
||||
//新增表单设计
|
||||
export const saveFormData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.post({ url: '/lideeyunji/desform/save', data })
|
||||
}
|
||||
|
||||
//修改表单设计
|
||||
export const updateFormData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/lideeyunji/desform/update', data })
|
||||
}
|
||||
|
||||
//获取表单设计详情数据
|
||||
export const getFormDetail = (params) => {
|
||||
return request.get({ url: `/lideeyunji/desform/detail`, params })
|
||||
}
|
||||
|
||||
//外部链接访问获取详情数据
|
||||
export const getOpenFormDetail = (params) => {
|
||||
return request.get({ url: `/lideeyunji/open/desform/get/detail`, params })
|
||||
}
|
||||
|
||||
|
||||
//删除表单设计数据
|
||||
export const deleteFormData = (ids) => {
|
||||
return request.delete({ url: `/lideeyunji/desform/delete`, data: ids })
|
||||
}
|
||||
|
||||
//解除表单设计锁定
|
||||
export const unlockForm = (id) => {
|
||||
return request.post({ url: `/lideeyunji/desform/unlock/${id}` })
|
||||
}
|
||||
|
||||
|
||||
//获取表单设计分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/lideeyunji/group/desform/list`, params })
|
||||
}
|
||||
//新增表单设计分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/group/desform/save`, data })
|
||||
}
|
||||
//修改表单设计分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/lideeyunji/group/desform/update`, data })
|
||||
}
|
||||
//删除表单设计分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/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: `/lideeyunji/history/page`, params })
|
||||
}
|
||||
|
||||
//获取历史Js增强/SQL增强/表单设计版本详情
|
||||
export const getHistoryDetail = (params) => {
|
||||
return request.get({ url: `/lideeyunji/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: `/lideeyunji/i18n/page`, params })
|
||||
}
|
||||
//导出Excel表数据
|
||||
export const exportExcelData = (data) => {
|
||||
return request.download({ url: `/lideeyunji/i18n/export`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//导入的数据
|
||||
export const uploadExcelData = (data) => {
|
||||
return request.upload({ url: `/lideeyunji/i18n/import`, data })
|
||||
}
|
||||
|
||||
//查询导入进度
|
||||
export const getImportProgress = (batchCode) => {
|
||||
return request.get({ url: `/lideeyunji/i18n/import/progress?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//上传文件
|
||||
export const uploadFile = (data) => {
|
||||
return request.upload({ url: '/infra/file/lideeyunji/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 = `/lideeyunji/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: '/lideeyunji/tab/save', data })
|
||||
}
|
||||
|
||||
//修改多模块组合配置
|
||||
export const updateModuleData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/tab/update', data })
|
||||
}
|
||||
|
||||
//删除多模块组合配置
|
||||
export const deleteModuleData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/tab/delete', data: ids })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取多模块组合详情数据
|
||||
* @param id
|
||||
*/
|
||||
export const getModuleDetail = (id) => {
|
||||
return request.post({ url: `/lideeyunji/tab/detail?id=${id}` })
|
||||
}
|
||||
|
||||
|
||||
//获取多模块组合分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/lideeyunji/group/tab/list`, params })
|
||||
}
|
||||
//新增多模块组合分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/group/tab/save`, data })
|
||||
}
|
||||
//修改多模块组合分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/lideeyunji/group/tab/update`, data })
|
||||
}
|
||||
//删除多模块组合分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/group/tab/delete', data: ids })
|
||||
}
|
||||
|
||||
//新增Js增强
|
||||
export const saveJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.post({ url: '/lideeyunji/tab/js/save', data })
|
||||
}
|
||||
|
||||
//修改Js增强
|
||||
export const updateJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/lideeyunji/tab/js/update', data })
|
||||
}
|
||||
|
||||
//获取Js增强详情数据
|
||||
export const getJsDetail = (params) => {
|
||||
return request.get({ url: `/lideeyunji/tab/js/detail`, params })
|
||||
}
|
||||
|
||||
//解除Js增强锁定
|
||||
export const unlockJs = (moduleId, type) => {
|
||||
return request.post({ url: `/lideeyunji/tab/js/unlock/${moduleId}?type=${type}` })
|
||||
}
|
||||
|
||||
//获取显示配置
|
||||
export const getModelViewData = (moduleId) => {
|
||||
return request.get({ url: `/lideeyunji/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 = `/lideeyunji/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: '/lideeyunji/report/save', data })
|
||||
}
|
||||
|
||||
//修改报表配置
|
||||
export const updateDbData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/report/update', data })
|
||||
}
|
||||
|
||||
//删除报表配置
|
||||
export const deleteDbData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/report/delete', data: ids })
|
||||
}
|
||||
|
||||
//获取报表详情数据
|
||||
export const getDbDetail = (id) => {
|
||||
return request.post({ url: `/lideeyunji/report/detail?reportId=${id}`, data: ['all'] })
|
||||
}
|
||||
|
||||
|
||||
//获取报表分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/lideeyunji/group/report/list`, params })
|
||||
}
|
||||
//新增报表分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/group/report/save`, data })
|
||||
}
|
||||
//修改报表分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/lideeyunji/group/report/update`, data })
|
||||
}
|
||||
//删除报表分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/group/report/delete', data: ids })
|
||||
}
|
||||
|
||||
|
||||
//校验报表编码是否存在
|
||||
export const verifyReportCode = (code) => {
|
||||
return request.get({ url: '/lideeyunji/report/check/report-code?reportCode=' + code })
|
||||
}
|
||||
|
||||
|
||||
//复制报表
|
||||
export const copyReportData = (reportCode, newReportCode) => {
|
||||
return request.get({ url: `/lideeyunji/report/copy/${reportCode}?reportCode=${newReportCode}` })
|
||||
}
|
||||
|
||||
//获取报表Web配置数据
|
||||
export const getWebConfig = (reportCode) => {
|
||||
return request.get({ url: '/lideeyunji/report/get/web-config?reportCode=' + reportCode })
|
||||
}
|
||||
|
||||
//导出报表数据
|
||||
export const exportExcelData = (reportCode, data?) => {
|
||||
return request.download({ url: `/lideeyunji/excel/exportReport/${reportCode}`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//获取报表数据
|
||||
export const getTableList = (reportCode, data?, isOpen?) => {
|
||||
return request.post({ url: `/lideeyunji/${isOpen ? 'open/report' : 'report-data'}/list/${reportCode}`, data })
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量获取报表数据
|
||||
* reportCodes:报表编码 多个用逗号隔开 xxx,xxx
|
||||
* data:报表对应的搜索值
|
||||
* 格式 {
|
||||
* 报表编码:{搜索配置}
|
||||
* }
|
||||
* */
|
||||
export const batchGetTableList = (reportCodes: string, data?) => {
|
||||
return request.post({ url: `/lideeyunji/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: '/lideeyunji/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: `/lideeyunji/adapter/tenant/list` })
|
||||
}
|
||||
|
||||
//获取字段权限列表
|
||||
export const getFieldAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/list-field?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存字段权限配置
|
||||
export const saveFieldAuth = (data: FieldData) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/save-field`, data })
|
||||
}
|
||||
|
||||
//获取按钮权限列表
|
||||
export const getButtonAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/list-button?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存字段权限配置
|
||||
export const saveButtonAuth = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/save-button`, data })
|
||||
}
|
||||
|
||||
//获取规则列表
|
||||
export const getDataAuth = (tenantId, dbFormId) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/list-data?tenantId=${tenantId}&dbFormId=${dbFormId}` })
|
||||
}
|
||||
|
||||
//保存数据规则配置
|
||||
export const saveDataAuth = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/save-data-tenant`, data })
|
||||
}
|
||||
|
||||
//添加、修改数据规则数据
|
||||
export const saveRuleData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-role/save-data-rule`, data })
|
||||
}
|
||||
|
||||
//删除数据规则
|
||||
export const deleteRuleData = (ruleId) => {
|
||||
return request.delete({ url: `/lideeyunji/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: `/lideeyunji/enhance/button/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增自定义按钮
|
||||
export const saveBtnData = (data) => {
|
||||
return request.post({ url: '/lideeyunji/enhance/button/save', data })
|
||||
}
|
||||
|
||||
//修改自定义按钮
|
||||
export const updateBtnData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/enhance/button/update', data })
|
||||
}
|
||||
|
||||
//获取自定义按钮详情数据
|
||||
export const getBtnDetail = (id) => {
|
||||
return request.get({ url: `/lideeyunji/enhance/button/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除自定义按钮数据
|
||||
export const deleteBtnData = (ids) => {
|
||||
return request.delete({ url: `/lideeyunji/enhance/button/delete`, data: ids })
|
||||
}
|
||||
247
src/api/design/table/index.ts
Normal file
@@ -0,0 +1,247 @@
|
||||
import request from '@/config/axios'
|
||||
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
|
||||
|
||||
//获取表单开发列表
|
||||
export const getDbList = (data) => {
|
||||
const url = `/lideeyunji/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: '/lideeyunji/dbform/save', data })
|
||||
}
|
||||
|
||||
//修改表单开发配置
|
||||
export const updateDbData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/dbform/update', data })
|
||||
}
|
||||
|
||||
//删除表单开发配置
|
||||
export const deleteDbData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/dbform/delete', data: ids })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取表单开发详情数据
|
||||
* @param id
|
||||
* @param typeList Array[string] 查询类型 all dict export foreignkey web
|
||||
*/
|
||||
export const getDbDetail = (id, typeList) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/detail?dbFormId=${id}`, data: typeList })
|
||||
}
|
||||
|
||||
|
||||
//获取表单开发分组数据
|
||||
export const getGroupData = (params) => {
|
||||
return request.get({ url: `/lideeyunji/group/dbform/list`, params })
|
||||
}
|
||||
//新增表单开发分组
|
||||
export const saveGroupData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/group/dbform/save`, data })
|
||||
}
|
||||
//修改表单开发分组
|
||||
export const updateGroupData = (data) => {
|
||||
return request.put({ url: `/lideeyunji/group/dbform/update`, data })
|
||||
}
|
||||
//删除表单开发分组
|
||||
export const deleteGroupData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/group/dbform/delete', data: ids })
|
||||
}
|
||||
|
||||
|
||||
//校验表明是否存在
|
||||
export const verifyDbName = (name) => {
|
||||
return request.get({ url: '/lideeyunji/dbform/check/table?tableName=' + name })
|
||||
}
|
||||
|
||||
//同步数据库
|
||||
export const asyncDbData = (tableId, syncModel) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/sync-db/${tableId}?syncModel=${syncModel}` })
|
||||
}
|
||||
|
||||
//复制表单开发
|
||||
export const copyDbData = (tableId, tableName) => {
|
||||
return request.get({ url: `/lideeyunji/dbform/copy/${tableId}?tableName=${tableName}` })
|
||||
}
|
||||
|
||||
//获取表单开发配置JSON
|
||||
export const getOptionJson = (tableId) => {
|
||||
return request.get({ url: `/lideeyunji/dbform/copyJson/${tableId}` })
|
||||
}
|
||||
|
||||
//导入表单开发配置JSON
|
||||
export const importOptionJson = (data, tableName) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/importJson?tableName=${tableName}`, data })
|
||||
}
|
||||
|
||||
//获取Web配置数据
|
||||
export const getWebConfig = (tableId) => {
|
||||
return request.get({ url: '/lideeyunji/dbform/get/web-config?dbformId=' + tableId })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有表名和表字段(字典配置用)
|
||||
* @param systemFlag 'Y' 是否查询系统表
|
||||
* @param dataSourcesCode 数据源
|
||||
* @param onlyTableName 'Y' 是否只查表
|
||||
*/
|
||||
export const getAllDbDicData = (params = {}) => {
|
||||
return request.get({ url: '/lideeyunji/dbform/get/all-table', params })
|
||||
}
|
||||
|
||||
//获取表单懒加载控件回显结构数据
|
||||
export const getLazyStructureData = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/get/tree-parent`, data: { lideeYunji_treeParent: encryptAES(JSON.stringify(data)) } })
|
||||
}
|
||||
|
||||
//视图表数据源SQL测试
|
||||
export const viewDataOriginTest = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/explain/datasource-sql`, data })
|
||||
}
|
||||
|
||||
//视图表数据源SQL解析
|
||||
export const viewDataOriginAnalysis = (data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform/explain/sqlfield`, data })
|
||||
}
|
||||
|
||||
//获取未在表单开发的数据库表
|
||||
export const getSqlFormDicData = () => {
|
||||
return request.get({ url: `/lideeyunji/dbform/get/not-in-dbform-tables` })
|
||||
}
|
||||
|
||||
//获取通过数据库表反向生成的配置数据
|
||||
export const getSqlFormConfig = (tableName) => {
|
||||
return request.get({ url: `/lideeyunji/dbform/get/tables-field?tableName=${tableName}` })
|
||||
}
|
||||
|
||||
//通过AI生成表信息
|
||||
export const getAiCreatedTable = (prompt) => {
|
||||
return request.get({ url: `/lideeyunji/dbform/ai/create-table?prompt=${prompt}`, moerData: { timeout: 120000 } })
|
||||
}
|
||||
|
||||
//上传文件/图片
|
||||
export const upLoadData = (data) => {
|
||||
return request.upload({ url: '/infra/file/lideeyunji/upload', data })
|
||||
}
|
||||
|
||||
|
||||
//获取表数据
|
||||
export const getTableList = (tableId, data, isOpen?) => {
|
||||
return request.post({ url: `/lideeyunji/${isOpen ? 'open' : 'dbform-data'}/list/${tableId}`, data })
|
||||
}
|
||||
|
||||
//新增表数据
|
||||
export const saveTableData = (tableId, data, isOpen?) => {
|
||||
return request.post({ url: `/lideeyunji/${isOpen ? 'open' : 'dbform-data'}/save/${tableId}`, data })
|
||||
}
|
||||
|
||||
//批量新增表数据
|
||||
export const batchSaveTableData = (tableId, data: object[], isOpen?) => {
|
||||
return request.post({ url: `/lideeyunji/${isOpen ? 'open' : 'dbform-data'}/save/batch/${tableId}`, data })
|
||||
}
|
||||
|
||||
//修改表数据
|
||||
export const updateTableData = (tableId, data) => {
|
||||
return request.put({ url: `/lideeyunji/dbform-data/edit/${tableId}`, data })
|
||||
}
|
||||
|
||||
//批量修改表数据
|
||||
export const batchUpdateTableData = (tableId, data) => {
|
||||
return request.put({ url: `/lideeyunji/dbform-data/edit/batch/${tableId}`, data })
|
||||
}
|
||||
|
||||
//删除表数据
|
||||
export const deleteTableData = (tableId, ids) => {
|
||||
return request.delete({ url: `/lideeyunji/dbform-data/delete/${tableId}`, data: ids })
|
||||
}
|
||||
|
||||
//获取表数据详情
|
||||
export const getTableDetail = (tableId, id, isOpen) => {
|
||||
return request.post({ url: `/lideeyunji/${isOpen ? 'open' : 'dbform-data'}/detail/${tableId}/${id}` })
|
||||
}
|
||||
|
||||
//导出Excel表数据
|
||||
export const exportExcelData = (tableId, data) => {
|
||||
return request.download({ url: `/lideeyunji/excel/exportExcel/${tableId}`, method: 'POST', data })
|
||||
}
|
||||
|
||||
//下载导入模板
|
||||
export const downloadImportTemplate = (tableId) => {
|
||||
return request.download({ url: `/lideeyunji/excel/exportExcelTemplate/${tableId}` })
|
||||
}
|
||||
|
||||
//上传需要导入的数据
|
||||
export const uploadViewExcelData = (tableId, data) => {
|
||||
return request.upload({ url: `/lideeyunji/excel/viewExcel/${tableId}`, data: data })
|
||||
}
|
||||
|
||||
//查询预览导入进度
|
||||
export const getViewImportProgress = (tableId, batchCode) => {
|
||||
return request.get({ url: `/lideeyunji/excel/viewProgress/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//获取上传的导入数据
|
||||
export const getUploadImportData = (tableId, params) => {
|
||||
return request.post({ url: `/lideeyunji/excel/view/page/${tableId}`, params })
|
||||
}
|
||||
|
||||
//修改上传的导入数据
|
||||
export const updateUploadImportData = (tableId, data) => {
|
||||
return request.post({ url: `/lideeyunji/excel/update/fileData/${tableId}`, data })
|
||||
}
|
||||
//删除上传的导入数据
|
||||
export const deleteUploadImportData = (tableId, id) => {
|
||||
return request.post({ url: `/lideeyunji/excel/del/fileData/${tableId}`, data: { id } })
|
||||
}
|
||||
|
||||
//导入上传数据
|
||||
export const importUploadData = (tableId, batchCode) => {
|
||||
return request.post({ url: `/lideeyunji/excel/run/import/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//获取历史导入记录
|
||||
export const getHistoryImportData = (tableId, params) => {
|
||||
return request.post({ url: `/lideeyunji/excel/file/list/${tableId}`, params })
|
||||
}
|
||||
|
||||
//撤销导入
|
||||
export const cancelImportData = (tableId, batchCode) => {
|
||||
return request.post({ url: `/lideeyunji/excel/rollback/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
|
||||
//获取导入进度
|
||||
export const getImportProgress = (tableId, params) => {
|
||||
return request.get({ url: `/lideeyunji/excel/importProgress/${tableId}`, params })
|
||||
}
|
||||
|
||||
//设置导入状态
|
||||
export const setImportState = (tableId, params) => {
|
||||
return request.get({ url: `/lideeyunji/excel/importOpTask/${tableId}`, params })
|
||||
}
|
||||
|
||||
//下载导入失败的excel
|
||||
export const downloadImportError = (tableId, batchCode) => {
|
||||
return request.download({ url: `/lideeyunji/excel/downloadErrorExcel/${tableId}?batchCode=${batchCode}` })
|
||||
}
|
||||
|
||||
//校验值是否唯一
|
||||
export const verifyDataOnly = (tableId, data) => {
|
||||
return request.post({ url: `/lideeyunji/dbform-data/unique/${tableId}`, data })
|
||||
}
|
||||
|
||||
//获取表数据统计信息
|
||||
export const getTableDataSummary = (tableId, data) => {
|
||||
return request.post({ url: `/lideeyunji/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: `/lideeyunji/enhance/java/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增Java增强
|
||||
export const saveJavaData = (data) => {
|
||||
return request.post({ url: '/lideeyunji/enhance/java/save', data })
|
||||
}
|
||||
|
||||
//修改Java增强
|
||||
export const updateJavaData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/enhance/java/update', data })
|
||||
}
|
||||
|
||||
//获取Java增强详情数据
|
||||
export const getJavaDetail = (id) => {
|
||||
return request.get({ url: `/lideeyunji/enhance/java/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除Java增强数据
|
||||
export const deleteJavaData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/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: '/lideeyunji/enhance/js/save', data })
|
||||
}
|
||||
|
||||
//修改Js增强
|
||||
export const updateJsData = (data) => {
|
||||
data = encryptAES(JSON.stringify(data))
|
||||
return request.put({ url: '/lideeyunji/enhance/js/update', data })
|
||||
}
|
||||
|
||||
//获取Js增强详情数据
|
||||
export const getJsDetail = (params) => {
|
||||
return request.get({ url: `/lideeyunji/enhance/js/detail`, params })
|
||||
}
|
||||
|
||||
//解除Js增强锁定
|
||||
export const unlockJs = (dbformId, type) => {
|
||||
return request.post({ url: `/lideeyunji/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: `/lideeyunji/enhance/sql/${params.pageSize ? 'page' : 'list'}`, params })
|
||||
}
|
||||
|
||||
//新增SQL增强
|
||||
export const saveSqlData = (data) => {
|
||||
return request.post({ url: '/lideeyunji/enhance/sql/save', data })
|
||||
}
|
||||
|
||||
//修改SQL增强
|
||||
export const updateSqlData = (data) => {
|
||||
return request.put({ url: '/lideeyunji/enhance/sql/update', data })
|
||||
}
|
||||
|
||||
//获取SQL增强详情数据
|
||||
export const getSqlDetail = (id) => {
|
||||
return request.get({ url: `/lideeyunji/enhance/sql/detail?id=${id}` })
|
||||
}
|
||||
|
||||
//删除SQL增强数据
|
||||
export const deleteSqlData = (ids) => {
|
||||
return request.delete({ url: '/lideeyunji/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: `/lideeyunji/apilog/page`, params: { logType, ...params } })
|
||||
}
|
||||
|
||||
// 获取日志详情
|
||||
export const getLogDetail = (logType: LogType, id: string) => {
|
||||
return request.get({ url: `/lideeyunji/apilog/detail?logType=${logType}&id=${id}`, })
|
||||
}
|
||||
|
||||
// 清除日志记录
|
||||
export const deleteLog = (logType: LogType, delDate: string) => {
|
||||
return request.delete({ url: `/lideeyunji/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 })
|
||||
}
|
||||
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/lideeyunji/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/imgs/avatar.gif
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/imgs/avatar.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/imgs/default_image.png
Normal file
|
After Width: | Height: | Size: 241 KiB |
1
src/assets/imgs/khgl.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1557389231291" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2952" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M512 464c88 0 160-72 160-160s-72-160-160-160-160 72-160 160 72 160 160 160z m-19.2 153.6c-8-6.4-12.8-14.4-12.8-25.6 0-17.6 14.4-32 32-32s32 14.4 32 32c0 11.2-4.8 19.2-12.8 25.6l43.2 152c3.2 11.2 0 22.4-8 30.4l-43.2 43.2c-6.4 6.4-16 6.4-22.4 0L457.6 800c-8-8-11.2-19.2-8-30.4l43.2-152zM372.8 480C321.6 438.4 288 376 288 304c0-123.2 100.8-224 224-224s224 100.8 224 224c0 70.4-33.6 134.4-84.8 176C811.2 526.4 928 673.6 928 848c0 52.8-43.2 96-96 96H192c-52.8 0-96-43.2-96-96 0-174.4 116.8-321.6 276.8-368zM832 880c17.6 0 32-14.4 32-32 0-176-144-320-320-320h-64c-176 0-320 144-320 320 0 17.6 14.4 32 32 32h640z" p-id="2953" fill="#999999"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/imgs/login/login_right_bg.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
src/assets/imgs/login/login_right_bg_1.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/imgs/login/login_right_bg_2.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/assets/imgs/login/login_sutra_1.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
src/assets/imgs/login/login_sutra_2.png
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
src/assets/imgs/login/login_text.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
src/assets/imgs/loginBj.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
src/assets/imgs/logo.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
src/assets/imgs/logo_min.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
src/assets/imgs/logo_white.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
src/assets/imgs/profile.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
1
src/assets/imgs/tb1.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1602931197583" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="55414" width="48" height="48"><path d="M503 839.1H219.6c-42.3 0-76.6-34.3-76.6-76.6V197.1c0-43.1 34.9-78 78-78h591.7c46.7 0 78.1 32.7 78.1 81.5v30.2c0 17.5-14.2 31.7-31.6 31.7-17.5 0-31.7-14.2-31.7-31.7v-30.3c0-18.1-6.8-18.1-14.7-18.1H221c-7.9 0-14.6 6.7-14.6 14.7v565.3c0 7.3 6 13.3 13.3 13.3h282.7c17.3 0 31.8 13.5 32.3 30.8 0.4 17.9-13.9 32.6-31.7 32.6z" fill="#ffffff" p-id="55415"></path><path d="M861.3 659.1H507.2c-17.5 0-31.7-14.2-31.7-31.7s14.2-31.7 31.7-31.7h354.1c17.5 0 31.7 14.2 31.7 31.7-0.1 17.5-14.2 31.7-31.7 31.7zM596.1 344.3H320.2c-17.5 0-31.7-14.2-31.7-31.7s14.2-31.7 31.7-31.7h275.9c17.5 0 31.7 14.2 31.7 31.7s-14.2 31.7-31.7 31.7zM440.8 486H320.2c-17.5 0-31.7-14.2-31.7-31.7s14.2-31.7 31.7-31.7h120.6c17.5 0 31.7 14.2 31.7 31.7 0 17.6-14.2 31.7-31.7 31.7z" fill="#ffffff" p-id="55416"></path><path d="M684.2 836.1c-17.5 0-31.7-14.2-31.7-31.7v-354c0-17.5 14.2-31.7 31.7-31.7s31.7 14.2 31.7 31.7v354c0 17.5-14.2 31.7-31.7 31.7z" fill="#ffffff" p-id="55417"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/imgs/tb2.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1602931261927" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="55893" width="48" height="48"><path d="M538.79 358.36c0-19.28-15.61-34.9-34.88-34.93H252.67c-18.79 0.67-33.68 16.1-33.68 34.9 0 18.81 14.89 34.24 33.68 34.91h251.24c19.26 0 34.88-15.62 34.88-34.88zM252.67 574.67h61.68c16.94 0.28 31.76-11.38 35.47-27.92 1.85-9.09 0-18.55-5.15-26.27a34.844 34.844 0 0 0-22.27-14.86c-2.28-0.48-4.6-0.72-6.93-0.71h-61.5c-16.93-0.26-31.72 11.39-35.42 27.91-1.87 9.07-0.05 18.5 5.06 26.22a34.777 34.777 0 0 0 22.15 14.92c2.27 0.47 4.59 0.71 6.91 0.71z m0 174.49h111.66c18.79-0.67 33.68-16.1 33.68-34.9 0-18.8-14.89-34.23-33.68-34.9H252.67a34.939 34.939 0 0 0-31.29 17.08 34.915 34.915 0 0 0 0 35.64 34.94 34.94 0 0 0 31.29 17.08z m467.55-265.21c-131.06 0-237.3 106.24-237.3 237.3s106.24 237.3 237.3 237.3c131.05 0 237.3-106.24 237.3-237.3 0.01-62.94-24.99-123.3-69.49-167.81a237.31 237.31 0 0 0-167.81-69.49z m0 404.79c-92.5 0-167.49-74.99-167.49-167.49 0-92.5 74.99-167.49 167.49-167.49 92.5 0 167.49 74.99 167.49 167.49 0 44.42-17.64 87.02-49.06 118.43a167.506 167.506 0 0 1-118.43 49.06z m0 0" p-id="55894" fill="#ffffff"></path><path d="M463.08 888.74H154.91c-5.55 0-10.88-2.21-14.81-6.14a20.953 20.953 0 0 1-6.14-14.81V155.94c0-5.55 2.21-10.87 6.14-14.8 3.93-3.92 9.26-6.12 14.81-6.11h360.75a20.92 20.92 0 0 1 14.83 6.12l155.7 155.7c3.92 3.92 6.12 9.24 6.12 14.79v103.84c9.23-0.83 18.54-1.27 27.92-1.29 14.01 0.01 28.01 0.97 41.89 2.91V311.64a90.23 90.23 0 0 0-26.58-64.14L579.84 92.03a90.254 90.254 0 0 0-64.14-26.8H154.95c-50.1 0-90.71 40.61-90.71 90.71v711.85c0 24.06 9.56 47.13 26.57 64.14a90.73 90.73 0 0 0 64.15 26.57h370.71a309.2 309.2 0 0 1-62.59-69.76z m0 0" p-id="55895" fill="#ffffff"></path><path d="M837.06 669.32l-17.54-17.54c-4.82-4.69-12.72-4.69-17.41 0L697 756.76l-58.78-58.78-0.13-0.13c-2.41-2.28-5.36-3.48-8.7-3.48-3.35 0-6.43 1.34-8.7 3.62l-17.41 17.54c-4.69 4.82-4.69 12.72 0 17.41l65.75 65.75c0.54 0.67 0.94 1.34 1.61 2.01l17.41 17.67h0.13c2.41 2.28 5.36 3.48 8.7 3.48 3.21 0 6.43-1.34 8.7-3.61l131.49-131.49 0.13-0.13c2.28-2.41 3.48-5.36 3.48-8.7-0.01-3.24-1.35-6.32-3.62-8.6z m0 0" p-id="55896" fill="#ffffff"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
1
src/assets/imgs/tb3.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1602931310304" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="56802" width="48" height="48"><path d="M120.759083 892.5321V127.647783c0-4.252196 3.447422-7.713952 7.699618-7.713952h643.527285c4.252196 0 7.713952 3.461756 7.713952 7.713952V436.239653h55.82018V127.647783c0-35.024045-28.495752-63.534132-63.534132-63.534132H128.458701c-35.024045 0-63.519798 28.510087-63.519798 63.534132v764.884317c0 35.024045 28.495752 63.534132 63.519798 63.534133h360.269409v-55.820181H128.458701c-4.252196 0-7.699618-3.461756-7.699618-7.713952z" fill="#ffffff" p-id="56803"></path><path d="M287.660582 552.786472c-15.41357 0-27.91009 12.48321-27.91009 27.91009s12.49652 27.91009 27.91009 27.91009h111.449918c15.41357 0 27.91009-12.48321 27.91009-27.91009s-12.49652-27.91009-27.91009-27.91009h-111.449918zM636.53722 429.699074c0-15.42688-12.49652-27.91009-27.91009-27.91009H287.660582c-15.41357 0-27.91009 12.48321-27.91009 27.91009s12.49652 27.91009 27.91009 27.91009h320.966548c15.41357 0 27.91009-12.48321 27.91009-27.91009zM608.62713 256.295903H287.660582c-15.41357 0-27.91009 12.48321-27.91009 27.91009s12.49652 27.91009 27.91009 27.91009h320.966548c15.41357 0 27.91009-12.48321 27.91009-27.91009s-12.49652-27.91009-27.91009-27.91009zM820.392212 718.748044h-55.643048v-90.271873c0-15.42688-12.49652-27.91009-27.91009-27.91009s-27.91009 12.48321-27.91009 27.91009v118.181963c0 15.42688 12.49652 27.91009 27.91009 27.91009H820.393236c15.41357 0 27.91009-12.48321 27.91009-27.91009-0.001024-15.42688-12.497544-27.91009-27.911114-27.91009z" fill="#ffffff" p-id="56804"></path><path d="M738.670805 515.125922c-121.258739 0-219.559921 98.300158-219.559921 219.559921 0 121.259763 98.300158 219.560945 219.559921 219.560945 121.259763 0 219.560945-98.300158 219.560945-219.560945 0-121.259763-98.301182-219.559921-219.560945-219.559921z m0 383.299662c-90.286208 0-163.739741-73.453533-163.739741-163.740765 0-90.286208 73.453533-163.739741 163.739741-163.739741 90.286208 0 163.739741 73.453533 163.739741 163.739741 0.001024 90.287232-73.452509 163.740765-163.739741 163.740765z" fill="#ffffff" p-id="56805"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
1
src/assets/imgs/tb4.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1602931345669" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="57834" width="48" height="48"><path d="M832 128h-128v-32a32 32 0 0 0-64 0V128H384v-32a30.08 30.08 0 0 0-32-32 30.08 30.08 0 0 0-32 32V128H192a60.16 60.16 0 0 0-64 64v640a60.16 60.16 0 0 0 64 64h640a60.16 60.16 0 0 0 64-64V192a64 64 0 0 0-64-64z m0 704H192V320h640z" p-id="57835" fill="#ffffff"></path><path d="M480 448m32 0l0 0q32 0 32 32l0 192q0 32-32 32l0 0q-32 0-32-32l0-192q0-32 32-32Z" p-id="57836" fill="#ffffff"></path><path d="M384 544m32 0l192 0q32 0 32 32l0 0q0 32-32 32l-192 0q-32 0-32-32l0 0q0-32 32-32Z" p-id="57837" fill="#ffffff"></path></svg>
|
||||
|
After Width: | Height: | Size: 673 B |
1
src/assets/imgs/tb5.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1602931425660" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="58477" width="48" height="48"><path d="M933.8 483.93L805.32 605.85c-19.66 18.35-28.84 44.57-23.59 70.79l32.77 174.35c7.87 43.26-20.97 83.9-62.92 91.76-3.93 1.31-9.17 1.31-13.11 1.31-13.11 0-26.22-3.93-38.02-10.49l-150.76-83.9c-23.6-13.11-52.44-13.11-76.04 0l-150.76 83.9c-11.8 6.56-24.91 10.49-38.02 10.49-17.04 0-32.77-5.24-45.88-15.73-24.91-17.04-36.71-48.51-31.46-78.66l32.77-174.35c5.24-26.22-3.93-53.75-23.6-70.79L88.25 482.62c-31.46-30.15-32.77-79.97-2.62-111.43 11.8-13.11 28.84-20.97 47.19-23.59l173.04-22.29c27.53-2.62 49.82-19.66 61.62-44.57l73.41-156c18.35-39.33 64.23-56.37 103.56-38.01 17.04 7.86 30.15 20.98 38.02 38.01l73.41 158.62c10.49 24.91 34.08 41.95 61.61 44.57l173.04 22.28c43.26 5.24 73.41 44.57 68.17 87.84-3.93 17.04-11.8 32.77-24.9 45.88z m-41.95-61.62c-1.31-5.24-5.24-9.18-10.49-9.18l-173.04-22.28c-49.82-5.24-91.77-36.71-111.43-82.59l-73.41-156c-2.62-6.56-10.49-9.18-17.04-6.56-2.62 1.31-5.24 3.94-6.56 6.56l-73.41 158.62c-20.97 44.57-62.92 76.03-112.74 82.59L142 413.14c-6.56 1.31-11.8 7.87-11.8 14.42 0 2.62 1.31 5.24 3.93 7.86L262.6 557.34c35.39 32.77 51.13 82.59 41.95 131.09l-32.77 174.35c-1.31 5.24 1.31 10.49 5.24 13.11 2.62 1.31 5.24 2.62 7.86 2.62s3.94-1.31 6.56-2.62l149.45-82.59c43.26-24.91 97.01-24.91 140.27 0l150.76 83.9c2.62 1.31 3.93 1.31 6.56 2.62 2.62 0 5.24-1.31 7.86-2.62 3.94-2.62 6.56-7.87 5.24-13.11L718.8 689.74c-9.18-48.51 6.55-97.01 41.95-131.09l128.47-121.92c3.93-3.93 5.25-9.17 2.63-14.42z m0 0" fill="#ffffff" p-id="58478"></path><path d="M518.23 674.01c-13.11 13.11-34.09 13.11-45.88 0L370.1 571.76c-11.8-13.11-11.8-34.08 1.31-45.88 13.11-11.8 31.46-11.8 44.57 0l78.66 78.66 153.38-153.38c13.11-11.8 34.09-11.8 45.88 1.31 11.8 13.11 11.8 31.46 0 44.57L518.23 674.01z m0 0" fill="#ffffff" p-id="58479"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/assets/imgs/wechat.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
1
src/assets/json/login_left.json
Normal file
1
src/assets/svgs/403.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
1
src/assets/svgs/404.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
1
src/assets/svgs/500.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
8
src/assets/svgs/bottom.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="13.5px" height="9.5px" viewBox="0 0 13.5 9.5" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Group-31" transform="matrix(-1 0 0 -1 12.75 8.75)">
|
||||
<path d="M-3.55271e-15 7.54675L3.50663 3.93842L6.20223 6.42893L11.4931 0.5" id="Path-4" fill="none" fill-rule="evenodd" stroke="#FA5087" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M11.4931 0.5L8.49307 0.5" id="Line-7" fill="none" fill-rule="evenodd" stroke="#FA5087" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M11.4931 0.5L11.4931 3.5" id="Line-7" fill="none" fill-rule="evenodd" stroke="#FA5087" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 812 B |
333
src/assets/svgs/external/external_bg.svg
vendored
Normal file
@@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgba(241, 242, 243, 0); display: block; z-index: 1; position: relative; shape-rendering: auto;" width="1440" height="762" preserveAspectRatio="xMidYMid" viewBox="0 0 1440 762">
|
||||
<g transform=""><path id="path0" d="M 1328.262725233854 514.3221957937322
|
||||
c 0 20.017816231864945 -4.89797631205206 5.7497982793654625 -10.647774591417523 5.7497982793654625
|
||||
S 1306.967176051019 534.3400120255972 1306.967176051019 514.3221957937322
|
||||
s 4.89797631205206 -5.7497982793654625 10.647774591417523 -5.7497982793654625
|
||||
S 1328.262725233854 494.3043795618673 1328.262725233854 514.3221957937322
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.636207709795123" fill="#409EFF">
|
||||
<animateMotion begin="-5.402655890077561s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path0"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path1" d="M 1126.1462662015124 334.60024152726794
|
||||
c 0 30.58252974993728 -7.482959406899546 8.78434365157773 -16.267303058477275 8.78434365157773
|
||||
S 1093.611660084558 365.18277127720523 1093.611660084558 334.60024152726794
|
||||
s 7.482959406899546 -8.78434365157773 16.267303058477275 -8.78434365157773
|
||||
S 1126.1462662015124 304.01771177733065 1126.1462662015124 334.60024152726794
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.8866954919899435" fill="#73A0FA">
|
||||
<animateMotion begin="-0.7469029840989255s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path1"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path2" d="M 1161.7504435660335 640.6428888832513
|
||||
c 0 31.719898409595036 -7.761251738517934 9.111034649564532 -16.872286388082465 9.111034649564532
|
||||
S 1128.0058707898684 672.3627872928464 1128.0058707898684 640.6428888832513
|
||||
s 7.761251738517934 -9.111034649564532 16.872286388082465 -9.111034649564532
|
||||
S 1161.7504435660335 608.9229904736562 1161.7504435660335 640.6428888832513
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.620989905120926" fill="#409EFF">
|
||||
<animateMotion begin="-0.1511828641728111s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path2"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path3" d="M 741.9260757987616 120.55457487293772
|
||||
c 0 22.360654120299248 -5.471223880498751 6.422741077107231 -11.893964957605982 6.422741077107231
|
||||
S 718.1381458835498 142.91522899323698 718.1381458835498 120.55457487293772
|
||||
s 5.471223880498751 -6.422741077107231 11.893964957605982 -6.422741077107231
|
||||
S 741.9260757987616 98.19392075263848 741.9260757987616 120.55457487293772
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.644208965350321" fill="#7585A2">
|
||||
<animateMotion begin="-7.82610169106669s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path3"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path4" d="M 831.5629886202872 388.48756509181925
|
||||
c 0 37.036017955096774 -9.062004393268358 10.638005157315032 -19.700009550583392 10.638005157315032
|
||||
S 792.1629695191203 425.52358304691603 792.1629695191203 388.48756509181925
|
||||
s 9.062004393268358 -10.638005157315032 19.700009550583392 -10.638005157315032
|
||||
S 831.5629886202872 351.45154713672247 831.5629886202872 388.48756509181925
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.245518484932514" fill="#7585A2">
|
||||
<animateMotion begin="-2.5196369079325094s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path4"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path5" d="M 212.88893404527536 420.47807924073214
|
||||
c 0 36.54095420882101 -8.940871774498756 10.495805996150716 -19.436677770649474 10.495805996150716
|
||||
S 174.0155785039764 457.01903344955315 174.0155785039764 420.47807924073214
|
||||
s 8.940871774498756 -10.495805996150716 19.436677770649474 -10.495805996150716
|
||||
S 212.88893404527536 383.93712503191114 212.88893404527536 420.47807924073214
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.849223811801136" fill="#f47e60">
|
||||
<animateMotion begin="-6.684622598095676s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path5"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path6" d="M 1324.9457560414432 238.47197515867774
|
||||
c 0 30.80275218576268 -7.536843619920655 8.84759903208077 -16.384442652001425 8.84759903208077
|
||||
S 1292.1768707374406 269.2747273444404 1292.1768707374406 238.47197515867774
|
||||
s 7.536843619920655 -8.84759903208077 16.384442652001425 -8.84759903208077
|
||||
S 1324.9457560414432 207.66922297291507 1324.9457560414432 238.47197515867774
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.343761268348013" fill="#409EFF">
|
||||
<animateMotion begin="-2.7335074334729264s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path6"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path7" d="M 684.9617171054817 510.78873702528506
|
||||
c 0 25.338697068736554 -6.199893963627028 7.278136392083904 -13.478030355710933 7.278136392083904
|
||||
S 658.0056563940598 536.1274340940216 658.0056563940598 510.78873702528506
|
||||
s 6.199893963627028 -7.278136392083904 13.478030355710933 -7.278136392083904
|
||||
S 684.9617171054817 485.4500399565485 684.9617171054817 510.78873702528506
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.289313753392392" fill="#f47e60">
|
||||
<animateMotion begin="-7.543609599938508s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path7"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path8" d="M 242.9059981525392 78.17885685832343
|
||||
c 0 23.178973635392506 -5.6714509958939106 6.657790299527634 -12.329241295421545 6.657790299527634
|
||||
S 218.2475155616961 101.35783049371594 218.2475155616961 78.17885685832343
|
||||
s 5.6714509958939106 -6.657790299527634 12.329241295421545 -6.657790299527634
|
||||
S 242.9059981525392 54.99988322293092 242.9059981525392 78.17885685832343
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.596220485664493" fill="#f47e60">
|
||||
<animateMotion begin="-4.340748007737184s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path8"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path9" d="M 348.3092125752333 541.3878064308448
|
||||
c 0 22.224503222827753 -5.437910363032322 6.3836339044292485 -11.82154426746157 6.3836339044292485
|
||||
S 324.6661240403102 563.6123096536725 324.6661240403102 541.3878064308448
|
||||
s 5.437910363032322 -6.3836339044292485 11.82154426746157 -6.3836339044292485
|
||||
S 348.3092125752333 519.163303208017 348.3092125752333 541.3878064308448
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.238035639347363" fill="#7585A2">
|
||||
<animateMotion begin="-8.467966102200643s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path9"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path10" d="M 121.0397728376659 134.18105370502505
|
||||
c 0 20.069120684009604 -4.91052952906618 5.764534664555951 -10.67506419362213 5.764534664555951
|
||||
S 99.68964445042162 154.25017438903467 99.68964445042162 134.18105370502505
|
||||
s 4.91052952906618 -5.764534664555951 10.67506419362213 -5.764534664555951
|
||||
S 121.0397728376659 114.11193302101545 121.0397728376659 134.18105370502505
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.983493658697949" fill="#FEC03D">
|
||||
<animateMotion begin="-2.9429563736891633s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path10"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path11" d="M 756.7860327276691 650.6485600880425
|
||||
c 0 34.39061233935505 -8.414724295799639 9.87815460811262 -18.29287890391226 9.87815460811262
|
||||
S 720.2002749198444 685.0391724273975 720.2002749198444 650.6485600880425
|
||||
s 8.414724295799639 -9.87815460811262 18.29287890391226 -9.87815460811262
|
||||
S 756.7860327276691 616.2579477486875 756.7860327276691 650.6485600880425
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.540837914078185" fill="#f47e60">
|
||||
<animateMotion begin="-7.088397398976333s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path11"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path12" d="M 365.57927615149157 277.7571015725914
|
||||
c 0 23.94448418286143 -5.858756768146946 6.877670988694241 -12.736427756841186 6.877670988694241
|
||||
S 340.1064206378092 301.7015857554528 340.1064206378092 277.7571015725914
|
||||
s 5.858756768146946 -6.877670988694241 12.736427756841186 -6.877670988694241
|
||||
S 365.57927615149157 253.81261738972998 365.57927615149157 277.7571015725914
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.407931781878242" fill="#409EFF">
|
||||
<animateMotion begin="-2.682043751732108s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path12"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path13" d="M 972.7911220358908 121.76273221677724
|
||||
c 0 26.551922715265047 -6.496747047352085 7.626616099065493 -14.123363146417578 7.626616099065493
|
||||
S 944.5443957430557 148.3146549320423 944.5443957430557 121.76273221677724
|
||||
s 6.496747047352085 -7.626616099065493 14.123363146417578 -7.626616099065493
|
||||
S 972.7911220358908 95.21080950151219 972.7911220358908 121.76273221677724
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.027870690186804" fill="#7585A2">
|
||||
<animateMotion begin="-2.649503058039237s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path13"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path14" d="M 1430.8501439583986 504.85980259202046
|
||||
c 0 27.37597929983105 -6.698377913788448 7.863313203142962 -14.56169111693141 7.863313203142962
|
||||
S 1401.726761724536 532.2357818918515 1401.726761724536 504.85980259202046
|
||||
s 6.698377913788448 -7.863313203142962 14.56169111693141 -7.863313203142962
|
||||
S 1430.8501439583986 477.4838232921894 1430.8501439583986 504.85980259202046
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.199444995509243" fill="#73A0FA">
|
||||
<animateMotion begin="-2.6460857467576675s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path14"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path15" d="M 311.7319321508727 748.2881185026815
|
||||
c 0 36.73015631275312 -8.987165906311931 10.550151281322703 -19.537317187634635 10.550151281322703
|
||||
S 272.6572977756034 785.0182748154347 272.6572977756034 748.2881185026815
|
||||
s 8.987165906311931 -10.550151281322703 19.537317187634635 -10.550151281322703
|
||||
S 311.7319321508727 711.5579621899284 311.7319321508727 748.2881185026815
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.833135551165933" fill="#73A0FA">
|
||||
<animateMotion begin="-3.477025199384847s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path15"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path16" d="M 27.931230557396546 398.8170778136326
|
||||
c 0 36.484581709751005 -8.927078503449712 10.479613895354012 -19.406692398803724 10.479613895354012
|
||||
S -10.882154240210903 435.3016595233836 -10.882154240210903 398.8170778136326
|
||||
s 8.927078503449712 -10.479613895354012 19.406692398803724 -10.479613895354012
|
||||
S 27.931230557396546 362.33249610388157 27.931230557396546 398.8170778136326
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.751673502370236" fill="#f47e60">
|
||||
<animateMotion begin="-4.651151174062854s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path16"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path17" d="M 272.28166902595126 667.968121944589
|
||||
c 0 27.205157170761243 -6.656581009867112 7.814247272452698 -14.47082828231981 7.814247272452698
|
||||
S 243.34001246131163 695.1732791153503 243.34001246131163 667.968121944589
|
||||
s 6.656581009867112 -7.814247272452698 14.47082828231981 -7.814247272452698
|
||||
S 272.28166902595126 640.7629647738278 272.28166902595126 667.968121944589
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.3606188966557" fill="#FEC03D">
|
||||
<animateMotion begin="-7.04658471291239s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path17"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path18" d="M 68.52816055717062 509.72412109826104
|
||||
c 0 29.887169878152417 -7.31281816167559 8.584612624575694 -15.897430786251284 8.584612624575694
|
||||
S 36.73329898466806 539.6112909764134 36.73329898466806 509.72412109826104
|
||||
s 7.31281816167559 -8.584612624575694 15.897430786251284 -8.584612624575694
|
||||
S 68.52816055717062 479.83695122010863 68.52816055717062 509.72412109826104
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.766600847571331" fill="#409EFF">
|
||||
<animateMotion begin="-2.943182568910145s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path18"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path19" d="M 498.4867256914234 698.0428393714164
|
||||
c 0 30.16800088761881 -7.381532132076942 8.66527685069902 -16.04680898277596 8.66527685069902
|
||||
S 466.3931077258714 728.2108402590353 466.3931077258714 698.0428393714164
|
||||
s 7.381532132076942 -8.66527685069902 16.04680898277596 -8.66527685069902
|
||||
S 498.4867256914234 667.8748384837976 498.4867256914234 698.0428393714164
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.890716067451898" fill="#f47e60">
|
||||
<animateMotion begin="-6.922790379009164s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path19"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path20" d="M 237.31670847162988 570.9916865103482
|
||||
c 0 37.44732484185728 -9.162643312369333 10.756146497129219 -19.918789809498552 10.756146497129219
|
||||
S 197.47912885263278 608.4390113522055 197.47912885263278 570.9916865103482
|
||||
s 9.162643312369333 -10.756146497129219 19.918789809498552 -10.756146497129219
|
||||
S 237.31670847162988 533.544361668491 237.31670847162988 570.9916865103482
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="5.209445859656978" fill="#7585A2">
|
||||
<animateMotion begin="-2.7842860998444956s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path20"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path21" d="M 844.5838314420802 300.2789933084955
|
||||
c 0 34.33444958544051 -8.400982345373741 9.862022753264826 -18.263005098638565 9.862022753264826
|
||||
S 808.057821244803 334.613442893936 808.057821244803 300.2789933084955
|
||||
s 8.400982345373741 -9.862022753264826 18.263005098638565 -9.862022753264826
|
||||
S 844.5838314420802 265.944543723055 844.5838314420802 300.2789933084955
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.131681051998438" fill="#409EFF">
|
||||
<animateMotion begin="-7.648757144503393s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path21"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path22" d="M 421.60153544835583 277.80813669372634
|
||||
c 0 28.261187796624853 -6.914971482152889 8.117575218179478 -15.032546700332368 8.117575218179478
|
||||
S 391.5364420476911 306.06932449035116 391.5364420476911 277.80813669372634
|
||||
s 6.914971482152889 -8.117575218179478 15.032546700332368 -8.117575218179478
|
||||
S 421.60153544835583 249.5469488971015 421.60153544835583 277.80813669372634
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="6.2646621562845475" fill="#f47e60">
|
||||
<animateMotion begin="-2.810604110269037s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path22"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path23" d="M 964.8180299061758 251.70205930626756
|
||||
c 0 20.201912557872895 -4.94302115777741 5.802677011303916 -10.745698169081326 5.802677011303916
|
||||
S 943.326633568013 271.90397186414043 943.326633568013 251.70205930626756
|
||||
s 4.94302115777741 -5.802677011303916 10.745698169081326 -5.802677011303916
|
||||
S 964.8180299061758 231.50014674839466 964.8180299061758 251.70205930626756
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.739792304581866" fill="#f47e60">
|
||||
<animateMotion begin="-1.283147684069228s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path23"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path24" d="M 450.56452845180536 467.20670088348527
|
||||
c 0 32.652475993971414 -7.9894356155461965 9.378902679119449 -17.368338294665648 9.378902679119449
|
||||
S 415.82785186247406 499.85917687745666 415.82785186247406 467.20670088348527
|
||||
s 7.9894356155461965 -9.378902679119449 17.368338294665648 -9.378902679119449
|
||||
S 450.56452845180536 434.5542248895139 450.56452845180536 467.20670088348527
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.206016322416145" fill="#409EFF">
|
||||
<animateMotion begin="-7.04290071253574s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path24"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path25" d="M 470.9609539413972 631.8555550663143
|
||||
c 0 28.374834580757934 -6.942778674015238 8.150218443409194 -15.092997117424432 8.150218443409194
|
||||
S 440.7749597065483 660.2303896470722 440.7749597065483 631.8555550663143
|
||||
s 6.942778674015238 -8.150218443409194 15.092997117424432 -8.150218443409194
|
||||
S 470.9609539413972 603.4807204855564 470.9609539413972 631.8555550663143
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.877171471279329" fill="#7585A2">
|
||||
<animateMotion begin="-8.585901919755338s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path25"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path26" d="M 652.7362252048207 288.7979351349304
|
||||
c 0 35.42106100309088 -8.666855351820105 10.174134543440996 -18.840989895261103 10.174134543440996
|
||||
S 615.0542454142984 324.2189961380213 615.0542454142984 288.7979351349304
|
||||
s 8.666855351820105 -10.174134543440996 18.840989895261103 -10.174134543440996
|
||||
S 652.7362252048207 253.37687413183954 652.7362252048207 288.7979351349304
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.352056724470119" fill="#f47e60">
|
||||
<animateMotion begin="-3.198081211934429s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path26"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path27" d="M 688.3012291378494 41.23417469454655
|
||||
c 0 28.909045473514027 -7.0734898499023675 8.303661997711476 -15.377151847613844 8.303661997711476
|
||||
S 657.5469254426217 70.14322016806058 657.5469254426217 41.23417469454655
|
||||
s 7.0734898499023675 -8.303661997711476 15.377151847613844 -8.303661997711476
|
||||
S 688.3012291378494 12.325129221032526 688.3012291378494 41.23417469454655
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="7.293346109382834" fill="#7585A2">
|
||||
<animateMotion begin="-3.635270207745576s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path27"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path28" d="M 1061.2362270938456 195.39666378859346
|
||||
c 0 19.39566461418629 -4.74574772474771 5.571095155138616 -10.316842879886325 5.571095155138616
|
||||
S 1040.602541334073 214.79232840277976 1040.602541334073 195.39666378859346
|
||||
s 4.74574772474771 -5.571095155138616 10.316842879886325 -5.571095155138616
|
||||
S 1061.2362270938456 176.00099917440716 1061.2362270938456 195.39666378859346
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="5.040205474760767" fill="#f47e60">
|
||||
<animateMotion begin="-7.665407360938512s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path28"></mpath>
|
||||
</animateMotion>
|
||||
</circle><path id="path29" d="M 824.7580606207787 636.1887703563605
|
||||
c 0 32.85378799118968 -8.03869280635492 9.436726337894909 -17.475419144249827 9.436726337894909
|
||||
S 789.807222332279 669.0425583475501 789.807222332279 636.1887703563605
|
||||
s 8.03869280635492 -9.436726337894909 17.475419144249827 -9.436726337894909
|
||||
S 824.7580606207787 603.3349823651708 824.7580606207787 636.1887703563605
|
||||
z" fill="none" stroke="none"></path>
|
||||
<circle cx="0" cy="0" r="4.76580996967193" fill="#f47e60">
|
||||
<animateMotion begin="-8.946715083233848s" dur="10s" repeatCount="indefinite">
|
||||
<mpath xlink:href="#path29"></mpath>
|
||||
</animateMotion>
|
||||
</circle></g>
|
||||
<style type="text/css">.lded > .content, .lded > .content > .inner { height: 100%; }
|
||||
.lded > .content > .inner > .viewer { width: 100%; height: 100%; max-width: 100%; overflow: hidden }
|
||||
.lded > .content > .inner > .panel {
|
||||
position: absolute;
|
||||
bottom: 50px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
opacity: 0.3;
|
||||
}
|
||||
.lded > .content > .inner > .panel:hover { opacity: 1; }
|
||||
.lded > .content > .inner > .ctrl {
|
||||
position: absolute;
|
||||
bottom: 13px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
}
|
||||
.lded > .content > .inner > .ctrl:hover {
|
||||
z-index: 10;
|
||||
}
|
||||
#editor > .inner > .title {
|
||||
position: absolute;
|
||||
bottom: 195px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 11;
|
||||
}
|
||||
#editor > .inner > .title > a:first-child {
|
||||
margin-left: 0!important;
|
||||
#editor .lded .viewer { border-radius: 0 }</style></svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
1
src/assets/svgs/gitee/JeeLowCode-1.0.0-red.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="116" height="20" role="img" aria-label="LideeYunji: 1.0.0"><title>LideeYunji: 1.0.0</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="116" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="77" height="20" fill="#555"/><rect x="77" width="39" height="20" fill="#e05d44"/><rect width="116" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="395" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="670">lideefrm</text><text x="395" y="140" transform="scale(.1)" fill="#fff" textLength="670">lideefrm</text><text aria-hidden="true" x="955" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="290">1.0.0</text><text x="955" y="140" transform="scale(.1)" fill="#fff" textLength="290">1.0.0</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svgs/gitee/Spring Boot-2.7.18-yellow.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="20" role="img" aria-label="Spring Boot: 2.7.18"><title>Spring Boot: 2.7.18</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="120" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="75" height="20" fill="#555"/><rect x="75" width="45" height="20" fill="#dfb317"/><rect width="120" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="385" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="650">Spring Boot</text><text x="385" y="140" transform="scale(.1)" fill="#fff" textLength="650">Spring Boot</text><text aria-hidden="true" x="965" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">2.7.18</text><text x="965" y="140" transform="scale(.1)" fill="#fff" textLength="350">2.7.18</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svgs/gitee/Vue-3.2-blue.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="58" height="20" role="img" aria-label="Vue: 3.2"><title>Vue: 3.2</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="58" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="31" height="20" fill="#555"/><rect x="31" width="27" height="20" fill="#007ec6"/><rect width="58" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="165" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="210">Vue</text><text x="165" y="140" transform="scale(.1)" fill="#fff" textLength="210">Vue</text><text aria-hidden="true" x="435" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="170">3.2</text><text x="435" y="140" transform="scale(.1)" fill="#fff" textLength="170">3.2</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svgs/gitee/commercial_free.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="76" height="20" role="img" aria-label="可商用: 免费"><title>可商用: 免费</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="76" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="43" height="20" fill="#555"/><rect x="43" width="33" height="20" fill="purple"/><rect width="76" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="225" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">可商用</text><text x="225" y="140" transform="scale(.1)" fill="#fff" textLength="330">可商用</text><text aria-hidden="true" x="585" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="230">免费</text><text x="585" y="140" transform="scale(.1)" fill="#fff" textLength="230">免费</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svgs/gitee/license-Apache 2.0-green.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="20" role="img" aria-label="license: Apache 2.0"><title>license: Apache 2.0</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="120" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="47" height="20" fill="#555"/><rect x="47" width="73" height="20" fill="#97ca00"/><rect width="120" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="245" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="370">license</text><text x="245" y="140" transform="scale(.1)" fill="#fff" textLength="370">license</text><text aria-hidden="true" x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="630">Apache 2.0</text><text x="825" y="140" transform="scale(.1)" fill="#fff" textLength="630">Apache 2.0</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svgs/pay/icon/alipay_app.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg t="1627279997305" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11904" width="40" height="40"><path d="M938.7008 669.525333L938.7008 249.412267c0-90.555733-73.5232-164.078933-164.1472-164.078933L249.378133 85.333333c-90.555733 0-164.078933 73.48906699-164.078933 164.078933l0 525.2096c0 90.555733 73.454933 164.078933 164.07893301 164.078933l525.20959999 0c80.725333 0 147.8656-58.368 161.553067-135.099733-43.52-18.8416-232.106667-100.283733-330.376533-147.182933-74.786133 90.589867-153.088 144.930133-271.121067 144.930133s-196.81279999-72.704-187.357867-161.655467c6.2464-58.402133 46.2848-153.9072 220.296533-137.5232 91.682133 8.6016 133.666133 25.736533 208.418133 50.414933 19.3536-35.4304 35.4304-74.513067 47.616-116.0192L292.0448 436.565333l0-32.8704 164.0448 0 0-58.9824L256 344.712533l1e-8-36.181333 200.12373299 0L456.123733 223.3344c0 0 1.809067-13.312 16.520533-13.31200001l82.056533 1e-8 0 98.474667 213.333333 0 0 36.181333-213.333333 1e-8 0 58.98239999 174.045867 0c-16.00853301 65.1264-40.277333 124.962133-70.690133 177.220267C708.608 599.176533 938.7008 669.525333 938.7008 669.525333L938.7008 669.525333 938.7008 669.525333 938.7008 669.525333zM321.57013299 744.994133c-124.7232 0-144.452267-78.7456-137.83039999-111.65013299 6.5536-32.733867 42.666667-75.502933 112.0256-75.50293301 79.6672 0 151.04 20.445867 236.714667 62.088533C472.302933 698.333867 398.370133 744.994133 321.57013299 744.994133L321.57013299 744.994133 321.57013299 744.994133zM321.57013299 744.994133" fill="#1296db" p-id="11905"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |