EOS Low-Code Platform 8 EOS Low-Code Platform 8
  • 8.3.2 (opens new window)
  • 8.3.1 (opens new window)
  • 8.3LA1 (opens new window)
  • 8.2GA (opens new window)
产品简介
学习指南
更新说明
安装与集成
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
升级手册
常见问题
  • 1 适用场景
  • 2 基础功能
  • 2.1 文件类型
  • 2.2 文件大小
  • 2.3 限制个数
  • 2.4 上传地址
  • 2.4.1 自定义上传地址
  • 2.5 展示模式
  • 2.5.1 图片模式
  • 2.6 允许预览
  • 2.7 显示提示
  • 2.8 自定义上传按钮
  • 2.9 OSS直传
  • 3 场景
  • 3.1 按钮模式上传多个附件在子表格回显附件信息
  • 3.2 自定义校验信息

附件上传

# 1 适用场景

通过点击或者ctrl C\ctrl V上传文件,上传附件内容的场景:例如各项证明、材料、数据、合同等;

# 2 基础功能

拥有设置文件类型、文件大小、上传地址、展示模式、允许预览、显示提示等功能;

# 2.1 文件类型

设置可以上传附件的格式类型;如果为文件类型为空,可以上传任意类型文件;

例如:当我们设置了上传文件的类型为 pdf 格式时,那么我们就只能上传 pdf 格式的文件,效果如图:

image-20240114205908917

image-20240114210012164

# 2.2 文件大小

对上传文件大小做限制;效果如下:

image-20240114210344937

image-20240114210307100

# 2.3 限制个数

可以限制上传文件的个数;

image-20240603144818158

效果如下:

image-20240603145026747

# 2.4 上传地址

可以设置上传文件提交时的后端接口api地址;默认为/api/lowcode/models/attachments/actions/upload;也可以根据用户需求自定义;

image-20240114210916766

# 2.4.1 自定义上传地址

如果我们需要上传附件后额外自己处理上传的附件,可以配置上传地址,后端定义一个上传controller接口api;

注意接收值和返回值必须保持一样;函数内部可以添加自己处理附件的逻辑;

@Autowired
private IAttachmentService attachmentService;
/**
 * 上传附件
 *
 * @param attachments 附件
 * @return 附件列表
 * @throws Exception
 */
@PostMapping(value = "/attachments/actions/upload/test", consumes = MULTIPART_FORM_DATA_VALUE)
@ApiOperation("上传附件")
public List<FileStore> uploadAttachments(@ApiParam("模型实体名称") @RequestParam(name = "entityName", required = false) String entityName,
                                         @ApiParam("实体ID") @RequestParam(name = "entityId", required = false) String entityId,
                                         @ApiParam("附件") @RequestParam("attachments") List<MultipartFile> attachments) throws Exception {
    if (StringUtils.isBlank(entityName)) {
        entityName = "lowcode-model";
    }
    if (StringUtils.isBlank(entityId)) {
        entityId = "default";
    }
    //自定义处理附件逻辑
  	//XXXXXX
    return attachmentService.uploadAttachments(null, entityName, entityId, attachments);
}

# 2.5 展示模式

展示模式有列表模式,图片模式,和表格模式,都可以在读写模式下进行删除和下载操作;效果如下:

image-20240114211512541

# 2.5.1 图片模式

展示模式为图片时,可以设置图片的高度、宽度、适配模式;其中高度和宽度支持px或者百分比%

image-20240513111804079

如果在视图中,要展示图片模式,需要设置格式化为图片;同时需要设置行高为格式化图片的高度;

image-20240513112913520

image-20240513131812343

# 2.6 允许预览

勾选预览后,上传文件后,可以点击文件进行预览文件;附件上传默认支持预览的类型有'docx','xlsx','pdf','jpg', 'png', 'jpeg', 'txt',如果不满足条件,需要在首选项中配置OnlyOffice地址,或者自定义地址

image-20240513131812343

AFC提供了一个公网预览服务地址:http://101.230.129.77:35001

注意:只能在公网使用

OnlyOffice 支持office软件的预览,如果还有一些特殊类型,可以自定义预览地址

# 2.7 显示提示

显示文件类型和文件大小等限制信息;

# 2.8 自定义上传按钮

开启后,可以自己编写上传按钮的样式。渲染会按自定义模版渲染;可以用isMobile区分移动端;系统提供了代码助手有照片模式和按钮模式;

image-20240603142213602

例如:上传按钮显示图片卡片,效果如下:

image-20240603143404898

步骤:点击代码助手选择照片模式,然后插入代码;同时也自己可以编写想要的样式显示。

照片模式示例代码如下:

<el-button v-if="!isMobile" icon="el-icon-plus" style="font-size: 28px;color: #8c939d;width: 178px; height: 178px;line-height: 178px;text-align: center;"></el-button>

image-20240603143715723

# 2.9 OSS直传

开启oss直传,可以直接上传到阿里云服务器上,大多用于大文件传输场景,可以更快的上传文件;

开启OSS直传;前提需要在后端介质application-afc.properties中配置:
OSS.endpoint=XXX 例如 oss-cn-shanghai.aliyuncs.com
OSS.accessKeyId=XXX
OSS.accessKeySecret=XXX
OSS.roleArn=XXX
OSS.bucketName=XXX
OSS.regionId=XXX 例如 cn-shanghai

image-20240603145414650

# 3 场景

# 3.1 按钮模式上传多个附件在子表格回显附件信息

例如:用户通过按钮模式上传多个附件,然后在表单子表格中显示上传的附件信息;效果如下:

image-20240114212721487

步骤1.建立实体关系

人员和附件1-》n ,通过userid关联

image-20240114213023410

步骤2.配置附件上传组件;展示模式选择按钮;选择允许上传的文件类型;

步骤3.在高级=》添加事件=》上传成功后,设置附件组件上传成功后事件,给子表格赋值;代码如下:

其中fileList 为上传成功的附件列表;把附件列表的信息根据自己的业务处理赋予子表格数据

console.log(response, file, fileList, '附件上传')
const authorization = file.headers.Authorization
this.formData.filetest2s = fileList.map(item => {
  return {
    fileid: item.fileId,
    fileName: item.fileName,
    Authorization: authorization
  }
})

image-20240114213637515

# 3.2 自定义校验信息

高级中添加事件上传前进行验证

console.log('file:', file, ext, callback)
const isImage = file.type.indexOf('image') !== -1
if (isImage && ext.width > 1000 && ext.height > 300) {
  this.$error('上传大图宽度大于1000')
  callback(false)
}
else {
  callback(true)
}

← 颜色选择 图片 →