(function ($, zou) { "use strict"; $.lrdate = { init: function ($self) { var dfop = $self[0]._lrdate.dfop; $self.html(''); $self.addClass('z-search-date'); var $text = $('
'); var $container = $('
'); var $btnlist = $('
'); var $customDate = $('
自定义
'); $btnlist.append($customDate); $container.append($btnlist); var $datepickerContent = $('
'); var $datepicker1 = $('
'); var $datepicker2 = $('
'); var $datepickerBtn = $('
确定
'); $datepickerContent.append($datepicker1); $datepickerContent.append($datepicker2); $datepickerContent.append($datepickerBtn); $container.append($datepickerContent); $self.append($text); $self.append($container); WdatePicker({ eCont: 'lr_search_date_datepicker1_' + dfop.id, onpicked: function (dp) { dfop._begindate = dp.cal.getDateStr() + " 00:00:00"; }, minDate: dfop.minDate, maxDate: dfop.maxDate });// 开始时间 WdatePicker({ eCont: 'lr_search_date_datepicker2_' + dfop.id, onpicked: function (dp) { dfop._enddate = dp.cal.getDateStr() + " 23:59:59"; }, minDate: dfop.minDate, maxDate: dfop.maxDate });// 结束时间 /*事件的绑定*/ $text.on('click', function (e) { var $this = $(this); var $self = $this.parents('.z-search-date'); var dfop = $self[0]._lrdate.dfop; var $container =$self.find('#lr_search_date_container_' + dfop.id); if ($container.is(':hidden')) { $container.show(); } else { $container.hide(); } }); $(document).click(function (e) { var et = e.target || e.srcElement; var $et = $(et); if (!$et.hasClass('z-search-date') && $et.parents('.z-search-date').length <= 0) { $('.z-search-date-container').hide(); } }); $customDate.find('a').on('click', function (e) { var $this = $(this); var $self = $this.parents('.z-search-date'); var dfop = $self[0]._lrdate.dfop; $self.find('.z-search-date-content-btns a.active').removeClass('active'); $('#lr_search_date_container_' + dfop.id).addClass('width'); $this.addClass('active'); $self.find('.z-search-date-datepicker-content').show(); }); // 时间确定按钮 $datepickerBtn.find('a').on('click', function () { var $self = $(this).parents('.z-search-date'); var dfop = $self[0]._lrdate.dfop; var $container = $self.find('#lr_search_date_container_' + dfop.id); var $text = $self.find('#lr_search_date_' + dfop.id); $container.hide(); var label = zou.formatDate(dfop._begindate, 'yyyy-MM-dd') + '~' + zou.formatDate(dfop._enddate, 'yyyy-MM-dd'); $text.html(label); if (!!dfop.selectfn) { dfop.selectfn(dfop._begindate, dfop._enddate); } }); }, monthinit: function ($self) {// 月:上月,本月 var dfop = $self[0]._lrdate.dfop; var $btnlist = $('#lr_search_date_content_btns_' + dfop.id); var $block = $('
'); if (dfop.premShow) { $block.append('上月'); } if (dfop.mShow) { $block.append('本月'); } $btnlist.prepend($block); dfop = null; }, jinit: function ($self) {// 季度 var dfop = $self[0]._lrdate.dfop; var $btnlist = $('#lr_search_date_content_btns_' + dfop.id); var $block = $('
'); if (dfop.prejShow) { $block.append('上季度'); } if (dfop.jShow) { $block.append('本季度'); } $btnlist.prepend($block); dfop = null; }, yinit: function ($self) { var dfop = $self[0]._lrdate.dfop; var $btnlist = $('#lr_search_date_content_btns_' + dfop.id); var $block = $('
'); if (dfop.ysShow) { $block.append('上半年'); } if (dfop.yxShow) { $block.append('下半年'); } if (dfop.preyShow) { $block.append('去年'); } if (dfop.yShow) { $block.append('今年'); } $btnlist.prepend($block); dfop = null; }, custmerinit: function ($self) { var dfop = $self[0]._lrdate.dfop; var $btnlist = $('#lr_search_date_content_btns_' + dfop.id); var $block = $('
'); for (var i = 0, l = dfop.dfdata.length; i < l; i++) { var item = dfop.dfdata[i]; $block.append('' + item.name + ''); } $btnlist.prepend($block); dfop = null; }, bindEvent: function ($self) { $self.find('.datebtn').on('click', function () { var $this = $(this); var $self = $this.parents('.z-search-date'); var value = $this.attr('data-value'); $.lrdate.select($self, value); }); }, select: function ($self, value) { var dfop = $self[0]._lrdate.dfop; var $container = $self.find('#lr_search_date_container_' + dfop.id); var $text = $self.find('#lr_search_date_' + dfop.id); var $btnlist = $('#lr_search_date_content_btns_' + dfop.id); $btnlist.find('.active').removeClass('active'); var $this = $btnlist.find('.datebtn[data-value="' + value + '"]').addClass('active'); switch (value) { case 'preM': var d = zou.getPreMonth(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'currentM': var d = zou.getMonth(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'preJ': var d = zou.getPreQuarter(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'currentJ': var d = zou.getCurrentQuarter(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'yS': var d = zou.getFirstHalfYear(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'yX': var d = zou.getSecondHalfYear(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'preY': var d = zou.getPreYear(); dfop._begindate = d.begin; dfop._enddate = d.end; break; case 'currentY': var d = zou.getYear(); dfop._begindate = d.begin; dfop._enddate = d.end; break; default: var rowid = parseInt(value); var data = dfop.dfdata[rowid]; dfop._begindate = data.begin(); dfop._enddate = data.end(); break; } $container.hide(); var label = zou.formatDate(dfop._begindate, 'yyyy-MM-dd') + '~' + zou.formatDate(dfop._enddate, 'yyyy-MM-dd'); $text.html(label); $('#lr_search_date_container_' + dfop.id).removeClass('width'); $self.find('.z-search-date-datepicker-content').hide(); if (!!dfop.selectfn) { dfop.selectfn(dfop._begindate, dfop._enddate); } } }; $.fn.lrdate = function (op) { var dfop = { // 自定义数据 dfdata: [], // 月 mShow: true, premShow: true, // 季度 jShow: true, prejShow: true, // 年 ysShow: true, yxShow: true, preyShow: true, yShow: true, dfvalue: false,//preM,currentM,preJ,currentJ,yS,yX,preY,currentY, selectfn: false, minDate: '', maxDate: '', }; $.extend(dfop, op || {}); var $self = $(this); dfop.id = $self.attr('id'); if (!dfop.id) { return false; } $self[0]._lrdate = { "dfop": dfop }; $.lrdate.init($self); $.lrdate.yinit($self); $.lrdate.jinit($self); $.lrdate.monthinit($self); $.lrdate.custmerinit($self); $.lrdate.bindEvent($self); if (dfop.dfvalue != false) { $.lrdate.select($self, dfop.dfvalue); } return $self; }; })(jQuery, top.zou);