/** * 录入维修单 */ define( "order/submit-controller", [ 'mk7/controller', 'mk7/url', 'mk7/utils', 'mk7/uploadjs', 'mk7/picker' ], function(ctrl, url, utils, uploadjs, picker) { var $$ = Dom7; var t7 = Template7; var ctrl = new ctrl(); var uploadURL = '/user/default/upload-file'; var submitURL = '/order/default/submit'; var canSubmit = true; var finishTime = ''; ctrl.run = function () { var me = this; me.setPageTitle("录入维修单"); me.imgLimit = 9; me.render(); } ctrl.bindEvents = function () { var me = this; console.log("bindEvents"); me.uploadImgEvent(); me.submitEvent(); me.selectDateEvent(); me.openCarModel(); me.searchCarModel(); me.carModelClick() } ctrl.uploadImgEvent = function() { var me = this; $$('#submit #upload-btn').change(function () { if ('' == $$(this).val() || null == $$(this).val()) { return; } var uploadParent = $$(this).parents('li'); uploadjs.uploadFile({ selector: '#upload-btn', url: url.to(uploadURL), processAppendTo: '#submit', success: function (response, e) { try { if (response.success) { var imgUrl = response.tmpUrl; $$('
  • ' + '
  • ').insertBefore(uploadParent); if (me.imgLimit == $$('#submit #image-list').find('.up-img').length) { $$('#submit .upload-btn-li').hide(); } } else { utils.toast({content: response.message, closeDelay: 5000}); } } catch (ex) { console.log(ex) utils.toast({content: '出错', closeDelay: 5000}); } } }); }) $$('#submit #image-list').on('click', '.del-img', function(e){ $$(this).parent().remove(); if (me.imgLimit >= $$('#submit #image-list').find('.up-img').length) { $$('#submit .upload-btn-li').show(); } }) } ctrl.submitEvent = function() { var me = this; $$('#submit .submit-btn-cls').click(function(e) { var carNo = utils.trim($$('#submit .carNo').val()); var carModel = utils.trim($$('#submit .carModel').val()); var customer = utils.trim($$('#submit .customer').val()); var phone = utils.trim($$('#submit .phone').val()); var preRepair = utils.trim($$('#submit .preRepair').val()); var repairPrice = utils.trim($$('#submit .repairPrice').val()); var finishDate = utils.trim($$('#submit .finishDate').val()); if (false == canSubmit) { return false; } if ('' == carNo) { utils.toast({content:'车牌号必填'}); return false; } if ('' == carModel) { utils.toast({content:'车辆型号必填'}); return false; } if ('' == customer) { utils.toast({content:'客户名称必填'}); return false; } if ('' == phone) { utils.toast({content:'客联系电话必填'}); return false; } if (!utils.isMobile(phone) && !utils.isTelephone(phone)) { utils.toast({content:'客联系电话有误'}); return false; } /* if ('' == preRepair) { utils.toast({content:'预估维修内容必填'}); return false; } if ('' == repairPrice) { utils.toast({content:'预估维修费用必填'}); return false; } if ('' == finishDate) { utils.toast({content:'预估完成时间必填'}); return false; } */ var imgs = me.getUploadImgs(); if (0 == imgs.length) { utils.toast({content:'请上传车损照'}); return false; } canSubmit = false; var sData = me.csrf({ carNo:carNo, carModel:carModel,customer:customer,phone:phone, preRepair:preRepair, repairPrice:repairPrice,finishDate:finishDate, images:imgs }) utils.httpPost(submitURL, sData, function(res) { canSubmit = true; if (!res.success) { utils.toast({content:message}); return false; } else { window.location.replace(url.to('order#order-details/'+res.orderId)); } }, true); }) } ctrl.getUploadImgs = function() { var images = $$('#submit #image-list').find('.up-img'); var returnImg = []; if (images.length == 0 ) { return []; } $$.each(images, function(i, n){ var img = $$(n).find('.upload-item'); returnImg.push(img.attr('data')) }) return returnImg; } ctrl.selectDateEvent = function() { var me = this $$('#submit .finish-date-input').click(function(e) { var cData = $$('#submit .finish-date-input').val(); console.log(cData) me.dateTimeSelector('#submit .finish-date-input', cData); }) } ctrl.dateTimeSelector = function(dateId, cData) { var me = this; var curDay = new Date(); var maxDays = 30; var yearDefaultSelect = curDay.getFullYear(); var monthDefaultSelect = curDay.getMonth(); var dateDefaultSelect = curDay.getDate(); var hoursSelect = curDay.getHours(); var cDateFormat = yearDefaultSelect + '-' + (monthDefaultSelect+1) + '-' +dateDefaultSelect; if ('' != cData && null != cData && undefined !== cData) { var cD = cData.split(' ') cDateFormat = cD[0]; hoursSelect = cD[1]; } //console.log(cDateFormat) //console.log(hoursSelect) var sDays = []; for( i= 0; i<= maxDays; i++){ var thisDay = new Date(); thisDay.setDate(curDay.getDate()+i); var setD = thisDay.getFullYear()+'-'+(thisDay.getMonth()+1)+'-'+thisDay.getDate(); sDays.push(setD); } var pickerInline = me.app.picker({ input : dateId, toolbarTemplate : '
    ' + '
    ' + '
    ' + '请选择用工时间' + '
    ' + '
    ' + '确定' + '
    ' + '
    ' + '
    ', value : [ cDateFormat, hoursSelect], onChange: function (picker, values, displayValues) { var year,month,date; if(values[0] instanceof Date){ year = values[0].getFullYear(); month = (values[0].getMonth()); date = values[0].getDate(); }else{ var cD = values[0].split('-'); year = cD[0]; month = cD[1] - 1; date = cD[2]; } var selectedDay = new Date(year, month, date, values[1], 0); var cDate = new Date(new Date().getTime() + 60 * 60 * 1000); //1小时后 if (selectedDay < cDate) { if(undefined === picker.cols[0]) { return false; } var setHours = cDate.getHours(); var myDate = cDate.getFullYear() + '-' + (cDate.getMonth()+1) + '-' + cDate.getDate(); var nextHoursDate = new Date(cDate.getFullYear(), cDate.getMonth(), cDate.getDate(), cDate.getHours(), 0); // 还有15分钟就下一个小时的 if ((nextHoursDate - (new Date())) < 15 * 60 *1000 ) { var nextNextHoursDate = new Date(nextHoursDate.getTime() + 60 * 60 * 1000); setHours = nextNextHoursDate.getHours(); myDate = nextNextHoursDate.getFullYear() + '-' + (nextNextHoursDate.getMonth()+1) + '-' + nextNextHoursDate.getDate(); } picker.cols[0].setValue(myDate); picker.cols[2].setValue(setHours); } }, formatValue: function (picker, values, displayValues) { var date =''; if (values[0] instanceof Date) { date = values[0].getFullYear()+'-'+ (values[0].getMonth()+1) +'-'+values[0].getDate(); } else { date = values[0]; } var rd = date + " " + values[1];// +':'+values[2] return rd }, cols: [ // Years { values: sDays, displayValues:(function(){ var arr = []; var date = new Date(); var todayYear = date.getFullYear(); var todayMonth = date.getMonth() +1; var todayDate = date.getDate(); date.setDate(date.getDate() + 1); for (var i = 0; i < sDays.length; i++) { var gd = sDays[i]; var d = gd.split('-'); var pushDate = d[1]+'月'+d[2]+'日'; if(todayYear == d[0] && (todayMonth * 1) == d[1] && (todayDate * 1) == d[2]){ pushDate = pushDate + '(今天)'; } if((date.getFullYear() *1) == d[0] && ((date.getMonth() *1)+1) == d[1] && (date.getDate() *1) == d[2]){ pushDate = pushDate + '(明天)'; } arr.push(pushDate); } return arr; })() }, // Space divider { divider: true, content: ' ' }, // Hours { values: (function () { var arr = []; for (var i = 0; i <= 23; i++) { arr.push(i); } return arr; })(), displayValues:(function(){ var arr = []; for (var i = 0; i <= 23; i++) { arr.push(i < 10 ? '0' + i+ '时' : i+'时'); } return arr; })() }, // Space divider { divider: true, content: ' ' }, ], onClose : function(e) { if(pickerInline) { // 设置年月日 var values = pickerInline.value; var hourStr = values[1] < 10 ? "0"+values[1] : values[1]; finishTime = values[0]+' '+hourStr; $$(dateId).val(finishTime); pickerInline.destroy(); } } }); pickerInline.open(); $$('.submit-confirm-picker').on('click', function(e){ e.preventDefault(); // 设置年月日 var values = pickerInline.value; var hourStr = values[1] < 10 ? "0"+values[1] : values[1]; finishTime = values[0]+' '+hourStr; //+':'+minStr $$(dateId).val(finishTime); pickerInline.destroy(); }); } ctrl.openCarModel= function() { var me = this; $$('#submit').on('click', '.carModel',function(e) { $$('#search-wrapper').remove(); var page = $$('#submit'); var ele = $$('script#search-carr-model-template'); var compiled = t7.compile(ele.html()); var doms = compiled({keyword: ''}); page.append(doms); }) } ctrl.renderCarModelItem = function (items) { var addressList = $$('#search-wrapper .model-list'); var ele = $$('script#search-car-model-item-template'); var compiled = t7.compile(ele.html()); var doms = compiled({items: items}); addressList.html(doms); } ctrl.searchCarModel = function() { var me = this; $$('#submit').on('click', '.model-search-btn', function(e){ me.ajaxSearch(); }) $$('#submit').on('submit', '#search-form', function(e){ e.preventDefault(); me.ajaxSearch(); return false; }) } ctrl.ajaxSearch = function() { var me = this; var pData = {keyword: $$('#search-wrapper .search-input').val()}; $$.ajax({ method : "POST", url: url.to('order/default/search-model'), data : pData, dataType : "json", beforeSend : function(){ me.showIndicator(); }, success : function(res){ if (res.success) { me.renderCarModelItem(res.items); } else { me.renderCarModelItem([]); } }, error : function(res){}, complete : function(res){ me.hideIndicator(); } }) } ctrl.carModelClick = function(){ var me = this; $$('#submit').on('click','.model-div-btn', function(e){ var model = $$(this).attr('data-value'); $$('#submit .carModel').val(model); $$('#search-wrapper').remove(); }) $$('#submit').on('click','.closeBtn', function(e){ $$('#search-wrapper').remove(); }) } return ctrl; } );