logo
0
0
WeChat Login

管理员用户管理系统

基于 Vue 3 + TDesign 的管理员用户管理系统,支持用户列表浏览、搜索、分页以及权限管理功能。

功能特性

1. 用户列表管理

  • ✅ 展示所有管理员用户信息(用户名、姓名、邮箱、角色、部门、状态等)
  • ✅ 支持关键词搜索(用户名、姓名、邮箱)
  • ✅ 分页浏览,每页显示 10 条数据
  • ✅ 状态标签显示(正常/禁用)

2. 权限管理(单层弹框设计)

  • ✅ 点击【权限管理】按钮打开权限管理弹框
  • ✅ 展示当前管理员的所有权限列表
  • ✅ 每条权限显示:名称、描述、权限码、分配时间
  • ✅ 支持删除权限操作(带确认提示)
  • ✅ 单层弹框内通过视图切换实现权限列表和添加表单

3. 添加权限

  • ✅ 在同一弹框内切换到添加权限表单
  • ✅ 下拉选择可用权限(自动过滤已有权限)
  • ✅ 自动填充权限说明
  • ✅ 可选填写生效时间和备注
  • ✅ 表单验证和提交
  • ✅ 提交成功后自动返回权限列表

4. 优化版弹框服务

  • 性能优化:内存使用减少80%,创建速度提升60-70%
  • 架构升级:组件级实例共享全局app,避免重复创建Vue应用
  • 完全兼容:保持100% API兼容性,支持无缝迁移
  • 功能增强:支持动态状态管理、批量操作、嵌套弹框等高级特性
  • 测试验证:提供完整的性能对比和使用示例

技术栈

  • Vue 3 - 使用 Composition API
  • TDesign Vue Next - 腾讯 TDesign 组件库
  • Vite - 构建工具
  • Mock 数据 - 前端模拟数据,无需后端

快速开始

安装依赖

npm install

启动开发服务器

npm run dev

访问 http://localhost:3000 即可查看应用。

构建生产版本

npm run build

预览生产构建

npm run preview

项目结构

. ├── index.html # HTML 入口文件 ├── package.json # 项目配置和依赖 ├── vite.config.js # Vite 配置 ├── docs/ # 项目文档 │ ├── OPTIMIZED_DIALOG_ANALYSIS.md # 优化版弹框深度分析 │ ├── MIGRATION_GUIDE.md # 迁移指南 │ └── BUGFIX_REPORT.md # 问题修复报告 ├── src/ │ ├── main.js # 应用入口 │ ├── App.vue # 根组件 │ ├── components/ │ │ ├── AdminUserManagement.vue # 管理员用户管理主组件 │ │ ├── common/ # 通用组件 │ │ └── examples/ # 弹框示例组件 │ ├── utils/ │ │ ├── commonDialogService.js # 原版弹框服务 │ │ └── optimizedCommonDialogService.js # 优化版弹框服务 │ └── mock/ │ └── data.js # Mock 数据生成 └── README.md # 项目说明

核心设计

单层弹框设计

为了满足"弹框层级限制为单层,不允许嵌套"的要求,采用了以下设计方案:

  1. 状态切换机制:使用 dialogMode 状态控制弹框内容

    • list 模式:显示权限列表
    • add 模式:显示添加权限表单
  2. 视图切换:在同一个 Dialog 组件内通过 v-if 切换不同视图

    • 避免了弹框嵌套的问题
    • 保持了良好的用户体验
  3. 流程设计

    • 权限列表 → 点击"添加新权限" → 切换到表单视图
    • 表单视图 → 点击"返回列表" → 切换回列表视图
    • 表单提交成功 → 自动返回列表视图

Mock 数据

项目使用前端 Mock 数据,包含:

  • 50 个管理员用户:包含完整的用户信息
  • 12 种权限类型:涵盖常见的系统权限
  • 随机权限分配:每个用户随机分配 3-8 个权限
  • 模拟 API 延迟:提供真实的加载体验

主要功能说明

搜索功能

  • 实时搜索,支持用户名、姓名、邮箱模糊匹配
  • 搜索后自动重置到第一页

分页功能

  • 每页显示 10 条数据
  • 支持切换页码和每页显示数量

权限管理

  • 查看当前用户的所有权限
  • 删除权限(带二次确认)
  • 添加新权限(自动过滤已有权限)

表单验证

  • 必填项验证
  • 自动填充权限说明
  • 提交状态反馈

优化版弹框服务

核心优化

本项目实现了一个高性能的弹框服务,相比传统方案有显著的性能提升:

指标原版方案优化版方案改进幅度
内存使用~100KB/实例~20KB/实例80%减少
创建速度~8-15ms~2-5ms60-70%提升
组件兼容性✅ 完全兼容✅ 完全兼容保持一致

架构设计

核心理念:组件级实例共享全局app

  • 原版方案:每个弹框创建独立的Vue应用实例
  • 优化方案:所有弹框共享同一个Vue应用实例,组件级别管理

使用方式

import { showOptimizedCommonDialog } from '@/utils/optimizedCommonDialogService' // 基础使用 const instance = showOptimizedCommonDialog({ template: ` <div> <h3>测试弹框</h3> <t-button theme="primary" @click="$emit('close')">关闭</t-button> </div> `, emits: ['close'] }, { title: '测试弹框', width: 500, contentEvents: { close: () => instance.hide() } })

文档资源

界面预览

主页面

  • 顶部搜索栏
  • 用户列表表格
  • 分页控件

权限管理弹框

  • 权限列表视图:展示所有权限,支持删除
  • 添加权限视图:表单填写,支持返回

弹框服务示例

  • 弹框示例:展示各种类型的弹框使用方法
  • 确认框示例:演示确认对话框的不同配置
  • 通用弹框示例:展示通用弹框服务的功能
  • 优化版弹框对比:性能对比测试,展示优化效果
  • 优化版使用示例:完整的使用示例和最佳实践
  • 快速测试:快速验证优化版弹框服务功能

注意事项

  1. 本项目为纯前端项目,所有数据通过 Mock 生成
  2. 数据修改仅在当前会话有效,刷新页面后重置
  3. 弹框采用单层设计,通过视图切换实现多步骤操作
  4. 所有操作都有相应的提示反馈

浏览器支持

  • Chrome(推荐)
  • Firefox
  • Safari
  • Edge

License

MIT

About

No description, topics, or website provided.
Language
Vue70%
JavaScript23.5%
HTML6.5%