如何实现从页面右侧滑动弹窗原创
金蝶云社区-闫方亮
闫方亮
9人赞赏了该文章 1,061次浏览 未经作者许可,禁止转载编辑于2023年02月15日 15:14:02

关键词:右侧,滑动弹窗

一、需求

        需要弹出页面是从系统右侧滑动弹窗,类似登录页面点击头像弹出页面的效果。

二、思路与方案

        在单据列表界面或者单据界面,点击某个按钮,从系统右侧滑动弹窗动态表单或者其他类型的页面,需要在单据界面或者单据列表界面afterBindData方法中提前将需要弹出的页面绑定,在点击事件中进行展示。

三、实现过程

        3.1首先通过开发平台创建一个单据页面(kdec_230210),如下图3.1所示

image.png

图3.1

        3.2切换列表设计界面,添加一个测试按钮如图3.2所示

image.png

图3.2

        3.3通过开发平台创建一个需要弹出的页面,示例创建了一个动态表单页面(kdec_dynamic1109)如图3.2所示

image.png

图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);
        }
    }
}

image.png

图3.4

        3.5可以根据弹出页面的大小调整弹出框的大小如图3.5

image.png

图3.5

        3.6 测试效果需要将创建的单据列表界面发布菜单测试,不能预览测试  如图3.6

image.png

图3.6

四、效果图

        4.1 从发布的应用菜单进入列表界面,点击测试按钮,动态表单从系统右侧滑动弹出,如图4.1

image.png

图4.1

五、开发环境

        不限,本样例采用的轻量级环境,版本是: 苍穹版本号 V5.0.008  星瀚版本号 V5.0.008

六、参考资料

【开发平台】指导手册

学习成长中心

参考附件中的代码补丁
元数据直接在开发平台导入
源代码直接在开发工具idea/eclipse中导入


赞 9