/**
* 录入维修单
*/
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;
}
);