From fa8dc6d8faa684f054d7f2ec84b4f348e094b1eb Mon Sep 17 00:00:00 2001 From: lijiahang Date: Tue, 15 Aug 2023 18:32:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=92=E8=89=B2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orion-ops-ui/src/api/user/role.ts | 114 ++++++++++ .../menu/selector/menu-selector-tree.vue | 147 ++++++++++++ orion-ops-ui/src/views/user/child1/index.vue | 15 -- orion-ops-ui/src/views/user/child2/index.vue | 19 -- .../user/role/components/role-form-modal.vue | 138 +++++++++++ .../role/components/role-menu-bind-modal.vue | 151 ++++++++++++ .../views/user/role/components/role-table.vue | 215 ++++++++++++++++++ orion-ops-ui/src/views/user/role/index.vue | 44 ++++ .../src/views/user/role/types/enum.types.ts | 18 ++ .../src/views/user/role/types/form.rules.ts | 22 ++ .../views/user/role/types/table.columns.ts | 42 ++++ 11 files changed, 891 insertions(+), 34 deletions(-) create mode 100644 orion-ops-ui/src/api/user/role.ts create mode 100644 orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue delete mode 100644 orion-ops-ui/src/views/user/child1/index.vue delete mode 100644 orion-ops-ui/src/views/user/child2/index.vue create mode 100644 orion-ops-ui/src/views/user/role/components/role-form-modal.vue create mode 100644 orion-ops-ui/src/views/user/role/components/role-menu-bind-modal.vue create mode 100644 orion-ops-ui/src/views/user/role/components/role-table.vue create mode 100644 orion-ops-ui/src/views/user/role/index.vue create mode 100644 orion-ops-ui/src/views/user/role/types/enum.types.ts create mode 100644 orion-ops-ui/src/views/user/role/types/form.rules.ts create mode 100644 orion-ops-ui/src/views/user/role/types/table.columns.ts diff --git a/orion-ops-ui/src/api/user/role.ts b/orion-ops-ui/src/api/user/role.ts new file mode 100644 index 00000000..4409a61c --- /dev/null +++ b/orion-ops-ui/src/api/user/role.ts @@ -0,0 +1,114 @@ +import axios from 'axios'; +import { DataGrid, Pagination } from '@/types/global'; + +/** + * 角色创建请求 + */ +export interface RoleCreateRequest { + name?: string; + code?: string; + status?: number; +} + +/** + * 角色更新请求 + */ +export interface RoleUpdateRequest extends RoleCreateRequest { + id: number; +} + +/** + * 角色 菜单绑定请求 + */ +export interface RoleMenuBindRequest extends RoleCreateRequest { + roleId: number; + menuIdList: Array; +} + +/** + * 角色查询请求 + */ +export interface RoleQueryRequest extends Pagination { + id?: number; + name?: string; + code?: string; + status?: number; +} + +/** + * 角色查询响应 + */ +export interface RoleQueryResponse { + id?: number; + name?: string; + code?: string; + status?: number; + createTime: number; + updateTime: number; + creator: string; + updater: string; +} + +/** + * 创建角色 + */ +export function createRole(request: RoleCreateRequest) { + return axios.post('/infra/system-role/create', request); +} + +/** + * 通过 id 更新角色 + */ +export function updateRole(request: RoleUpdateRequest) { + return axios.put('/infra/system-role/update', request); +} + +/** + * 通过 id 更新角色状态 + */ +export function updateRoleStatus(request: RoleUpdateRequest) { + return axios.put('/infra/system-role/update-status', request); +} + +/** + * 通过 id 查询角色 + */ +export function getRole(id: number) { + return axios.get('/infra/system-role/get', { params: { id } }); +} + +/** + * 查询所有角色 + */ +export function getRoleList() { + return axios.get('/infra/system-role/list'); +} + +/** + * 分页查询角色 + */ +export function getRolePage(request: RoleQueryRequest) { + return axios.post>('/infra/system-role/query', request); +} + +/** + * 通过 id 删除角色 + */ +export function deleteRole(id: number) { + return axios.delete('/infra/system-role/delete', { params: { id } }); +} + +/** + * 绑定角色菜单 + */ +export function bindRoleMenu(request: RoleMenuBindRequest) { + return axios.put('/infra/system-role/bind', request); +} + +/** + * 获取角色菜单id + */ +export function getRoleMenuId(roleId: number) { + return axios.get>('/infra/system-role/get-menu-id', { params: { roleId } }); +} + diff --git a/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue b/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue new file mode 100644 index 00000000..34e68972 --- /dev/null +++ b/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue @@ -0,0 +1,147 @@ + + + + + + +; diff --git a/orion-ops-ui/src/views/user/child1/index.vue b/orion-ops-ui/src/views/user/child1/index.vue deleted file mode 100644 index 7ba4a8c7..00000000 --- a/orion-ops-ui/src/views/user/child1/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/orion-ops-ui/src/views/user/child2/index.vue b/orion-ops-ui/src/views/user/child2/index.vue deleted file mode 100644 index 3eec76f7..00000000 --- a/orion-ops-ui/src/views/user/child2/index.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/orion-ops-ui/src/views/user/role/components/role-form-modal.vue b/orion-ops-ui/src/views/user/role/components/role-form-modal.vue new file mode 100644 index 00000000..b44dc04d --- /dev/null +++ b/orion-ops-ui/src/views/user/role/components/role-form-modal.vue @@ -0,0 +1,138 @@ + + + + + + + diff --git a/orion-ops-ui/src/views/user/role/components/role-menu-bind-modal.vue b/orion-ops-ui/src/views/user/role/components/role-menu-bind-modal.vue new file mode 100644 index 00000000..16e398e4 --- /dev/null +++ b/orion-ops-ui/src/views/user/role/components/role-menu-bind-modal.vue @@ -0,0 +1,151 @@ + + + + + + + diff --git a/orion-ops-ui/src/views/user/role/components/role-table.vue b/orion-ops-ui/src/views/user/role/components/role-table.vue new file mode 100644 index 00000000..6fb97092 --- /dev/null +++ b/orion-ops-ui/src/views/user/role/components/role-table.vue @@ -0,0 +1,215 @@ + + + + + + + diff --git a/orion-ops-ui/src/views/user/role/index.vue b/orion-ops-ui/src/views/user/role/index.vue new file mode 100644 index 00000000..af7ce106 --- /dev/null +++ b/orion-ops-ui/src/views/user/role/index.vue @@ -0,0 +1,44 @@ + + + + + + + diff --git a/orion-ops-ui/src/views/user/role/types/enum.types.ts b/orion-ops-ui/src/views/user/role/types/enum.types.ts new file mode 100644 index 00000000..df8da7e0 --- /dev/null +++ b/orion-ops-ui/src/views/user/role/types/enum.types.ts @@ -0,0 +1,18 @@ +/** + * 角色状态 + */ +export const ROLE_STATUS_ENUM = { + DISABLED: { + value: 0, + label: '停用', + color: 'orange', + status: 'danger', + }, + ENABLED: { + value: 1, + label: '启用', + color: 'blue', + status: 'default', + }, +}; + diff --git a/orion-ops-ui/src/views/user/role/types/form.rules.ts b/orion-ops-ui/src/views/user/role/types/form.rules.ts new file mode 100644 index 00000000..91d2209d --- /dev/null +++ b/orion-ops-ui/src/views/user/role/types/form.rules.ts @@ -0,0 +1,22 @@ +import { FieldRule } from '@arco-design/web-vue'; + +export const name = [{ + required: true, + message: '请输入角色名称' +}, { + maxLength: 32, + message: '角色名称长度不能大于32位' +}] as FieldRule[]; + +export const code = [{ + required: true, + message: '请输入角色编码' +}, { + maxLength: 32, + message: '角色编码长度不能大于32位' +}] as FieldRule[]; + +export default { + name, + code, +} as Record; diff --git a/orion-ops-ui/src/views/user/role/types/table.columns.ts b/orion-ops-ui/src/views/user/role/types/table.columns.ts new file mode 100644 index 00000000..786705db --- /dev/null +++ b/orion-ops-ui/src/views/user/role/types/table.columns.ts @@ -0,0 +1,42 @@ +import { TableColumnData } from '@arco-design/web-vue/es/table/interface'; +import { dateFormat } from '@/utils'; + +const columns = [ + { + title: 'id', + dataIndex: 'id', + slotName: 'id', + width: 70, + align: 'left', + fixed: 'left', + }, { + title: '角色名称', + dataIndex: 'name', + slotName: 'name', + }, { + title: '角色编码', + dataIndex: 'code', + slotName: 'code', + }, { + title: '角色状态', + dataIndex: 'status', + slotName: 'status', + align: 'center', + }, { + title: '创建时间', + dataIndex: 'createTime', + slotName: 'createTime', + align: 'center', + render: ({ record }) => { + return dateFormat(new Date(record.createTime)); + }, + }, { + title: '操作', + slotName: 'handle', + width: 240, + align: 'center', + fixed: 'right', + }, +] as TableColumnData[]; + +export default columns;