优化移动端附件,支持设置自定义按钮功能

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

优化移动端附件,支持设置自定义按钮功能

# 用户场景 1. 现有附件已经支持了`预览` `下载` `重命名` `删除`功能,可以覆盖大部分用户使用场景,对于不能覆盖的使用场景,目前提供了支持开发者配置自定义附件按钮 2. 正常情况下,不考虑单据运行客户端,`预览` `下载` `重命名` `删除`会根据控件的锁定态和编辑态来显示和隐藏。编辑态四种都会显示,锁定态只有`预览` `下载`显示,不支持插件控制这四种系统按钮的隐藏。考虑到二开人员需要自己控制系统按钮的隐藏,因此本次支持了插件控制机制。 # 功能介绍 1. 通过插件方法`addAttachOperaBtn`添加“自定义”按钮,“自定义”按钮的显示和隐藏不会受锁定态和编辑态的影响。 2. 通过插件,在加载附件数据时增加`visble`属性,控制`预览` `下载` `重命名` `删除`这四种权限的隐藏,`visble`的值默认可以设置为`1111`,第一位为`预览`权限,第二位为`下载`权限,第三位为`重命名`权限,第四位为`删除`权限,`1`代表显示,`0`代表隐藏。 # 适用版本 金蝶云苍穹BOS_V5.0.001及以上 # 视觉展示 **图1 附件面板设置自定义按钮** ![image.webp](/download/0100a04a5220d14741eeb204315c271e2e18.webp) **图2 附件面板设置编辑态删除权限隐藏** ![image.webp](/download/01001230c62f36884d9ca4997c5680509f3c.webp) # 插件示例 ## 插件控制附件新增自定义按钮 ```java public class TestPluginAttachment extends AbstractBillPlugIn implements AttachmentOperaClickListener { private static final String KEY_BUTTON = "buttonap"; private static final String KEY_ATTACHMENTPENAL = "attachmentpanel"; @Override public void registerListener(EventObject e) { this.addClickListeners(KEY_BUTTON); AttachmentPanel panel = this.getControl(KEY_ATTACHMENTPENAL); panel.addOperaClickListener(this);; } @Override public void click(EventObject evt) { Control ctl = (Control) evt.getSource(); if (KEY_BUTTON.equals(ctl.getKey())) { AttachmentPanel panel = this.getControl(KEY_ATTACHMENTPENAL); List<AttachBtnOption> btns = new ArrayList<AttachBtnOption>(); btns.add(new AttachBtnOption("attoption_1", new LocaleString("分享"))); btns.add(new AttachBtnOption("attoption_2", new LocaleString("打印"))); panel.addAttachOperaBtn(btns ); } } @Override public void attachmentOperaClick(AttachmentOperaClickEvent e) { AttachmentPanel panel = (AttachmentPanel) e.getSource(); Map<String, String> attinfo = (Map<String, String>) e.getAttachmentInfo(); List<Map<String, Object>> atts = panel.getAttachmentData(); Map<String, Object> att = null; for (Map<String, Object> map : atts) { String uid = (String) map.get("uid"); if (uid.equals(attinfo.get("uid"))) { att = map; continue; } } if ("attoption_1".contentEquals(e.getOperaKey())) { System.out.println("分享附件:"+att.get("name")+att.get("url")); } }} ``` ## 插件控制附件按钮权限 ```java @override public void afterBindData(EventObjest e){ super.afetrBindData(e); AttachmentPanel panel = this.getContent("attachmentpanel"); List<Map<String,Object>>> attachmentData = panel.getAttachmentData(); List<String> hiddenBtnList = new ArrayList() hiddenBtnList.add("print) for(Map<String,Object> attachmentMap:attachmentData){ String visibalePreview = "1"; String visibaleDownload = "1"; String visibaleDelete = "1"; String visibaleRename = "1"; attactmentMap.put('visible',visibalePreview + visibaleDownload + visibaleDelete + visibaleRename ); } IClientViewProxy.clientViewProxy = this.getView().getService(IClientViewProxy.class); clientViewProxy.setEntryProperty("attachmentpanel","data",attachmehtData) }

优化移动端附件,支持设置自定义按钮功能

# 用户场景1. 现有附件已经支持了`预览` `下载` `重命名` `删除`功能,可以覆盖大部分用户使用场景,对于不能覆盖的使用场景,目前提...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息