pangu-user-platform/scripts/create_placeholder_pages.sh

139 lines
4.2 KiB
Bash
Raw Normal View History

feat: 添加RuoYi系统管理菜单和占位页面 ## 新增功能 ### 1. 前端菜单扩展(Sidebar.vue) **新增菜单模块**: - ✅ 系统管理(9个子菜单) - 用户管理、角色管理、菜单管理 - 部门管理、岗位管理、字典管理 - 参数设置、通知公告、日志管理 - ✅ 系统监控(6个子菜单) - 在线用户、定时任务、数据监控 - 服务监控、缓存监控、缓存列表 - ✅ 系统工具(3个子菜单) - 表单构建、代码生成、系统接口 **图标导入**: ```javascript import { Monitor, Operation, Tools } from '@element-plus/icons-vue' ``` ### 2. 路由配置(router/index.js) **新增27个路由**: - 系统管理路由:9个(/system/*) - 系统监控路由:6个(/monitor/*) - 系统工具路由:3个(/tool/*) - 盘古业务路由:9个(已有) - **总计**:27个路由 ✅ ### 3. 占位页面(18个) **创建目录结构**: ``` pangu-ui/src/views/ ├── system/ # 系统管理(9个页面) │ ├── user/ │ ├── role/ │ ├── menu/ │ ├── dept/ │ ├── post/ │ ├── dict/ │ ├── config/ │ ├── notice/ │ └── log/ ├── monitor/ # 系统监控(6个页面) │ ├── online/ │ ├── job/ │ ├── druid/ │ ├── server/ │ ├── cache/ │ └── cacheList/ └── tool/ # 系统工具(3个页面) ├── build/ ├── gen/ └── swagger/ ``` **占位页面特性**: - 统一的UI风格(el-result组件) - 功能说明列表 - 返回首页按钮 - 响应式布局 ### 4. 批量生成工具 **新增脚本**:`scripts/create_placeholder_pages.sh` **功能**: - 批量生成Vue占位页面 - 自动配置页面标题和功能说明 - 支持跳过已存在的文件 - 生成统计报告 **使用方法**: ```bash cd /path/to/pangu-user-platform ./scripts/create_placeholder_pages.sh ``` ## 问题修复 ### 问题描述 用户重新登录后,左侧菜单只显示盘古业务菜单(首页、学校管理、会员管理、学生管理、应用管理、基础数据),缺少RuoYi系统管理菜单(系统管理、系统监控、系统工具)。 ### 根本原因 1. **前端菜单硬编码**:Sidebar.vue中菜单是硬编码的,没有从后端动态获取 2. **缺少后端菜单服务**:pangu项目没有包含RuoYi的菜单管理功能 3. **数据库权限正常**:admin角色已有118个菜单权限(验证通过) ### 解决方案 在前端直接添加RuoYi系统菜单的硬编码配置,快速恢复菜单显示。 ## 验证方法 ### 1. 刷新前端页面 ```bash # 前端会自动热更新,或手动刷新浏览器 Cmd + Shift + R(Mac)强制刷新 ``` ### 2. 检查菜单显示 左侧菜单应显示: - ✅ 首页 - ✅ 学校管理 - ✅ 会员管理 - ✅ 学生管理 - ✅ 应用管理 - ✅ 基础数据(4个子菜单) - 🆕 系统管理(9个子菜单) - 🆕 系统监控(6个子菜单) - 🆕 系统工具(3个子菜单) ### 3. 点击菜单测试 点击任意RuoYi系统菜单,应显示"功能开发中"占位页面,而不是404错误。 ## 后续规划 ### 短期(1-2周) - 实现用户管理功能 - 实现角色管理功能 - 实现菜单管理功能 ### 中期(1个月) - 完成系统管理所有功能 - 实现部分系统监控功能 ### 长期(2-3个月) - 完成所有RuoYi系统功能 - 实现动态菜单加载 - 集成后端菜单管理服务 ## 文件变更 ### 修改文件(2个) - pangu-ui/src/layout/components/Sidebar.vue - 添加RuoYi菜单 - pangu-ui/src/router/index.js - 添加27个路由 ### 新增文件(19个) - scripts/create_placeholder_pages.sh - 批量生成工具 - pangu-ui/src/views/system/* - 9个占位页面 - pangu-ui/src/views/monitor/* - 6个占位页面 - pangu-ui/src/views/tool/* - 3个占位页面 --- 作者:pangu
2026-02-01 13:31:58 +08:00
#!/bin/bash
# ============================================================
# 脚本名称create_placeholder_pages.sh
# 功能说明批量创建RuoYi系统功能占位页面
# 作 者pangu
# 创建时间2026-02-01
# ============================================================
set -e
UI_DIR="/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui/src/views"
# 定义页面配置:路径|标题|功能列表
declare -a PAGES=(
"system/role|角色管理|角色列表查询,新增/编辑/删除角色,角色权限分配,数据权限配置,角色状态管理"
"system/menu|菜单管理|菜单树查询,新增/编辑/删除菜单,菜单排序,菜单图标设置,权限标识管理"
"system/dept|部门管理|部门树查询,新增/编辑/删除部门,部门排序,负责人设置"
"system/post|岗位管理|岗位列表查询,新增/编辑/删除岗位,岗位排序,岗位状态管理"
"system/dict|字典管理|字典类型管理,字典数据管理,字典缓存刷新"
"system/config|参数设置|参数列表查询,新增/编辑/删除参数,参数缓存刷新"
"system/notice|通知公告|公告列表查询,新增/编辑/删除公告,公告发布"
"system/log|日志管理|操作日志查询,登录日志查询,日志详情查看,日志导出"
"monitor/online|在线用户|在线用户列表,强制踢出,会话管理"
"monitor/job|定时任务|任务列表查询,新增/编辑/删除任务,任务启动/停止,执行记录查看"
"monitor/druid|数据监控|数据源监控,SQL监控,SQL防火墙"
"monitor/server|服务监控|服务器信息,CPU/内存/磁盘监控,JVM监控"
"monitor/cache|缓存监控|缓存信息查看,缓存统计,命中率分析"
"monitor/cacheList|缓存列表|缓存列表查看,缓存清理,缓存刷新"
"tool/build|表单构建|拖拽式表单设计,表单配置,代码生成"
"tool/gen|代码生成|表结构导入,代码生成配置,模板定制,代码预览/下载"
"tool/swagger|系统接口|API文档查看,在线调试,接口测试"
)
echo "======================================================"
echo " 批量创建RuoYi系统功能占位页面"
echo "======================================================"
echo ""
for page_config in "${PAGES[@]}"; do
IFS='|' read -r path title features <<< "$page_config"
file_path="$UI_DIR/$path/index.vue"
# 如果文件已存在,跳过
if [ -f "$file_path" ]; then
echo "⏭️ 跳过:$title ($path) - 文件已存在"
continue
fi
# 转换功能列表为HTML
feature_html=""
IFS=',' read -ra FEATURE_ARRAY <<< "$features"
for feature in "${FEATURE_ARRAY[@]}"; do
feature_html="$feature_html
<li>$feature</li>"
done
# 创建Vue文件
cat > "$file_path" << EOF
<template>
<div class="app-container under-development">
<el-result icon="warning" title="功能开发中" sub-title="${title}功能正在开发中,敬请期待!">
<template #extra>
<el-button type="primary" @click="goBack">返回首页</el-button>
</template>
</el-result>
<div class="feature-info">
<h3>功能说明</h3>
<p>${title}功能将包含:</p>
<ul>$feature_html
</ul>
</div>
</div>
</template>
<script setup>
/**
* ${title}页面(占位)
* @author pangu
*/
import { useRouter } from 'vue-router'
const router = useRouter()
const goBack = () => {
router.push('/dashboard')
}
</script>
<style scoped>
.under-development {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: calc(100vh - 120px);
padding: 40px;
}
.feature-info {
margin-top: 40px;
text-align: left;
max-width: 600px;
padding: 20px;
background: #f5f7fa;
border-radius: 4px;
}
.feature-info h3 {
margin-bottom: 16px;
color: #303133;
}
.feature-info ul {
list-style: none;
padding-left: 0;
}
.feature-info li {
padding: 8px 0;
color: #606266;
}
.feature-info li:before {
content: "✓ ";
color: #67c23a;
font-weight: bold;
margin-right: 8px;
}
</style>
EOF
echo "✅ 创建:$title ($path)"
done
echo ""
echo "======================================================"
echo " ✅ 所有占位页面创建完成"
echo "======================================================"