feat(system): 实现RuoYi风格的RBAC管理页面
新增系统资源工具函数库,包含树形结构构建、树过滤和数据范围中文标签转换;重构系统资源编辑器组件,改用树形选择器优化权限配置并新增表单验证;重构系统管理页面布局,统一使用RuoYi风格样式,新增多维度筛选搜索功能,优化各资源表格展示;新增用户密码重置功能,移除过时的useSystemResource钩子并更新测试用例。
This commit is contained in:
1 parent
994d07cfca
commit
f087663b5b
5 files changed
+350
-52
No files matched your search
@@ -137,6 +137,41 @@ button, input { font: inherit; }
|
||||
.home-content-panel .panel-heading span { color: var(--muted); font-size: 12px; font-weight: 400; }
|
||||
.home-content-options { margin-top: 20px; }
|
||||
.system-action-bar .el-button:hover { color: #fff; }
|
||||
|
||||
/* RuoYi-style system management pages: compact filters, bordered tables and explicit RBAC hierarchy. */
|
||||
.system-resource-page .page-intro { margin-bottom: 18px; }
|
||||
.system-filter-card, .system-list-card { margin-bottom: 16px; border-radius: 4px; }
|
||||
.system-filter-card .el-card__body { padding: 16px 18px 2px; }
|
||||
.system-filter-card .el-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px; }
|
||||
.system-filter-card .el-form-item { margin-right: 0; margin-bottom: 14px; }
|
||||
.system-filter-card .el-input { width: 230px; }
|
||||
.system-filter-card .el-form-item:last-child { margin-left: auto; }
|
||||
.system-list-card .el-card__body { padding: 0; }
|
||||
.system-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
|
||||
.system-table-heading > div:first-child { display: flex; align-items: baseline; gap: 10px; }
|
||||
.system-table-heading strong { color: #303133; font-size: 14px; }
|
||||
.system-table-heading span { color: #909399; font-size: 12px; }
|
||||
.system-action-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
|
||||
.system-action-bar .el-button { margin-left: 0; }
|
||||
.system-menu-name, .system-tree-label { display: inline-flex; align-items: center; gap: 8px; min-height: 24px; }
|
||||
.system-menu-name .layout-icon { flex: 0 0 auto; }
|
||||
.system-list-card .el-table th.el-table__cell { color: #606266; font-weight: 600; background: #f5f7fa; }
|
||||
.system-list-card .el-table td.el-table__cell, .system-list-card .el-table th.el-table__cell { border-bottom-color: #ebeef5; }
|
||||
.system-list-card .el-table .el-button + .el-button { margin-left: 8px; }
|
||||
.system-editor-dialog .el-dialog__body { padding-top: 8px; }
|
||||
.system-editor-form .el-form-item { margin-bottom: 18px; }
|
||||
.system-editor-form .full-width { width: 100%; }
|
||||
.system-tree-panel { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
|
||||
.system-tree-panel__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; color: #909399; font-size: 12px; border-bottom: 1px solid var(--line); background: #f8fafc; }
|
||||
.system-tree-panel .el-tree { max-height: 260px; overflow: auto; padding: 8px 12px; }
|
||||
.system-tree-panel .el-tree-node__content { height: 32px; }
|
||||
.system-editor-form .el-radio-group { display: flex; gap: 18px; }
|
||||
@media (max-width: 760px) {
|
||||
.system-table-heading { align-items: flex-start; flex-direction: column; }
|
||||
.system-action-bar { justify-content: flex-start; width: 100%; }
|
||||
.system-filter-card .el-form-item:last-child { margin-left: 0; }
|
||||
.system-filter-card .el-input { width: min(230px, 100%); }
|
||||
}
|
||||
@media (max-width: 880px) { .wanfa-workspace { grid-template-columns: 1fr; } }
|
||||
@media (max-width: 980px) { .media-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lead-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
||||
@media (max-width: 760px) { .concierge-row { align-items: flex-start; flex-direction: column; } .concierge-actions { justify-content: flex-start; } .lead-filters { grid-template-columns: 1fr 1fr; } .lead-filters .el-input { grid-column: 1 / -1; } .operations-grid { grid-template-columns: 1fr; } .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
||||
|
||||
Reference in new issue
Block a user