123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- /*
- * 描 述:lrdate 时间段选择器 @YY@-当年 @MM@-当月 @DD@-当天 @JJ@-当季度
- */
- (function ($, learun) {
- "use strict";
- $.lrdatetime = {
- init: function ($self) {
- var dfop = $self[0]._lrdate.dfop;
- $self.html('');
- $self.addClass('lr-search-date');
- var $text = $('<div class="lr-search-date-text" id="lr_search_date_' + dfop.id + '" ></div>');
- var $container = $('<div class="lr-search-date-container" id="lr_search_date_container_' + dfop.id + '"><div class="lr-search-date-arrow"><div class="lr-search-date-inside"></div></div></div>');
- var $btnlist = $('<div class="lr-search-date-content-btns" id="lr_search_date_content_btns_' + dfop.id + '"></div>');
- var $customDate = $('<div class="lr-search-date-btn-block"><a href="javascript:;" data-value="customDate">自定义</a></div>');
- var $clearDate = $('<div class="lr-search-date-btn-block"><a href="javascript:;" data-value="clearDate">清空</a></div>');
- $btnlist.append($customDate);
- $btnlist.append($clearDate);
- $container.append($btnlist);
- var $datepickerContent = $('<div class="lr-search-date-datepicker-content"></div>');
- var $datepicker1 = $('<div class="lr-search-date-datepicker-container first" id="lr_search_date_datepicker1_' + dfop.id + '" ></div>');
- var $datepicker2 = $('<div class="lr-search-date-datepicker-container" id="lr_search_date_datepicker2_' + dfop.id + '" ></div>');
- var $datepickerBtn = $('<div class="lr-search-date-datepicker-btn"><a class="btn btn-primary">确定</a></div>');
- $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, startDate: '%y-%M-%d 00:00:00', dateFmt: dfop.wdateFmt, alwaysUseStartDate: true, onpicked: function (dp) { dfop._begindate = dp.cal.getDateStr() /*+ " 23:59:59"*/; }, minDate: dfop.minDate, maxDate: dfop.maxDate });// 开始时间
- WdatePicker({ eCont: 'lr_search_date_datepicker2_' + dfop.id, startDate: '%y-%M-%d 23:59:59', dateFmt: dfop.wdateFmt, alwaysUseStartDate: true, 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('.lr-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('lr-search-date') && $et.parents('.lr-search-date').length <= 0) {
- $('.lr-search-date-container').hide();
- }
- });
- $customDate.find('a').on('click', function (e) {
- var $this = $(this);
- var $self = $this.parents('.lr-search-date');
- var dfop = $self[0]._lrdate.dfop;
- $self.find('.lr-search-date-content-btns a.active').removeClass('active');
- $('#lr_search_date_container_' + dfop.id).addClass('width');
- $this.addClass('active');
- $self.find('.lr-search-date-datepicker-content').show();
- });
- $clearDate.find('a').on('click', function (e) {
- var $this = $(this);
- var $self = $this.parents('.lr-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();
- $self.find('.lr-search-date-content-btns a.active').removeClass('active');
- $text.html("");
- if (!!dfop.selectfn) {
- dfop.selectfn("0001-01-01 00:00:00", "3000-01-01 23:59:59");
- }
- });
- // 时间确定按钮
- $datepickerBtn.find('a').on('click', function () {
- var $self = $(this).parents('.lr-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();
- if ($.isEmptyObject(dfop._begindate)) {
- dfop._begindate = $.lrdatetime.getNowFormatDate(1);
- }
- if ($.isEmptyObject(dfop._enddate)) {
- dfop._enddate = $.lrdatetime.getNowFormatDate(2);
- }
- var label = learun.formatDate(dfop._begindate, dfop.wdateFmt1) + '~' + learun.formatDate(dfop._enddate, dfop.wdateFmt1);
- $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 = $('<div class="lr-search-date-btn-block"></div>');
- if (dfop.premShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="preM">上月</a>');
- }
- if (dfop.mShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="currentM">本月</a>');
- }
- $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 = $('<div class="lr-search-date-btn-block"></div>');
- if (dfop.prejShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="preJ">上季度</a>');
- }
- if (dfop.jShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="currentJ">本季度</a>');
- }
- $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 = $('<div class="lr-search-date-btn-block"></div>');
- if (dfop.ysShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="yS">上半年</a>');
- }
- if (dfop.yxShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="yX">下半年</a>');
- }
- if (dfop.preyShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="preY">去年</a>');
- }
- if (dfop.yShow) {
- $block.append('<a href="javascript:;" class="datebtn" data-value="currentY">今年</a>');
- }
- $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 = $('<div class="lr-search-date-btn-block"></div>');
-
- for (var i = 0, l = dfop.dfdata.length; i < l; i++) {
- var item = dfop.dfdata[i];
- $block.append('<a href="javascript:;" class="datebtn" data-value="' + i + '">' + item.name + '</a>');
- }
- $btnlist.prepend($block);
- dfop = null;
- },
- bindEvent: function ($self) {
- $self.find('.datebtn').on('click', function () {
- var $this = $(this);
- var $self = $this.parents('.lr-search-date');
- var value = $this.attr('data-value');
- $.lrdatetime.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 = learun.getPreMonth();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'currentM':
- var d = learun.getMonth();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'preJ':
- var d = learun.getPreQuarter();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'currentJ':
- var d = learun.getCurrentQuarter();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'yS':
- var d = learun.getFirstHalfYear();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'yX':
- var d = learun.getSecondHalfYear();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'preY':
- var d = learun.getPreYear();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'currentY':
- var d = learun.getYear();
- dfop._begindate = d.begin;
- dfop._enddate = d.end;
- break;
- case 'all':
- return;
- break;
- default:
- var rowid = parseInt(value);
- var data = dfop.dfdata[rowid];
- dfop._begindate = data.begin();
- dfop._enddate = data.end();
- break;
- }
- $container.hide();
- var label = learun.formatDate(dfop._begindate, dfop.wdateFmt1) + '~' + learun.formatDate(dfop._enddate, dfop.wdateFmt1);
- $text.html(label);
- $('#lr_search_date_container_' + dfop.id).removeClass('width');
- $self.find('.lr-search-date-datepicker-content').hide();
- if (!!dfop.selectfn) {
- dfop.selectfn(dfop._begindate, dfop._enddate);
- }
- },
- //获取当前时间,格式YYYY-MM-DD
- getNowFormatDate: function (temp) {
- var date = new Date();
- var seperator1 = "-";
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var strDate = date.getDate();
- if (month >= 1 && month <= 9) {
- month = "0" + month;
- }
- if (strDate >= 0 && strDate <= 9) {
- strDate = "0" + strDate;
- }
- var currentdate = year + seperator1 + month + seperator1 + strDate;
- if (temp == 1)
- return currentdate + ' 00:00:00';
- else
- return currentdate + ' 23:59:59';
- },
- clearDate: function () {
- var $this = $(this);
- var $self = $this.parents('.lr-search-date');
- var dfop = $self[0]._lrdate.dfop;
- if (!!dfop.selectfn) {
- dfop.selectfn("0001-01-01 00:00:00", "3000-01-01 23:59:59");
- }
- }
- };
- $.fn.lrdatetime = 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: '',
- wdateFmt: 'yyyy-MM-dd HH:mm:ss',
- wdateFmt1: 'yyyy-MM-dd hh:mm:ss',
-
- };
- $.extend(dfop, op || {});
- var $self = $(this);
- dfop.id = $self.attr('id');
- if (!dfop.id) {
- return false;
- }
- $self[0]._lrdate = { "dfop": dfop };
- $.lrdatetime.init($self);
- $.lrdatetime.yinit($self);
- $.lrdatetime.jinit($self);
- $.lrdatetime.monthinit($self);
- $.lrdatetime.custmerinit($self);
- $.lrdatetime.bindEvent($self);
- //if (dfop.dfvalue != false) {
- // $.lrdatetime.select($self, dfop.dfvalue);
- //}
- $.lrdatetime.select($self, dfop.dfvalue);
- return $self;
- };
- })(jQuery, top.learun);
|