Skip to content

TogetherForStudy/jxust-yqlx-weapp

Repository files navigation

江理一起来学微信小程序

这是一个基于Taro的微信小程序项目,为江西理工大学学生提供服务,欢迎各位开发者一起为小程序设计功能,贡献代码!

🚀 亮点 | V1.4.0

📚 核心功能

1. 智能课程表系统

  • 离线优先设计:课表数据本地缓存,支持离线查看
  • 版本检测机制:基于 last_modified 时间戳的增量更新,减少流量消耗
  • 灵活编辑:支持单个课程格子的新增、编辑和删除
  • 多周切换:手势滑动切换周次,快速跳转到任意周
  • 班级绑定:一键绑定班级,自动同步课表数据
  • 周末显示控制:可选择显示/隐藏周末课程
  • 多学期支持:多学期切换、非当前学期提醒

2. 资料库系统

  • 分类浏览:支持多级分类导航,面包屑路径清晰
  • 智能搜索
    • 搜索历史记录
    • 热搜词推荐
    • 实时搜索建议
  • 资料热榜
    • 下载热榜(7天/30天)
    • 评分热榜(7天/30天)
  • 资料评分:用户可对资料进行评分,帮助他人选择优质资源
  • 下载追踪:记录下载行为,生成热门资料统计

3. 教师评价系统

  • 匿名评价:保护学生隐私,鼓励真实反馈
  • 多维度评价
    • 推荐度统计
    • 评价内容展示
    • 校区信息标注
  • 智能搜索:快速查找教师,查看历史评价
  • 校区必填校验:评价需选择校区,确保信息准确

4. 学业信息聚合

发现页聚合多个学业信息专区,帮助学生打破信息差:

  • 转专业:转专业通知与公告
  • 竞赛:学科竞赛信息汇总
  • 考级考证:考级考证相关资讯
  • 交换生:交换生项目信息
  • 组织:校园组织介绍(含详情页)

5. 期末复习系统

  • 错题本与跳题:支持错题回顾与跳题作答
  • 自动提交:子题全部作答后自动提交父题
  • 项目筛选:按项目数据校验与筛选

6. 通知公告系统

  • 分类管理:支持多种通知分类
  • 置顶功能:重要通知可置顶显示
  • 转换日程:通知可转换为个人日程提醒

7. 其他实用功能

  • 番茄钟:专注计时与排行榜(首页卡片)
  • 绩点计算器:快速计算 GPA,支持备份
  • 挂科率查询:搜索课程挂科率数据,辅助选课决策
  • 倒数日:首页倒数日卡片
  • 学习清单:待完成/已完成学习任务管理
  • 今日课表:首页当日课程提醒,同时段多门课程折叠展示
  • 校历查询:查看学期重要时间节点
  • 英雄榜:展示贡献者
  • 群聊推荐:推荐相关学习群聊
  • 主题模式:跟随系统深色/浅色主题

🔧 技术亮点

1. 主题系统(跟随系统)

  • CSS 变量令牌:通过 --theme-* 变量统一管理页面、表面、文字、边框、品牌色等语义色
  • 原生主题联动:同步设置导航栏、标签栏、页面背景色,原生窗口底色与内容层主题永远一致
  • 防闪烁:主题始终跟随系统,配合 page-meta 首帧定色,从根本上避免切换页面时闪烁上一套主题色

