Skip to content

组件概览

CmdAdmin 提供了一系列实用的 Vue 组件和组合式函数,帮助开发者快速构建管理后台。

基础组件

字典组件

基于系统字典数据自动渲染的表单组件,支持字典数据的自动加载和缓存。

组件名说明用途
DictSelect字典下拉选择器表单中的下拉选择
DictRadio字典单选组表单中的单选选项
DictTag字典标签表格中显示字典值

字典组件示例

vue
<template>
  <el-form>
    <!-- 字典下拉选择 -->
    <el-form-item label="用户状态">
      <DictSelect v-model="form.status" dictType="sys_user_status" />
    </el-form-item>
    
    <!-- 字典单选 -->
    <el-form-item label="性别">
      <DictRadio v-model="form.gender" dictType="sys_user_gender" />
    </el-form-item>
  </el-form>
  
  <!-- 表格中显示字典值 -->
  <el-table :data="tableData">
    <el-table-column prop="status" label="状态">
      <template #default="{ row }">
        <DictTag :value="row.status" dictType="sys_user_status" />
      </template>
    </el-table-column>
  </el-table>
</template>

<script setup>
import { DictSelect, DictRadio, DictTag } from '@/components/Dict'

const form = ref({
  status: '',
  gender: ''
})
</script>

组合式函数

函数名说明用途
useCrud通用 CRUD 操作封装列表查询、分页、删除等操作

useCrud 示例

vue
<script setup>
import { useCrud } from '@/composables/useCrud'
import { userApi } from '@/services/modules/user'

const {
  loading,
  tableData,
  total,
  queryParams,
  fetchList,
  handleQuery,
  resetQuery,
  handleDelete,
  handleBatchDelete
} = useCrud({
  api: userApi,
  defaultQuery: {
    username: ''
  }
})
</script>

指令

指令名说明用途
v-permission权限控制按钮级别的权限控制

v-permission 示例

vue
<template>
  <!-- 有权限时显示,无权限时移除元素 -->
  <el-button v-permission="'system:user:add'">新增用户</el-button>
  
  <!-- 有权限时显示,无权限时禁用 -->
  <el-button v-permission:disabled="'system:user:edit'">编辑</el-button>
  
  <!-- 有权限时显示,无权限时隐藏 -->
  <el-button v-permission.hide="'system:user:delete'">删除</el-button>
</template>

功能模块

个人中心

个人中心模块提供用户信息管理功能:

  • 修改个人信息:昵称、邮箱、手机号
  • 修改头像:支持图片裁剪上传
  • 修改密码:需要验证原密码
  • 登录历史:查看近期登录记录

相关页面位于 views/profile/ 目录。

系统设置

系统设置模块提供系统级配置:

  • 主题设置:暗黑/亮色模式切换
  • 布局设置:侧边栏/顶部导航布局
  • 系统参数:运行时参数配置

相关页面位于 views/settings/ 目录。

定时任务

定时任务模块基于 Quartz 实现:

  • 任务管理:Cron 表达式配置
  • 任务控制:启动、暂停、恢复、立即执行
  • 执行日志:记录每次执行结果

相关页面位于 views/system/job/ 目录。

系统监控

系统监控模块提供实时监控功能:

  • 服务器监控:CPU、内存、磁盘、JVM
  • 缓存监控:Redis 连接状态、Key 管理
  • 在线用户:当前在线用户列表

相关页面位于 views/monitor/ 目录。

第三方组件集成

CmdAdmin 集成了多种优秀的第三方组件:

组件说明文档
WangEditor富文本编辑器查看示例
FormCreate动态表单设计器查看示例
LuckySheet在线 Excel 表格查看示例
Monaco Editor代码编辑器查看示例
Vue Cropper图片裁剪查看示例
ECharts图表库查看示例

路由加载优化

CmdAdmin 使用 import.meta.glob 自动扫描视图组件,无需手动维护组件映射表:

typescript
// stores/auth.ts
const modules = import.meta.glob('@/views/**/*.vue')

const registerRoutes = (menus: Menu[]) => {
  menus.forEach(menu => {
    const component = modules[`/src/views/${menu.component}.vue`]
    if (component) {
      // 动态注册路由
    }
  })
}

优势

  • ✅ 无需手动维护组件映射表
  • ✅ 新增页面自动识别
  • ✅ 减少维护成本
  • ✅ 解决刷新后动态路由丢失问题

基于 MIT 许可发布