Skip to content

StepsForm 分步表单

xy-steps-form 用来把“基础信息 -> 补充配置 -> 提交确认”这类分阶段表单流拉成稳定骨架。

基础用法

先在页面内跑通步骤流,再逐步往每一步里补更完整的字段与校验。

当前模式
编辑录入
发布反馈
尚未完成提交流程。

抽屉内运行同一套步骤流

当需要保留当前列表上下文时,可以把同一套步骤流放进抽屉容器中运行,而不是继续拆出独立的抽屉分步表单心智。

批量导入发布

账单模板已经校验完成,接下来需要补齐审批链后才能正式下发到工作台。

当前定位

  • 负责步骤切换、上一步下一步和最终提交的编排。
  • 适合需要拆阶段认知负担的后台录入流程。

当前边界

  • 当前支持 placement="page" | "drawer" 两种承载方式,但不包含分支步骤、跨步回填策略和请求层保存草稿。
  • 更复杂的向导式流程仍然建议放到页面级容器中处理。
  • 当步骤流进入复核/查看阶段时,可以直接开启 readonly,每一步会复用统一只读显示协议,而不是继续渲染禁用输入控件。

StepsForm API

StepsForm Attributes

属性说明类型默认值
model表单数据对象,所有步骤共享Record<string, unknown>-
steps步骤配置数组StepsFormStep[][]
placement承载容器'page' / 'drawer''page'
open抽屉模式下是否打开,受控模式booleanfalse
title标题,缺省时为「分步表单」string''
active当前步骤索引,受控模式numberundefined
default-active默认步骤索引,非受控模式使用number0
loading是否处于加载中booleanfalse
readonly是否只读,只读时复用只读详情展示协议booleanfalse
readonly-descriptions-props只读详情描述列表配置Omit<DescriptionsProps, 'items' / 'title' / 'extra'>{}
submitting是否提交中booleanfalse
next-text下一步按钮文案string'下一步'
prev-text上一步按钮文案string'上一步'
submit-text提交按钮文案string'提交'
drawer-props透传给内部 xy-drawer 的配置Omit<Partial<DrawerProps>, 'modelValue' / 'title'>{}

StepsFormStep Attributes

属性说明类型默认值
key步骤唯一标识string-
title步骤标题string-
description步骤描述string-
schema该步骤的字段配置数组ProFieldSchema[]undefined

StepsForm Events

事件名说明参数
update:active步骤索引变化时派发(value: number) => void
update:open抽屉开合状态变化时派发(value: boolean) => void
step-change步骤切换后派发(value: number) => void
next进入下一步成功后派发,携带新索引(value: number) => void
prev返回上一步成功后派发,携带新索引(value: number) => void
submit最后一步校验通过后派发,携带 model 深拷贝快照(payload: Record<string, unknown>) => void
cancel点击抽屉底部关闭按钮时派发并关闭抽屉() => void
closed抽屉关闭动画结束后派发() => void

StepsForm Slots

插槽说明接收参数
default自定义当前步骤表单内容{ step, active }
footer自定义抽屉底部动作区,仅 placement="drawer" 时可用-

StepsForm Exposes

名称类型说明
next() => Promise<void>校验当前步骤后进入下一步,最后一步无效
prev() => Promise<void>返回上一步,第一步无效
submit() => Promise<void>校验后派发 submit 事件
close() => void关闭抽屉,触发 update:openfalse