2. 请求幂等性保护

  • 自动UUID生成:使用微信小程序加密级随机数生成器生成 UUID v4
  • 智能幂等性Key
    • 基于请求内容(method + url + data)生成唯一标识
    • 防止快速重复点击导致的重复提交
    • 1分钟保护期,2分钟自动清理
  • 请求追踪:每个请求自动添加 X-Request-ID 用于日志追踪
  • 详细文档:完整的幂等性实现说明(见 docs/idempotency_implementation.md

3. 双Token认证

  • 双Token机制:access token + refresh token,提升安全性
  • 拦截器自动续期:token 过期自动刷新,无感续期
  • 重复调用防护expireToken 增加重复调用防护与异常捕获

4. 状态管理

  • Pinia Store
    • authStore:用户认证状态(双Token)
    • scheduleStore:课表数据管理
    • notificationStore:通知数据管理
    • reviewsStore:评价数据管理
    • studyTasksStore:学习任务管理
    • countdownStore:倒数日管理
    • themeStore:主题(跟随系统)管理

5. API设计

  • 按功能模块拆分src/api/ 下按功能拆分为独立模块(authcourseTablematerialnotificationreviewpomodorogpapointsorganization 等),index.js 统一聚合导出
  • 拦截器机制
    • 请求拦截:自动添加 token、幂等性Key等
    • 响应拦截:统一处理错误、token过期等
  • RESTful规范:遵循RESTful API设计规范
  • 统一错误处理:请求错误统一以 modal 提示,子页面不再过多处理
  • 静默模式:支持 silent 静默请求、URL 校验、循环引用保护

🎨 用户体验优化

1. 离线数据支持

  • 课表数据本地缓存,无网络也可查看
  • 资料搜索历史本地存储

2. 响应式设计

  • 适配不同屏幕尺寸
  • 流畅的动画过渡效果

3. 交互优化

  • 下拉刷新
  • 上拉加载更多
  • 骨架屏加载状态
  • Toast提示反馈
  • 防抖防重复点击

4. 性能优化

  • 分页加载,减少单次数据量
  • 请求缓存机制

🛠️ 技术栈

  • 框架: Taro 4.x
  • 前端: Vue 3 + Composition API
  • 状态管理: Pinia
  • 样式: Tailwind CSS v4 + 自定义主题令牌系统(跟随系统深色/浅色)
  • 平台: 微信小程序

📱 页面结构

src/
├── pages/
│   ├── home/               # 首页(今日课表、番茄钟、学习清单、倒数日、通知卡片)
│   ├── schedule/           # 课表功能
│   │   └── schedule-bind/     # 班级绑定
│   ├── discover/           # 发现页(学业信息聚合入口)
│   ├── materials/          # 资料库
│   │   └── detail/            # 资料详情
│   ├── final-review/       # 期末复习
│   │   └── detail/            # 复习详情
│   ├── points/             # 积分系统
│   ├── profile/            # 个人中心
│   ├── notifications/      # 通知公告
│   │   └── detail/            # 通知详情
│   ├── teacher-reviews/    # 教师评价
│   ├── major-transfer/     # 转专业
│   ├── competition/        # 竞赛
│   ├── qualification/      # 考级考证
│   ├── exchange/           # 交换生
│   ├── organization/       # 组织
│   │   └── detail/            # 组织详情
│   ├── failrate/           # 挂科率查询
│   ├── gpa-calculator/     # 绩点计算器
│   ├── calendar/           # 校历查询
│   ├── map/                # 校区地图
│   ├── address/            # 校区地址
│   ├── groupchat/          # 群聊推荐
│   ├── achieveprint/       # 成绩证明
│   ├── graduation/         # 毕业相关
│   ├── gotojw/             # 教务跳转
│   ├── hero/               # 英雄榜
│   ├── login/              # 登录页面
│   ├── webview/            # 网页浏览
│   └── terms-of-service/   # 服务条款
├── api/                    # API接口(按功能模块拆分)
├── stores/                 # Pinia状态管理
├── utils/                  # 工具函数
├── components/             # 通用组件
└── assets/                 # 静态资源
    └── icons/                 # 图标文件

🚀 开发指南

启动项目

# 安装依赖
npm install

# 微信小程序开发
npm run dev:weapp

构建项目

# 构建微信小程序
npm run build:weapp

🔧 配置说明

环境配置

  • 复制 .env.example.env.local,并设置 TARO_APP_API_BASE_URL
  • 学期配置由后端下发,本地经 src/utils/semesterCache.js 缓存,无需手动维护

贡献指南

  1. Fork 本仓库到你的 GitHub 账号下。
  2. 按照要求规范填写 commit message。
  3. 提交 Pull Request(PR)。
  4. 等待代码审核与合并。

About

江理一起来学微信小程序前端

Resources

License

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages