diff --git a/admin-web/src/layouts/MainLayout.vue b/admin-web/src/layouts/MainLayout.vue index 6c6c294..9ceb563 100644 --- a/admin-web/src/layouts/MainLayout.vue +++ b/admin-web/src/layouts/MainLayout.vue @@ -136,20 +136,25 @@ import { Bell, Calendar, ChatDotRound, + Clock, Connection, DataAnalysis, DataBoard, DocumentChecked, Expand, Fold, + House, Location, LocationFilled, Lock, + Memo, Opportunity, + Picture, Reading, Search, Setting, StarFilled, + Tickets, User, UserFilled, Warning, @@ -169,14 +174,20 @@ const navigation: NavigationItem[] = [ { label: '资料审核', path: '/review', permissions: ['review.view'], icon: DocumentChecked }, { label: '匹配管理', path: '/activities/interests', permissions: ['activity.review_registration'], icon: StarFilled }, { label: '公益红娘', path: '/referral', permissions: ['referral.manage'], icon: Connection }, + { label: '红娘服务', path: '/matchmaker', permissions: ['matchmaker.service.view'], icon: Connection }, { label: '公益咨询', path: '/counseling', permissions: ['counseling.service.view'], icon: ChatDotRound }, { label: '活动管理', path: '/activities', permissions: ['activity.view'], icon: Calendar }, { label: '活动签到', path: '/activities/checkin', permissions: ['activity.checkin'], icon: Calendar }, + { label: 'Banner管理', path: '/banner', permissions: ['banner.view'], icon: Picture }, { label: '内容管理', path: '/content', permissions: ['content.view'], icon: Reading }, { label: '善缘服务站', path: '/service-station', permissions: ['service_location.view'], icon: Location }, + { label: '服务预约', path: '/service-appointment', permissions: ['service_appointment.view'], icon: House }, + { label: '专项服务', path: '/service-program', permissions: ['service_program.manage'], icon: Tickets }, { label: '举报风控', path: '/risk/reports', permissions: ['risk.report.view'], icon: Warning }, + { label: '申诉管理', path: '/appeals', permissions: ['risk.report.process'], icon: Memo }, { label: '数据统计', path: '/analytics', permissions: ['analytics.view'], icon: DataAnalysis }, { label: '组织人员', path: '/organizations', permissions: ['organization.manage'], icon: UserFilled }, + { label: '操作日志', path: '/audit', permissions: ['user.view'], icon: Clock }, { label: '系统设置', path: '/operators', permissions: ['permission.manage'], icon: Setting }, ] @@ -195,10 +206,17 @@ const currentTitle = computed(() => (route.meta?.title as string) || '页面') const operator = computed(() => authStore.operator) const permissions = computed(() => authStore.permissions || []) const currentRoleName = computed(() => { - if (permissions.value.includes('permission.manage')) return '平台管理员' - if (permissions.value.includes('counseling.service.view')) return '公益咨询人员' - if (permissions.value.includes('service_appointment.view')) return '服务站运营人员' - if (permissions.value.includes('review.view')) return '资料审核人员' + // 按权限从高到低判定,覆盖七类后台角色(平台管理员 / 咨询管理员 / 内容编辑员 / + // 风控运营 / 公益咨询 / 服务站运营 / 资料审核 / 公益红娘)。 + const perms = permissions.value + if (perms.includes('permission.manage')) return '平台管理员' + if (perms.includes('counseling.service.assign') || perms.includes('counseling.note.view')) return '咨询管理员' + if (perms.includes('content.publish')) return '内容编辑员' + if (perms.includes('risk.report.process')) return '风控运营人员' + if (perms.includes('counseling.service.view')) return '公益咨询人员' + if (perms.includes('service_appointment.view')) return '服务站运营人员' + if (perms.includes('review.view')) return '资料审核人员' + if (perms.includes('matchmaker.service.view')) return '公益红娘' return '运营人员' }) const visibleNavigation = computed(() => navigation.filter((item) => item.permissions.every(hasPerm))) diff --git a/admin-web/src/modules/banner/BannerManagementView.vue b/admin-web/src/modules/banner/BannerManagementView.vue index 5d01b45..c45725a 100644 --- a/admin-web/src/modules/banner/BannerManagementView.vue +++ b/admin-web/src/modules/banner/BannerManagementView.vue @@ -7,31 +7,42 @@ 新建 Banner + - + + + + - + - + - + - + - + + diff --git a/admin-web/src/modules/service-program/ServiceProgramView.vue b/admin-web/src/modules/service-program/ServiceProgramView.vue index cf1ec3f..c2cba41 100644 --- a/admin-web/src/modules/service-program/ServiceProgramView.vue +++ b/admin-web/src/modules/service-program/ServiceProgramView.vue @@ -1,41 +1,96 @@