
摘要
企业后台页面结构繁杂:顶部操作工具栏、多列数据卡片、多行录入表单、左右分栏详情面板、侧边抽屉菜单、居中弹窗提示、全屏数据大屏等场景,90% 开发人员存在布局选型混乱问题 —— 用 Grid 做单行按钮栏、用 Row 做多列表单、复杂分栏多层嵌套冗余容器,导致页面 XWL 代码臃肿、维护困难、自适应错乱。本文基于 WebBuilder 官方完整 Layout 示例源码,拆解 row、column、grid、grid1/3/5、form/form1、fit、center/middle/hmiddle/vmiddle 九类布局的适用边界,划分工具栏、表单录入、数据看板、分栏分割、弹窗抽屉、居中提示、全屏大屏七大类企业后台标准业务场景,给出每类场景唯一推荐布局、标准 XWL 模板、可直接复制复用代码,同时整理布局嵌套规范、gap/padding/flex 参数标准化配置,覆盖 OA、CRM、制造 MES、政务台账、数据驾驶舱全行业页面落地实战需求,新手可直接对照场景选用对应布局,资深开发者统一团队页面布局编码标准。
gap:true、有的写gap:".5em",padding 内边距无统一规范,不同开发人员页面视觉割裂;flex 比例随意分配,1fr、2fr 无固定规范,页面自适应效果参差不齐;WebBuilder 内置九类标准化布局容器,每一类都针对固定业务场景深度封装,不存在万能通用布局,场景与布局一一对应是高效开发、统一 UI、简化代码的核心前提。本文结合官方示例所有 demo,划分全行业后台标准页面场景,明确每种场景最优布局、禁用布局、标准参数写法、完整 XWL 模板。
核心特性:主轴水平排列子组件,支持 flex 弹性占比、flexWrap 自动换行、justify 水平对齐、align 垂直对齐、fill 空白占位、自定义 gap 间距;示例包含普通单行 row、自动换行 row、居中对齐 row、两端均分 space-between、空白 fill 填充 row 五大 demo,是页面横向一维排布首选。
推荐适用场景:页面顶部操作工具栏、表格批量操作按钮组、弹窗底部保存取消按钮行、多标签水平切换栏、搜索条件单行筛选栏;
禁用场景:多列录入表单、二维数据卡片网格、垂直侧边菜单、全屏分栏面板;
标准参数规范:
layout:"row", gap:".5em", align:"center",按钮统一垂直居中;layout:"row", flexWrap:true, gap:".5em", padding:true;layout:"row", justify:"space-between", align:"center";<cname:"fill"/>占位组件,无需空容器填充空白。核心特性:主轴垂直排列子组件,flex 控制垂直高度占比,支持 align 水平对齐,适配垂直一维排布;示例 columnCt 纵向按钮组 demo。
推荐适用场景:抽屉侧边垂直功能菜单、弹窗左侧分步导航、页面左侧树形筛选栏、表单内垂直按钮组;
禁用场景:水平按钮工具栏、多列网格卡片、水平录入表单;
标准参数规范:layout:"column", gap:".5em", padding:true,弹性组件设置flex:1自动填充剩余垂直高度。
包含通用 grid、固定 1 列 grid1、3 列 grid3、5 列 grid5 四大细分网格,支持 gridColumn 跨列、gridRow 跨行、tableStyle 表格边框、fill 空白网格占位、自定义 gridTplRows 行高度模板;示例 gridCt 基础网格、grid5Ct 五列复杂跨行列、gridTableStyleCt 表格边框网格、gridLastRowAutoFitCt 自适应底部网格。
推荐适用场景:多列客户 / 设备数据卡片看板、多列基础信息录入表单、统计指标网格面板、表格样式台账页面;
细分选型规范:
tableStyle:true自动生成单元格分割边框;
禁用场景:单行水平工具栏、垂直侧边菜单、全屏唯一图表 / 表格;
标准参数规范:卡片网格统一gap:".8em", padding:"1em",表单网格gap:".5em", padding:true。form:水平两列标签 + 输入框布局;form1:垂直弹性表单,文本域 flex 自适应高度;示例 formCt 通用表单、form1Ct 垂直自适应文本域表单。
推荐适用场景:新增编辑弹窗主表单、基础信息录入页面、审批流程填写表单;
细分选型:短字段少表单用 form 水平布局,长文本、多行输入、高度自适应场景用 form1 垂直布局;
禁用场景:数据卡片网格、单行按钮工具栏、全屏大屏;
标准参数规范:form1 布局内 textArea 文本域固定配置flex:1, minHeight:"3em",自动占满表单剩余高度。
核心特性:容器内仅第一个子组件自动填满容器全部宽高,忽略其余子组件;示例 fitCt 单按钮填满容器 demo。
推荐适用场景:页面主内容区、抽屉内部唯一表格 / ECharts 图表、弹窗内全屏树形 tree、分割面板中心主区域;
禁用场景:多子组件排布、表单录入、多按钮工具栏;
标准参数规范:layout:"fit", padding:"1em",内部仅放置单个核心业务组件(grid/chart/tree)。
首选布局:layout:"row"
禁用 grid/column,单行一维排布 row 性能最优,代码简洁;
标准需求:左侧新增、编辑、删除按钮,中间空白 fill 占位,右侧导出、打印按钮,按钮垂直居中,间距统一 0.5em;
完整复用 XWL 模板:
{
cname: "container",
cid: "toolbarRow",
layout: "row",
gap: ".5em",
align: "center",
padding: true,
items: [
{cname:"button",cid:"addBtn",text:"新增",type:"primary"},
{cname:"button",cid:"editBtn",text:"编辑"},
{cname:"button",cid:"delBtn",text:"删除"},
{cname:"fill"},
{cname:"button",cid:"exportBtn",text:"导出Excel"},
{cname:"button",cid:"printBtn",text:"打印"}
]
}适配:客户管理、采购订单、设备台账所有列表页面顶部工具栏。
首选布局:短字段用 form,长文本多行输入用 form1
禁用 row、grid,form 系列原生适配标签 + 输入框,无需手动对齐;
form1 垂直自适应表单标准模板(弹窗内通用):
{
cname: "container",
cid: "editFormCt",
layout: "form1",
frame: false,
height: "15em",
resizable: true,
items: [
{cname:"text",cid:"name",text:"名称",required:true},
{cname:"text",cid:"code",text:"编码",required:true},
{cname:"textArea",cid:"remark",text:"备注",flex:1,minHeight:"3em"}
]
}适配:供应商编辑、工单新增、用户信息弹窗表单。
首选布局:grid5 / 通用 grid,开启 tableStyle 做台账表格
禁用 row、fit,二维网格均匀分配卡片空间;
五列卡片看板标准模板:
{
cname: "container",
cid: "cardGrid",
layout: "grid5",
gap: ".8em",
padding: "1em",
frame: true,
items: [
{cname:"container",layout:"fit",text:"卡片1",frame:true},
{cname:"container",layout:"fit",text:"卡片2",frame:true},
{cname:"container",layout:"fit",text:"卡片3",frame:true,gridColumn:"span 3"},
{cname:"container",layout:"fit",text:"卡片4",frame:true},
{cname:"container",layout:"fit",text:"卡片5",frame:true}
]
}适配:生产指标大屏、客户统计看板、设备状态监控页面。
首选组合:外层 column 垂直分栏,中层 row 水平分栏,内部 fit 承载核心内容
参考官方示例rowColBordersCt分割布局 demo,上下 top-middle-bottom 三层,中间 row 左中右三栏,每一栏内部 fit 放置表格、树形、图表;
分层嵌套规范:最多三层嵌套(外层 column→中层 row→内层 fit),禁止四层及以上嵌套容器,简化代码、提升解析速度。
适配:左侧树形筛选 + 右侧数据表格、顶部工具栏 + 中间主表格 + 底部明细、侧边抽屉菜单 + 主内容面板。
首选组合:外层 column 垂直菜单,主内容 fit 填满
抽屉 dockPosition:right/left,外层 layout:"column" 垂直功能按钮,底部 fit 放置详情表格;
禁用 grid、form,抽屉空间狭窄,一维纵向排布最优。
首选布局:fit 填满容器
页面 viewport 内部唯一 container layout:"fit",内部放置 ECharts 图表、大数据 grid 表格,自动填满页面全部可视区域,无留白浪费空间;
禁用 grid、row,多余行列计算占用性能。
首选布局:middle 居中容器
表格无数据、页面无内容时,使用 layout:"middle" 容器包裹提示文本,水平垂直居中展示,不裁剪长提示文字;
禁用 center(长文本会被裁剪)。
页面容器嵌套最多三层,层级模板固定:
一级:viewport(页面根容器,layout 固定 grid1 单列);
二级:业务分栏容器(row/column/grid);
三级:内容承载容器(fit/form/ 单行 row 工具栏);
禁止四级及以上 container 嵌套,多余嵌套直接合并、删除空容器,简化 XWL 代码,降低页面解析耗时。
gap:".5em", padding:true;gap:".5em", padding:true;gap:".8em", padding:"1em";gap:".5em", padding:"1em";
禁止无规范随机填写 gap 数值(1em、0.3em、true 混用),全局统一间距参数,整套系统视觉一致。<cname:"fill"/>组件,不设置组件 flex:999 占位;flex:"2 0 12em"(示例标准写法);flex:1, minHeight:"3em",统一最小高度。仅复杂多组件容器开启 autoScroll,fit、单行 row 工具栏禁止开启滚动;表格、tree 自身内置滚动,外层容器不重复开启 autoScroll,避免双层滚动条 BUG。
错误写法:layout:"grid3" 放置单行按钮;
解决方案:替换为 layout:"row" 一维弹性布局,一行代码实现对齐、换行、空白填充。
错误写法:多个 row 嵌套实现两列表单;
解决方案:直接使用 layout:"form" 原生表单布局,自动标签对齐,减少 50% 代码量。
错误写法:抽屉内部 grid 容器承载表格,固定宽度留白;
解决方案:抽屉内层添加 layout:"fit" 容器,表格自动填满抽屉全部宽度。
解决方案:遵循三层嵌套规范,删除无 frame、无特殊参数的空 container,合并同级布局容器。
解决方案:长文本居中替换为 layout:"middle",不开启溢出裁剪。
业务页面场景 | 首选布局 | 禁止使用布局 | 标准核心参数 |
|---|---|---|---|
列表顶部按钮工具栏 | row | grid、column | gap:".5em", align:"center" |
弹窗新增编辑表单 | form/form1 | row、grid | form1 文本域 flex:1 minHeight:"3em" |
多列数据统计卡片看板 | grid5/grid | row、fit | gap:".8em", padding:"1em" |
左右 / 上下分栏复合页面 | column 外层 + row 中层 + fit 内层 | 单层 grid 多层嵌套 | gap:".5em", padding:"1em" |
侧边抽屉垂直功能菜单 | column | grid、form | gap:".5em", padding:true |
全屏图表、单表格大屏 | fit | grid、row | padding:"1em" |
空数据、空白页面居中提示 | middle | center | frame:false |
台账表格样式明细页面 | grid3 + tableStyle:true | row、form | gap:".5em" |
WebBuilder 九类布局容器各司其职,不存在通用万能布局,页面开发核心是场景匹配对应布局,杜绝容器混用、无意义多层嵌套、参数不规范三大问题。本文基于官方完整 Layout 示例源码,划分七类企业后台高频业务场景,提供可直接复制的标准化 XWL 模板,同时制定统一嵌套、gap、flex 编码规范,适用于团队多人协作统一 UI 与代码风格,覆盖 OA、CRM、制造 MES、政务台账、数据驾驶舱全行业落地实战。开发者按照场景选型规范开发,可减少 60% 布局调试时间,页面 XWL 代码精简 40%,整套系统页面视觉、交互高度统一,后期迭代维护成本大幅降低
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。