基于easyui的备忘录的实现
来源:互联网 发布:linux防火墙策略 编辑:程序博客网 时间:2024/06/05 12:26
唉,本来昨天昨晚数据查询今天就放假了,奈何哥们端午节回家了,他身上的重任没有完成,自然就落到了我的肩膀上,唉,这锅我背了,谁让咱是兄弟不是,心里苦说不出啊.
任务是做一个基于日期的备忘录,效果图如下.
道理很简单,从数据库里把当前用户的记录全部取出渲染这个表就可以了,主要是easyui的一些接口的使用,当然图中还有我的人生目标.
第一步是数据库设计,当然这个是很简单的,做绩效考核那阵艰难的革命岁月已经一去不复返了
id: integertext: stringuser_id: integerdate: datetime
第二步当然是取出当前用户对应的备忘录数据.
var easyui_dates = new Array();$.each(dates ,function(index , obj){ //dates为从数据库获得的备忘录记录 var date= new Date(Date.parse(obj["date"])); var has_the_date = false; $.each(easyui_dates,function(index,obj){//easyui_dates为最终需要获得的数组 if(obj["year"] == date.getFullYear() && obj["month"] == date.getMonth()){ obj["days"].push(date.getDate()) has_the_date = true; }else{ has_the_date = false; } }); if(!has_the_date){ var item = {"year":date.getFullYear(),"month":date.getMonth(),"days":[date.getDate()]} easyui_dates.push(item); } }); } });
最后得到的easyui_dates是这种形式的[{“year”:2017,”month”:5,”days”:[12,25,26,31]},{“year”:2017,”month”:3,”days”:[1,,2,25,31]]}
第三步然后我们就可以根据easyui_dates这个数据来判断日期了
$('#cc').calendar({ current:new Date(), formatter: function(date){ var d = date.getDate(); var opts = $(this).calendar('options'); var ret = "" $.each(easyui_dates,function(index,obj){ if (opts.year == obj["year"] && opts.month == obj["month"]+1 && $.inArray(d , obj["days"])>=0){ ret = '<div class="icon-ok md">' + d + '</div>'; } }); if(ret == ""){ return d }else{ return ret; } }, onSelect: function(date){ var select_date = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate(); alert(select_date);//获得选择日期 } });
这里需要说明两点,直接在easyui_date中return是很方便,但是我试了试那样应该是跳不出这个双重循环,所以我就重新加了个变量.
其次是formatter之后的函数每次需要执行40次左右,也就是遍历每一个日期来判断它有没有相应的事件存在,所以感觉效率堪忧,更别提我接过来的时候代码竟然它查询数据库的ajax放在里边,也就是显示就需要查询40多次数据库.但是我也没想到别的好办法,等我有了再来分享吧.
这个formatter的原理很简单,就是遍历每一个日期(本月加下一个月的一些日期),然后通过options属性可以获得他的年和月,我们依次判断每条记录的年月是否和当前年月相等,如果相等并且当前的日也在日期的数组中,那么就把这一天加上对号,即返回'<div class="icon-ok md">' + d + '</div>'
然后根据onSelect方法我们可以随心所欲的通过ajax请求来做我们的事情,也就是图下半部分就很简单了,就不细说了.
- 基于easyui的备忘录的实现
- (原创)easyui基于web的打印实现
- 基于RBAC的Easyui树形权限菜单的实现原理
- 基于SSH框架的EasyUI的前端DataGrid实现
- 基于easyui的富文本编辑器的实现
- EasyUI的combobox实现级联设计----基于本地的设计
- 基于EasyUI的基础之上实现树形功能菜单
- 基于easyui的验证扩展
- 基于easyui的界面扩展
- 基于thinkphp的一个通讯备忘录
- easyui分页的实现
- easyUI comboTree的实现
- easyUI tree 的实现
- easyui表格的实现
- EasyUI--tree的实现
- 基于easyui的CMS系统的小结
- 一个基于thinkphp 的 easyui datagrid 组件查询功能的实现
- 基于MVC4+EasyUI的Web开发框架经验总结--实现Office文档的预览
- Hibernate 核心技术(一)
- spring基础
- 10-排序5 PAT Judge (25分)
- 2017计蒜之道初赛第四场-商汤科技的行人检测(简单)
- PAT 乙等 1027 打印沙漏
- 基于easyui的备忘录的实现
- Python中IO概述
- 12、消息提示框与模态弹窗
- HTTP中的GET和POST
- 扁平化立体字教程
- java中set集合的使用方法
- 学习前端之路(一)
- Linux设备驱动之LCD显示摄像图像之三进行转换
- 程序员面试金典——输出单层结点