用户选择框设计思路

版权声明:如若转载,烦请注明出处。 https://blog.csdn.net/ZYD45/article/details/81703716

最近新项目要用到选择人员,于是重新在新项目中设计了一版选人框。

效果图如下:

功能部分

一个选人框主要有以下几个展示部分:

  1. 人员组织树
  2. 已选节点信息
  3. 操作工具栏

这三大部分再细分下各自应有的基础功能:

人员展示部分:

  • 用户信息展示
  • 选中节点的标识
  • 对于人员的快速定位功能

1)用户成员展示

将人员用树形直接列出,是最直接、最便捷的方式。因为树形下,很方便查看组织结构,某位用户属于哪个部门,同级员工信息,这些都很清楚。

2)选中节点标识

现在很多的选择树,都前置或后置“复选框”来作为选中状态的标识,这种做法的好处,一是具有明显标识状态,二是引导用户,此节点可直接点击。

前置选择标识:微信的后置选中标识:

而我采取的是,树形节点变色加粗,作为选中标识。之所以做出这种方案,是因为:

  • UI:避免节点前用户图标和复选框的图标累加
  • 技术:Extjs modern版tree不易绘制复选框

当然,仅仅做单节点选中还不够,节点选中更重要的一点还在于,父子节点之间的关联状态。即父节点选中,其节点下的子节点也会是选中状态,而子节点全选时,父节点也应变成被选中的状态。这一步,其实就是算法的递归,一个向上,一个向下。除此之外,还应有个同名节点的选中关联

例如,小张是在分属A部门,但是在B部门的组织里也有小张,那在A部门节点下选中小张后,B部门节点下的小张节点,也应该是选中的状态。

3)人员的快速定位

通过人员的关键字,来筛选过滤用户。通常关键字就是用户的编号、拼音等等,除了输入的快速定位,可以增添,展开树,一下子将所有用户都展示给用户,用人眼搜索,大脑过滤。


已选节点信息

关于已选节点的展示,作为一个UI界的小白,我的方法就是——直接借鉴。归结原因,自己虽然没有构建美的能力,但是却有画出丑的天赋。当然,货比三家的方法,也是开发成本最低,犯错率最低的一种

首先,参考的是,某微的选人框:还有某钉的:

发现一个共同点,展示方式都是,前置头像或是名字加底色,再加上节点信息文本。索性用户控件,就以这种“大头贴”+名字的形式展示。不过随之而来的还有个问题,此控件是个复选类的控件——既能多选,又要具有单选性质。这就涉及到选人控件的选中态。

一想到选中这两个字眼,脑海中第一反应就是,选中的元素有“√”的UI样式,所以设计出的初稿都是以下这样的:

发现,选中的节点反而像未选中的。后来改进了几版也都是这样,这就是陷到了自己的惯性思维中了。回归到控件设计的出发点——想要实现的功能上,用于过滤信息,选中的即为展示,未选中的即被屏蔽。于是,自己开始在未选中的元素上动脑子,起初设计成一个屏蔽眼——在未选中的头像上,置了一层遮罩+一个不可见视图:

对比一下,可以看到 有底色加头像变化更具对比性。


操作工具栏

操作工具栏部分,主要是两个功能:

  • 全清
  • 人员数量的提示

这两项功能,都是基于需求。这两项的功能,有点类似于购物车里的全删和结算操作。整个选人框的业务逻辑,也是跟购物车很像的,将xx从列表中选中,放置到某一个集合,然后通用工具栏,操作选中节点。


总结

在设计这个选人框的开始阶段,并不是全凭脑袋空想,先去“货比三家”竞品分析下其他OA系统的做法。设计中,也是设计了好几个方案,然后让别人做选择题。现在的版本也不一定是最终版,好的产品都是迭代出来的,不要想着一步到位,要想着快步小跑,不断迭代。

猜你喜欢

转载自blog.csdn.net/ZYD45/article/details/81703716