diff --git a/src/api/match/account.js b/src/api/match/account.js new file mode 100644 index 0000000..a18a320 --- /dev/null +++ b/src/api/match/account.js @@ -0,0 +1,168 @@ +import { BaseApi } from '../baseApi'; +import { http } from '../../utils/request'; + +// ==================== 系统用户管理 ==================== + +/** + * 系统用户分页查询 + * @param {Object} params - 查询参数 + * @param {string} [params.Account] - 账号 (模糊查询) + * @param {string} [params.Name] - 姓名 (模糊查询) + * @param {number} [params.RoleId] - 关联角色ID + * @param {string} [params.StartTime] - 开始时间 (格式: ISO日期时间) + * @param {string} [params.EndTime] - 结束时间 (格式: ISO日期时间) + * @param {number} [params.PageNo] - 当前页码 + * @param {number} [params.PageSize] - 每页条数 + * @returns {Promise<{ + * pageNo: number, + * pageSize: number, + * pages: number, + * total: number, + * rows: Array<{ + * id: number, + * name: string, + * account: string, + * roleNames: string, + * createdTime: string, + * status: number | string + * }> + * }>} + */ +export const sysuserPageGet = (params) => { + return http.get('/sysuser/page', { params }); +}; + +/** + * 添加系统用户 + * @param {Object} data - 用户信息 + * @param {string} data.name - 姓名 + * @param {string} data.account - 账号 + * @param {Array} data.roles - 角色ID列表 + * @param {string} [data.status] - 状态 (Enable=启用, Disable=禁用,默认Enable) + */ +export const sysuserUserPost = (data) => { + return http.post('/sysuser/user', data); +}; + +/** + * 更新系统用户信息 + * @param {Object} data - 用户信息 + * @param {number} data.id - 用户ID + * @param {string} data.name - 姓名 + * @param {string} data.account - 账号 + * @param {Array} data.roles - 角色ID列表 + * @param {string} [data.status] - 状态 (Enable=启用, Disable=禁用) + */ +export const sysuserUserPut = (data) => { + return http.put('/sysuser/user', data); +}; + +/** + * 删除系统用户 + * @param {Object} data - 删除参数 + * @param {number} data.id - 用户ID + */ +export const sysuserDelete = (data) => { + return http.delete('/sysuser', { data }); +}; + +/** + * 关联角色 + * @param {Object} data - 角色关联信息 + * @param {number} data.userId - 用户ID + * @param {Array} data.roleIds - 角色ID列表 + */ +export const sysuserGrantrolePost = (data) => { + return http.post('/sysuser/grantrole', data); +}; + +/** + * 系统用户详情 + * @param {Object} params - 查询参数 + * @param {number} params.id - 用户ID + * @returns {Promise<{ + * id: number, + * name: string, + * account: string, + * roles: Array, + * status: string + * }>} + */ +export const sysuserDetailGet = (params) => { + return http.get('/sysuser/detail', { params }); +}; + +/** + * 重置系统用户密码 + * @param {Object} data - 重置密码参数 + * @param {number} data.id - 用户ID + * @param {string} data.password - 新密码 + */ +export const sysuserResetPatch = (data) => { + return http.patch('/sysuser/reset', data); +}; + +/** + * 获取当前登录用户的信息 + * @returns {Promise<{ + * name: string, + * account: string, + * avatar: string, + * birthday: string, + * email: string, + * gender: string, + * nickName: string, + * remark: string, + * lastLoginIp: string, + * lastLoginAddress: string, + * mobile: string, + * orgId: number, + * orgName: string, + * authBtnList: Array + * }>} + */ +export const sysuserCurrentuserinfoGet = () => { + return http.get('/sysuser/currentuserinfo'); +}; + +/** + * 用户修改账户密码 + * @param {Object} data - 修改密码参数 + * @param {string} data.originalPwd - 原密码 + * @param {string} data.password - 新密码 + */ +export const sysuserChangepasswordPatch = (data) => { + return http.patch('/sysuser/changepassword', data); +}; + +/** + * 用户修改头像 + * @param {string} data - 头像URL + */ +export const sysuserUploadavatarPatch = (data) => { + return http.patch('/sysuser/uploadavatar', data); +}; + +/** + * 系统用户修改自己的信息 + * @param {Object} data - 用户信息 + * @param {string} [data.name] - 姓名 + * @param {string} [data.gender] - 性别 (Male=男, Female=女) + * @param {string} [data.nickName] - 昵称 + * @param {string} [data.birthday] - 生日 (格式:2026-03-11) + * @param {string} [data.mobile] - 手机号 + * @param {string} [data.email] - 邮箱 + */ +export const sysuserUpdatecurrentuserPatch = (data) => { + return http.patch('/sysuser/updatecurrentuser', data); +}; + +/** + * 修改用户状态 + * @param {Object} data - 状态参数 + * @param {number} data.id - 用户ID + * @param {string} data.status - 状态 (Enable=启用, Disable=禁用) + */ +export const sysuserSetstatusPatch = (data) => { + return http.patch('/sysuser/setstatus', data); +}; \ No newline at end of file diff --git a/src/api/match/role.js b/src/api/match/role.js new file mode 100644 index 0000000..651bd09 --- /dev/null +++ b/src/api/match/role.js @@ -0,0 +1,105 @@ +import { BaseApi } from '../baseApi'; +import { http } from '../../utils/request'; + +// ==================== 角色管理 ==================== + +/** + * 角色分页查询 + * @param {Object} params - 查询参数 + * @param {string} [params.Name] - 角色名称 (模糊查询) + * @param {number} [params.PageNo] - 当前页码 + * @param {number} [params.PageSize] - 每页条数 + * @returns {Promise<{ + * pageNo: number, + * pageSize: number, + * pages: number, + * total: number, + * rows: Array<{ + * id: number, + * name: string, + * code: string, + * sort: number, + * status: string, + * remark: string, + * createdTime: string + * }> + * }>} + */ +export const sysrolePageGet = (params) => { + return http.get('/sysrole/page', { params }); +}; + +/** + * 添加角色 + * @param {Object} data - 角色信息 + * @param {string} data.name - 角色名称 + * @param {string} [data.remark] - 备注说明 + * @param {number} [data.sort] - 排序号 + * @param {string} [data.status] - 状态 (Enable=启用, Disable=禁用,默认Enable) + */ +export const sysroleAddPost = (data) => { + return http.post('/sysrole/add', data); +}; + +/** + * 更新角色 + * @param {Object} data - 角色信息 + * @param {number} data.id - 角色ID + * @param {string} data.name - 角色名称 + * @param {string} [data.remark] - 备注说明 + * @param {number} [data.sort] - 排序号 + * @param {string} [data.status] - 状态 (Enable=启用, Disable=禁用) + */ +export const sysroleEditPut = (data) => { + return http.put('/sysrole/edit', data); +}; + +/** + * 授权角色权限 + * @param {Object} data - 权限信息 + * @param {number} data.id - 角色ID + * @param {Array} data.menuIds - 菜单/按钮ID列表 + */ +export const sysroleGrantpermissionPost = (data) => { + return http.post('/sysrole/grantpermission', data); +}; + +/** + * 获取角色可访问的菜单和按钮ID + * @param {Object} params - 查询参数 + * @param {number} params.id - 角色ID + * @returns {Promise>} - 返回菜单/按钮ID数组 + */ +export const sysroleGetrolemenuGet = (params) => { + return http.get('/sysrole/getrolemenu', { params }); +}; + +/** + * 修改角色状态 + * @param {Object} data - 状态参数 + * @param {number} data.id - 角色ID + * @param {string} data.status - 状态 (Enable=启用, Disable=禁用) + */ +export const sysroleSetstatusPut = (data) => { + return http.put('/sysrole/setstatus', data); +}; + +/** + * 删除角色 + * @param {Object} data - 删除参数 + * @param {number} data.id - 角色ID + */ +export const sysroleDeleteDelete = (data) => { + return http.delete('/sysrole/delete', { data }); +}; + +/** + * 角色下拉选项 + * @returns {Promise>} - 返回下拉选项列表 + */ +export const sysroleSelectGet = () => { + return http.get('/sysrole/select'); +}; \ No newline at end of file diff --git a/src/router/route.ts b/src/router/route.ts index 75d2f30..5b8c86e 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -350,6 +350,46 @@ export const dynamicRoutes: Array = [ }, ] }, + { + path: '/permission', + name: 'permission', + component: () => import('/@/views/permission/account/index.vue'), + meta: { + isKeepAlive: true, + }, + children: [ + { + path: '/permission/account', + name: 'account', + component: () => import('/@/views/permission/account/index.vue'), + meta: { + title: '账户管理', + isLink: '', + isHide: false, + isKeepAlive: true, + isAffix: false, + isIframe: false, + roles: ['admin', 'common'], + icon: 'iconfont icon-shouye', + }, + }, + { + path: '/permission/role', + name: 'role', + component: () => import('/@/views/permission/role/index.vue'), + meta: { + title: '角色管理', + isLink: '', + isHide: false, + isKeepAlive: true, + isAffix: false, + isIframe: false, + roles: ['admin', 'common'], + icon: 'iconfont icon-shouye', + }, + }, + ] + }, ]; /** diff --git a/src/views/match/coupon/index.vue b/src/views/match/coupon/index.vue index 63e3bb1..4d64312 100644 --- a/src/views/match/coupon/index.vue +++ b/src/views/match/coupon/index.vue @@ -52,14 +52,14 @@ - + - + @@ -190,8 +190,9 @@ const onOpenMenu = async (row) => { //删除菜单 const onDeleteMenu = async (id) => { - const { succeeded, errors } = await SysMenuApi.delete({ id }); + const { succeeded, errors } = await couponDelete([ id ]); if (succeeded) { + initParam.value = !initParam.value; ElMessage.success('删除成功'); } else { ElMessage.error(errors); diff --git a/src/views/permission/account/index.vue b/src/views/permission/account/index.vue new file mode 100644 index 0000000..0fa3889 --- /dev/null +++ b/src/views/permission/account/index.vue @@ -0,0 +1,244 @@ + + + + + + \ No newline at end of file diff --git a/src/views/permission/role/index.vue b/src/views/permission/role/index.vue new file mode 100644 index 0000000..ed4bf6b --- /dev/null +++ b/src/views/permission/role/index.vue @@ -0,0 +1,200 @@ + + + + + + \ No newline at end of file