您的位置:首页 > 手游攻略 > 弹窗抽屉与消息提示体系:WebBuilder 窗口组件构建 ERP 全场景交互弹窗

弹窗抽屉与消息提示体系:WebBuilder 窗口组件构建 ERP 全场景交互弹窗

作者:互联网  时间: 2026-07-04 09:16:59  

在 ERP 系统开发中,新增单据、查看详情、批量编辑、流程审批、操作提醒、侧边筛选面板等交互场景,全部依赖弹窗、抽屉、消息提示组件承载。传统开发需要区分模态弹窗、非模态窗口、侧边抽屉、各类消息提示,单独封装 DOM、遮罩、动画、数据重置逻辑,代码冗余、交互不统一。

弹窗、抽屉与消息提示体系:WebBuilder 窗口组件构建 ERP 全场景交互弹窗

WebBuilder 内置完整的Window、Dialog、Drawer、Tip、Message、Toast、Tooltip全套弹窗交互组件,基于 XWL 声明式配置实现,支持动态创建窗口、自动重置表单、多层嵌套弹窗、四边侧滑抽屉、全局自定义共享提示,完美覆盖 ERP 采购 / 销售 / 生产 / 财务全业务弹窗交互需求,一套组件解决所有弹出层场景。

一、全品类弹出组件分类与 ERP 业务适配

基于提供的完整示例 XWL 代码,平台弹出层分为 7 大类,分别匹配 ERP 不同业务场景:

1. Window 浮动独立窗口(多开并行查看场景)

无强制遮罩,可拖拽、多窗口同时打开,适合并行查看多份单据详情、多 BOM 对比。

关键属性与业务价值:

instanced: false 模板窗口,支持 JS 动态新建多实例,批量打开多条订单详情;代码语言:javascript

复制

click(e, options){let win = app.dynamicNewWin;delete win.cid;win = Wb.create(win);win.show();}

ERP 场景:批量勾选多条采购订单,一键批量打开独立窗口并行查看;

2. closeAction: "destroy" 关闭即销毁,释放内存,大量弹窗场景优化性能;

3. resetDialog: true 隐藏窗口自动清空所有输入框值,无需手动写重置表单 JS;

ERP 高频场景:新增物料、新增供应商弹窗,关闭再打开自动清空上次填写内容;

4. modal: true 模态窗口,遮罩锁定父页面,强制用户完成操作再返回,用于必填审批、关键确认编辑。

2. Dialog 标准业务弹窗(ERP 最常用单据编辑弹窗)

固定居中弹窗,自带底部确认 / 取消按钮,用于 90% 单据新增、编辑、查看:采购订单编辑、BOM 编辑、客户档案弹窗。

支持自定义顶部菜单栏(新增 / 编辑 / 删除快捷按钮);支持多层嵌套弹窗,弹窗内再弹出子弹窗(单据内新增明细行弹窗);plainTitle、labelUp 自定义标题布局,适配紧凑表单弹窗。

3. Drawer 四边侧滑抽屉(侧边筛选、详情预览、功能工具栏)

支持上 / 下 / 左 / 右四个方向滑出,不阻断主页面完整视野:

左侧 Drawer:系统功能侧边导航、物料分类筛选树;右侧 Drawer:单据详情预览、客户完整信息侧边面板、报表筛选条件;顶部 Drawer:批量操作工具栏、全局筛选面板; 示例rightDrawer可直接改造为 ERP 单据右侧详情抽屉,点击表格行,右侧滑出完整订单信息,无需跳转页面。

4. 全局消息弹窗 Message(操作确认、风险提示)

提供多层级标准化消息 API,无需自定义弹窗,一行代码调用:

表格

方法

用途

ERP 业务场景

Wb.info()

普通提示

查询完成、筛选提示

Wb.succ()

成功提示

保存单据、审核完成、入库成功

Wb.warn()

警告提示

库存低于安全库存、单据未审核

Wb.error()

错误提示

编码重复、数量不足、保存失败

Wb.confirm()

二次确认弹窗

删除单据、作废订单、清空库存(高危操作)

Wb.choose()

多按钮选择弹窗

保存并新增 / 仅保存两种操作选择

支持自定义按钮、HTML 富文本内容、动画淡入淡出,高危删除操作强制二次确认,规避误操作风险。

5. Tip 轻量悬浮提示(按钮操作瞬时反馈)

页面角落短时自动消失提示,用于按钮点击即时反馈,保存、删除、提交后快速告知用户结果。

