(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);