Skip to content

chungbinb/SenSen-Work-Weekly-Report

Repository files navigation

森森信息部工作周报表

由于公司老是要求写周报,然后表格里面写也比较烦,就想到使用AI来生成一个漂亮的周报。 完全使用AI生成的一个基于纯PHP + HTML + CSS3 + JavaScript的工作周报表管理系统,无需外部依赖,支持日历显示、报表填写和PDF导出功能。

🌐 在线预览

预览地址: job.i-522.com

测试账号:

  • 用户名:12345
  • 密码:123456

💡 提示: 这是一个演示环境,您可以使用测试账号体验完整的功能,包括双日历系统、周报管理、数据导出等所有特性。

功能特性

  • 📅 日历视图:现代化月份日历,左侧显示ISO标准周数(今年第几周),上下布局,一二三四五六日布局
  • 🏮 中国农历:支持中国农历显示、传统节日识别、生肖年份、干支纪年
  • 🇹🇭 泰国佛历:支持泰国佛历显示、佛教节日识别、泰文日期格式
  • 🔄 双日历系统:可在中国农历和泰国佛历之间自由切换
  • 📝 报表填写:可手动填写姓名、工作内容、计划、问题和建议,自动显示周范围
  • 📊 CSV导出:将所有周报数据导出为CSV表格文件
  • 📄 PDF导出:生成专业的PDF格式周报汇总,报告人显示在日期右侧,支持打印和保存
  • 👥 用户系统:完整的用户注册、登录、权限管理系统
  • 💾 数据存储:支持SQLite数据库存储,支持多用户数据隔离
  • 🎨 现代界面:纯CSS3实现的响应式设计
  • 🚀 零依赖:不需要Composer或任何外部库
  • 📆 智能周数:自动计算和显示ISO周数及周日期范围
  • 🎉 节日识别:自动识别中国传统节日和泰国重要节日

页面截图

技术架构

前端

  • HTML5:语义化标签和现代Web特性
  • CSS3
    • Grid布局实现响应式设计
    • 渐变背景和现代视觉效果
    • 平滑动画和过渡效果
    • 自适应移动端界面
  • JavaScript
    • 原生ES6+语法
    • Fetch API进行异步数据交互
    • 动态日历渲染
    • 客户端CSV导出

后端

  • PHP 7.4+:纯PHP实现,无外部依赖
  • RESTful API:统一的API接口设计
  • JSON存储:轻量级文件数据库

环境要求

  • PHP 7.4 或更高版本
  • 支持PHP的Web服务器(Apache、Nginx、或PHP内置服务器)
  • 现代浏览器(支持ES6+)

生产环境部署

📋 完整安装指南: 请查看 INSTALLATION_GUIDE.md 获取详细的安装说明和默认账号信息。

  1. 将所有文件上传到Web服务器目录
  2. 确保Web服务器对项目目录有读写权限
  3. 访问 index.php 开始使用

使用说明

1. 查看日历

  • 主页显示当前月份的日历,使用ISO 8601标准周数
  • 左侧显示对应的周数(今年第几周)
  • 当前周以绿色高亮显示,并有脉冲动画效果
  • 今天的日期以黄色边框突出显示
  • 有报表数据的日期显示绿色背景和📝图标
  • 可以点击月份导航按钮切换月份
  • 点击"📅 回到今天"快速回到当前月份和日期

2. 双日历系统

  • 日历类型选择:在日历上方可选择"🏮 中国农历"或"🇹🇭 泰国佛历"
  • 中国农历模式
    • 显示农历日期(如:七月廿九、八月初一)
    • 识别传统节日(春节、中秋节、端午节等)
    • 显示生肖年份和干支纪年
    • 农历初一以蓝色突出显示月份
  • 泰国佛历模式
    • 显示泰文日期格式(如:29 ส.ค.、1 ก.ย.)
    • 识别泰国节日(泼水节、父亲节、国王生日等)
    • 识别佛教节日(万佛节、卫塞节、水灯节等)
    • 佛历年份显示(พ.ศ. + 年份)
  • 节日标识
    • "节"字红色标识:固定节日
    • "农"字橙色标识:农历节日
    • "佛"字橙色标识:佛教节日

