Skip to content

ProDescriptions 描述列表 ​

ProDescriptions 描述列表 的基础用法、公开 API 与示例。

基础示例 ​

示例使用本地演示数据;上传、校验和提交不会连接业务后端。

引入方式 ​

ts
import { ProDescriptions } from "@/components/pro/descriptions";

Props ​

参数说明类型默认值必填
border是否显示边框。boolean-否
data描述列表数据,如果传入该配置项且有数据,则不会执行 api 请求object{}否
requestApi请求数据的 api(data?: Recordable) => Promise<unknown>undefined否
defaultRequestParams默认请求参数Recordable{}否
transformData对请求成功的数据进行处理(data: Recordable, result?: unknown) => unknown-否
columns描述列表列配置LooseDescriptionColumn[][]否
descriptionsItemProps描述列表 DescriptionItem 全局配置Partial<DescriptionItemProps>{}否
card是否使用卡片背景booleanfalse否
editable描述列表整体是否为编辑态booleanfalse否
editButton是否显示编辑按钮booleanfalse否
editText编辑按钮文案[string, string]["编辑", "退出编辑"]否
formPropsProForm PropsDescriptionColumn["formProps"]{}否
showReset是否显示重置按钮booleantrue否
submitText提交按钮文字string"提交"否
resetText重置按钮文字string"重置"否
submitLoading提交按钮 loadingbooleanfalse否
footerAlign底部按钮对齐方式"left" | "center" | "right""left"否
footerStyle底部按钮组样式CSSProperties{}否
validate是否使用内置的表单校验功能booleantrue否
modelValue组件双向绑定值。Recordable() => reactive({})否

Events ​

事件名说明回调参数
register注册事件proDescriptionsInstance: unknown
formChange表单值改变事件value: unknown, prop: string, model: Recordable, column: FormItemColumnProps
edited进入编辑态事件-
editedCancel退出编辑态事件-
submit提交按钮事件model: Recordable, closeEdited: () => void
reset重置按钮事件model: Recordable, closeEdited: () => void
update:modelValue双向绑定值更新时触发。value: Recordable

Slots ​

插槽名说明参数
default默认内容插槽。-
动态插槽(${column.prop}-label)动态转发当前组件收到的同名插槽。label

Expose ​

名称说明类型
model暴露 model 给外部调用。-
optionsMap暴露 optionsMap 给外部调用。-
proFormInstances暴露 proFormInstances 给外部调用。-
setValues暴露 setValues 给外部调用。-
setProps动态设置组件属性。-
setColumn动态设置列配置。-
addColumn动态新增列配置。-
delColumn动态删除列配置。-
openEdited暴露 openEdited 给外部调用。-
closeEdited暴露 closeEdited 给外部调用。-
handleReset暴露 handleReset 给外部调用。-
handleSubmit暴露 handleSubmit 给外部调用。-
getProFormInstances暴露 getProFormInstances 给外部调用。-
getElFormInstance获取查询表单实例。(prop: string) => {<br> const proFormInstance = proFormInstances.value[prop];<br> return proFormInstance!.elFormInstance;<br> }
getElFormItemInstance获取查询表单项实例。(prop: string) => {<br> const proFormInstance = proFormInstances.value[prop];<br> return proFormInstance!.proFormMainInstance?.getElFormItemInstance(prop);<br> }
getElInstance获取内部组件实例。(prop: string) => {<br> const proFormInstance = proFormInstances.value[prop];<br> return proFormInstance!.proFormMainInstance?.getElInstance(prop);<br> }

Module API ​

名称说明类型
ProDescriptions导出 ProDescriptions 供业务侧复用。useInstall(index)

Types ​

ProDescriptionsProp ​

PropDescriptions 组件的 Props

