优化移动端附件,支持设置自定义按钮功能
# 用户场景
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. 现有附件已经支持了`预览` `下载` `重命名` `删除`功能,可以覆盖大部分用户使用场景,对于不能覆盖的使用场景,目前提...
点击下载文档
本文2024-09-23 00:42:10发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141171.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章