系统开发总结教训2

关于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)      开发人员后台修改日志字段

posted @ 2015-02-25 21:45  Lucker1900  阅读(103)  评论(0编辑  收藏  举报