np-form 栅格布局
np-form 始终使用栅格布局,表单项统一由 n-form-item-gi 渲染,默认 span 占满整行(24 列),因此视觉上与普通表单项一致。
通过 option.grid 可以配置 n-grid(列数、间距等),底部操作区同样占满整行。
grid.vue
响应式
option.grid 中的 cols、xGap、yGap 以及 formItemProps.span、formItemProps.offset 都支持响应式写法,格式为 '默认值 断点:值 ...'。断点可以直接写像素值,例如 '1 400:2 600:3' 表示默认 1 列、≥400px 2 列、≥600px 3 列。
也可以使用内置的命名断点 xs / s / m / l / xl / xxl(分别对应 0px / 640px / 1024px / 1280px / 1536px / 1920px),但必须显式设置 grid.responsive: 'screen';默认的 'self' 模式基于容器宽度(数值)匹配,命名断点不会生效。
响应式写法的默认值不要写
0:n-grid会直接跳过span为0的子项,导致该表单项不渲染。
响应式列数
列数随容器宽度变化时,表单项的 span 默认跟随 cols,也可以单独指定。
grid-responsive.vue
响应式 span
当 cols 保持固定列数(如 24)时,span 直接使用响应式写法即可,itemResponsive 已默认开启。
grid-span-responsive.vue
配置说明
option.grid直接透传给n-grid,常用配置:cols(列数,默认24)、xGap/yGap(水平 / 垂直间距),也支持collapsed、responsive及响应式写法(如'1 400:2 600:3')- 表单项占据的栅格数通过
formItemProps.span设置,左侧间隔通过formItemProps.offset设置,未指定span时默认占满整行 offset需与span搭配使用:n-grid会把offset换算成左外边距叠加在span上,只设置offset而不设置span(默认占满整行)会让整行右移并撑出容器,产生水平溢出;需要左侧留白时请同时指定span,例如{ span: 22, offset: 2 }itemResponsive默认开启,响应式span/offset开箱即用;传itemResponsive: false可关闭,但仅当cols/xGap/yGap均为固定数值时才会真正关闭,否则n-grid仍会按容器宽度解析span/offset- 底部操作区默认占满整行,可通过
footer.formItemProps.span覆盖
display: false的表单项(render自定义列除外)不会渲染内容,也不会占据栅格位置(但collapsed折叠行的溢出计算仍会将其计入);render自定义渲染的列会被自动包裹一层n-gi。
组件配置
FormOption Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| grid | 栅格布局配置,直接透传给 n-grid | object | - |
FormColumn Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| formItemProps.span | 栅格占据的列数 | number / string | 占满整行 |
| formItemProps.offset | 栅格左侧的间隔格数 | number / string | 0 |
