Skip to content

组件规范

本文档详细描述 MdrFrontEngine 内置组件的完整 API 规范。

通用属性

所有组件都支持以下通用属性:

属性类型默认值描述
idstringauto组件唯一标识符
classNamestring-CSS 类名
styleobject-内联样式
refstring-组件引用名
data-*any-自定义数据属性

布局组件

MdrContainer

通用容器组件。

json
{
  "type": "MdrContainer",
  "props": {
    "layout": "flex",
    "direction": "column",
    "justify": "center",
    "align": "center",
    "wrap": "nowrap",
    "gap": "16px",
    "padding": "24px"
  }
}
属性类型默认值描述
layout"block" | "flex" | "grid" | "inline""block"布局模式
direction"row" | "column" | "row-reverse" | "column-reverse""row"主轴方向
justifyCSS justify-content"flex-start"主轴对齐
alignCSS align-items"stretch"交叉轴对齐
wrap"nowrap" | "wrap" | "wrap-reverse""nowrap"换行方式
gapstring"0"子元素间距
paddingstring"0"内边距
marginstring"0"外边距
widthstring"auto"宽度
heightstring"auto"高度
minWidthstring-最小宽度
maxWidthstring-最大宽度
minHeightstring-最小高度
maxHeightstring-最大高度
overflowCSS overflow"visible"溢出处理

MdrGrid

网格布局组件。

json
{
  "type": "MdrGrid",
  "props": {
    "columns": 3,
    "rows": "auto",
    "gap": "16px",
    "columnGap": "16px",
    "rowGap": "16px"
  }
}
属性类型默认值描述
columnsnumber | string12列数或列定义
rowsnumber | string"auto"行数或行定义
gapstring"16px"网格间距
columnGapstring-列间距
rowGapstring-行间距
autoFlow"row" | "column" | "dense""row"自动放置方向
justifyItemsCSS justify-items"stretch"单元格水平对齐
alignItemsCSS align-items"stretch"单元格垂直对齐

MdrGridItem

网格项组件。

json
{
  "type": "MdrGridItem",
  "props": {
    "colSpan": 2,
    "rowSpan": 1,
    "colStart": 1,
    "rowStart": 1
  }
}
属性类型默认值描述
colSpannumber1跨列数
rowSpannumber1跨行数
colStartnumber-起始列
colEndnumber-结束列
rowStartnumber-起始行
rowEndnumber-结束行

MdrStack

堆叠布局组件。

json
{
  "type": "MdrStack",
  "props": {
    "direction": "vertical",
    "spacing": "16px",
    "divider": true
  }
}
属性类型默认值描述
direction"horizontal" | "vertical""vertical"堆叠方向
spacingstring"16px"间距
dividerbooleanfalse是否显示分割线
align"start" | "center" | "end" | "stretch""stretch"对齐方式

基础组件

MdrText

文本组件。

json
{
  "type": "MdrText",
  "props": {
    "variant": "body",
    "color": "primary",
    "align": "left",
    "weight": "normal"
  },
  "children": ["文本内容"]
}
属性类型默认值描述
variant"h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "body" | "caption" | "overline""body"文本变体
colorstring"inherit"文本颜色
align"left" | "center" | "right" | "justify""left"对齐方式
weight"normal" | "medium" | "semibold" | "bold"-字重
truncateboolean | numberfalse截断行数
noWrapbooleanfalse不换行
transform"none" | "uppercase" | "lowercase" | "capitalize""none"文本转换

MdrButton

按钮组件。

json
{
  "type": "MdrButton",
  "props": {
    "variant": "primary",
    "size": "medium",
    "disabled": false,
    "loading": false,
    "icon": "plus",
    "iconPosition": "left"
  },
  "children": ["按钮文本"],
  "events": {
    "onClick": { ... }
  }
}
属性类型默认值描述
variant"primary" | "secondary" | "outline" | "ghost" | "danger" | "link""primary"按钮变体
size"small" | "medium" | "large""medium"按钮尺寸
disabledbooleanfalse禁用状态
loadingbooleanfalse加载状态
iconstring-图标名称
iconPosition"left" | "right""left"图标位置
fullWidthbooleanfalse撑满容器
type"button" | "submit" | "reset""button"按钮类型

事件:

事件参数描述
onClickevent点击事件

链接组件。

json
{
  "type": "MdrLink",
  "props": {
    "href": "/about",
    "target": "_self",
    "underline": "hover"
  },
  "children": ["链接文本"]
}
属性类型默认值描述
hrefstring-链接地址
target"_self" | "_blank" | "_parent" | "_top""_self"打开方式
underline"always" | "hover" | "none""hover"下划线显示
colorstring-链接颜色
externalbooleanfalse外部链接(显示图标)

MdrImage

图片组件。

