Skip to content

9.9 数据展示组件 ​

概述

components/ 提供 25 类公共组件,覆盖数据展示(Table/Page/CountTo/Qrcode/Render)、容器(Modal)、辅助(icon/Websocket/Lockscreen)等场景。本节介绍高频展示组件。

高频展示组件 ​

组件职责典型用法
Table表格封装(columns 配置驱动)列表页主表格,对接 columns.ts
pagination分页组件配合 Table,切换触发重新请求
Page页面容器(标题/操作区/搜索区)列表页外框
Render函数式渲染(h 函数封装)复杂列渲染
CountTo数字滚动动画仪表盘统计卡片
Qrcode二维码生成扫码场景
icon图标组件菜单/操作图标
Modal弹窗封装编辑/详情弹窗
TableSelect表格选择器单选/多选弹窗选择数据
WebsocketWebSocket 封装实时消息(前端遗留能力)

Table 与 columns.ts 的配合(真实模式) ​

ts
// columns.ts 定义列(真实模式摘自 example)
export const columns = [
  { type: 'selection' },                          // 多选框列
  { label: 'ID', prop: 'id', fixed: 'left', width: 50 },
  { label: '案例名称', prop: 'name', minWidth: 120 },   // 普通文本
  {
    label: '案例图片', prop: 'avatar', minWidth: 120,
    // 图片渲染:以方形头像形式展示
    render(record) {
      return h(ElAvatar, { size: 48, src: record.row.avatar, shape: 'square', fit: 'fill' });
    },
  },
  // 枚举列建议渲染 {field}Text(statusText)
];

渲染规则约定:图片列 ElAvatar、选项列 ElTag、链接列 a 标签、其余普通文本。

展示 {field}Text(枚举列) ​

text
后端基座已填充 statusText 等字典文本 → columns 直接 prop: 'statusText'
或 render 用 ElTag 展示 text + 语义色
唯一真相在字典管理页(前端不硬编码枚举文案)

Page 容器布局(列表页标准形态) ​

text
<Page>
  搜索区(querySchemas 驱动的 Form)
  操作区(新增/导出等按钮,v-permission 控制)
  表格区(Table + pagination)
</Page>

弹窗层:edit.vue(新增/编辑)、detail.vue(详情)

与其他层的对接 ​

text
Table data   ← http 解包后的 data.records(PageData 声明)
pagination   ← data.total / data.size / data.current
columns      ← views/{域}/{模块}/columns.ts
弹窗表单     ← edit.vue(字段对齐 Req 结构体)

开发规约 ​

  • 列表列用 columns.ts 声明式配置(勿在模板里手写 el-table-column)
  • 复杂列用 render 函数(h + Element Plus 组件)
  • 图片列 src 用后端 GetFileUrl 已补域名的字段(勿手拼)
  • 枚举列展示 {field}Text(勿硬编码映射)
  • 操作列按钮逐个加 v-permission(对齐 gmeta permission)

小蚂蚁云团队 · 提供技术支持