分级 API:Wb.tipSucc / tipWarn / tipError / tipDone,区分成功 / 警告 / 错误 / 完成状态。

6. Toast 全屏居中轻提示(全局弱提醒)

不打断操作,自动消失,用于后台异步任务进度提醒(如报表导出、批量同步完成)。

7. Tooltip 鼠标悬浮气泡提示(字段说明、按钮释义)

绑定在组件上,鼠标移入弹出说明,无需点击:物料编码规则、字段填写说明、按钮功能释义;

支持自定义复杂表单气泡,可嵌入输入框、按钮,甚至全局共享统一提示模板(示例myShareTip全局共用提示组件,统一样式,减少重复配置)。

二、核心特色能力,解决 ERP 弹窗开发传统痛点

1. 动态批量创建窗口,并行多单据查看

传统开发多窗口需要手动拼接 DOM、管理实例,WebBuilder 通过模板窗口instanced: false配合Wb.create()快速生成独立窗口实例,实现多订单、多物料并行对比查看。

2. 表单自动重置,省去大量清空脚本

resetDialog: true属性开启后,窗口隐藏时自动清空所有 text/number/date 输入框,ERP 新增弹窗无需手写ds.clear()重置逻辑,大幅减少 JS 代码量。

3. 全局共享自定义提示,统一系统 UI 风格

在模块initialize生命周期全局注册共享 Tip 实例,所有页面组件可复用同一份提示样式:

代码语言:javascript

复制

events: {initialize(options){Wb.apply(app, {myShareTip: new Wb.Tip({cls: 'w-error-color', fontSize: '1.5em',events: {beforetip(comp) { this.text = '提示:' comp.cid; }}})});}}

所有组件通过 tip:"@app.myShareTip" 复用,全系统提示样式统一,后期修改仅改一处。

4. 四边位 Drawer 抽屉,兼顾详情预览与主页面操作

右侧抽屉查看单据详情时,主表格页面仍可滚动、筛选,兼顾 “浏览明细 批量操作” 复合场景,是 ERP 列表页面提升操作效率的核心组件。

5. 多层弹窗嵌套无层级错乱

Dialog 内可继续打开新 Dialog、Window,平台自动管理 z-index 层级,审批弹窗、明细弹窗多层嵌套不会出现遮罩错位、弹窗被遮挡问题。

三、ERP 采购订单编辑弹窗完整落地示例(Dialog 标准业务模板)

基于示例 Dialog 组件改造,可直接导入 WebBuilder,包含表单、顶部操作菜单、嵌套子弹窗、自动重置能力:

代码语言:javascript

复制