3. 统计信息

  • 页面顶部显示实时统计:总周报数量、本月周报、本周周报
  • 切换月份时自动更新统计信息

4. 填写周报

  • 点击日历中的任意日期自动选择
  • 右侧表单会自动设置选中的日期
  • 显示周信息:第XX周 YYYY/MM/DD-YYYY/MM/DD格式
  • 例如:第34周 2025/08/18-2025/08/24
  • 支持手动修改日期输入框,自动更新周信息
  • 填写以下内容:
    • 本周工作内容
    • 下周工作计划
    • 遇到的问题
    • 建议与改进
  • 点击"💾 保存周报"按钮保存

3. 编辑已有周报

  • 点击有报表数据的日期(绿色背景)
  • 表单会自动加载该日期的报表数据
  • 修改后重新保存即可

4. 导出数据

  • 点击"📊 导出CSV"按钮导出CSV格式的表格文件
  • 点击"📄 导出PDF"按钮生成专业的PDF格式报告
  • CSV文件可以直接在Excel中打开进行进一步分析
  • PDF报告包含完整的格式化内容,适合打印和分享
  • 文件名格式:工作周报表_年月日.csv工作周报表_年月日.pdf

文件结构

工作周报表/
├── index.php               # 系统首页
├── main.php                # 主应用界面(用户登录后)
├── login.php               # 用户登录页面
├── user_management.php     # 用户管理页面(管理员)
├── api.php                 # 后端API接口
├── auth.php                # 用户认证类
├── config.php              # 数据库配置文件
├── export.php              # CSV导出功能
├── pdf_export.php          # PDF导出功能
├── lunar.js                # 中国农历转换库
├── thai.js                 # 泰国佛历转换库
├── install.php             # 系统安装页面
├── upgrade_db.php          # 数据库升级脚本
├── fix_permissions.sh      # 权限修复脚本
├── reports.json            # 报表数据存储文件(自动生成)
├── reports.db              # SQLite数据库文件(自动生成)
├── README.md               # 说明文档
├── DEPLOYMENT.md           # 部署说明
├── LUNAR_UPDATE.md         # 农历功能更新说明
├── THAI_CALENDAR_UPDATE.md # 泰国佛历功能说明
├── USER_MANAGEMENT_GUIDE.md # 用户管理指南
└── test_*.html             # 功能测试页面
    ├── test_lunar.html     # 农历功能测试
    ├── test_thai.html      # 泰国佛历测试
    └── test_pdf_export.html # PDF导出测试

API接口说明

获取所有报告

GET /api.php?action=get_all_reports

获取单个报告

GET /api.php?action=get_report&date=2023-12-25

保存报告

POST /api.php
{
    "action": "save_report",
    "selected_date": "2023-12-25",
    "work_content": "...",
    "next_plan": "...",
    "issues": "...",
    "suggestions": "..."
}

删除报告

POST /api.php
{
    "action": "delete_report",
    "date": "2023-12-25"
}

功能亮点

CSS3特性

  • Grid布局:垂直布局,日历在上,表单在下
  • 渐变背景:现代视觉效果
  • 过渡动画:平滑的交互体验
  • 响应式设计:完美适配各种屏幕尺寸

JavaScript特性

  • 模块化设计:清晰的函数职责分离
  • 异步处理:使用Fetch API进行数据交互
  • 动态渲染:实时更新日历和表单状态
  • 客户端导出:无需服务器端库支持CSV导出

数据存储

  • JSON格式:人类可读的数据格式
  • 文件锁定:防止并发写入冲突
  • 数据验证:确保数据完整性

自定义开发

修改样式

编辑 index.php 中的 <style> 部分来自定义界面样式。

添加字段

  1. index.php 的表单中添加新的输入字段
  2. 修改 api.php 中的保存逻辑处理新字段
  3. 更新 export.php 以包含新字段的导出

数据库支持

当前使用JSON文件存储数据,如需使用数据库:

  1. 修改 config.php 添加数据库配置
  2. 更新 api.php 中的数据操作函数
  3. 创建相应的数据库表结构

添加更多导出格式

