123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- define(['$', 'template', 'product'], function ($, template, product) {
- var cachePageData = {};
- return {
- body: '',
- init: function (pageData, dtd) {
- var $view = this;
- var $doc = $(document);
- $.newTouch('.day', function(event) {
- event.preventDefault();
- // $.each(cachePageData.offDay, function(index, val) {
- // if ($(this).attr('data-value') == val) {
- // var i = $(this).index();
- // $('.picker-time').find('ul').eq(i).find('li').addClass('off');
- // }
- // });
- $(this).addClass('on').siblings().removeClass('on');
- $('.picker-time', $view).find('li').removeClass('on');
- $('.picker-time', $view)
- .find('ul').eq($(this).index()).show()
- .siblings().hide();
- }, $view);
- $.newTouch('.j-book-time', function(event) {
- event.preventDefault();
- if ($(this).hasClass('off')) return;
- var $day = $('.picker-day-box',$view).find('.row').find('.on');
- var dayText = $day.text();
- var dayVal = $day.data('value');
- var time = $(this).data('value');
- $(this).addClass('on').siblings().removeClass('on');
- $view.trigger('spa:closepanel');
- // if ($(this).hasClass('current')) {
- // precedence = 1;
- // $doc.trigger('spa:openpanel', ['simpleAlert', {
- // title: '温馨提示',
- // message: '您选择了加急服务,需要额外支付' + product.precedence + '元服务费。'
- // }]);
- // } else {
- // precedence = 0;
- // }
- var values = [],
- texts = [];
- values.push(dayVal);
- values.push(time);
- texts.push(dayText);
- texts.push(time);
- var callback = pageData.pushData.callback;
- if (callback && $.isFunction(callback.onSelect)) {
- callback.onSelect(values, texts);
- }
- }, $view);
- dtd.resolve();
- },
- beforeopen: function (pageData, dtd) {
- var $view = this;
- var pushData = pageData.pushData;
- var columns = pushData['columns'];
- var selected = pushData['selected'];
- // var type = pushData['type'];
- // var offDay = pushData['offDay'];
- // cachePageData.offDay = offDay;
- $('.spa-page-bg', $view).css({
- opacity: 0
- }).transition({
- opacity: 0.6
- });
- var tpl = template('common/dataPicker', {
- columns: columns
- });
- $view.find('.spa-page-body').html(tpl);
- var $pickerDay = $('.picker-day', $view);
- var $pickerTime = $('.picker-time', $view);
- var $li = $pickerTime.find('li').eq(0);
- var index = $pickerDay.find('.on').index();
- // $pickerDay.find('ul').eq(index).removeClass('hide').siblings().addClass('hide');
- $pickerTime.find('ul').eq(index).removeClass('hide').siblings().addClass('hide');
- // 18点之后 或者半点之后 顺延一小时
- if ($li.data('now') >= 18 || $li.data('time') > 10 || $pickerTime.find('ul').eq(0).find('li').length == 0 ) {
- $li.hide();
- };
- if ($pickerTime.find('ul').eq(0).find('li').length <1) {
- $pickerTime.find('ul').eq(0).addClass('hide');
- $pickerTime.find('ul').eq(1).removeClass('hide');
- $pickerDay.find('li').eq(1).addClass('on').siblings().removeClass('on');
- var restDay = $pickerDay.find('li').eq(1).attr('data-value');
- if (restDay == '2016-01-01') {
- $pickerDay.find('li').eq(2).addClass('on').siblings().removeClass('on');
- $pickerTime.find('ul').eq(2).removeClass('hide').siblings().addClass('hide');
- }
- }
- // 九点前 九点不能预约
- if ($li.data('now') < 9 ) {
- $li.hide();
- }
- // if (type == 6) {
- // if ($li.data('now') <= 19) {
- // $pickerDay.find('li').eq(0).addClass('hide').removeClass('on');
- // $pickerDay.find('li').eq(1).addClass('on');
- // $pickerTime.find('ul').eq(0).addClass('hide');
- // $pickerTime.find('ul').eq(1).removeClass('hide');
- // } else {
- // $pickerDay.find('li').eq(0).addClass('hide').removeClass('on');
- // $pickerDay.find('li').eq(1).addClass('hide').removeClass('on');
- // $pickerDay.find('li').eq(2).addClass('on');
- // $pickerTime.find('ul').eq(0).addClass('hide');
- // $pickerTime.find('ul').eq(1).addClass('hide');
- // $pickerTime.find('ul').eq(2).removeClass('hide');
- // }
- // }
- // $('.picker-day').find('li').each(function(index, el) {
- // $.each(cachePageData.offDay, function(i, v) {
- // if (v == $(el).attr('data-value') ) {
- // $('.picker-time').find('ul').eq(index).find('li').addClass('off');
- // };
- // });
- // });
- if ($pickerDay.find('li').eq(0).attr('data-value') == '2016-01-01') {
- $('.picker-time').find('ul').eq(0).find('li').addClass('off');
- }
- var myScroll;
- (function loaded () {
- myScroll = new IScroll('.picker-day', { scrollX: true, scrollY: false, mouseWheel: true });
- })();
- if (selected) { // 如果选择过日期 修正日期位置
- var days = (new Date(selected) - new Date(columns['columnDay'][0]['value'])) / 86400000;
- var viewW = document.body.clientWidth;
- var l = parseInt(viewW / 80);
- if (days >= l) { // 选择日期不在 viewport 内
- myScroll.scrollToElement($('.picker-day-box', $view).find('.day').eq(days)[0]);
- $('.picker-day-box', $view)
- .find('.day').eq(days).addClass('on')
- .siblings().removeClass('on');
- }
- // if (type == 6) {
- // $('.picker-time', $view)
- // .find('ul').eq(days).removeClass('hide')
- // .siblings().addClass('hide');
- // $('.picker-day-box', $view)
- // .find('li').eq(days).addClass('on')
- // .siblings().removeClass('on');
- // }
- } else {
- if ($li.data('now') >= 18) { // 时间超过 18 点, 修正显示第二天
- var restDay = $pickerDay.find('li').eq(1).attr('data-value');
- if (restDay == '2016-01-01') {
- $pickerDay.find('li').eq(2).addClass('on').siblings().removeClass('on');
- $pickerTime.find('ul').eq(2).removeClass('hide').siblings().addClass('hide');
- } else {
- $pickerDay.find('li').eq(1).addClass('on').siblings().removeClass('on');
- $pickerTime.find('ul').eq(1).removeClass('hide').siblings().addClass('hide');
- }
- }
- }
- dtd.resolve();
- },
- beforeclose: function (panelData, dtd) {
- var $view = this;
- $('.spa-page-bg', $view).transition({
- opacity: 0
- });
- dtd.resolve();
- }
- }
- })
|