JMI-OPENATOMJMI-OPENATOM
首页
快速开始
  • 架构概览
  • 项目结构
  • 认证与权限
  • 数据库迁移
  • 配置说明
  • 开发规范
  • 架构概览
  • 项目结构
  • 路由与权限
  • API 请求
  • 组件库
  • UniApp 小程序
  • Docker 部署
  • CI/CD
  • Nginx 反向代理
  • 环境变量
  • QQ 机器人
  • 实验室管理系统
  • API 权限清单
  • 数据库表结构
  • 常见问题
首页
快速开始
  • 架构概览
  • 项目结构
  • 认证与权限
  • 数据库迁移
  • 配置说明
  • 开发规范
  • 架构概览
  • 项目结构
  • 路由与权限
  • API 请求
  • 组件库
  • UniApp 小程序
  • Docker 部署
  • CI/CD
  • Nginx 反向代理
  • 环境变量
  • QQ 机器人
  • 实验室管理系统
  • API 权限清单
  • 数据库表结构
  • 常见问题
  • 前端开发

    • 前端架构概览
    • 前端项目结构
    • 路由与权限
    • API 请求层
    • 组件库
    • UniApp 微信小程序

前端项目结构

目录结构

前端 PC 端代码位于 frontend/web_pc/ 目录下:

frontend/web_pc/
├── src/
│   ├── main.ts                     # 应用入口
│   ├── App.vue                     # 根组件
│   ├── api/                        # API 请求层
│   │   ├── request.ts              #   Axios 实例与拦截器
│   │   └── index.ts                #   API 方法定义
│   ├── router/
│   │   └── index.ts                #   路由配置(含权限守卫)
│   ├── layouts/                    # 布局组件
│   │   ├── AdminLayout.vue         #   管理后台布局
│   │   └── SiteLayout.vue          #   前台布局
│   ├── views/                      # 页面视图
│   │   ├── AuthCallback.vue        #   OIDC 认证回调
│   │   ├── admin/                  #   管理后台页面(35 个)
│   │   └── site/                   #   前台展示页面(30 个)
│   ├── components/                 # 公共组件
│   │   ├── admin/                  #   管理后台组件
│   │   ├── common/                 #   通用组件
│   │   ├── site/                   #   前台组件
│   │   │   ├── home/               #   首页组件
│   │   │   ├── shell/              #   布局壳组件
│   │   │   ├── workspace/          #   工作台组件
│   │   │   └── blog/               #   博客组件
│   │   └── ui/                     #   动画 UI 组件
│   ├── composables/                # 组合式函数
│   ├── constants/                  # 常量定义
│   ├── plugins/                    # 插件注册
│   ├── styles/                     # 全局样式
│   ├── utils/                      # 工具函数
│   ├── lib/                        # 第三方库封装
│   └── vendor/                     # 第三方代码
├── public/                         # 静态资源
├── package.json
├── vite.config.ts                  # Vite 构建配置
├── tsconfig.json                   # TypeScript 配置
└── Dockerfile                      # 前端容器化

管理后台页面(admin/)

页面文件说明
仪表盘Dashboard.vue数据概览
用户管理Users.vue用户 CRUD、角色分配
社团管理Clubs.vue社团 CRUD
岗位管理Positions.vue岗位 CRUD
成员管理Memberships.vue成员关系管理
招新计划RecruitmentCampaigns.vue招新计划管理
入会申请Applications.vue申请审批
面试管理Interviews.vue面试安排
活动管理Activities.vue活动 CRUD
签到管理CheckIns.vue签到会话管理
请假管理Leaves.vue请假审批
获奖管理Awards.vue获奖记录
通知管理Notifications.vue通知推送
文书管理OfficeDocuments.vue文书生成与导出
校历管理SchoolCalendar.vue校历设置
规章制度Regulations.vue规章制度管理
角色管理Roles.vue角色与权限分配
表单管理SiteForms.vue信息收集表单
表单提交FormSubmissions.vue表单数据查看
抽奖管理Lotteries.vue抽奖活动
投票管理Votes.vue投票活动
积分管理Points.vue积分系统
博客管理Blogs.vue博客审核
图床管理Images.vue图床资源
应用展示ShowcaseApps.vue展示应用管理
数据开放DataOpen.vue数据开放申请
OAuth 客户端OauthClients.vueOAuth 应用管理
QQ 群管理BotGroups.vue机器人群管理
校友分组AlumniGroups.vue往届成员分组
往届管理AlumniManagers.vue往届管理人员
AI 活动自动化AiActivityAutomation.vueAI 活动管理
日志查看Logs.vue操作/登录日志
二维码中心QrCenter.vue二维码生成
登录页Login.vue管理后台登录

前台展示页面(site/)

页面文件说明
首页Home.vue社团首页展示
社团展示Clubs.vue社团列表
招新Recruitment.vue招新信息展示
报名表单ApplicationForm.vue入会申请填写
申请详情AppDetail.vue申请查看
申请进度ApplicationProgress.vue审批进度
活动Activities.vue活动列表
活动详情ActivityDetail.vue活动详情
博客Blog.vue博客列表
博客详情BlogDetail.vue博客文章
我的博客MyBlog.vue个人博客管理
个人中心Profile.vue个人信息
通知Notifications.vue通知列表
请假Leaves.vue请假申请
积分Points.vue积分商城
投票Votes.vue投票参与
抽奖LotteryScreen.vue抽奖大屏
签到CheckInScan.vue扫码签到
二维码QrScreen.vue二维码展示
校历SchoolCalendar.vue校历查看
规章制度Regulations.vue规章查看
晚自习EveningStudy.vue晚自习签到
图床ImageHosting.vue图床服务
开放平台OpenPlatform.vue数据开放
信息收集SiteForm.vue表单填写
校友管理AlumniManagers.vue往届展示

动画 UI 组件(components/ui/)

前台使用了一系列自定义动画组件,参考 Apple 风格设计:

组件说明
AuroraBackground极光背景动画
AppleCardCarouselApple 风格卡片轮播
FlipCard翻转卡片
Globe3D 地球组件
Marquee跑马灯滚动
SmoothCursor平滑光标跟随
PatternBackground图案背景
InteractiveGridPattern交互网格
RadiantText发光文字
LiquidLogo液态 Logo 动画
Tetris俄罗斯方块装饰
EncryptedText加密文字效果

工具函数(utils/)

文件说明
auth.tsToken 管理(存储、清除、获取)
oidc.tsOIDC 认证 URL 构建
permission.ts权限判断(hasAnyPermission、hasAdminAccess)
format.ts日期、数字格式化
markdown.tsMarkdown 渲染
qr.ts二维码生成

组合式函数(composables/)

文件说明
useAppStatus.ts应用全局状态(请求计数、加载状态)
useRouteTransition.ts路由过渡动画
useTheme.ts主题切换(明/暗)
useSiteMotion.ts前台动画控制
Prev
前端架构概览
Next
路由与权限