TanWenyan ac60d64775 feat(evaluation): 模块1.5(2/2) - 增强评查点分组列表页功能
功能变更:
1. 服务端筛选和分页
   - Loader函数使用增强的 getRuleGroups API
   - 支持名称、编码、状态筛选
   - 支持分页参数(page, pageSize)
   - 仅加载一级分组(pid: null)
   - 返回总数用于分页展示

2. 批量操作功能
   - 添加批量选择状态管理
   - 复选框列(全选/单选)
   - 批量启用按钮
   - 批量禁用按钮
   - 批量删除按钮
   - 显示选中数量提示
   - 操作后自动刷新列表

3. 用户体验优化
   - 仅对有编辑权限的用户显示批量操作
   - 批量按钮仅在有选中项时显示
   - 操作成功/失败的 Toast 提示
   - 删除前二次确认

技术实现:
- useState 管理选中ID列表
- 条件渲染批量操作按钮
- 类型安全的复选框列定义
- 防止事件冒泡(onClick stopPropagation)
- URL参数驱动的服务端筛选

安全性:
- 权限检查(hasEditPermission)
- 批量删除前确认
- 操作失败详细提示

验收标准:
 Loader使用服务端筛选和分页
 表格支持复选框多选
 批量操作按钮显示/隐藏正确
 批量启用/禁用功能正常
 批量删除功能正常
 无TypeScript类型错误
 仅有编辑权限的用户可见批量操作

符合实施计划:
- 阶段 1.5(2/2):rule-groups._index.tsx 更新 
- 模块 1.5 完成 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 12:43:01 +08:00
2025-08-01 16:05:41 +08:00
2025-11-24 18:41:14 +08:00
2025-11-05 21:05:44 +08:00
2025-06-04 11:18:52 +08:00
2025-03-24 15:12:24 +08:00
2025-10-30 09:50:14 +08:00
2025-10-30 09:50:14 +08:00
2025-11-24 18:41:14 +08:00
2025-11-24 18:41:14 +08:00
2025-03-24 15:12:24 +08:00
2025-11-24 18:41:14 +08:00

智慧法务系统 - 权限认证系统

认证系统概述

本系统实现了一个简单的基于角色的权限认证系统,支持以下功能:

  1. 用户可以以不同角色登录系统:

    • common:普通用户,只能访问基本功能
    • developer:开发者,可以访问所有功能,包括系统设置
  2. 权限控制:

    • 根据用户角色显示或隐藏菜单项
    • 防止通过URL直接访问未授权页面

技术实现

权限系统基于以下核心技术实现:

  1. Cookie会话存储:使用Remix的createCookieSessionStorage创建基于Cookie的会话存储
  2. 角色权限控制:将用户角色存储在会话中,并在全局loader中检查访问权限
  3. 界面适配:根据用户角色动态过滤显示菜单项

使用方法

登录系统

  1. 访问登录页面(/login)
  2. 输入用户名和密码
  3. 选择用户角色:
    • 普通用户:只能看到基础功能菜单
    • 开发者:可以看到所有菜单,包括系统设置

权限验证

系统会自动执行以下权限验证:

  1. 未登录用户会被重定向到登录页面
  2. 普通用户试图访问系统设置等受限页面会被重定向到首页
  3. 侧边栏菜单会根据用户角色动态显示

关键文件

  • app/root.tsx:实现会话管理和全局权限检查
  • app/components/layout/Sidebar.tsx:根据用户角色显示不同菜单
  • app/routes/login.tsx:提供角色选择功能

进一步优化建议

  1. 实现真实的用户认证系统,如接入数据库验证用户
  2. 添加更细粒度的权限控制
  3. 实现用户角色和权限的管理界面
  4. 使用环境变量管理会话密钥等敏感信息

Welcome to Remix!

Development

Run the dev server:

npm run dev

Deployment

First, build your app for production:

npm run build

Then run the app in production mode:

npm start

Now you'll need to pick a host to deploy it to.

DIY

If you're familiar with deploying Node applications, the built-in Remix app server is production-ready.

Make sure to deploy the output of npm run build

  • build/server
  • build/client

Styling

This template comes with Tailwind CSS already configured for a simple default starting experience. You can use whatever css framework you prefer. See the Vite docs on css for more information.

S
Description
No description provided
Readme 39 MiB
Languages
JavaScript 72.4%
TypeScript 23.8%
CSS 3.6%