可以扩展 export.php 支持更多格式:

  • Excel (.xlsx)
  • PDF
  • Word (.docx)

浏览器兼容性

  • Chrome 60+
  • Firefox 55+
  • Safari 11+
  • Edge 79+

安全考虑

  • 输入数据转义防止XSS攻击
  • 文件权限控制
  • 日期格式验证
  • JSON数据验证

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来改进这个项目。

更新日志

v4.1 (2025-10-13) - PDF导出分页优化

  • ✅ PDF导出页面改为倒序显示(最新的在前面)
  • ✅ 实现分页功能:默认每页显示5条记录
  • ✅ 添加完整的分页导航控件
    • 上一页/下一页按钮
    • 页码快速跳转
    • 首页/尾页快速访问
    • 当前页高亮显示
  • ✅ 分页信息显示(当前页/总页数)
  • ✅ 打印时自动隐藏分页控件
  • ✅ 优化用户浏览体验,便于查看和管理大量周报数据

v4.0 - 双日历系统

  • ✅ 新增泰国佛历支持(佛历年份、泰文日期格式)
  • ✅ 实现双日历系统:中国农历 + 泰国佛历
  • ✅ 泰国节日识别:固定节日和佛教节日
  • ✅ 日历类型切换功能
  • ✅ 清理过时的测试和调试文件

v3.0 - 用户系统和农历功能版本

  • ✅ 完整的用户权限管理系统
  • ✅ SQLite数据库支持,多用户数据隔离
  • ✅ 用户注册、登录、密码修改功能
  • ✅ 管理员用户管理界面
  • ✅ 完整农历转换系统(1900-2100年)
  • ✅ 中国传统节日识别和显示
  • ✅ 生肖年份和干支纪年计算
  • ✅ 农历日期优化显示
  • ✅ 节日图标和动画效果

v2.3

  • ✅ 新增PDF导出功能,生成专业格式的报告
  • ✅ 调整日历布局:周日移至周六右侧(周一到周日排列)
  • ✅ 优化导出功能用户体验
  • ✅ 改进报告显示格式和打印样式

v2.2

  • ✅ 实现标准ISO 8601周数计算
  • ✅ 添加当前周和今天的视觉高亮
  • ✅ 新增"回到今天"快速导航功能
  • ✅ 添加周报统计信息显示(总数/本月/本周)
  • ✅ 优化周范围计算和显示格式
  • ✅ 改进用户交互体验

v2.1

  • 调整页面布局:日历在上方,周报表单在下方
  • 优化垂直空间利用
  • 移除演示版,专注完整版功能
  • 改进响应式设计

v2.0

  • 移除所有外部依赖
  • 使用纯HTML+CSS3+JavaScript实现前端
  • PHP仅作为后端API
  • 客户端CSV导出
  • 现代化界面设计

v1.0

  • 基础版本
  • 依赖Bootstrap和PhpSpreadsheet

特色功能详解

🏮 中国农历系统

  • 准确转换:支持1900-2100年的公历农历互转
  • 传统节日:春节、元宵节、端午节、中秋节、重阳节等
  • 文化元素:生肖年份、干支纪年、二十四节气
  • 显示优化:农历初一显示月份,节日优先显示

🇹🇭 泰国佛历系统

  • 佛历转换:西元年 + 543 = 佛历年
  • 泰文格式:完整的泰文月份、星期、数字显示
  • 固定节日:新年、泼水节、国王生日、父亲节等
  • 佛教节日:万佛节、卫塞节、水灯节、入夏安居节等
  • 文化特色:符合泰国官方历法使用习惯

👥 用户管理系统

  • 安全认证:密码加密存储,会话管理
  • 权限控制:普通用户和管理员权限分离
  • 数据隔离:每个用户只能看到自己的周报数据
  • 用户管理:管理员可以添加、删除、重置用户密码

📊 数据导出功能

  • CSV导出:兼容Excel,支持中文编码
  • PDF汇总:专业格式,支持批量导出
  • 单独PDF:每个周报可单独导出,文件名规范化
  • 打印优化:适合A4纸张打印的版式设计

About

森森工作周报表

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors