关于OA系统用户体验的一些总结,OA系统经常会需要处理的问题是各种单据的在线申请和在线审批。
1. 旧单复制功能:
当用户申请的单子达到一定数量,很多以往申请的单据都是可以复用的。(类似于历史上的雕版印刷和活字印刷,活字印刷我感觉就是古人使用了复用的思想)
例如 1月份申请了一个单据,2月份申请新的单据的时候,其实只要在1月份申请的单据上改个金额,改个说明之类的,改动很少,但是如果直接申请,可能又需要把原来所有的都填一遍。 使用旧单复制功能,直接把原来的单据内容复制到新的申请单上,然后只要修改你想修改的部分内容即可,实现快速便捷操作的目的。
2. 文件上传失败不阻碍用户信息保存:
在单据申请的时候,也可以上传文件,系统规定文件大小不能超过10M,一开始设计的是上传失败,那就整个就失败了,需要重新申请。
从用户的角度反馈,上传虽然失败,但是单据申请的时候填写的其他信息必须帮他保存下来,不能因为程序的处理方便阻碍用户的感知。
所以还是一句话:用户体验是把困难留给自己,把方便留给用户。
3. 申请时金额控制最好能让用户一目了然。
在单据申请的时候,一般比较重要的是金额的控制,后台金额的控制最好能显示在申请页面,让用户一目了然,否则用户提交后报错误,是事后控制,应该给用户看到。
例如:在申请金额的后面可以跟着
1. 可用余额(申请金额不得超过可用余额)
2. 总金额
3.已使用金额(可以查看明细)
4.申请时规则校验最好使用Ajax,检查无误后使用form提交。
这样做的目的是用户辛辛苦苦填了一堆信息,如果你整个form提交,如果有规则验证失败,用户的信息就白填了(也可以用history.back 功能,不过Struts2好像不行),用Ajax因为是异步不刷新页面验证,所以就算验证有问题,用户所填信息不会丢失,继续修改自己的信息。
还有一种解决方案:依旧使用form提交,验证错误,把一些基本信息保存下来,作为草稿状态单据。
5.前台按钮或元素的隐藏/显示:
在一些重要的地方(例如有的页面只有管理员才有操作权限),可以直接不显示,最好不显示,即:HTML DOM整个没有那个节点。
不要使用css隐藏。
考虑到安全因素,有一些比较重要的地方,如果用css隐藏,一些有经验的用户可以使用F12的方式把隐藏的内容调出来。如果依旧使用隐藏的方式,那么隐藏的内容触发后台方法的时候,后台做权限验证。
6.系统后台方法严格控制
不要过分相信前台的js的验证,前台页面是展现在客户端上的,客户端会发生什么,你不能控制。
7.申请单据数据库设计的时候有备注字段及开发人员备注字段
申请的时候,可能用户需要写一写自己提示自己的备注,设计时可作为非必填字段。
强调一个增加开发人员备注字段,这个字段不参与到系统流程中,不显示,作用就是有的时候需要后台修改某些数据,作为开发人员自己备注的方式,方便记录改了什么东西,是比较必要的。
REMARK VARCHAR2(4000) 用户前台备注字段
CHANGE_LOG VARCHAR2(4000) 开发人员后台修改日志字段