({cname: "module",cid: "erp_purchase_order_win",title: "采购订单弹窗模块",events: {initialize(options){// 全局共享提示组件Wb.apply(app, {orderTip: new Wb.Tip({cls: 'w-normal-color', fontSize: '1em',events: {beforetip(comp){this.text = comp.text "填写规范:编码不可重复,数量大于0";}}})});}},items : [{cname: "array",cid: "winTemplates",items : [{// 采购订单主编辑弹窗cname: "dialog",cid: "purchaseOrderDialog",title: "采购订单编辑",layout: "grid1",resetDialog: true, // 关闭自动清空表单width: "75em",height: "55em",// 弹窗顶部操作菜单menu: {cname: "menu",cid: "topMenu",isProperty: true,items : [{cname: "item",icon: "add",text: "新增明细",events: {click(){ app.orderLineDialog.show(); }}},{cname: "item",icon: "delete",text: "删除选中明细"},{cname: "divider"},{cname: "item",icon: "print",text: "打印订单"}]},items : [{// 基础头部字段cname: "text",cid: "orderCode",text: "采购单号",required: true,tip: "@app.orderTip"},{cname: "select",cid: "supplierId",text: "供应商",url: "erp_supplier?xaction=listSupplier",required: true},{cname: "date",cid: "orderDate",text: "下单日期",required: true},{cname: "textArea",cid: "remark",text: "备注说明"},// 物料明细表格{cname: "grid",cid: "orderLineGrid",title: "物料明细",height: "30em",columns: [{text:"物料编码",field:"matCode"},{text:"物料名称",field:"matName"},{text:"采购数量",field:"qty"},{text:"单价",field:"price"},{text:"金额",field:"amt"}]},// 弹窗内打开明细新增子弹窗按钮{cname: "button",cid: "addLineBtn",text: "新增物料明细",type: "primary",onClick: "app.orderLineDialog.show()"}]},// 明细嵌套子弹窗{cname: "dialog",cid: "orderLineDialog",title: "添加采购物料",layout: "grid1",width: "50em",resetDialog: true,items : [{cname: "text", cid:"matCode", text:"物料编码", required:true},{cname: "number", cid:"qty", text:"采购数量", minValue:0.01, required:true},{cname: "number", cid:"price", text:"单价", minValue:0}]},// 右侧详情抽屉{cname: "drawer",cid: "orderDetailDrawer",dockPosition: "right",width: "45vw",title: "订单完整详情预览",items: [{cname: "component", html: "展示订单全流程信息、入库记录、付款记录"}]}]},{cname: "viewport",cid: "mainView",layout: "grid1",items : [{cname: "label",text: "采购订单弹窗交互演示",cls: "w-title3"},{cname: "button",text: "新增采购订单",events: {click(){ app.purchaseOrderDialog.show(); }}},{cname: "button",text: "查看订单侧边详情抽屉",events: {click(){ app.orderDetailDrawer.show(); }}},{cname: "button",text: "删除订单测试确认弹窗",events: {click(){Wb.confirm("确认删除该采购订单?删除后无法恢复", ()=>{Wb.succ("订单删除成功");});}}}]}]})

四、各组件在 ERP 系统中的落地价值汇总

Dialog 标准弹窗 统一所有单据新增 / 编辑入口,自带自动表单重置、顶部操作菜单、多层嵌套,一套模板复用采购、销售、库存、生产全部单据,减少 90% 弹窗页面开发量。Window 浮动窗口 支持多开并行对比多张单据,适合工程 BOM、多订单核对场景,提升运营、采购人员多任务处理效率。Drawer 侧滑抽屉 列表页无需跳转即可预览完整单据信息,侧边常驻筛选面板,减少页面来回切换,优化操作链路。全局消息 API 标准化成功 / 失败 / 警告 / 确认提示,高危操作强制二次确认,规范全系统交互反馈,降低用户误操作概率。Tooltip 悬浮提示 字段填写规则、功能说明悬浮展示,减少页面文字说明,界面简洁,降低新员工学习成本。全局共享 Tip 统一全系统提示 UI 样式,一处修改全局生效,保证 ERP 整套系统视觉一致性,维护成本极低。

五、对比传统开发 / 通用低代码平台优势

对比维度

WebBuilder 弹窗组件体系

传统前后端分离开发

普通拖拽低代码平台

自动表单重置

resetDialog 属性零代码实现

每个弹窗单独写 JS 清空表单,重复代码极多

无自动重置,关闭弹窗数据保留,需手动清除

动态多窗口创建

模板 Wb.create 一行生成实例

手动管理窗口 DOM、实例、销毁逻辑,大量 JS

不支持动态批量创建窗口

四边位侧滑抽屉

原生 Drawer 组件,上下左右四种滑出

需手写 CSS 动画、遮罩、定位,兼容性差

仅支持右侧抽屉,无上下 / 左侧布局

多层弹窗嵌套

自动管理 z-index 层级,无遮挡错乱

手动控制层级,多层弹窗极易出现遮罩错位

仅支持单层弹窗,弹窗内不能再打开弹窗

全局共享提示模板

initialize 全局注册,全页面复用

每个页面单独定义提示样式,UI 不统一

无法自定义全局共享提示组件

标准化消息 API

内置 succ/confirm/warn 全套方法,富文本支持

封装统一消息组件需要单独开发底层库

仅简单成功提示,无二次确认、自定义多按钮弹窗

六、结语

弹窗、抽屉、消息提示是 ERP 系统用户交互的基础载体,交互体验、开发效率直接影响整套系统落地周期与员工使用感受。WebBuilder 整合 Window/Dialog/Drawer/Tip/Message/Tooltip 全套弹出层组件,依托 XWL 声明式配置,将动态窗口、自动表单重置、侧边滑出、全局统一提示等高阶能力开箱即用,无需封装底层交互逻辑。

基于这套完整弹窗体系,开发人员可以快速搭建采购、销售、库存、生产、财务全业务单据弹窗,兼顾多窗口并行查看、侧边快速预览、高危操作风险管控等复杂业务交互需求,在保证交互统一、数据安全的前提下,大幅降低 ERP 前端交互页面开发与维护工作量。

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4