feat: 整体废弃 leader 业务角色
leader 角色 (项目负责人) 业务上已不再使用, 整体下线。仅保留 sys_dept.leader 字段 (部门负责人, RuoYi 标准字段, 与角色无关)。 前端清理 (15 文件): - 路由: 删除 /leader 块 + 4 子路由 (router L56-61) - 菜单: 删除 AdminLayout 中 leader 菜单 (5 行) - 视图: 删除整个 views/leader/ 目录 (Home/Projects/Meetings/Account.vue 共 ~32KB) - Login.vue: 删默认 role='leader', 删 leader 角色选项, 删 autoRole 的 leader 分支, 删 roleHome 的 leader 项 - PortalShell.vue + 5 个 portal/* (Home/Publicity/ArticleView/PublicityDetail/SpecialPlanDetail): admin fallback '/leader/home' → '/admin/workbench', 删 leader 项, 同步更新 admin 入口 (/leader/home → /admin/workbench) - 5 处 ROLE_LABEL 字典删 leader: '项目负责人' (AdminLayout/Account/Roles/Users/Workbench) - Roles.vue 注释同步 后端清理 (7 文件): - BizDashboardController: 删除 /leader dashboard 端点 (整个方法) - BizPersonController: BUSINESS_MAIN_ROLES 删 leader - BizExecutorController/BizProjectPlanController/ISysUserService/SysUserExtendVo/SysUser: 注释同步删 leader 测试: - test_20rounds.py: 删 leader 路由断言 + view_map + role_home + role_view 共 5 处 未做 / 后续: - DB: sys_user.role_type='leader' 现存账号是测试账号, 用户确认可忽略, 后续手动清理 - 文档: proto/html/leader.html 等原型文件保留 (历史) - _self/*.md 笔记提及 leader 不动 (笔记)
This commit is contained in:
@@ -189,7 +189,7 @@ const router = useRouter()
|
||||
const route = useRoute()
|
||||
const userStore = useUserStore()
|
||||
|
||||
const form = reactive({ username: '', password: '', code: '', uuid: '', role: 'leader' })
|
||||
const form = reactive({ username: '', password: '', code: '', uuid: '', role: 'admin' })
|
||||
const captchaImg = ref('')
|
||||
const captchaEnabled = ref(true)
|
||||
const loading = ref(false)
|
||||
@@ -210,7 +210,6 @@ const registerTypes = [
|
||||
|
||||
const userTypes = [
|
||||
{ value: 'admin', name: '系统管理员', desc: '系统配置、用户管理、权限控制' },
|
||||
{ value: 'leader', name: '学会领导', desc: '查看全局数据、审批重要事项' },
|
||||
{ value: 'manager', name: '项目经理', desc: '项目管理、方案审核、过程监督' },
|
||||
{ value: 'doctor', name: '评审专家', desc: '项目评审、评分反馈、查看任务' },
|
||||
{ value: 'executor', name: '执行单位', desc: '会议组织、人员安排、劳务结算' },
|
||||
@@ -286,7 +285,7 @@ async function afterLogin(token, displayName, fallbackRole) {
|
||||
})
|
||||
}
|
||||
ElMessage.success(`欢迎,${displayName}(${userTypes.find(u => u.value === role)?.name || role})`)
|
||||
// 没拿到角色就跳回登录页 (之前 fallback 到 /leader/home 会让子账号误入 leader)
|
||||
// 没拿到角色就跳回登录页
|
||||
if (!role || !roleHome[role]) return router.replace({ name: 'login' })
|
||||
// 带 redirect 回跳 (401/守卫带过来的原页面), 否则跳角色首页
|
||||
const redirect = route.query.redirect
|
||||
@@ -356,18 +355,16 @@ async function onSmsLoginSubmit() {
|
||||
function autoRole(username) {
|
||||
const u = (username || '').toLowerCase()
|
||||
if (u === 'admin' || u === 'ry') return 'admin'
|
||||
if (u.startsWith('leader')) return 'leader'
|
||||
if (u.startsWith('manager')) return 'manager'
|
||||
if (u.startsWith('doctor')) return 'doctor'
|
||||
if (u.startsWith('executor')) return 'executor'
|
||||
if (u.startsWith('sponsor')) return 'sponsor'
|
||||
// 不匹配返回空串, 让 /getInfo 决定 (避免名字不规范时误进 leader)
|
||||
// 不匹配返回空串, 让 /getInfo 决定
|
||||
return ''
|
||||
}
|
||||
|
||||
const roleHome = {
|
||||
admin: '/admin/workbench',
|
||||
leader: '/leader/home',
|
||||
manager: '/manager/workbench',
|
||||
doctor: '/doctor/home',
|
||||
executor: '/executor/meetings',
|
||||
|
||||
Reference in New Issue
Block a user