From 8607a6f5751750d65fb00d243161ee8691b0a902 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Mon, 18 Nov 2024 07:48:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E5=AE=8C=E5=96=84=EF=BC=8C?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=B7=BB=E5=8A=A0=E9=83=A8=E9=97=A8=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/dept.ts | 130 ++++++++++ src/api/system/role.ts | 138 ++++++++++ src/api/system/user.ts | 59 ++++- src/pages/work/user/index.vue | 473 +++++++++++++++++++++++++++++----- unocss.config.ts | 2 + 5 files changed, 724 insertions(+), 78 deletions(-) create mode 100644 src/api/system/dept.ts create mode 100644 src/api/system/role.ts diff --git a/src/api/system/dept.ts b/src/api/system/dept.ts new file mode 100644 index 0000000..cdbd165 --- /dev/null +++ b/src/api/system/dept.ts @@ -0,0 +1,130 @@ +import request from "@/utils/request"; + +const DEPT_BASE_URL = "/api/v1/dept"; + +const DeptAPI = { + /** + * 获取部门列表 + * + * @param queryParams 查询参数(可选) + * @returns 部门树形表格数据 + */ + getList(queryParams?: DeptQuery) { + return request({ + url: `${DEPT_BASE_URL}`, + method: "GET", + data: queryParams, + }); + }, + + /** 获取部门下拉列表 */ + getOptions() { + return request({ + url: `${DEPT_BASE_URL}/options`, + method: "GET", + }); + }, + + /** + * 获取部门表单数据 + * + * @param id 部门ID + * @returns 部门表单数据 + */ + getFormData(id: number) { + return request({ + url: `${DEPT_BASE_URL}/${id}/form`, + method: "GET", + }); + }, + + /** + * 新增部门 + * + * @param data 部门表单数据 + * @returns 请求结果 + */ + add(data: DeptForm) { + return request({ + url: `${DEPT_BASE_URL}`, + method: "POST", + data: data, + }); + }, + + /** + * 修改部门 + * + * @param id 部门ID + * @param data 部门表单数据 + * @returns 请求结果 + */ + update(id: number, data: DeptForm) { + return request({ + url: `${DEPT_BASE_URL}/${id}`, + method: "PUT", + data: data, + }); + }, + + /** + * 删除部门 + * + * @param ids 部门ID,多个以英文逗号(,)分隔 + * @returns 请求结果 + */ + deleteByIds(ids: string) { + return request({ + url: `${DEPT_BASE_URL}/${ids}`, + method: "DELETE", + }); + }, +}; + +export default DeptAPI; + +/** 部门查询参数 */ +export interface DeptQuery { + /** 搜索关键字 */ + keywords?: string; + /** 状态 */ + status?: number; +} + +/** 部门类型 */ +export interface DeptVO { + /** 子部门 */ + children?: DeptVO[]; + /** 创建时间 */ + createTime?: Date; + /** 部门ID */ + id?: number; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentId?: number; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; + /** 修改时间 */ + updateTime?: Date; +} + +/** 部门表单类型 */ +export interface DeptForm { + /** 部门ID(新增不填) */ + id?: number; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentId: number; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; +} diff --git a/src/api/system/role.ts b/src/api/system/role.ts new file mode 100644 index 0000000..d375936 --- /dev/null +++ b/src/api/system/role.ts @@ -0,0 +1,138 @@ +import request from "@/utils/request"; + +const ROLE_BASE_URL = "/api/v1/roles"; + +const RoleAPI = { + /** 获取角色分页数据 */ + getPage(queryParams?: RolePageQuery) { + return request>({ + url: `${ROLE_BASE_URL}/page`, + method: "GET", + data: queryParams, + }); + }, + + /** 获取角色下拉数据源 */ + getOptions() { + return request({ + url: `${ROLE_BASE_URL}/options`, + method: "GET", + }); + }, + /** + * 获取角色的菜单ID集合 + * + * @param roleId 角色ID + * @returns 角色的菜单ID集合 + */ + getRoleMenuIds(roleId: number) { + return request({ + url: `${ROLE_BASE_URL}/${roleId}/menuIds`, + method: "GET", + }); + }, + + /** + * 分配菜单权限 + * + * @param roleId 角色ID + * @param data 菜单ID集合 + */ + updateRoleMenus(roleId: number, data: number[]) { + return request({ + url: `${ROLE_BASE_URL}/${roleId}/menus`, + method: "PUT", + data: data, + }); + }, + + /** + * 获取角色表单数据 + * + * @param id 角色ID + * @returns 角色表单数据 + */ + getFormData(id: number) { + return request({ + url: `${ROLE_BASE_URL}/${id}/form`, + method: "GET", + }); + }, + + /** 添加角色 */ + add(data: RoleForm) { + return request({ + url: `${ROLE_BASE_URL}`, + method: "POST", + data: data, + }); + }, + + /** + * 更新角色 + * + * @param id 角色ID + * @param data 角色表单数据 + */ + update(id: number, data: RoleForm) { + return request({ + url: `${ROLE_BASE_URL}/${id}`, + method: "PUT", + data: data, + }); + }, + + /** + * 批量删除角色,多个以英文逗号(,)分割 + * + * @param ids 角色ID字符串,多个以英文逗号(,)分割 + */ + deleteByIds(ids: string) { + return request({ + url: `${ROLE_BASE_URL}/${ids}`, + method: "DELETE", + }); + }, +}; + +export default RoleAPI; + +/** 角色分页查询参数 */ +export interface RolePageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; +} + +/** 角色分页对象 */ +export interface RolePageVO { + /** 角色编码 */ + code?: string; + /** 角色ID */ + id?: number; + /** 角色名称 */ + name?: string; + /** 排序 */ + sort?: number; + /** 角色状态 */ + status?: number; + /** 创建时间 */ + createTime?: Date; + /** 修改时间 */ + updateTime?: Date; +} + +/** 角色表单对象 */ +export interface RoleForm { + /** 角色ID */ + id?: number; + /** 角色编码 */ + code?: string; + /** 数据权限 */ + dataScope?: number; + /** 角色名称 */ + name?: string; + /** 排序 */ + sort?: number; + /** 角色状态(1-正常;0-停用) */ + status?: number; +} diff --git a/src/api/system/user.ts b/src/api/system/user.ts index efbf79c..1c3ebeb 100644 --- a/src/api/system/user.ts +++ b/src/api/system/user.ts @@ -27,6 +27,45 @@ const UserAPI = { data: queryParams, }); }, + /** + * 添加用户 + * + * @param data 用户表单数据 + */ + add(data: UserForm) { + return request({ + url: `${USER_BASE_URL}`, + method: "POST", + data: data, + }); + }, + + /** + * 获取用户表单详情 + * + * @param userId 用户ID + * @returns 用户表单详情 + */ + getFormData(userId: number) { + return request({ + url: `${USER_BASE_URL}/${userId}/form`, + method: "GET", + }); + }, + + /** + * 修改用户 + * + * @param id 用户ID + * @param data 用户表单数据 + */ + update(id: number, data: UserForm) { + return request({ + url: `${USER_BASE_URL}/${id}`, + method: "PUT", + data: data, + }); + }, /** 获取个人中心用户信息 */ getProfile() { @@ -84,16 +123,16 @@ const UserAPI = { data: data, }); }, + /** - * 获取用户表单详情 + * 批量删除用户,多个以英文逗号(,)分割 * - * @param userId 用户ID - * @returns 用户表单详情 + * @param ids 用户ID字符串,多个以英文逗号(,)分割 */ - getFormData(userId: number) { - return request({ - url: `${USER_BASE_URL}/${userId}/form`, - method: "GET", + deleteByIds(ids: string) { + return request({ + url: `${USER_BASE_URL}/${ids}`, + method: "DELETE", }); }, }; @@ -142,7 +181,7 @@ export interface UserPageVO { /** 用户头像URL */ avatar?: string; /** 创建时间 */ - createTime?: Date; + createTime?: string; /** 部门名称 */ deptName?: string; /** 用户邮箱 */ @@ -150,7 +189,7 @@ export interface UserPageVO { /** 性别 */ gender?: number; /** 用户ID */ - id?: number; + id: number; /** 手机号 */ mobile?: string; /** 用户昵称 */ @@ -263,7 +302,7 @@ export interface UserForm { /** 昵称 */ nickname?: string; /** 角色ID集合 */ - roleIds?: number[]; + roleIds: number[]; /** 用户状态(1:正常;0:禁用) */ status?: number; /** 用户名 */ diff --git a/src/pages/work/user/index.vue b/src/pages/work/user/index.vue index 2415f23..3515c60 100644 --- a/src/pages/work/user/index.vue +++ b/src/pages/work/user/index.vue @@ -2,79 +2,82 @@ - + - - - - - {{ item.roleNames }} - - - - - {{ item.mobile }} - - - - {{ item.email }} - - - - - - - + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -87,7 +90,15 @@