ft:readme文档重写,用例图plantuml编写上传
244
README.md
|
|
@ -1,102 +1,168 @@
|
|||
<p align="center">
|
||||
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
|
||||
</p>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.9</h1>
|
||||
<h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4>
|
||||
<p align="center">
|
||||
<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a>
|
||||
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.9-brightgreen.svg"></a>
|
||||
<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
|
||||
</p>
|
||||
# SAMS校园社团活动管理系统
|
||||
|
||||
## 平台简介
|
||||
[](https://gitee.com/y_project/RuoYi-Vue) [](https://spring.io/) [](https://vuejs.org/)[](https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE)
|
||||
|
||||
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
|
||||
>基于SpringBoot + Vue 的校园社团活动全流程管理平台
|
||||
>
|
||||
>毕业设计项目 | 山东建筑大学 | 2025届
|
||||
|
||||
* 前端采用Vue、Element UI。
|
||||
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
|
||||
* 权限认证使用Jwt,支持多终端认证系统。
|
||||
* 支持加载动态权限菜单,多方式轻松权限控制。
|
||||
* 高效率开发,使用代码生成器可以一键生成前后端代码。
|
||||
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://gitcode.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
|
||||
* 提供了单应用版本[RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
|
||||
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
|
||||
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)
|
||||
## 项目简介
|
||||
|
||||
## 内置功能
|
||||
本项目是基于 RuoYi-Vue 前后端分离版开发的校园社团活动管理系统,旨在为高校师生提供一个高效、便捷的社团活动组织与管理平台。系统支持活动的发布、审核、参与、互动等功能,提升校园社团活动的管理效率和参与体验。
|
||||
|
||||
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
||||
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
|
||||
3. 岗位管理:配置系统用户所属担任职务。
|
||||
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
|
||||
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
|
||||
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
|
||||
7. 参数管理:对系统动态配置常用参数。
|
||||
8. 通知公告:系统通知公告信息发布维护。
|
||||
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
|
||||
10. 登录日志:系统登录日志记录查询包含登录异常。
|
||||
11. 在线用户:当前系统中活跃用户状态监控。
|
||||
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
|
||||
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
|
||||
14. 系统接口:根据业务代码自动生成相关的api接口文档。
|
||||
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
|
||||
16. 缓存监控:对系统的缓存信息查询,命令统计等。
|
||||
17. 在线构建器:拖动表单元素生成相应的HTML代码。
|
||||
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
|
||||
## 技术栈
|
||||
|
||||
## 在线体验
|
||||
### 前端
|
||||
|
||||
- admin/admin123
|
||||
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
|
||||
| 技术 | 说明 | 版本信息 |
|
||||
| ---------- | --------- | -------- |
|
||||
| Vue.js | 前端框架 | 2.6.x |
|
||||
| Element UI | UI 组件库 | 2.15.x |
|
||||
| Axios | 网络请求 | 0.21.x |
|
||||
|
||||
演示地址:http://vue.ruoyi.vip
|
||||
文档地址:http://doc.ruoyi.vip
|
||||
### 后端
|
||||
|
||||
## 演示图
|
||||
| 技术 | 说明 | 版本信息 |
|
||||
| --------------- | ------------ | -------- |
|
||||
| Java EE | Java开发环境 | 1.8+ |
|
||||
| Spring Boot | 后端开发框架 | 2.5.15 |
|
||||
| Spring Security | 安全框架 | 5.7.12 |
|
||||
| MyBatis | ORM 框架 | 3.x |
|
||||
| JWT | 身份验证机制 | 0.9.1 |
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
|
||||
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
### 数据库
|
||||
|
||||
| 列名 | 数据类型 | 字段描述 | 是否允许为空 | 备注 |
|
||||
| ------------------- | ------ | ----- | ------ | ------ |
|
||||
| comment\_id | bigint | 评论ID | 否 | 主键 |
|
||||
| act\_id | bigint | 活动ID | 否 | |
|
||||
| user\_id | bigint | 用户ID | 否 | |
|
||||
| parent\_comment\_id | bigint | 父评论ID | 是 | 支持嵌套评论 |
|
||||
| content | text | 评论内容 | 否 | |
|
||||
| 技术 | 说明 | 版本信息 |
|
||||
| ----- | ------------ | ------------ |
|
||||
| MySQL | 关系型数据库 | 5.7+ 建议8.0 |
|
||||
| Redis | 缓存数据库 | >=3 |
|
||||
|
||||
## 若依前后端分离交流群
|
||||
### 构建工具
|
||||
|
||||
| 技术 | 说明 | 版本信息 |
|
||||
| ------- | ------------------ | -------- |
|
||||
| Maven | 项目管理和构建工具 | 3.6.x+ |
|
||||
| Node.js | 前端构建工具 | 16.14.0 |
|
||||
|
||||
## 功能模块
|
||||
|
||||
### 1. 用户管理
|
||||
|
||||
- **角色划分**:系统将用户分为管理员、社团成员和普通参与者三种角色,分别拥有不同的权限。
|
||||
- **权限控制**:基于角色的权限控制,确保系统操作的安全性和规范性。
|
||||
|
||||
### 2. 社团管理
|
||||
|
||||
- **社团信息维护**:支持社团的基本信息管理,包括名称、简介、Logo、所属学院、社团类别、社团负责人等。
|
||||
- **成员管理**:支持社团成员的加入和退出审核,记录成员的活跃度(如发起活动次数和参与活动次数等)。
|
||||
|
||||
### 3. 活动管理
|
||||
|
||||
- **活动申请与审核**:用户可以提交活动申请,管理员进行审核,支持通过、驳回或要求修改。
|
||||
- **活动发布与展示**:活动自动分类展示,支持关键词搜索、时间筛选、社团分类浏览等功能。
|
||||
- **活动执行与监控**:组织者可实时更新活动信息,管理员可监控活动进展,发现违规可强制终止并通知参与者。
|
||||
|
||||
### 4. 互动功能
|
||||
|
||||
- **报名与签到**:用户可在线报名活动,活动当日进行签到,记录参与情况。
|
||||
- **评论与点赞**:用户可对活动发表评论和点赞,增强互动性。
|
||||
- **通知与提醒**:系统自动推送报名成功提醒、活动开始前提醒、变更通知等。
|
||||
|
||||
## 系统架构
|
||||
|
||||
系统采用前后端分离架构,前端使用 Vue.js 构建单页应用,后端基于 Spring Boot 提供 RESTful API 接口,前后端通过 JSON 进行数据交互。
|
||||
|
||||
## 安装部署
|
||||
|
||||
### 前提条件
|
||||
|
||||
- **JDK**:1.8 及以上
|
||||
- **MySQL**:5.7 及以上(建议8.0+)
|
||||
- **Redis**:3.0 及以上
|
||||
- **Node.js**:16.14.0(仅该版本,高低版本可能会有依赖冲突)
|
||||
- **Maven**:3.0 及以上
|
||||
|
||||
### 后端部署
|
||||
|
||||
1. 克隆项目代码:
|
||||
|
||||
```bash
|
||||
git clone https://git.waynews.top/BruceSun/SAMS.git
|
||||
```
|
||||
|
||||
|
||||
|
||||
1. 导入数据库:
|
||||
将 `sql` 目录下的 SQL 文件导入 MySQL 数据库。
|
||||
2. 配置数据库连接:
|
||||
修改 `application-druid.yml` 文件,配置数据库连接信息。
|
||||
3. 启动 Redis 服务。
|
||||
4. 运行后端项目:
|
||||
使用 IDE(如 IntelliJ IDEA)打开项目,运行 `RuoYiApplication` 主类启动后端服务。
|
||||
|
||||
### 前端部署
|
||||
|
||||
1.进入前端项目目录:
|
||||
|
||||
```bash
|
||||
cd ruoyi-ui
|
||||
```
|
||||
|
||||
2.安装依赖:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
#注意:npm国内安装比较慢,建议使用国内镜像安装:
|
||||
npm install --registry=https://registry.npmmirror.com
|
||||
```
|
||||
|
||||
3.运行前端项目(开发环境):
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
4.访问系统:
|
||||
在浏览器中打开 `http://localhost:80`,使用默认账户登录(用户名:admin,密码:admin123)。
|
||||
|
||||
## 目录结构
|
||||
|
||||
### 后端目录结构
|
||||
|
||||
```plaintext
|
||||
ruoyi
|
||||
├── bs-sams // 业务模块
|
||||
├── ruoyi-admin // 后台管理模块
|
||||
├── ruoyi-common // 公共模块
|
||||
├── ruoyi-framework // 框架核心模块
|
||||
├── ruoyi-generator // 代码生成模块
|
||||
├── ruoyi-quartz // 定时任务模块
|
||||
├── ruoyi-system // 系统模块
|
||||
└── sql // 数据库脚本
|
||||
```
|
||||
|
||||
### 前端目录结构
|
||||
|
||||
```plaintext
|
||||
ruoyi-ui
|
||||
├── public // 公共资源
|
||||
└── src
|
||||
├── api // 接口请求
|
||||
├── assets // 静态资源
|
||||
├── components // 公共组件
|
||||
├── layout // 布局组件
|
||||
├── router // 路由配置
|
||||
├── store // 状态管理
|
||||
├── utils // 工具函数
|
||||
├── views // 页面视图
|
||||
├── App.vue // 根组件
|
||||
└── main.js // 入口文件
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 参考资料
|
||||
|
||||
- RuoYi-Vue 官方文档:https://doc.ruoyi.vip/ruoyi-vue/
|
||||
- RuoYi-Vue Gitee 仓库:https://gitee.com/y_project/RuoYi-Vue
|
||||
|
||||
QQ群: [](https://jq.qq.com/?_wv=1027&k=5bVB1og) [](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [](https://jq.qq.com/?_wv=1027&k=51G72yr) [](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [](https://jq.qq.com/?_wv=1027&k=SpyH2875) [](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G6r5KGCaa3pqdbUSXNIgYloyb8e0_L0D&authKey=4w8tF1eGW7%2FedWn%2FHAypQksdrML%2BDHolQSx7094Agm7Luakj9EbfPnSTxSi2T1LQ&noverify=0&group_code=228578329) 点击按钮入群。
|
||||
|
|
@ -32,27 +32,17 @@ public class DashboardController {
|
|||
|
||||
@GetMapping("/list")
|
||||
public AjaxResult getDashboardStats() {
|
||||
// 所有活动数量
|
||||
int activityCount = activityService.selectAmsActivityList(new ActivityListGetVO()).size();
|
||||
|
||||
// 状态为待审批的活动数量
|
||||
ActivityListGetVO pendingVO = new ActivityListGetVO();
|
||||
pendingVO.setStatus("pending");
|
||||
int pendingCount = activityService.selectAmsActivityList(pendingVO).size();
|
||||
|
||||
// 社团数量
|
||||
int clubCount = clubService.selectSmsClubList(new SmsClub()).size();
|
||||
|
||||
// 用户数量
|
||||
int userCount = userService.selectUserList(new SysUser()).size();
|
||||
|
||||
Map<String, Integer> data =new HashMap<>();
|
||||
|
||||
data.put("activityCount", activityCount);
|
||||
data.put("pendingCount", pendingCount);
|
||||
data.put("clubCount", clubCount);
|
||||
data.put("userCount", userCount);
|
||||
// 返回数据
|
||||
AjaxResult result = AjaxResult.success();
|
||||
result.put("data", data);
|
||||
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="selectApprovedActivities" resultMap="ActivityListResult">
|
||||
SELECT * FROM ams_activity
|
||||
WHERE status = 'approved'
|
||||
ORDER BY start_time ASC
|
||||
ORDER BY net_likes ASC
|
||||
LIMIT 8
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,21 +24,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<sql id="selectSmsClubVO">
|
||||
SELECT
|
||||
c.club_id,
|
||||
c.club_name,
|
||||
c.description,
|
||||
c.category,
|
||||
c.dept_id,
|
||||
d.dept_name,
|
||||
c.leader_id,
|
||||
u.nick_name AS leader_name,
|
||||
c.logo,
|
||||
c.status,
|
||||
c.remark,
|
||||
c.create_by,
|
||||
c.update_by,
|
||||
c.create_time,
|
||||
c.update_time
|
||||
c.club_id,c.club_name,c.description,c.category,c.dept_id,
|
||||
d.dept_name,c.leader_id,u.nick_name AS leader_name,
|
||||
c.logo,c.status,c.remark,c.create_by,c.update_by,
|
||||
c.create_time,c.update_time
|
||||
FROM sms_club c
|
||||
LEFT JOIN sys_dept d ON c.dept_id = d.dept_id
|
||||
LEFT JOIN sys_user u ON c.leader_id = u.user_id
|
||||
|
|
|
|||
|
|
@ -21,18 +21,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<sql id="selectSmsClubUserVo">
|
||||
SELECT
|
||||
scu.id,
|
||||
scu.user_id,
|
||||
scu.club_id,
|
||||
u.nick_name AS user_name,
|
||||
c.club_name,
|
||||
scu.is_active,
|
||||
scu.join_date,
|
||||
scu.create_by,
|
||||
scu.create_time,
|
||||
scu.update_by,
|
||||
scu.update_time,
|
||||
scu.remark
|
||||
scu.id,scu.user_id,scu.club_id,u.nick_name AS user_name,
|
||||
c.club_name,scu.is_active,scu.join_date,
|
||||
scu.create_by,scu.create_time,scu.update_by,scu.update_time,scu.remark
|
||||
FROM sms_club_user scu
|
||||
LEFT JOIN sys_user u ON scu.user_id = u.user_id
|
||||
LEFT JOIN sms_club c ON scu.club_id = c.club_id
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
|
@ -0,0 +1,19 @@
|
|||
@startuml
|
||||
start
|
||||
|
||||
:管理员进入活动报名管理页面;
|
||||
:系统加载所有待审核报名记录;
|
||||
|
||||
:点击“审核”按钮;
|
||||
|
||||
if (是否通过报名?) then (是)
|
||||
:更新报名状态为“已报名”;
|
||||
else (否)
|
||||
:更新报名状态为“未通过”;
|
||||
:可填写驳回原因;
|
||||
endif
|
||||
|
||||
:刷新报名列表;
|
||||
|
||||
stop
|
||||
@enduml
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
|
@ -0,0 +1,36 @@
|
|||
@startuml
|
||||
start
|
||||
|
||||
:进入社团总览页面;
|
||||
|
||||
split
|
||||
:点击“新增社团”按钮;
|
||||
:弹出社团表单;
|
||||
:填写名称、类型、负责人、Logo 等;
|
||||
if (信息是否完整?) then (是)
|
||||
:提交表单;
|
||||
:新增社团成功;
|
||||
:刷新社团列表;
|
||||
else (否)
|
||||
:提示信息不完整;
|
||||
endif
|
||||
split again
|
||||
:点击“编辑社团”按钮;
|
||||
:弹出社团信息表单;
|
||||
:修改社团简介、负责人、状态等;
|
||||
if (信息是否合法?) then (是)
|
||||
:提交修改;
|
||||
:修改成功;
|
||||
:刷新社团列表;
|
||||
else (否)
|
||||
:提示修改失败;
|
||||
endif
|
||||
split again
|
||||
:设置查询条件;
|
||||
:输入关键词或选择筛选项;
|
||||
:点击“查询”按钮;
|
||||
:刷新社团分页列表;
|
||||
endsplit
|
||||
|
||||
stop
|
||||
@enduml
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
|
@ -0,0 +1,28 @@
|
|||
@startuml
|
||||
start
|
||||
:管理员进入社团成员管理页面;
|
||||
split
|
||||
:管理员处理入团申请;
|
||||
:点击“审核”按钮;
|
||||
if (是否通过?) then (通过)
|
||||
:设置成员状态为“活跃”;
|
||||
:写入审核备注;
|
||||
else (拒绝)
|
||||
:设置状态为“已拒绝”;
|
||||
endif
|
||||
split again
|
||||
:管理员点击“筛选/查询”按钮;
|
||||
:输入社团名、成员名或学号等条件;
|
||||
:系统刷新并展示匹配成员数据;
|
||||
split again
|
||||
:管理员点击“移除成员”或“设为非活跃”按钮;
|
||||
:弹出确认提示;
|
||||
if (确认操作?) then (是)
|
||||
:更新成员状态为“已退出”或“非活跃”;
|
||||
else
|
||||
:取消操作;
|
||||
endif
|
||||
endsplit
|
||||
|
||||
stop
|
||||
@enduml
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
|
@ -1,26 +1,26 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="活动ID" prop="actId">
|
||||
<el-form-item label="活动名称" prop="activityName">
|
||||
<el-input
|
||||
v-model="queryParams.actId"
|
||||
placeholder="请输入活动ID"
|
||||
v-model="queryParams.activityName"
|
||||
placeholder="请输入活动名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户ID" prop="userId">
|
||||
<el-form-item label="用户名" prop="userName">
|
||||
<el-input
|
||||
v-model="queryParams.userId"
|
||||
placeholder="请输入用户ID"
|
||||
v-model="queryParams.userName"
|
||||
placeholder="请输入用户名"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色" prop="role">
|
||||
<el-select v-model="queryParams.role" placeholder="请选择角色" clearable>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.ams_registration_role"
|
||||
v-for="dict in dict.type.ams_registration_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@
|
|||
|
||||
<el-divider/>
|
||||
|
||||
<!-- 互动区 -->
|
||||
<!-- 点赞区 -->
|
||||
<div class="section interactions">
|
||||
<h3>互动</h3>
|
||||
<div class="interaction-row">
|
||||
|
|
@ -41,7 +39,6 @@
|
|||
|
||||
<el-divider/>
|
||||
|
||||
<!-- 评论列表(嵌套结构) -->
|
||||
<div class="section comments">
|
||||
<h3>评论列表</h3>
|
||||
<div v-for="comment in nestedComments" :key="comment.commentId" class="comment-block">
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ export default {
|
|||
this.$router.push(`/club/detail/${clubId}`)
|
||||
},
|
||||
goToActivity(actId) {
|
||||
this.$router.push(`/activity/detail/${actId}`)
|
||||
this.$router.push(`/active/detail/${actId}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ export default {
|
|||
getUser(id).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = "修改成员管理"
|
||||
this.title = "审核成员管理"
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
|
|
|
|||