导出功能怎么设计?我有一个小做法

16 评论 15972 浏览 88 收藏 9 分钟

产品是一种思维,而不是技能。本文作者分享了自己关于导出功能的一些小想法,希望看完你对此有新的思考。

摆好架势,构思本文时的一个想法,结合我18年遇到的情况,验证了我17年的一个感悟:产品是一种思维,而不是技能。

17年,买过某某课的一个初级产品课程,看完感觉收获特别少,远不如看几篇优质文章有意义。后来陆续买过不少书,看过不少产品课程。发现一个共同的特点,那就是内容中的“中道理”占了大量篇幅,导致有效信息被稀释了很多,信息密度极低。

而信息密度低,是不符合用户买课程时的需求的。也就是说,凡是不好的课/书籍,其本身这个【产品】就不是一个好产品,又怎么能教别人做好产品呢?这是个悖论。

上面两段,是我的“中道理”,仅适合当下我的认知。为了本文的信息密度被稀释,本文讲个“小做法”,小做法是客观的,没有对错之分,只有具体场景下的优劣对比。

也就是说通过搜索功能看到本文的人,看完后是会有收获的。而不需要的人会被标题拦截,无需浪费时间来阅读。下面进入主题

一、背景

假设,收集到一些反馈如下

  • 财务需要对账,希望能导出订单数据
  • 合作的企业渠道需要数据反馈,这里假设为接口对接能力的渠道
  • 合作的个人渠道需要数据反馈,这里假设为没有接口对接能力的渠道
  • 业务团队需要计算绩效

继续假设,一顿操作猛如虎

  • 深入调研需求细节
  • 流程图、思维导图、5W1H、MECE、SWOT、SMART…分析完毕
  • 小范围内部讨论,确定MVP版本,散会

二、动手

落子

这里的分析,是另一片战场。

需求分析的结论中:

  • 导出条件需要灵活,目测可放到筛选区。
  • 导出表头不能统一,财务和市场需要的导出表头不一样,目测需要表头可配置。
  • 导出业务场景不同,仓库需要按商品为维度导出,财务需要按订单导出。

以上,得出结论,导出功能放在订单列表的筛选区,打开订单列表页,模拟使用场景,发现放这里挺通顺的,开搞。

心里默念《七字真言》——增删改查显算传

  • 查:当前近30天数据是15万条,查询有压力。
  • 显:查询可能需要跑定时任务,显示过程不能是一个临时弹窗,需要有个固定入口和页面。
  • 传:导出文件可能偏大,会涉及到下载失败、断点续传、占用带宽等问题,需要提出给技术。

那我们现在给订单列表的筛选区增加一个导出按钮,和一个导出的固定入口,如下图(图中红线框中的是【带下拉框的按钮】组件):

PS:这一步其实挺重要的,通常需要对整个项目有全局的了解,才能找到合适的位置嵌入新功能。所以这一步应该由产品经理做,下面的导出弹窗可以给助理做。

第一步,表头配置

点击导出后,应该是一个弹窗,根据上面分析,弹窗上需要有个表头配置。

为了让财务小姐姐使用起来方便,还是给做成集成式的吧,不用一项一项的勾选。可惜市场的大哥们也跟着沾光了,哎。

那么,先去看看财务小姐姐的有些什么权限。

咦,根据财务的角色,Ta们的权限配置已经限制了只能看到部分表头,筛选项的下拉选项也已受限。

再对比一下市场大哥的角色,嗯,权限配置和他们提过来的表头需求完全一致。

好了,表头配置不需要,跟着各自的权限走就好了。

第二步,导出维度

导出维度,使用场景明确,也不存在其他关联性,是必要的,直接出图:

第三步,补充细节

那么,导出弹窗上还需要哪些信息?

导出和查询共用一个筛选区,只不过呈现结果的方式不同,那么使用场景是可以借鉴的。

通过观察(或经验),用户在浏览查询结果时,经常会回到筛选区,去确认一下筛选条件。那么导出时也相同,用户需要再确认一遍导出条件,如下图:

然后根据大家自身的业务场景,写一下特殊情况,和导出规则。如下图:

最后写导出规则时,发现【导出】按钮的文案有歧义,改了一下。

第四步,任务页面

前面说了,导出还需要有一个固定的页面来承载,同时也可作为上图点击【创建导出任务】后的反馈页面。前面已经有一个固定入口了,此处又有一个临时入口,那么导出任务的页面做成侧拉抽屉弹窗比较合适,可以多入口调用。这样,页面样式确定。

接下来是页面细节,由于任务页面是公用的,可以多人分别导出多条。导出过程需要一定的时间,需要加个导出状态。导出完成需要下载,下载后的文件名称也需要增加识别度…

一点一点的完善,顺理成章,这个页面就出来了,如下图:

在根据业务情况,如果任务偏多,可以增加筛选区、翻页器、删除功能……等等。

当然,必不可少的异常情况说明,也要列出来。比如日期为空时,不能导出;比如排序方式、下载速度限制、下载文件格式、下载文件名称。可以使用Axure的说明功能,如下图:

好久没写了,手生的很,最近准备宅家里多写写,恢复一下状态。同时又不给国家添麻烦,一举两得。

大家也都注意安全,防疫口诀要牢记,目前形势还是比较严峻,武汉加油!

 

本文由 @臣有bug揍 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 真棒

    来自广东 回复
  2. 有意思!👍

    来自浙江 回复
  3. 你好,想问一下导出功能跟新增一个前端页面来显示数据这两种选择,哪一种技术上的复杂性更低呢?

    来自湖南 回复
    1. 做的时候肯定前者简单,但是扩展性和适应性,肯定是后者更佳,后者耦合性也更低,可以作为独立功能。

      来自山西 回复
    2. 做的时候肯定前者简单,但是扩展性和适应性,肯定是后者更佳。

      来自山西 回复
    3. 按了下回车,回复就变成两条了…

      来自山西 回复
  4. 挺好的,谢谢作者~

    来自北京 回复
    1. 谢谢啦~

      来自山西 回复
  5. 想问下,导出任务列表弹窗,点击右上角X,则关闭弹窗,那如果此时有正在导出的任务时,弹窗关闭了后,正在导出中的任务会暂停或者取消吗?

    来自湖北 回复
    1. 不会取消,这相当于任务管理器,关闭它不影响任务的运行。

      回复
  6. 为什么要导出任务列表,用户对后台逻辑是无感的,不应该减少这些页面和流程吗,导出后,还要再点击下载,对用户来说,导出就是下载,是一个功能,为什么要点两次才能得到我要的东西。其次,我在一个页面导出的东西,为什么还要跑到别的模块去看,有没有导出成功,再去下载?

    来自上海 回复
    1. 七字真言那段有解释,多看看文字,别只看图,然后再评论。
      你可以针对那几条解释做出评论。

      来自山西 回复
    2. 单独的导出下载按钮在B端产品里面就是个鸡肋,我最近正好遇到这个问题了

      来自北京 回复
    3. 同感同感

      来自中国 回复
  7. 导出需要做Excel模版吗?

    来自北京 回复
    1. 导出不需要,你只要确定了字段给开发就好。
      导入需要模板,是因为系统只能认识你设定好的字段及格式,比如系统内字段叫“姓名”,用户自建表格表头叫“名字”,这就会导入失败。为防止这种情况,才提供固定格式的模板,供用户填入变量内容,确保字段正确。

      来自山西 回复