# 绩效评价在线填报系统 **Repository Path**: diazepam/jxpjzxtb ## Basic Information - **Project Name**: 绩效评价在线填报系统 - **Description**: 省级绩效评价在线填报系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-03 - **Last Updated**: 2026-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 2025年度省级绩效评价在线填报系统 基于 React + TypeScript + Supabase 构建的现代化绩效评价管理系统。 ## 系统概述 这是一个专为山东省卫生健康委员会设计的绩效评价在线填报系统,用于管理2025年度国家基本公共卫生服务项目的绩效评价工作。 ### 主要功能 - **用户认证与权限管理**:支持管理员、评价员、观察员三种角色 - **评价指标体系**:完整的指标分类和管理 - **表单填报**:支持市级、县级、机构级评价表填报 - **数据录入**:电话调查和档案抽查数据录入 - **质控管理**:数据审核和问题跟踪 - **报告生成**:分市报告和问题汇总报告 - **用户管理**:用户创建、权限分配、状态管理 - **系统测试**:完整的系统功能检测 ## 技术栈 - **前端**:React 19 + TypeScript + Vite - **UI框架**:Radix UI + Tailwind CSS + shadcn/ui - **后端**:Supabase (PostgreSQL + 实时API) - **路由**:React Router DOM - **表单**:React Hook Form + Zod - **图表**:Recharts ## 快速开始 ### 环境要求 - Node.js 18+ - npm 或 yarn - Supabase CLI (可选,用于本地开发) ### 安装依赖 ```bash npm install ``` ### 启动开发服务器 ```bash npm run dev ``` 访问 http://localhost:5173 ### 测试账号 系统提供以下测试账号: | 角色 | 用户名 | 密码 | 权限范围 | |------|--------|------|----------| | 管理员 | admin | admin123 | 全系统管理 | | 评价员 | evaluator1 | eval123 | 济南市数据 | | 评价员 | evaluator2 | eval123 | 青岛市数据 | | 评价员 | evaluator3 | eval123 | 淄博市数据 | | 观察员 | viewer1 | view123 | 全省数据查看 | ## 系统架构 ### 数据库设计 - `evaluation_targets`:评价对象表(地市、区县、机构) - `users`:用户表 - `form_data`:填报数据表 - `issues`:问题记录表 - `tasks`:任务表 - `settings`:系统设置表 - `audit_logs`:审核日志表 - `phone_surveys`:电话调查表 - `record_checks`:档案抽查表 ### 权限系统 - **管理员**:全系统管理权限 - **评价员**:只能查看和编辑负责地市的数据 - **观察员**:只能查看全省数据,无编辑权限 ### 数据安全 - 基于 Supabase RLS (Row Level Security) 的数据访问控制 - 用户会话管理和权限验证 - 数据操作审计日志 ## 开发指南 ### 项目结构 ``` src/ ├── components/ # 可复用组件 │ ├── ui/ # UI基础组件 │ └── Layout.tsx # 布局组件 ├── contexts/ # React Context ├── data/ # 静态数据 ├── hooks/ # 自定义Hooks ├── lib/ # 工具库 ├── pages/ # 页面组件 ├── services/ # API服务 └── types/ # TypeScript类型定义 ``` ### 添加新功能 1. 在 `src/types/index.ts` 中定义数据类型 2. 在 `src/services/` 中创建API服务 3. 在 `src/pages/` 中创建页面组件 4. 在 `src/components/Layout.tsx` 中添加导航菜单 ### 数据库迁移 如果需要修改数据库结构: 1. 编辑 `supabase/migrations/` 中的SQL文件 2. 运行 `npx supabase db reset` 重置数据库 ## 部署 ### 构建生产版本 ```bash npm run build ``` ### 环境变量 创建 `.env.local` 文件: ```env VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key ``` ## 系统特性 ### 响应式设计 - 支持桌面端、平板和移动端 - 自适应布局和交互 ### 实时数据 - 基于 Supabase 的实时数据同步 - 多用户协作支持 ### 数据导出 - 支持评价报告生成 - 问题汇总和统计分析 ### 系统监控 - 内置系统测试功能 - 服务状态监控 - 错误日志记录 ## 常见问题 ### 登录问题 如果无法登录,请检查: 1. 用户名和密码是否正确 2. Supabase 连接是否正常 3. 用户状态是否为"正常" ### 数据权限问题 评价员只能查看负责地市的数据,如需查看其他地市数据,请联系管理员调整权限。 ### 性能优化 - 使用 React.memo 优化组件渲染 - 实现虚拟滚动处理大量数据 - 使用 Supabase 的分页查询 ## 技术支持 如有技术问题,请联系开发团队或查看系统测试页面进行故障排查。 ## 许可证 本项目仅供山东省卫生健康委员会内部使用。