![fa7e280919d1738cfc1eccc90f82a4f9.png](https://i-blog.csdnimg.cn/blog_migrate/8b69e42abd5099c33026f566fb342165.png)
目的:实现客户自定义表头字段设置
![6f368ef778c5b444a0cf41e256c79631.png](https://i-blog.csdnimg.cn/blog_migrate/7b3e875084394a1b934b5e4df3e90f67.png)
客户可以根据自己习惯或需要来自定义显示所需表头字段
实现流程:
1.程序入口,创建排序按钮,UI逻辑为,鼠标移入变大,点击top下移出现按下的视觉效果同时变红。鼠标弹起时触发弹窗事件。
2.排版内容默认原无排序功能时的字段数,隐藏字段不显示
3.提供全选功能,点击之间全选和取消全选显示和功能切换,其中,单选按钮使用图标隐藏单选按钮形式,此处注意label的for属性,达到点击图片从而相当于点击单选按钮的效果。
4.先选择的字段顺序排在前列:使用数组push储存字段(后台保证存取),每次点击push一个元素,若为取消则splice一个元素,以此保证数组存取顺序。取数组的时候循环赋值数组cloumns即可。
5.在设置表头字段的时候,默认选择当前表头中的字段,并且把字段按顺序默认于排序字段前面。点击全选/取消全选清除此顺序。也就是说,点击全选和挨个点击至全部项他们的顺序并不相同。
程序BUG:在程序新进入页面的时候,会出现闪烁情况。
原因:进入列表设置数据之后直接调用jQueryEasyui列表组件出现UI载入效果,而在用 户自定义之后需要在列表加载之前判断,这个接口时间在数百毫秒的空档期,因此出现的闪烁
解决方案:a.UI遮挡,视觉效果,显示加载中...或者用户表头加载中字样等...;缺点:此方面的性能仍然慢,用户体验不好。
b.在加载表头接口的时候异步加载获取列表数据接口。这方面的性能问题能得到短暂提升。缺点,由于判断表头字段的接口时间小于获取列表数据的接口,因此,闪烁的时间有可能增加。
c.---
工作心得:1.在功能未完成的时候不要放到公共操作上去。
2.遇事需要说的清楚,不是自己的问题老是被人认为出现在自身的感觉---后台未更新至22,前端显示不出数据来,领导只看结果20,看到的却是前端问题。
做事还需圆满。
知识要点:javascript数组方法:splice(index,num);改变原数组返回当前剪切元素
slice(index,num);同splice( ),不改变原数组
es6函数:new Promise(function(resolve,reject){}).then(function(){});