字段说明类型默认值必填
border是否显示边框。boolean-否
data描述列表数据,如果传入该配置项且有数据,则不会执行 api 请求object-否
requestApi请求数据的 api(data?: Recordable) => Promise<unknown>-否
defaultRequestParams默认请求参数Recordable-否
transformData对请求成功的数据进行处理(data: Recordable, result?: unknown) => unknown-否
columns描述列表列配置LooseDescriptionColumn[]-否
descriptionsItemProps描述列表 DescriptionItem 全局配置Partial<DescriptionItemProps>-否
card是否使用卡片背景boolean-否
editable描述列表整体是否为编辑态booleanfalse否
editButton是否显示编辑按钮booleantrue否
editText编辑按钮文案[string, string]'["编辑", "退出编辑"]'否
formPropsProForm PropsDescriptionColumn["formProps"]-否
showReset是否显示重置按钮booleantrue否
submitText提交按钮文字string'提交'否
resetText重置按钮文字string'重置'否
submitLoading提交按钮 loadingbooleanfalse否
footerAlign底部按钮对齐方式"left" | "center" | "right"'right'否
footerStyle底部按钮组样式CSSProperties-否
validate是否使用内置的表单校验功能booleantrue否

LooseDescriptionColumn ​

组件边界使用的宽松描述列配置,擦除具体业务数据模型。

字段说明类型默认值必填
renderLabel标签渲染回调,组件内部按实际列配置收窄后调用。unknown-否
render内容渲染回调,组件内部按实际列配置收窄后调用。unknown-否
renderHTMLHTML 渲染回调,组件内部按实际列配置收窄后调用。unknown-否
formatValue值格式化回调,组件内部按实际列配置收窄后调用。unknown-否
elSlots组件插槽回调,组件内部按实际列配置收窄后调用。unknown-否
elProps展示组件属性,组件内部按实际列配置收窄后调用。unknown-否
transformOption字典选项转换回调,组件内部按实际列配置收窄后调用。unknown-否

DescriptionColumn ​

描述列表配置项

字段说明类型默认值必填
prop唯一键FormItemColumnProps["prop"]-否
label标签MaybeRefOrGetter<string>-否
span列的数量MaybeRef<number> | ((editable: boolean) => number)-否
rowSpan单元格应该跨越的行数MaybeRef<number> | ((editable: boolean) => number)-否
width列的宽度MaybeRef<string | number> | ((editable: boolean) => string | number)-否
minWidth列的最小宽度MaybeRef<string | number> | ((editable: boolean) => string | number)-否
labelWidth列标签宽MaybeRef<string | number> | ((editable: boolean) => string | number)-否
hidden是否隐藏MaybeRefOrGetter<boolean>false否
options字典枚举数据FormItemColumnProps["options"]-否
optionCache是否缓存字典数据booleantrue否
optionsProp指定 Options 的 key,如果设置了则优先从缓存获取对于 key 的 Options 数据string-否
optionField字典指定 label && value && children 的 key 值FormItemColumnProps["optionField"]'{ label: "label", value: "value", children: "children", disabled: "disabled" }'否
transformOption自定义当前 option 选项(value: unknown, options: ElOption[], data: Recordable) => ElOption-否
order排序(从大到小)number-否
renderLabel自定义 label 渲染BivariantCallback<[scope: DescriptionsRenderParams<T>], RenderTypes>-否
render自定义内容渲染BivariantCallback<[scope: DescriptionsRenderParams<T>], RenderTypes>-否
renderHTML自定义内容渲染(HTML 格式)BivariantCallback<[scope: DescriptionsRenderParams<T>], string>-否
formatValue自定义内容BivariantCallback<[value: unknown, scope: DescriptionsRenderParams<T>], string | number>-否
editable是否为编辑态booleanfalse否
formPropsProForm PropsMaybeRefOrGetter<<br> Omit<<br> ProFormNamespace.Props,<br> | "columns"<br> | "flexLayout"<br> | "showLabel"<br> | "showFooter"<br> | "rowProps"<br> | "colProps"<br> | "showReset"<br> | "submitText"<br> | "resetText"<br> | "submitLoading"<br> | "footerAlign"<br> | "preventNativeSubmit"<br> ><br> >-否
formColumnProFormItem Props,等于 ProForm 的单个 columnMaybeRefOrGetter<Omit<FormItemColumnProps, "prop" | "label" | "options" | "optionField">>-否
elSlotsel 组件的插槽{<br> [slotName: string]: BivariantCallback<[data: DescriptionsRenderParams<T> & Recordable], RenderTypes>;<br> }-否

ProDescriptionsEmits ​

ProDescriptions 事件

