欲知附件用法,且听本文分解(上)

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

欲知附件用法,且听本文分解(上)


附件可以说是我们最常用的控件之一了,但是你可能不知道,除了上传、下载、预览、删除文件等功能以外,附件其实还有很多细节满满的强大功能等待我们去发现。本期小编就为大家一一介绍~




1 适用场景


附件多用于上传文件,比如xls/doc/ppt等格式的文件,可以用来补充表单资料的信息。除了上传功能以外,我们还能通过附件控件,实现常见的文件预览


2 如何使用


接下来我们将主要从附件大小、格式、数量配置附件附加信息配置附件操作按钮的权限控制以及自定义附件操作按钮四个方面入手,教大家如何进行相应的操作。


2.1 附件大小、格式、数量配置


进入开发平台【设计器】页面后,我们可以在【设计器】页面中配置附件的大小数量以及允许上传的文件格式:




  • 最大附件大小:附件的大小限制,单位为MB;

  • 最大附件数:允许上传的附件数量;

  • 扩展名:附件的类型限制,内容为文件名后缀不带".",以","或者空格隔开,例如jpg,png,gif


在设计器中配置的属性都只作用于当前控件,如果用户想要配置系统级别的附件大小和格式,可以配置系统参数


配置路径:【配置工具】→【系统参数】→【公共参数】→【附件配置 →【附件上传大小限制】/【禁止上传附件类型】


【系统参数】页面展示如下:



对于附件大小,由控件属性以及系统参数配置项中较小的一个决定。例如:控件属性配置的最大附件大小是30M,系统参数配置的是10M,附件最终只能允许上传10M以内的文件;


而对于附件类型,控件属性设置的是白名单,系统配置的是黑名单。例如,控件属性配置的扩展名是jpg,png,gif,系统参数配置的黑名单是gif,附件最终只能允许上传jpg,png类型的文件。


2.2 附件附加信息配置


如图所示,在附件上传成功后,默认会显示"附件名称"、"大小"、"创建人"、"创建日期"和"备注"按钮。



当然,我们也可以在设计器中,通过开关控制"创建人"、"创建日期"、"备注"按钮的显示:



2.3 附件操作按钮的权限控制


附件项默认的操作包括预览、下载、重命名和删除。我们可以通过插件,根据用户的不同权限,显示不同的操作按钮。


插件的代码实现如下:


//a. 插件类实现
kd.bos.servicehelper.attachment.IAbstractAttachManagerPlugin
//b. 重写 checkAttachPerm 方法:
@Override
public List<AttachmentInfo> checkAttachPerm(List<AttachmentInfo> data) {
  for (AttachmentInfo attachmentInfo : data) {
    // 隐藏下载按钮
    attachmentInfo.setVisibleDownload(false);
  }
}



2.4 自定义附件操作按钮


我们还可以添加自定义按钮,满足不同场景的需求。如下面的插件代码,添加了"分享"和"打印"两个按钮:


public class TestPluginAttachment extends AbstractBillPlugin implements AttachmentOperaClickListener {
  private static final String KEY_BUTTON = "buttonap";
  private static final String KEY_ATTACHMENTPANEL = "attachmentpanel";
  @Override
    public void registerListener(EventObject evt) {
    this.addClickListeners(KEY_BUTTON);
    AttachmentPanel panel = this.getControl(KEY_ATTACHMENTPANEL)
        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_ATTACHMENTPANEL);
      List<AttachBtnOption> btns = new ArrayList<AttachBtnOption>();
      btns.add(new AttachBtnOption("attopiton_1"), new LocaleString("分享"));
      btns.add(new AttachBtnOption("attoption_2"), new LocaleString("打印"));
      panel.addAttachOperaBtns(btns);
    }
  }
  @Override
    public void attachmentOperaClick(AttachmentOperaClickEvent e) {
    AttachmentPanel panel = this.getControl(KEY_ATTACHMENTPANEL);
    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 ("attopiton_1".contentEquals(e.getOperaKey())) {
      System.out.println("分享附件: " + att.get("name") + att.get("url"));
    }
  }
}


添加后的展示页面如下:



到这里,附件的常用功能就介绍完毕了,接下来我们也会陆续给大家分享附件预览功能相关使用的文章,敬请期待!




#往期推荐#


# 关于地址配置,你绝对不知道的强大技巧

# 简约美观的移动端步骤条,你值得拥有!

不花钱就能用的界面规则,让你的列表更美观!

# 大任务后台处理中心,节省时间的好帮手


更多精彩内容,“码”上了解!↓


欲知附件用法,且听本文分解(上)

附件可以说是我们最常用的控件之一了,但是你可能不知道,除了上传、下载、预览、删除文件等功能以外,附件其实还有很多细节满满的强大功能...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息