如何实现从页面右侧滑动弹窗原创
9人赞赏了该文章
1,061次浏览
编辑于2023年02月15日 15:14:02
关键词:右侧,滑动弹窗
一、需求
需要弹出页面是从系统右侧滑动弹窗,类似登录页面点击头像弹出页面的效果。
二、思路与方案
在单据列表界面或者单据界面,点击某个按钮,从系统右侧滑动弹窗动态表单或者其他类型的页面,需要在单据界面或者单据列表界面afterBindData方法中提前将需要弹出的页面绑定,在点击事件中进行展示。
三、实现过程
3.1首先通过开发平台创建一个单据页面(kdec_230210),如下图3.1所示
图3.1
3.2切换列表设计界面,添加一个测试按钮如图3.2所示
图3.2
3.3通过开发平台创建一个需要弹出的页面,示例创建了一个动态表单页面(kdec_dynamic1109)如图3.2所示
图3.3
3.4编写插件类,将插件类注册到单据列表界面的插件 如图3.4
public class TestRightPluging extends AbstractListPlugin { @Override public void registerListener(EventObject e) { super.registerListener(e); this.addItemClickListeners("kdec_baritemap"); } @Override public void afterBindData(EventObject e) { super.afterBindData(e); Map<String, Object> map = new HashMap<>(); map.put("direction", "right"); // 弹出方向为右边 map.put("formId", "kdec_dynamic1109"); IClientViewProxy proxy = (IClientViewProxy) this.getView().getService(IClientViewProxy.class); proxy.addAction(ClientActions.setSlideBillFormId, map); } @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); if("kdec_baritemap".equals(evt.getItemKey())){ Map<String, String> o = new HashMap<>(1); o.put("formId", "kdec_dynamic1109"); IClientViewProxy proxy = (IClientViewProxy) this.getView().getService(IClientViewProxy.class); proxy.addAction(ClientActions.showSlideBill, o); } } }
图3.4
3.5可以根据弹出页面的大小调整弹出框的大小如图3.5
图3.5
3.6 测试效果需要将创建的单据列表界面发布菜单测试,不能预览测试 如图3.6
图3.6
四、效果图
4.1 从发布的应用菜单进入列表界面,点击测试按钮,动态表单从系统右侧滑动弹出,如图4.1
图4.1
五、开发环境
不限,本样例采用的轻量级环境,版本是: 苍穹版本号 V5.0.008 星瀚版本号 V5.0.008
六、参考资料
参考附件中的代码补丁
元数据直接在开发平台导入
源代码直接在开发工具idea/eclipse中导入
右侧弹窗案例.zip(10.78KB)