字段说明类型默认值必填
register注册事件[proDescriptionsInstance: unknown]-是
formChange表单值改变事件[value: unknown, prop: string, model: Recordable, column: FormItemColumnProps]-是
edited进入编辑态事件[]-是
editedCancel退出编辑态事件[]-是
submit提交按钮事件[model: Recordable, closeEdited: () => void]-是
reset重置按钮事件[model: Recordable, closeEdited: () => void]-是

FormItemColumnProps ​

ProFormItem 的 props

字段说明类型默认值必填
propElFormItem 的 prop 属性,当表单数据 model 为对象时,prop 也是 model 的 keystring-否
label标签,ElFormItem 的 label 属性MaybeRef<string | number> | BivariantCallback<[model: T], string | number>-否
showLabel是否显示 labelMaybeRefOrGetter<boolean>true否
width表单组件宽度MaybeRefOrGetter<string | number>-否
el使用的表单组件名MaybeRefOrGetter<FormElType>'ElInput'否
elProps表单组件的 Props,即会透传到表单组件MaybeRefOrGetter<FormElProps> | BivariantCallback<[model: T], FormElProps>-否
elSlots表单组件的插槽{<br> [slotName: string]: BivariantCallback<[data: FormItemRenderParams<T> & Recordable], RenderTypes>;<br> }-否
options字典枚举数据| string[]<br> | MaybeRef<ElOption[] | object[]><br> | Promise<ElOption[] | object[]><br> | BivariantCallback<<br> [optionsParams: OptionsParams<T>],<br> | ElOption[]<br> | object[]<br> | Record<string, ElOption[] | object[]><br> | Promise<ElOption[] | object[] | Record<string, ElOption[] | object[]>><br> >-否
optionField字典指定 label && value && children 的 key 值ElOptionField'{ label: "label", value: "value", children: "children", disabled: "disabled" }'否
formItemPropsElFormItem propsMaybeRefOrGetter<ElFormItemProps>-否
clearable是否显示清除按钮booleantrue否
tooltipLabel 右侧 ElToolTip 提示| MaybeRefOrGetter<string><br> | ({<br> icon?: Component; // ElTooTip 绑定的元素图标<br> render?: () => RenderTypes; // 自定义 ElTooTip 绑定的元素,将会覆盖图标,传入 ElTooTip 的 default 插槽里<br> contentRender?: () => RenderTypes; // 自定义 ElTooTip 的内容,传入 ElTooTip 的 content 插槽里<br> } & Partial<ElTooltipProps>)-否
valueFormat表单绑定的值格式,场景:select 下拉 value 为 "1",而 value 值是 1 导致无法匹配,可以设置为 valueFormat: "string" 解决"string" | "number" | "boolean" | ((value: unknown) => unknown)-否
returnFullPath对于 el-tree-select 组件,是否返回完整路径 当设置为 true 时,选择子节点会返回从根节点到选中节点的完整路径数组 例如:选择 "马来一期" 会返回 ["马来项目", "马来一期"]booleanfalse否
editable是否为编辑态MaybeRefOrGetter<boolean>true否
renderLabel自定义 label 标题BivariantCallback<[scope: FormItemRenderParams<T>], RenderTypes>-否
renderLabelHTML自定义 Label 内容渲染(返回 HTML),优先级低于 render,高于插槽BivariantCallback<[scope: FormItemRenderParams<T>], string>-否
render自定义渲染 el-form-item 下的表单组件BivariantCallback<[scope: FormItemRenderParams<T>], RenderTypes>-否
parse解析 model 中的值为组件需要的格式(在读取时调用) 使用场景:后端返回逗号分隔的字符串 "1,2,3",需要解析为数组 ['1','2','3'] 供 el-select 多选使用 示例:parse: (value) => typeof value === 'string' ? value.split(',') : value(value: unknown) => unknown-否
format格式化最终表单提交的值(在设置到 model 之前调用) 使用场景:el-select 多选返回数组 ['1','2','3'],需要格式化为逗号分隔的字符串 "1,2,3" 提交给后端 示例:format: (value) => Array.isArray(value) ? value.join(',') : value 注意:parse 和 format 通常配对使用,形成双向转换(value: unknown) => unknown-否

API 根据当前组件源码生成;同步版本与验证记录见维护说明。