json
{
  "type": "MdrImage",
  "props": {
    "src": "/images/photo.jpg",
    "alt": "描述文本",
    "width": "100%",
    "aspectRatio": "16/9",
    "objectFit": "cover"
  }
}
属性类型默认值描述
srcstring-图片地址
altstring""替代文本
widthstring"auto"宽度
heightstring"auto"高度
aspectRatiostring-宽高比
objectFit"contain" | "cover" | "fill" | "none" | "scale-down""cover"填充方式
objectPositionstring"center"位置
loading"lazy" | "eager""lazy"加载策略
fallbackstring-加载失败时的备用图片
placeholderstring-占位图

MdrIcon

图标组件。

json
{
  "type": "MdrIcon",
  "props": {
    "name": "check",
    "size": "24px",
    "color": "currentColor"
  }
}
属性类型默认值描述
namestring-图标名称
sizestring"1em"图标尺寸
colorstring"currentColor"图标颜色
strokenumber-描边宽度

表单组件

MdrInput

输入框组件。

json
{
  "type": "MdrInput",
  "props": {
    "type": "text",
    "placeholder": "请输入",
    "value": "",
    "disabled": false,
    "readonly": false
  },
  "events": {
    "onChange": { ... },
    "onFocus": { ... },
    "onBlur": { ... }
  }
}
属性类型默认值描述
type"text" | "password" | "email" | "number" | "tel" | "url" | "search""text"输入类型
placeholderstring-占位文本
valuestring | number""输入值
defaultValuestring | number-默认值
disabledbooleanfalse禁用状态
readonlybooleanfalse只读状态
size"small" | "medium" | "large""medium"尺寸
prefixstring-前缀
suffixstring-后缀
maxLengthnumber-最大长度
minLengthnumber-最小长度
patternstring-正则验证
requiredbooleanfalse是否必填
errorboolean | stringfalse错误状态/信息
clearablebooleanfalse可清空
autoFocusbooleanfalse自动聚焦

事件:

事件参数描述
onChange值变化
onFocusevent获得焦点
onBlurevent失去焦点
onKeyDownevent键盘按下
onKeyUpevent键盘松开
onClear-清空

MdrTextarea

多行文本输入组件。

json
{
  "type": "MdrTextarea",
  "props": {
    "placeholder": "请输入内容",
    "rows": 4,
    "autosize": true
  }
}
属性类型默认值描述
rowsnumber4显示行数
autosizeboolean |false自动调整高度
resize"none" | "vertical" | "horizontal" | "both""vertical"可调整方向
showCountbooleanfalse显示字数

MdrSelect

选择器组件。

json
{
  "type": "MdrSelect",
  "props": {
    "options": [
      { "label": "选项 1", "value": "1" },
      { "label": "选项 2", "value": "2", "disabled": true }
    ],
    "placeholder": "请选择"
  }
}
属性类型默认值描述
optionsArray<{ label, value, disabled? }>[]选项列表
valueany-选中值
placeholderstring-占位文本
multiplebooleanfalse是否多选
searchablebooleanfalse是否可搜索
clearablebooleanfalse可清空
disabledbooleanfalse禁用状态
loadingbooleanfalse加载状态
maxTagCountnumber-最多显示标签数

MdrCheckbox

复选框组件。

json
{
  "type": "MdrCheckbox",
  "props": {
    "checked": false,
    "label": "同意协议",
    "indeterminate": false
  }
}
属性类型默认值描述
checkedbooleanfalse选中状态
labelstring-标签文本
disabledbooleanfalse禁用状态
indeterminatebooleanfalse不确定状态
valueany-值(用于 CheckboxGroup)

MdrRadio

单选框组件。

json
{
  "type": "MdrRadio",
  "props": {
    "options": [
      { "label": "选项 A", "value": "a" },
      { "label": "选项 B", "value": "b" }
    ],
    "value": "a",
    "direction": "horizontal"
  }
}
属性类型默认值描述
optionsArray<{ label, value, disabled? }>[]选项列表
valueany-选中值
direction"horizontal" | "vertical""horizontal"排列方向
disabledbooleanfalse禁用状态

MdrSwitch

开关组件。

json
{
  "type": "MdrSwitch",
  "props": {
    "checked": false,
    "size": "medium"
  }
}
属性类型默认值描述
checkedbooleanfalse开启状态
size"small" | "medium" | "large""medium"尺寸
disabledbooleanfalse禁用状态
loadingbooleanfalse加载状态
checkedTextstring-开启时文本
uncheckedTextstring-关闭时文本

数据展示组件

MdrTable

表格组件。

