在现代数据处理和文件管理的场景中,我们经常遇到需要同时处理多个文件的情况。特别是在列表页面,当一条数据关联了多个文件时,用户通常期望能够一键下载这些数据关联的全部文件,而不是逐个点击下载。JVS低代码提供了“打包下载一行或多行数据内的多个文件”的功能,可以实现一键打包下载单条数据关联的所有文件,通过简单的配置步骤和公式设置,用户可以轻松地将多个文件对象组合成一个压缩文件。接下来我们用场景案例来介绍打包下载一行或多行数据内的多个文件的配置说明。

一、打包下载一行数据内多个文件

适用场景

通常在列表页面中一条数据存在多个文件,我们不需要一个一个去下载,想直接一键把这条数据中的文件全部下载下来,打包生成压缩文件。现在我们就可以通过列表页配置一个行内按钮点击触发逻辑下载该条数据全部文件。
演示示例
图片

配置说明
图片

添加列表行内【下载】按钮并配置按钮逻辑。
图片

【固定变量】节点中配置公式获取文件对象
图片

【固定变量1】节点中配置公式获取文件对象
图片

图片

【zip压缩】节点使用公式UNIONSET函数配置将两个对象组合为一个数组
图片

最后【提交】并【保存】设计,回到列表页查看效果(图1)。

二、打包下载多行数据多个文件

概要

打包下载多行数据多个文件通常位于列表顶部按钮触发逻辑实现,可以自定义勾选多行数据打包下载多个文件。

配置说明

举例如下:通过【查询多条】节点获取列表勾选的数据,【固定变量】节点获取循环容器内的节点赋值,再通过【循环容器】取每一条数据,并将每一条数据中的文件数据拼接赋值给【固定变量】节点,最后通过【zip压缩】节点直接取固定变量节点的值实现打包下载多行数据多个文件。
图片

我们看下循环画布中的配置
图片

循环里面两条线上分别判断空和不为空的情况执行变量赋值。
图片

变量赋值按公式,为空的时候只拼接循环赋值,不为空时拼接加上本身,用集合函数UNIONALL并集。
图片

图片

最后在循环外边【固定变量】节点的值如下
图片

【zip压缩】节点文件内容按公式取【固定变量】节点的值。注意这里多个文件格式是数组对象。
图片

图片

在线demo:https://frame.bctools.cn/
开源框架:https://gitee.com/software-minister/jvs


软件部长
43 声望6 粉丝

软件研发行业老司机,提供些踩坑的经验而已