diff --git a/ruoyi-ui/src/api/psychology/permission.js b/ruoyi-ui/src/api/psychology/permission.js new file mode 100644 index 00000000..e69cb519 --- /dev/null +++ b/ruoyi-ui/src/api/psychology/permission.js @@ -0,0 +1,73 @@ +import request from '@/utils/request' + +// 查询权限列表 +export function listPermission(query) { + return request({ + url: '/psychology/permission/list', + method: 'get', + params: query + }) +} + +// 查询权限详细 +export function getPermission(permissionId) { + return request({ + url: '/psychology/permission/' + permissionId, + method: 'get' + }) +} + +// 根据用户ID获取用户有权限访问的量表ID列表 +export function getUserScaleIds(userId) { + return request({ + url: '/psychology/permission/user/' + userId + '/scales', + method: 'get' + }) +} + +// 检查用户是否有权限访问指定量表 +export function checkPermission(userId, scaleId) { + return request({ + url: '/psychology/permission/check/' + userId + '/' + scaleId, + method: 'get' + }) +} + +// 新增权限 +export function addPermission(data) { + return request({ + url: '/psychology/permission', + method: 'post', + data: data + }) +} + +// 修改权限 +export function updatePermission(data) { + return request({ + url: '/psychology/permission', + method: 'put', + data: data + }) +} + +// 删除权限 +export function delPermission(permissionIds) { + return request({ + url: '/psychology/permission/' + permissionIds, + method: 'delete' + }) +} + +// 批量分配用户量表权限 +export function assignUserScales(userId, scaleIds) { + return request({ + url: '/psychology/permission/assign', + method: 'post', + data: { + userId: userId, + scaleIds: scaleIds + } + }) +} + diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 0cf50280..09df4f03 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -298,6 +298,28 @@ export const dynamicRoutes = [ roles: ['admin'] } }, + // 量表权限管理 + { + path: 'permission', + name: 'ScalePermission', + component: () => import('@/views/psychology/permission/index'), + meta: { + title: '量表权限管理', + icon: 'lock', + roles: ['admin'] + } + }, + // 用户量表权限分配 + { + path: 'permission/user/:userId', + name: 'UserScalePermission', + component: () => import('@/views/psychology/permission/user'), + hidden: true, + meta: { + title: '分配量表权限', + roles: ['admin'] + } + }, // 解释配置 { path: 'interpretation', diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index 12b7560e..cc0d9489 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -91,8 +91,8 @@ export default { loading: false, // 验证码开关 captchaEnabled: true, - // 注册开关 - register: false, + // 注册开关(默认启用,实际应该从后端配置读取) + register: true, redirect: undefined } }, diff --git a/ruoyi-ui/src/views/psychology/assessment/start.vue b/ruoyi-ui/src/views/psychology/assessment/start.vue index 866a6ea0..5d4bd15c 100644 --- a/ruoyi-ui/src/views/psychology/assessment/start.vue +++ b/ruoyi-ui/src/views/psychology/assessment/start.vue @@ -110,9 +110,34 @@ export default { methods: { /** 加载量表列表 */ loadScales() { - listScale({ status: '0' }).then(response => { - this.scaleList = response.rows.filter(scale => scale.itemCount > 0); - }); + // 获取当前登录用户ID + const userId = this.$store.getters.userId; + + // 如果是管理员,显示所有量表;否则只显示有权限的量表 + if (userId === 1) { + // 管理员显示所有量表 + listScale({ status: '0' }).then(response => { + this.scaleList = response.rows.filter(scale => scale.itemCount > 0); + }); + } else { + // 普通用户只显示有权限的量表 + import('@/api/psychology/permission').then(module => { + module.getUserScaleIds(userId).then(permissionResponse => { + const allowedScaleIds = permissionResponse.data || []; + if (allowedScaleIds.length === 0) { + this.scaleList = []; + this.$message.warning('您还没有被分配任何量表权限,请联系管理员'); + return; + } + // 获取所有量表,然后过滤 + listScale({ status: '0' }).then(response => { + this.scaleList = response.rows.filter(scale => + scale.itemCount > 0 && allowedScaleIds.includes(scale.scaleId) + ); + }); + }); + }); + } }, /** 加载用户档案列表 */ loadProfiles() { diff --git a/ruoyi-ui/src/views/psychology/interpretation/index.vue b/ruoyi-ui/src/views/psychology/interpretation/index.vue index 1b291d37..03cebad9 100644 --- a/ruoyi-ui/src/views/psychology/interpretation/index.vue +++ b/ruoyi-ui/src/views/psychology/interpretation/index.vue @@ -1,21 +1,39 @@