json
{
  "type": "MdrTable",
  "props": {
    "columns": [
      { "title": "姓名", "dataIndex": "name", "width": "150px" },
      { "title": "年龄", "dataIndex": "age", "align": "center" },
      { "title": "操作", "key": "action", "render": "..." }
    ],
    "dataSource": [],
    "pagination": { "pageSize": 10 },
    "bordered": true
  }
}
属性类型默认值描述
columnsArray[]列配置
dataSourceArray[]数据源
rowKeystring | function"id"行唯一标识
paginationobject | false-分页配置
borderedbooleanfalse显示边框
stripedbooleanfalse斑马纹
hoverablebooleantrue悬停高亮
loadingbooleanfalse加载状态
emptyTextstring"暂无数据"空数据文本
scroll-滚动配置

Column 配置:

属性类型描述
titlestring列标题
dataIndexstring数据字段
keystring唯一标识
widthstring列宽
align"left" | "center" | "right"对齐方式
renderMIR node自定义渲染
sorterboolean | function排序
filtersArray筛选选项
fixed"left" | "right"固定列

MdrCard

卡片组件。

json
{
  "type": "MdrCard",
  "props": {
    "title": "卡片标题",
    "cover": "/images/cover.jpg",
    "hoverable": true,
    "bordered": true
  },
  "children": ["卡片内容"]
}
属性类型默认值描述
titlestring-标题
coverstring-封面图片
hoverablebooleanfalse悬停效果
borderedbooleantrue显示边框
loadingbooleanfalse加载状态
paddingstring"16px"内边距

MdrList

列表组件。

json
{
  "type": "MdrList",
  "props": {
    "items": [],
    "bordered": false,
    "split": true
  }
}
属性类型默认值描述
itemsArray[]数据项
borderedbooleanfalse显示边框
splitbooleantrue显示分割线
size"small" | "medium" | "large""medium"尺寸

反馈组件

MdrModal

模态框组件。

json
{
  "type": "MdrModal",
  "props": {
    "open": false,
    "title": "标题",
    "width": "500px",
    "closable": true,
    "maskClosable": true
  },
  "events": {
    "onClose": { ... },
    "onConfirm": { ... }
  }
}
属性类型默认值描述
openbooleanfalse显示状态
titlestring-标题
widthstring"500px"宽度
closablebooleantrue显示关闭按钮
maskClosablebooleantrue点击遮罩关闭
centeredbooleanfalse垂直居中
footerMIR node | null-自定义底部
confirmTextstring"确定"确认按钮文本
cancelTextstring"取消"取消按钮文本
confirmLoadingbooleanfalse确认按钮加载

MdrAlert

警告提示组件。

json
{
  "type": "MdrAlert",
  "props": {
    "type": "info",
    "message": "提示信息",
    "description": "详细描述",
    "closable": true
  }
}
属性类型默认值描述
type"info" | "success" | "warning" | "error""info"类型
messagestring-标题
descriptionstring-描述
closablebooleanfalse可关闭
showIconbooleantrue显示图标
bannerbooleanfalse横幅模式

MdrTooltip

工具提示组件。

json
{
  "type": "MdrTooltip",
  "props": {
    "content": "提示内容",
    "placement": "top",
    "trigger": "hover"
  },
  "children": [...]
}
属性类型默认值描述
contentstring | MIR node-提示内容
placement"top" | "bottom" | "left" | "right""top"位置
trigger"hover" | "click" | "focus""hover"触发方式
delaynumber0显示延迟(ms)
arrowbooleantrue显示箭头

导航组件

MdrNav

导航组件。

json
{
  "type": "MdrNav",
  "props": {
    "items": [
      { "label": "首页", "path": "/" },
      { "label": "关于", "path": "/about" },
      {
        "label": "产品",
        "children": [
          { "label": "产品 A", "path": "/products/a" },
          { "label": "产品 B", "path": "/products/b" }
        ]
      }
    ],
    "mode": "horizontal"
  }
}
属性类型默认值描述
itemsArray[]导航项
mode"horizontal" | "vertical""horizontal"模式
activeKeystring-当前激活项
collapsedbooleanfalse折叠状态

MdrTabs

标签页组件。

json
{
  "type": "MdrTabs",
  "props": {
    "items": [
      { "key": "1", "label": "标签 1", "content": {...} },
      { "key": "2", "label": "标签 2", "content": {...} }
    ],
    "activeKey": "1"
  }
}
属性类型默认值描述
itemsArray[]标签项
activeKeystring-当前激活标签
type"line" | "card""line"样式类型
position"top" | "bottom" | "left" | "right""top"位置

MdrBreadcrumb

面包屑组件。

json
{
  "type": "MdrBreadcrumb",
  "props": {
    "items": [
      { "label": "首页", "path": "/" },
      { "label": "产品", "path": "/products" },
      { "label": "详情" }
    ],
    "separator": "/"
  }
}
属性类型默认值描述
itemsArray<{ label, path? }>[]面包屑项
separatorstring"/"分隔符

下一步

基于 MIT 许可证发布