在之前 《复杂表单的新建》 这篇文章中,我们讲到的是基于字段较多场景时的表单设计。但是在表单的新建当中,复杂的情况远不止于此,今天我们就来聊聊复杂表单当中,如何进行数据的批量新建。
在系统当中,其实批量就是需要我们去做多条数据的操作。在 B 端产品当中,这种情况非常常见。
比如我想去编辑多条数据,便可进行表格数据选择,从而实现批量操作;我想配置多条流程规则,则可以依据一个模版进行复制,从而进行快速修改;我想快速新建大量数据,则可以通过不同的方式进行批量新建。
比如在一个系统当中,我们作为设计师也需要根据数据量的变化,进行新建体验的不断优化。
如果要新建一条数据,我们通常使用表单进行正常新建即可
如果要新建五条数据,我们可以使用条件再添加的方式进行解决
如果要新建一百条数据,我们可以使用 规则新建、模版复制、数据导入 的方式进行解决
如果要新建一万条数据,我们则去使用数据迁移的方式解决。
不同的数据量,也就意味着表单的新建时,我们所关注的侧重点就会有所不同。
而新建 “一百条”数据,则是用户遇到最极端的情况,我们设计时,则可以使用:“规则新建、模版复制、数据导入”,由于篇幅有限,今天我们侧重于 “规则新建” 展开,讲讲在系统当中,如何去设计规则的新建表单。
对于规则新建而言,我们首先要去思考 什么是规则。
在日常生活中,我们就会有类似的需求。比如:在添加女朋友的生日提醒时,我们就设置日历让他每年重复提醒;在新建每天起床的闹钟时,我们就设定对应时间以及提醒的周期;在新建每天的待办任务时,我们就会先新建相同的待办任务,然后再去更改待办的内容。
因此规则新建其实就是通过特定的规则去新建数据,进而达到快速新建多条数据的效果。
刚才举例,更多是日常生活中的例子,其实在 B 端产品当中,也会有同样的诉求。比如在系统当中,安排每周的员工排班;创建双周的设计会议任务;这些都是在规则的条件当中进行的创建。
在规则新建中,我们要关注的主要是数据当中的三个因素:变、不变、规则
变:分析用户在规则新建当中,会产生那些变化的数据。我们需要考虑在规则的前后,进行数据的快速配置。
不变:则是数据当中,会有那些固定的数据是不需要发生改变的,这样就可以快速配置,从而进行创建。
规则:是系统当中会按照什么规则进行不停的重复,我们通常会先去分析变化的内容,才能够总结出规则的部分应该如何设计,会存在哪些先后顺序。
比如,现在我们在在线教育系统当中,需要去新建 30 节的课程,里面会包含 八个重要字段:“课程名称、课程时间、授课老师、课程详情、授课方式、封面、关联课程”,在设计时就需要考虑字段对用户的影响,我们会根据大多数用户的使用习惯,进行配置。
变:课程名称、课程时间、课程详情
不变:授课老师、授课方式、封面、关联课程
规则:根据变化的内容,进行分析,总结变化过程中可能会存在的具体规律。
这里以我们训练营的课程为例,我们变化的就是每一节课的课程名称、不同时候的课程时间、对应课程的描述详情会存在差别。
不变的则都是由老师来上课,我们的授课方式都是 在线直播授课,封面也是统一的,并且也都会关联到我们的训练营课程。
规则需要从变化的内容当中分析
课程名称:一般会根据不同的课程内容进行相应的调整,在创建时,课程名称可以根据一个固定的名称进行快速复制,达到内容填充的效果。
课程时间:其实就是每周二、周四 晚上 8:00 进行上课,对应我们就可以以周为单位进行划分,并且课程时间需要设定总的课程数量,明确知道对应的规则究竟重复多少次。
在 B 端系统中,时间维度的使用会非常广泛,通常是按照不同的业务需求进行适配。比如可能以天为单位,划分为,1 天 1 次、2 天 1 次、5 天 3 次 等情况;也可以是以周为单位,划分为... 年为单位...不同的划分规则,代表在业务的场景当中需要这样的诉求才行,需要你对时间的规则进行合理的整理与抽象。
比如上方例子,我们最终抽象其为 每天重复、每周重复、每月重复、每年重复、自定义重复,用户可以自行配置。
理解了需求过后就是实现的方式。
课程详情:则会根据不同的课程内容进行对应的呈现。这个字段与内容密切相关,这里我们可以考虑与 AI 进行结合,让 AI 根据课程名称自动生成详情内容。
但在实际情况当中,我自己在创建时只会一直重复使用一个详情内容,因此在设计上也可以根据这个规则,优化整个创建的体验。
在理解了设计规则过后,我们可以考虑如何去实施这个方案。
首先在方案的设计上,主要就是对 变、不变、规则 三者上的流程进行优化。
在解决方案上,对应变化的数据,我们需要先配置其规则在进行创建、以及创建过后再编辑其数据。
第一种方式会将整个流程分为两步,首先要去配置课程变化的信息,里面会包含:课程名称、课程时间、课程详情
我们通过 数据结构化表单 的方式进行创建,当用户点击“添加一节课程”时,则会默认复制上方课程信息给到下方,尽可能延用相同规则。
在第二步,则主要配置不会变动的数据,通过表单的方式呈现:授课老师、授课方式、封面、关联课程
实现完后,想到字段层面上会存在一些模棱两可的情况,比如封面、授课老师 会有特殊情况,为此增加字段,让第一步的配置更加灵活通用。
对应的呈现上,就不能用传统 数据结构化表单 的方式进行呈现,则考虑的是使用 数组数据表单 的思路,进行新建。
添加完成后,我们还会发现,大多数用户会有批量编辑部分数据的需求,因此我们可以基于 数组数据表单再考虑多选的场景,提供复选框以及对应的操作,从而实现基础配置的调整。
配置完了过后,对于第二步的高级设置,我们则需要对于不变的内容进行统一的配置,里面会包含:授课方式、关联课程,当然在后续产品发展过后,还会有很多配置项,我们都可以考虑将其固定到第二步统一配置。比如直播分辨率、直播回放设置等等... 通过这样的优化过后,就能快速实现批量创建~
最终结果如图:
第二种方式,主要针对前期的规则,再进一步进行优化。我们可以先根据用户的习惯,让用户更加容易理解。
我们也会将整体的录入流程分为两步,第一步是优先配置规则,第二步则去展示所有数据并继续后续提交。
比如,需要去新建 30 节的课程,那对应就可以在输入框当中给出 30 节课的配置展示;对于上课周期,我们也可以直接输入对应循环的周期;
(第一种方式是一条一条数据进行的课程添加)
同时 封面、授课老师 等内容,因为大多数课程都会是相同,因此在设计时便可以考虑优先配置, 创建统一数据后再到第二步进行编辑,由此等到以下结果
(第一种方式是一条一条数据进行的课程添加)
当基础的配置完成过后,我们就可以将对应每一节课进行系统的呈现,进而就可以对页面当中的其他内容进行快速编辑调整。
同时对于变化的内容,用户也能够自动的去调整里面课程名称、授课方式、不同课程的封面,通过这样的配置再新建,也能够更为清晰快速的进行体验。
这种逻辑就会和之前两种不太一样,考虑到的则更多是新建场景当中,本身并不支持大量的、不同规则的数据创建,同时批量新建又作为小场景事件而诞生的。
同样是课程,比如我们优先满足单一的数据新建的场景,所设计出来的表单如下
然后再根据时间周期的变化,进行了一波小小的优化,在表单当中,提供一点规则配置的功能,这样的话用户就能快速创建批量场景。也就是用先新建 30 节课程,然后再到每一个课程列表当中进行修改不同的数据,比如名称、封面等等。
当然这种做法本身也会有问题,在系统当中,假设你创建一条课程都会让学员接收到通知,那这个时候创建的相同名称的课程,就会很容易让用户产生困惑。这种做法就是先新建数据再去编辑每一条数据。
对于三种批量新建的方式,主要是针对课程这个场景展开,这里我们也做一个总结,从业务扩展度、体验的好坏、改动程度 三方向进行评判,主要将他们分为
当然在整个规则新建当中,里面的逻辑还是会相对较为复杂,我只是针对课程创建这一个场景展开讲讲,对于不同的业务,它的解决方案也是不同的。
同时对于这类交互问题感兴趣,也想系统的提升自己的设计能力,可以加入我们新一期训练营。无论是现在讲到的表单,还是后续讲到的业务逻辑,都会在新一期的课程当中为大家进行系统的拆解,加入课程也能够像老师一样,拿下话语权,让你成功升职加薪。