username@email.com
2021-06-03 63bcf5d37da46e954caab6eebf7df64498e1c18e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
(function ($, zou) {
    "use strict";
    $.lrdate = {
        init: function ($self) {
            var dfop = $self[0]._lrdate.dfop;
            $self.html('');
            $self.addClass('z-search-date');
            var $text = $('<div class="z-search-date-text" id="lr_search_date_' + dfop.id + '" ></div>');
            var $container = $('<div class="z-search-date-container" id="lr_search_date_container_' + dfop.id + '"><div class="z-search-date-arrow"><div class="z-search-date-inside"></div></div></div>');
 
            var $btnlist = $('<div class="z-search-date-content-btns" id="lr_search_date_content_btns_' + dfop.id + '"></div>');
            var $customDate = $('<div class="z-search-date-btn-block"><a href="javascript:;" data-value="customDate">自定义</a></div>');
            $btnlist.append($customDate);
            $container.append($btnlist);
 
            var $datepickerContent = $('<div class="z-search-date-datepicker-content"></div>');
 
            var $datepicker1 = $('<div class="z-search-date-datepicker-container first" id="lr_search_date_datepicker1_' + dfop.id + '"  ></div>');
            var $datepicker2 = $('<div class="z-search-date-datepicker-container" id="lr_search_date_datepicker2_' + dfop.id + '"  ></div>');
            var $datepickerBtn = $('<div class="z-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, 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 = $('<div class="z-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="z-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="z-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="z-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('.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);