';
$.each(dateFilterArray, function (index, filter) {
var isFind = false;
for (var dutyDay in data[plNo][berth][group]) {
if (filter == parseInt(dutyDay)) {
isFind = true;
var tempHtml = '
';
for (var i in data[plNo][berth][group][dutyDay]) {
var temp = data[plNo][berth][group][dutyDay][i];
if (temp.isRest == 10) {//正常上班
tempHtml += "';
}
}
tempHtml += '
';
html += tempHtml;
}
}
if (!isFind) {
html += '
暂无排班
';
}
});
html += '
';
}
html += '
';
}
html += '
';
}
html += '
';
$("#park-wraphandthree").append(html);
$('.handDutyChargerSelect').selectpicker('render');
var len = $('#park-wraphandthree .schedulingplan-data-wrap li').length-1;
$('#park-wraphandthree .schedulingplan-data-wrap ').css('width', (Number(120 * len) + Number(240)) + 'px')
},
/*处理停车场视图排班计划数据 手工排班*/
handelParkViewDutyRosterDatasetByHandForStep4: function (resData, viewType) {
$("#park-wraphand").empty();
var tempData = [];
//预览
if (viewType == 'preview') {
$.each(resData, function (index, temp) {
if (temp.isRest == 10) {
tempData.push(temp);
}
});
resData = tempData;
}
// console.log(viewType);
// console.log('停车场视图数据:');
// console.log(JSON.stringify(resData));
//数据格式整理
var parkData = {};
var berthData = {};
var groupData = {};
var dutyDayData = {};
var data = {};
var dutyCycle = 0;
$.each(resData, function (index, item) {
dutyCycle = item.dutyCycle;
var plNo = item.plNo;
var berthNo = item.berthRangeNo;
var groupId = item.groupId;
var dayNum = item.dayNum + '';
if (parkData[plNo] == undefined || parkData[plNo] == null) {
parkData[plNo] = item.plName;
data[plNo] = {};
}
if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) {
berthData[berthNo] = item.berthRangeName;
data[plNo][berthNo] = {};
}
if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) {
groupData[groupId] = {};
groupData[groupId].groupName = item.groupName;
groupData[groupId].groupStartTime = item.groupStartTime;
groupData[groupId].groupEndTime = item.groupEndTime;
data[plNo][berthNo][groupId] = {};
}
if (data[plNo][berthNo][groupId][dayNum] == undefined || data[plNo][berthNo][groupId][dayNum] == null) {
dutyDayData[dayNum] = {};
dutyDayData[dayNum].dayNum = item.dayNum;
data[plNo][berthNo][groupId][dayNum] = [];
}
data[plNo][berthNo][groupId][dayNum].push(item);
});
var dateFilterArray = [];
for (var i = 1; i <= dutyCycle; i++) {
dateFilterArray.push(i + '');
}
fun.handelParkViewDutyRosterDataToHtmlByHandForStep4(data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray)
},
/*处理停车场视图排班计划数据转换为 html 手工排班*/
handelParkViewDutyRosterDataToHtmlByHandForStep4: function (data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) {
$("#park-wraphand").empty();
$("#toll-wraphand").empty();
var html = fun.createDutyRosterViewTitleByHandFour(dutyCycle, viewType);
html += '
';
for (var plNo in data) {
console.log('停车场排班信息为:' + JSON.stringify(data))
html += '
' +
'
' +
'
' + fun.strFormatter(parkData[plNo]) + '
' +
'
' +
'
';
for (var berth in data[plNo]) {
html += '
' +
'
' +
'
' + fun.strFormatter(berthData[berth]) + '
' +
'
' +
'
';
for (var group in data[plNo][berth]) {
html += '
';
$.each(dateFilterArray, function (index, filter) {
var isFind = false;
for (var dutyDay in data[plNo][berth][group]) {
if (filter == parseInt(dutyDay)) {
isFind = true;
var tempHtml = '
';
for (var i in data[plNo][berth][group][dutyDay]) {
var temp = data[plNo][berth][group][dutyDay][i];
if (temp.isRest == 10) {//正常上班
tempHtml += '
' + fun.strFormatter(temp.chargerName) + '
';
}
}
tempHtml += '
';
html += tempHtml;
}
}
if (!isFind) {
html += '
暂无排班
';
}
});
html += '
';
}
html += '
';
}
html += '
';
}
html += '
';
$("#park-wraphand").append(html);
$("#toll-wraphand").append(html);
$('.handDutyChargerSelect').selectpicker('render');
var len = $('#park-wrap .schedulingplan-data-wrap li').length;
// $('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', (Number(120 * len) + Number(120)) + 'px')
},
/*处理收费员视图排班计划数据*/
handelChargerViewDutyRosterDataset: function (data, viewType) {
$("#toll-wrap").empty();
$("#park-wrap").empty();
$("#toll-wraplook").empty();
$("#park-wraplook").empty();
var chargerData = {};
var handelData = {};
var dutyCycle = 0;
$.each(data, function (index, item) {
dutyCycle = item.dutyCycle;
var chargerCode = item.chargerCode;
if (undefined == handelData[chargerCode]) {
handelData[chargerCode] = []
var charger = {};
charger.chargerCode = chargerCode;
charger.chargerName = item.chargerName;
chargerData[chargerCode] = charger;
}
handelData[chargerCode].push(item);
});
var dateFilterArray = [];
for (var i = 1; i <= dutyCycle; i++) {
dateFilterArray.push(i + '');
}
fun.handelChargerViewDutyRosterDataToHtml(handelData, chargerData, viewType, dateFilterArray);
},
//将处理过后的收费员视图数据转换为 html;
handelChargerViewDutyRosterDataToHtml: function (data, chargerData, viewType, dateFilterArray) {
$("#toll-wrap").empty();
$("#park-wrap").empty();
$("#toll-wraplook").empty();
$("#park-wraplook").empty();
//获取标题头
var html = fun.createDutyRosterViewTitle(dateFilterArray.length, viewType);
//填充内容
html += '
';
// console.log(data)
for (var chargerCode in data) {
html += '
';
$.each(dateFilterArray, function (index, filter) {
var isFind = false;
for (var i in data[chargerCode]) {
var _item = data[chargerCode][i];
if (filter == _item.dayNum) {
isFind = true;
if (_item.isRest == 10) {//正常工作
html += '
';
$.each(dateFilterArray, function (index, filter) {
var isFind = false;
for (var i in data[chargerCode]) {
var _item = data[chargerCode][i];
if (filter == _item.dayNum) {
isFind = true;
if (_item.isRest == 10) {//正常工作
html += '
';
}
$("#toll-wraphand").append(html)
$("#park-wraphand").append(html)
$('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', 120 * (dateFilterArray.length + 1) + 'px')
},
//获取未添加的排班计划班次
getNoAddDutyRosterGroup: function () {
var group = {}
var groupName = $('#bcNames_inp').val();
var startTime = $('#startTime').val();
var endTime = $('#endTime').val();
group.name = groupName;
group.startTime = startTime;
group.endTime = endTime;
return group;
},
//获取未添加的排班计划班次 手工排班
getNoAddDutyRosterGroupByHand: function () {
var group = {}
var groupName = $('#bcNames_inphand').val();
var startTime = $('#startTimehand').val();
var endTime = $('#endTimehand').val();
group.name = groupName;
group.startTime = startTime;
group.endTime = endTime;
return group;
},
//获取已添加的排班计划班次
getHasAddDutyRosterGroup: function () {
var groups = [];
$('#schplan_tablecon-list').find('ul').each(function () {
var group = {};
$(this).find('li').each(function (index, item) {
if (index == 0) {
group.name = $(item).text();
}
if (index == 1) {
var dateRange = $(item).text().split('-');
group.startTime = new Date(('1970-01-01 ' + dateRange[0].trim() + ':00').replace(new RegExp(/-/gm), "/"));
group.endTime = new Date(('1970-01-01 ' + dateRange[1].trim() + ':00').replace(new RegExp(/-/gm), "/"));
}
});
groups.push(group);
});
return groups;
},
//获取已添加的排班计划班次 手工排班
getHasAddDutyRosterGroupByHand: function () {
var groups = [];
$('#schplan_tablecon-listhand').find('ul').each(function () {
var group = {};
$(this).find('li').each(function (index, item) {
if (index == 0) {
group.name = $(item).text();
}
if (index == 1) {
var dateRange = $(item).text().split('-');
group.startTime = new Date(('1970-01-01 ' + dateRange[0].trim() + ':00').replace(new RegExp(/-/gm), "/"));
group.endTime = new Date(('1970-01-01 ' + dateRange[1].trim() + ':00').replace(new RegExp(/-/gm), "/"));
}
});
groups.push(group);
});
return groups;
},
//根据planId获取班次信息
getGroupByPlanIdForRemote: function () {
var planId = fun.generatorDutyRosterPlanIdByHand();
var planIds = [];
planIds.push(planId);
var req = {
sysCode: sysComm.sysCode,
planIds: planIds,
isContainNoValidate: true
};
var groups = [];
var opt = {
method: 'post',
url: dataUrl.util.queryDutyRosterGroups(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (res) {
if (res.code == '8888') {
groups = res.data;
} else {
alert('查询失败:' + res.code);
}
}
};
sysAjax(opt);
return groups;
},
/**
* 获取调休策略
* @returns {{}}
*/
getRestStrategy: function () {
var restStrategy = {};
var options = $("#planclname option:selected");
restStrategy.restType = options.text();
restStrategy.personNum = options.data('personnum');
restStrategy.berthRangeNum = options.data('berthrangenum');
restStrategy.worknum = options.data('worknum');
restStrategy.dutyCycle = options.data('dutycycle');
return restStrategy;
},
//查询调休策略
queryDutyPersonNumAndRecessNum: function () {
$('#planclname').empty();
var groups = fun.getHasAddDutyRosterGroup();
var infoMap = fun.getSelectPlNoInfo();
var berthRangeNos = infoMap.berthRangeNos;
var plNos= infoMap.plNos;
var req = {
sysCode: sysComm.sysCode,
plNos: plNos,
berthRangeNos:berthRangeNos,
rosterGroupNum: groups.length
};
var opt = {
method: 'post',
url: dataUrl.util.queryDutyPersonNumAndRecessNum(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
// console.log('调休策略')
var html = '';
$.each(res.data, function (index, item) {
var restHtml = '';
if (item.recessNum == 0) {
restHtml = '无调休';
} else {
restHtml = '上' + item.recessNum + '天休1天';
}
html += ''
})
$('#planclname').append(html);
$('#planclname').selectpicker('refresh');
$('#planclname').trigger('change');
}
};
sysAjax(opt);
},
//获取选择的收费员
getSelectedCharger: function () {
var chargers = [];
$('#replace-person-right').find('li').each(function () {
var charger = {};
charger.name = $(this).text();
charger.code = $(this).data('code');
chargers.push(charger);
})
return chargers;
},
//获取选择的收费员编码
getSelectedChargerCodes: function () {
var chargerCodes = [];
var chargers = fun.getSelectedCharger();
$.each(chargers, function (index, item) {
chargerCodes.push(item.code);
})
return chargerCodes;
},
//删除排班计划
deleteDutyRosterPlan: function (planId) {
var planIds = [];
planIds.push(planId);
var req = {
sysCode: sysComm.sysCode,
planIds: planIds
};
var opt = {
method: 'post',
url: dataUrl.util.deleteDutyRosterPlan(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
$('#plan_deletemodel').modal('hide');
fun.createTableData();
} else {
alert('删除失败:' + res.code);
}
}
};
sysAjax(opt);
},
//获取未排班的收费员
queryNotDutyChargerList: function () {
sessionStorage.setItem("no_duty_charger_data", JSON.stringify([]));
$('#replace-person-left').empty();
$('#replace-person-right').empty();
$('#checked-persons').text(0);
var req = {
sysCode: sysComm.sysCode,
};
var opt = {
method: 'post',
url: dataUrl.util.queryNotDutyChargerList(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
sessionStorage.setItem("no_duty_charger_data", JSON.stringify(res.data));
var html = '';
$.each(res.data, function (index, item) {
html += '
' + item.chargerName + '
'
})
$('#replace-person-left').append(html);
} else {
alert("查询未排班收费员异常:code=" + res.code);
}
}
};
sysAjax(opt);
},
//获取手工排班 排班天数 手工排班
getDutyDaysNumByHand: function () {
var dayNum = $('#bctime_inphand').val();
return dayNum;
},
//初始化手工排班内容 手工排班
initHandDutyContent: function () {
//获取天数
var dayNum = fun.getDutyDaysNumByHand();
//获取排班班次
var groups = fun.getGroupByPlanIdForRemote();
//获取泊位区间
var berthRanges = fun.getBerthRangeByPlNosForHand();
var planId = fun.generatorDutyRosterPlanIdByHand();
var plMap = fun.getSelectPlNosByHandMap();
var data = [];
$.each(berthRanges, function (index, berthRange) {
$.each(groups, function (index, group) {
for (var i = 1; i <= dayNum; i++) {
var dutyTemp = {
'planId': planId,
'chargerCode': -1,
'chargerName': -1,
'dayNum': i,
'dutyCycle': dayNum,
'plNo': berthRange.plNo,
'plName': plMap[berthRange.plNo],
"berthRangeNo": berthRange.parkAreaCode,
"berthRangeName": berthRange.parkAreaName,
"groupId": group.groupId,
"groupName": group.groupName,
"groupStartTime": group.groupStartTime,
"groupEndTime": group.groupEndTime,
"dataStatus": 1,
"isRest": 10
};
data.push(dutyTemp);
}
});
});
fun.handelParkViewDutyRosterDatasetByHand(data, "preview");
},
//获取排班计划名称
getDutyRosterPlanName: function () {
return $('#schjhNames_inp').val();
}
,
//获取手工排班计划名称
getDutyRosterPlanNameByHand: function () {
return $('#schjhNames_inphand').val();
},
//获取选择的停车场及泊位区间信息
getSelectPlNoInfo:function(){
var berthRangeNos = [];
var plNos = [];
$('#planstep-parkCheck').find('span').each(function () {
var berthRangeNo = $(this).data('id');
var plno = $(this).data('plno');
if (undefined != berthRangeNo && null != berthRangeNo && berthRangeNos.indexOf(berthRangeNo) <0 ) {
berthRangeNos.push(berthRangeNo);
}
if (undefined != plno && null != plno && plNos.indexOf(plno) <0 ) {
plNos.push(plno);
}
});
var infoMap = {
berthRangeNos:berthRangeNos,
plNos:plNos
}
return infoMap;
},
//获取选择的停车场Map
getSelectPlNosByHandMap: function () {
var plMap = [];
$('#planstep-parkCheckhand').find('span').each(function () {
var plNo = $(this).data('plno');
var plName = $(this).data('plname');
if (undefined != plNo && null != plNo) {
plMap[plNo] = plName;
}
});
return plMap;
},
//获取手工选择的停车场
getSelectPlNosByHand: function () {
var plNos = [];
$('#planstep-parkCheckhand').find('span').each(function () {
var plNo = $(this).data('id');
if (undefined != plNo && null != plNo) {
plNos.push(plNo);
}
});
return plNos;
},
//获取选择的停车场及泊位区间信息
getSelectPlNoInfoByHand:function(){
var berthRangeNos = [];
var plNos = [];
$('#planstep-parkCheckhand').find('span').each(function () {
var berthRangeNo = $(this).data('id');
var plno = $(this).data('plno');
if (undefined != berthRangeNo && null != berthRangeNo && berthRangeNos.indexOf(berthRangeNo) <0 ) {
berthRangeNos.push(berthRangeNo);
}
if (undefined != plno && null != plno && plNos.indexOf(plno) <0 ) {
plNos.push(plno);
}
});
var infoMap = {
berthRangeNos:berthRangeNos,
plNos:plNos
}
return infoMap;
},
//预览页面 判断是否收费员视图
isChargerViewForPreview: function () {
return $('#schtolltypeset').hasClass('ITD-graynav-topbaractive');
},
//预览页面 判断是否收费员视图 手工排班
isChargerViewForPreviewForHand: function () {
return $('#schtolltypesethand').hasClass('ITD-graynav-topbaractive');
},
//查看页面 判断是否收费员视图
isChargerViewForViewPage: function () {
return $('#schtolltypelook').hasClass('ITD-graynav-topbaractive');
},
//获取选择的收费员数量
getViewSelectChargerNum: function () {
var num = $('#checked-persons').text();
return parseInt(num);
},
generatorDutyRosterPlanId: function () {
var planId = $('#schedulingsetting-addBtn').data('planid');
if (undefined != planId && null != planId && planId.length > 0) {
return planId;
}
planId = fun.generatorDutyRosterPlanIdOfRemote();
$('#schedulingsetting-addBtn').data('planid', planId);
return planId;
},
generatorDutyRosterPlanIdByHand: function () {
var planId = $('#schedulingsetting-addBtnhand').data('planid');
if (undefined != planId && null != planId && planId.length > 0) {
return planId;
}
planId = fun.generatorDutyRosterPlanIdOfRemote();
$('#schedulingsetting-addBtnhand').data('planid', planId);
return planId;
},
//从远端获取值班计划planId
generatorDutyRosterPlanIdOfRemote: function () {
var planId = '';
var req = {
sysCode: sysComm.sysCode,
};
var opt = {
method: 'post',
url: dataUrl.util.generatorDutyRosterPlanId(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (res) {
planId = res.data;
}
};
sysAjax(opt);
return planId;
},
//根据停车场编码获取泊位区间信息
getBerthRangeByPlNosForHand: function () {
var infoMap = fun.getSelectPlNoInfoByHand();
var berthRangeNos = infoMap.berthRangeNos;
var plNos =infoMap.plNos;
var req = {
sysCode: sysComm.sysCode,
berthRangeNos: berthRangeNos,
};
var data = [];
var opt = {
method: 'post',
url: dataUrl.util.queryTpPRegionAreaByBerthRangeNos(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (res) {
data = res.data;
}
};
sysAjax(opt);
return data;
},
//保存班次
saveDutyRosterGroups: function () {
var planId = fun.generatorDutyRosterPlanId();
var groups = fun.getHasAddDutyRosterGroup();
var dutyRosterGroupDTOList = [];
$.each(groups, function (index, item) {
var dto = {};
dto.planId = planId;
dto.groupName = item.name;
dto.groupStartTime = item.startTime;
dto.groupEndTime = item.endTime;
dutyRosterGroupDTOList.push(dto);
})
var req = {
sysCode: sysComm.sysCode,
planId: planId,
dutyRosterGroupDTOList: dutyRosterGroupDTOList
};
var opt = {
method: 'post',
url: dataUrl.util.saveDutyRosterGroups(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
return res.data;
}
};
sysAjax(opt);
},
//保存班次 -手工排班
saveDutyRosterGroupsByHand: function () {
var planId = fun.generatorDutyRosterPlanIdByHand();
var groups = fun.getHasAddDutyRosterGroupByHand();
var dutyRosterGroupDTOList = [];
$.each(groups, function (index, item) {
var dto = {};
dto.planId = planId;
dto.groupName = item.name;
dto.groupStartTime = item.startTime;
dto.groupEndTime = item.endTime;
dutyRosterGroupDTOList.push(dto);
})
var req = {
sysCode: sysComm.sysCode,
planId: planId,
dutyRosterGroupDTOList: dutyRosterGroupDTOList
};
var opt = {
method: 'post',
url: dataUrl.util.saveDutyRosterGroups(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
fun.initHandDutyContent();
return res.data;
}
};
sysAjax(opt);
},
//组装未排班收费员html Opthion数据 手工排班
getNoDutyChargerDataToOptionHtml: function () {
var noDutyCharger = JSON.parse(sessionStorage.getItem("no_duty_charger_data"));
var html = '';
$.each(noDutyCharger, function (index, charge) {
html += '';
});
return html;
},
//获取手工排班数据
getDutyDataForHand: function () {
var dutyData = [];
var chargers = [];
var dayDutyMap = {};
$('select.handDutyChargerSelect').each(function (index, item) {
var tempData = $(item).data('duty');
var chargerCode = $(item).val();
var chargerName = $(item).find("option:selected").text();
tempData.chargerCode = chargerCode;
tempData.chargerName = chargerName;
if(fun.isContainCharger(chargers,{
chargerCode: chargerCode,
chargerName: chargerName
}));
var dayNum = tempData.dayNum;
var dayDutyData = dayDutyMap[dayNum];
if (dayDutyData == undefined || dayDutyData == null) {
dayDutyData = [];
}
dayDutyData.push(tempData);
dayDutyMap[dayNum] = dayDutyData;
dutyData.push(tempData);
});
var dayNum = fun.getDutyDaysNumByHand();
for (var i = 1; i <= dayNum; i++) {
var dayDutyData = dayDutyMap[i];
$.each(chargers, function (index, charger) {
var data = fun.handelHandDutyData(dayDutyData, charger);
if (data != null) {
dutyData.push(data);
}
})
}
console.log('处理完后数据:');
console.log(JSON.stringify(dutyData));
return dutyData;
},
//判断是否包含,如果未包含,加进去,包含,不加
isContainCharger:function(chargers,charger){
var flag = true;
$.each(chargers,function (index,item) {
if(item.chargerCode == charger.chargerCode){
//说明包含
flag = false;
}
})
if(flag){
chargers.push(charger);
}
},
//处理排班数据
handelHandDutyData: function (dutyData, charger) {
var tempData = null;
var flag = true;
var planId = '-1';
var dayNum = 0;
var dutyCycle = 0;
$.each(dutyData, function (index, item) {
planId = item.planId;
dayNum = item.dayNum;
dutyCycle = item.dutyCycle;
if (item.chargerCode == charger.chargerCode) {
flag = false
}
});
if (flag) {
tempData = {
"planId": planId,
"chargerCode": charger.chargerCode,
"chargerName": charger.chargerName,
"dayNum": dayNum,
"dutyCycle": dutyCycle,
"isRest": 20,
"plNo": "-1",
"plName": "-1",
"berthRangeNo": "-1",
"berthRangeName": "-1",
"groupId": "-1",
"groupName": "-1",
"groupStartTime": null,
"groupEndTime": null,
"dataStatus": 1
}
}
return tempData;
},
//核查手工排班数据
checkDutyDataForHand: function (data) {
//
var flag = true;
$('#schplan_rulehand').addClass('display-none').text('');
var dayMapData = {};
//校验未排班项
if (flag) {
for (var i = 0; i < data.length; i++) {
var item = data[i];
var dayData = dayMapData[item.dayNum];
if (dayData == undefined || null == dayData) {
dayData = [];
}
dayData.push(item);
if (item.chargerCode == -1) {
$('#schplan_rulehand').removeClass('display-none').text('第'+item.dayNum+'天 '+item.plName + ' ' + item.berthRangeName + ' ' + item.groupName + ' 未排班');
flag = false;
break;
}
dayMapData[item.dayNum] = dayData;
}
}
//校验 同一天一个人只能管理一个泊位区间
if (flag) {
for(var i in dayMapData){
var dayData = dayMapData[i];
for(var index = 0;index 0) {
for (var i = 0; i < nodes.length; i++) {
treeObj.expandNode(nodes[i], false, true, true);
}
}
}
},
//展开某个节点
selectedNodes: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var nodes = treeObj.getNodesByParam("id", id, null);
if (nodes.length > 0) {
treeObj.expandNode(nodes[0], true, false, true);
}
},
//添加节点
addNodes: function (newNodes) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
newNodes = treeObj.addNodes(null, newNodes);
},
//勾选 或 取消勾选 全部节点
checkAllNodes: function (checked) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
treeObj.checkAllNodes(checked);
},
//更新节点
updateNodes: function (treeNode, checkTypeFlag) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
treeObj.updateNode(treeNode);
},
//根据id集合更新节点变为选中
updateNodesForChecked: function (ids) {
var nodes = areaTree.getNodesByIds(ids);
for (var i = 0; i < ids.length; i++) {
var node = nodes[i];
if (node == null) {
continue;
}
node.checked = true;
areaTree.updateNodes(node);
}
},
//删除节点
removeNode: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var treeNode = areaTree.getNodeById(id);
treeObj.removeNode(treeNode);
},
//通过id获取某个节点
getNodeById: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var node = treeObj.getNodeByParam("id", id, null);
return node;
},
//通过id集合获取节点集合
getNodesByIds: function (ids) {
var nodes = [];
for (var i = 0; i < ids.length; i++) {
nodes[i] = areaTree.getNodeById(ids[i]);
}
return nodes;
},
//根据id取消选/选中节点
updateNodesForNotChecked: function (id, checked) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var node = treeObj.getNodeByParam("id", id, null);
node.checked = checked;
treeObj.updateNode(node);
},
//获取输入框被勾选 或 未勾选的节点ID集合
getCheckedNodesId: function (checked) {
var ids = [];
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var nodes = treeObj.getCheckedNodes(true);
for (var i = 0; i < nodes.length; i++) {
ids[i] = nodes[i].id
}
return ids;
},
//获取输入框被勾选 或 未勾选的块节点ID集合
getCheckedNodesIdForArea: function (checked) {
var ids = [];
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var nodes = treeObj.getCheckedNodes(checked);
index = 0;
for (var i = 0; i < nodes.length; i++) {
if (null != nodes[i].areaType && "70" == nodes[i].areaType) {
ids[index++] = {
areaId: nodes[i].id,
areaType: nodes[i].areaType,
plNo: nodes[i].pId,
orgAreaType: 1
};
}
}
return ids;
},
//获取输入框被勾选 或 未勾选的节点name集合
getCheckedNodesName: function (checked) {
var names = "";
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var nodes = treeObj.getCheckedNodes(true);
for (var i = 0; i < nodes.length; i++) {
names = names + "," + nodes[i].name;
}
return names;
},
//获取选中的节点集合
getSelectedNodes: function () {
var treeObj = $.fn.zTree.getZTreeObj("user_org_tree");
var nodes = treeObj.getSelectedNodes();
return nodes;
},
//获取树
getTreeData: function () {
var sysCode = sessionStorage.getItem("sysCode");
var zNodes = [];
sysAjax({
method: 'POST',
url: dataUrl.util.queryNoDutyRosterParkTreeInfo(),
//data: JSON.stringify(req),
dataType: 'json',
async: false,
success: function (res) {
if (res.data != undefined && res.data != null && res.data.length == 0) {
//如果没有返回来数据
$('#schplan_rule').removeClass('display-none').text('暂无待排班停车场!');
}
//禁用服务点级、停车场级可点击的节点
$.each(res.data,function (index,item) {
item.chkDisabled=true
$.each(item.children,function(cIndex,cItem){
cItem.chkDisabled=true
})
})
zNodes = res.data;
}
});
return zNodes;
},
};
areaTree.initTree();
/**
* 处理错误信息
* @param {Object} res
*/
function isError(res) {
if (res == null || res == undefined) {
return true;
}
if (res.code != '8888') {
alert('树失败')
return true;
} else {
return false;
}
};
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
/**
* 左侧单选按钮点击选中右侧.
* @param {Object} event
* @param {Object} treeId
* @param {Object} treeNode
*/
function zTreeOnCheck(event, treeId, treeNode) {
console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked);
if (treeNode.checked === true) {
arrid.push(treeNode.id);
var plno = treeNode.getParentNode().id;
// console.log(arrid)
$('#planstep-parkCheck').append('' + treeNode.name + '')
} else {
arrid.remove(treeNode.id);
$('.plancheck-parkCheck' + treeNode.id).remove();
}
;
};
//新增树下面内容删除
$(document).delegate('.closex', 'click', function () {
var valid = $(this).parent().attr('data-id');
arrid.remove(valid);
$(this).parent().remove();
//取消树的选中
areaTree.updateNodesForNotChecked(valid, false);
});
// 新增------------------------------------------------
// 新增初始化
function addinit() {
$('#schedulingsetting-con').addClass('display-none');
$('#schedulingsetting-wrap').removeClass('display-none');
$('#plan-onestep-wrap').removeClass('display-none');
$('#plan-twostep-wrap').addClass('display-none');
$('#plan-threestep-wrap').addClass('display-none');
$('#plan-fourstep-wrap').addClass('display-none');
$('#step-wrap').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
//第一步初始化
$('#schplan_rule').addClass('display-none').text('');
arrid = [];
$('#planstep-parkCheck').empty();
//生效时间初始化
fun.popDateinitIntel();
areaTree.initTree(); //初始化区域tree停车场
$('#schjhNames_inp').val('');//初始化计划名称
}
// 取消按钮 事件
documentBindFunc.on('click', '.close-schedulingsetting', function () {
$('#schedulingsetting-con').removeClass('display-none');
$('#schedulingsetting-wrap').addClass('display-none');
$('#plan-onestep-wrap').addClass('display-none');
$('#plan-twostep-wrap').addClass('display-none');
$('#plan-threestep-wrap').addClass('display-none');
$('#plan-fourstep-wrap').addClass('display-none');
$('#schplan_rule').addClass('display-none').text('');
});
// 取消按钮 事件
documentBindFunc.on('click', '.lookclose-schedulingsetting', function () {
$('#schedulingsetting-con').removeClass('display-none');
$('#plan-step-wraplook').addClass('display-none');
});
//智能排班 按钮事件
$('#schedulingsetting-addBtn').on('click', function () {
$('#schedulingsetting-addBtn').data('planid', '');
//每次点击新增,新获取一个planId
var planId = fun.generatorDutyRosterPlanId;
addinit()
});
// 步骤1 下一步按钮事件 第二步初始化事件------------------------------------------------
$('#one-step-next').on('click', function () {
$('#schplan_rule').addClass('display-none').text('');
// 校验规则 如果有没有填的或者填错的 提示信息
var jhname_inp = fun.getDutyRosterPlanName();
var infoMap = fun.getSelectPlNoInfo();
var berthRangeNos = infoMap.berthRangeNos;
var plNos =infoMap.plNos;
if (jhname_inp == undefined || jhname_inp == '' || jhname_inp == null) {
$('#schplan_rule').removeClass('display-none').text('请输入计划名称');
return false;
}
if (null == berthRangeNos || berthRangeNos.length == 0) {
$('#schplan_rule').removeClass('display-none').text('请选择泊位区间');
return false;
}
$('#schplan_rule').addClass('display-none').text('');
$('#plan-onestep-wrap').addClass('display-none');
$('#plan-twostep-wrap').removeClass('display-none');
$('#step-wrap').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
//班次名称初始化
$('#bcNames_inp').val('');
//时间格式化
$('#startTime').val('07:00');
$('#endTime').val('19:00');
laydate.render({
elem: '#startTime',//指定元素
type: 'time',
theme: '#2abb9a',//主体颜色
value: '07:00',
min: '00:00:00',
max: '23:00:00',
format: 'HH:mm',
btns: ['clear', 'confirm'],
position: 'fixed',
done: function (value, date, endDate) {
// console.log(value); //得到日期生成的值,如:2017-08-18
// console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
// console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
// $('#endTime-right').val(value)
}
// range: true
});
laydate.render({
elem: '#endTime',//指定元素
type: 'time',
theme: '#2abb9a',//主体颜色
value: '19:00',
format: 'HH:mm',
btns: ['clear', 'confirm'],
position: 'fixed',
done: function (value, date, endDate) {
// console.log(value); //得到日期生成的值,如:2017-08-18
// console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
// console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
// $('#startTime-right').val(value)
}
// range: true
});
//第二步tablecon-list 初始化
$('#schplan_tablecon-list').empty();
});
// 步骤2 add事件------------------------------------------------
documentBindFunc.on('click', '#schplan_addBtn', function () {
var group = fun.getNoAddDutyRosterGroup();
if (group == null || group.name == undefined || group.name == null || group.name.trim().length == 0) {
$('#schplan_rule').removeClass('display-none').text('请输入班次名称');
return false;
}
$('#schplan_rule').addClass('display-none').text('');
$('#schplan_tablecon-list').append(
'
' +
'
' +
'
' + group.name + '
' +
'
' + group.startTime + '-' + group.endTime + '
' +
'
删除
' +
'
' +
'
');
});
// 步骤2 delete事件------------------------------------------------
documentBindFunc.on('click', '#schplan_tablecon-list .delList', function () {
var arrVal = $(this).attr('data-arr');
// objArr.removeByValue(arrVal);//删除这行包含
$(this).parent().parent().parent().remove();
});
// 步骤2 下一步初始化 ------------------------------------------------
$('#two-step-next').on('click', function () {
$('#schplan_rule').addClass('display-none').text('');
//
var groups = fun.getHasAddDutyRosterGroup();
if (undefined == groups || null == groups || groups.length == 0) {
$('#schplan_rule').removeClass('display-none').text('请至少添加一个班次,如不区分班次,请添加00:00-23:59 全天的班次');
return false;
}
$('#schplan_rule').addClass('display-none').text('');
$('#checked-persons').text('0');
// 校验规则 如果有没有填的或者填错的 提示信息
$('#plan-twostep-wrap').addClass('display-none');
$('#plan-threestep-wrap').removeClass('display-none');
$('#step-wrap').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
// 初始化策略
$('#planclname').selectpicker('render');
fun.saveDutyRosterGroups();
fun.queryNotDutyChargerList();
fun.queryDutyPersonNumAndRecessNum();
});
$('#two-step-prev').on('click', function () {//第二步的上一步
$('#schplan_rule').addClass('display-none').text('');
$('#plan-twostep-wrap').addClass('display-none');
$('#plan-onestep-wrap').removeClass('display-none');
$('#step-wrap').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
});
// 步骤3------------------------------------------------
$('#three-step-next').on('click', function () {
var restStrategy = fun.getRestStrategy();
var chargers = fun.getSelectedCharger();
if (restStrategy.personNum != chargers.length) {
$('#schplan_rule').removeClass('display-none').text('收费员数量不正确');
return false;
}
$('#schplan_rule').addClass('display-none').text('');
$('#schtolltypeset').addClass('ITD-graynav-topbaractive')
$('#schparktypeset').removeClass('ITD-graynav-topbaractive')
$('#park-wrap').addClass('display-none')
$('#toll-wrap').removeClass('display-none')
// 校验规则 如果有没有填的或者填错的 提示信息
// $('#plan-threestep-wrap').addClass('display-none');
// $('#plan-fourstep-wrap').removeClass('display-none');
// $('#step-wrap').find('li').eq(3).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
fun.makeDutyRosterForAI();
});
$('#three-step-prev').on('click', function () {//第三步的上一步
$('#schplan_rule').addClass('display-none').text('');
$('#plan-threestep-wrap').addClass('display-none');
$('#plan-twostep-wrap').removeClass('display-none');
$('#step-wrap').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
});
$('#replace-person-left').delegate('li', 'click', function () {
var code = $(this).attr('data-code');
var indextext = $(this).text();
$(this).remove();
// var num = Number($('#checked-persons').text());
// alert(typeof num)
var num = fun.getViewSelectChargerNum();
num++;
$('#checked-persons').text(num)
$('#replace-person-right').append('
' + indextext + '
')
});
$('#replace-person-right ').delegate('li', 'click', function () {
var code = $(this).attr('data-code');
var indextext = $(this).text();
var num = fun.getViewSelectChargerNum();
num--;
$('#checked-persons').text(num)
$(this).remove();
$('#replace-person-left').append('
' + indextext + '
')
});
// 步骤4------------------------------------------------
$('#four-step-prev').on('click', function () {//第三步的上一步
$('#schplan_rule').addClass('display-none').text('');
$('#plan-fourstep-wrap').addClass('display-none');
$('#plan-threestep-wrap').removeClass('display-none');
$('#step-wrap').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
});
//步骤4------------------------------------------------ 切换
documentBindFunc.on('click', '#schparktypeset', function () {
$('#park-wrap').removeClass('display-none');
$('#schparktypeset').addClass('ITD-graynav-topbaractive');
$('#toll-wrap').addClass('display-none');
$('#schtolltypeset').removeClass('ITD-graynav-topbaractive');
$('#queryType').attr('data-value', '1');
//从前台缓存的数据中取数据
var data = JSON.parse($('#ai_duty_roster_data').data('aidata'));
fun.handelParkViewDutyRosterDataset(data, 'preview');
});
documentBindFunc.on('click', '#schtolltypeset', function () {
$('#toll-wrap').removeClass('display-none');
$('#schparktypeset').removeClass('ITD-graynav-topbaractive');
$('#park-wrap').addClass('display-none');
$('#schtolltypeset').addClass('ITD-graynav-topbaractive');
$('#queryType').attr('data-value', '2');
//从前台缓存的数据中取数据
var data = JSON.parse($('#ai_duty_roster_data').data('aidata'));
fun.handelChargerViewDutyRosterDataset(data, 'preview');
});
//点击排班计划查看
documentBindFunc.on('click', '.duty-roster-view', function () {
var planId = $(this).data('planid');
$('#schedulingsetting-con').addClass('display-none');
$('#plan-step-wraplook').removeClass('display-none');
$('#schplan-toptab').data('viewtype', 'view');
$('#schplan-toptablook').data('planid', planId);
fun.queryDutyRosterBase();
});
//点击排班计划删除
documentBindFunc.on('click', '.duty-roster-del', function () {
var planId = $(this).data('planid');
$('#dutyRosterDelPlanId').data('planid', planId);
$('#plan_deletemodel').modal('show');
});
//点击查询
documentBindFunc.on('click', '#chargegroup-queryBtn', function () {
fun.createTableData();
});
$('#planclname').change(function () {
$('#schplan_rule').addClass('display-none').text('');
var restStrategy = fun.getRestStrategy();
var html = '轮转周期为' + restStrategy.dutyCycle + '天,需要' + restStrategy.personNum + '个收费员'
$('#dutyRosterDesc').text(html);
});
/**
* 结算客户信息资料
* @param params
*/
function schsettingRequest(params) {
var plNos = $("#setting-parkIds").val();
var plNo = null;
if (undefined != plNos && null != plNos) {
plNos = JSON.parse(plNos);
if (plNos.length == 1) {
plNo = plNos[0];
}
}
//设置请求参数
var pageNum = (params.data.offset / params.data.limit) + 1;
var req = {
baseRequest: {
pageNum: pageNum,
pageSize: params.data.limit
},
sysCode: sysComm.sysCode,
plNo: plNo,
};
var opt = {
method: 'post',
url: dataUrl.util.queryDutyRosterPlanForPage(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
// console.log(res);
if (res.code == '8888') {
params.success(res.data);
}
}
};
sysAjax(opt);
}
//查看 弹窗------------------------------------------------ 切换
//收费员视图
documentBindFunc.on('click', '#schparktypelook', function () {
$('#park-wraplook').removeClass('display-none');
$('#schparktypelook').addClass('ITD-graynav-topbaractive');
$('#toll-wraplook').addClass('display-none');
$('#schtolltypelook').removeClass('ITD-graynav-topbaractive');
$('#queryTypelook').attr('data-value', '1');
//查看类型的话
fun.queryDutyRosterBase();
});
//停车场视图
documentBindFunc.on('click', '#schtolltypelook', function () {
$('#toll-wraplook').removeClass('display-none');
$('#schparktypelook').removeClass('ITD-graynav-topbaractive');
$('#park-wraplook').addClass('display-none');
$('#schtolltypelook').addClass('ITD-graynav-topbaractive');
$('#queryTypelook').attr('data-value', '2');
//查看类型的话
fun.queryDutyRosterBase();
});
//智能排班 弹窗 点击添加确认事件
documentBindFunc.on('click', '#four-step-next', function () {
fun.submitDutyRoster();
});
//delete确定按钮
documentBindFunc.on('click', '#plan-delete-submit', function () {
var planId = $('#dutyRosterDelPlanId').data('planid');
fun.deleteDutyRosterPlan(planId);
});
// 2018-10-09 手动添加排班功能-------------------------------------------------
var areaTreeHand = {
//初始化树
initTree: function () {
$("#user_org_treehand").empty();
$.fn.zTree.init($("#user_org_treehand"), areaTreeHand.setting, areaTreeHand.getTreeData());
//展开全部
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
treeObj.expandAll(false);
areaTreeHand.selectedNodes(0);
},
setting: {
view: {
selectedMulti: true //静止多选
},
check: {
enable: true, //显示多选框
chkStyle: "checkbox",
// chkStyle: "radio",
radioType: "all"
},
data: {
simpleData: {
enable: true, //使用简单模式加载
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
},
callback: {
onCheck: zTreeOnCheckhand
},
edit: {
enable: false
}
},
getNodesByParamFuzzyAll: function () {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getNodes();
for (var i = 0; i < nodes.length; i++) {
treeObj.setting.view.fontCss["color"] = '#575757';
treeObj.updateNode(nodes[i]);
var children = nodes[i].children;
if (children != null && children != "" && children != undefined) {
for (var j = 0; j < children.length; j++) {
treeObj.setting.view.fontCss["color"] = '#575757';
treeObj.updateNode(children[j]);
}
}
}
},
//根据名称模糊搜索树
getNodesByParamFuzzy: function (name) {
areaTreeHand.getNodesByParamFuzzyAll();
if (name != "" && name != null) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getNodesByParamFuzzy("name", name, null);
if (nodes.length <= 0) {
$('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场");
}
for (var i = 0; i < nodes.length; i++) {
treeObj.setting.view.fontCss["color"] = '#CD0000';
treeObj.updateNode(nodes[i]);
//获取父节点
var parentNote = areaTreeHand.getNodeById(nodes[i].pId);
treeObj.updateNode(parentNote);
}
} else {
$('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场");
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getNodes();
if (nodes.length > 0) {
for (var i = 0; i < nodes.length; i++) {
treeObj.expandNode(nodes[i], false, true, true);
}
}
}
},
//展开某个节点
selectedNodes: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getNodesByParam("id", id, null);
if (nodes.length > 0) {
treeObj.expandNode(nodes[0], true, false, true);
}
},
//添加节点
addNodes: function (newNodes) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
newNodes = treeObj.addNodes(null, newNodes);
},
//勾选 或 取消勾选 全部节点
checkAllNodes: function (checked) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
treeObj.checkAllNodes(checked);
},
//更新节点
updateNodes: function (treeNode, checkTypeFlag) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
treeObj.updateNode(treeNode);
},
//根据id集合更新节点变为选中
updateNodesForChecked: function (ids) {
var nodes = areaTreeHand.getNodesByIds(ids);
for (var i = 0; i < ids.length; i++) {
var node = nodes[i];
if (node == null) {
continue;
}
node.checked = true;
areaTreeHand.updateNodes(node);
}
},
//删除节点
removeNode: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var treeNode = areaTreeHand.getNodeById(id);
treeObj.removeNode(treeNode);
},
//通过id获取某个节点
getNodeById: function (id) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var node = treeObj.getNodeByParam("id", id, null);
return node;
},
//通过id集合获取节点集合
getNodesByIds: function (ids) {
var nodes = [];
for (var i = 0; i < ids.length; i++) {
nodes[i] = areaTreeHand.getNodeById(ids[i]);
}
return nodes;
},
//根据id取消选/选中节点
updateNodesForNotChecked: function (id, checked) {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var node = treeObj.getNodeByParam("id", id, null);
node.checked = checked;
treeObj.updateNode(node);
},
//获取输入框被勾选 或 未勾选的节点ID集合
getCheckedNodesId: function (checked) {
var ids = [];
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getCheckedNodes(true);
for (var i = 0; i < nodes.length; i++) {
ids[i] = nodes[i].id
}
return ids;
},
//获取输入框被勾选 或 未勾选的块节点ID集合
getCheckedNodesIdForArea: function (checked) {
var ids = [];
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getCheckedNodes(checked);
index = 0;
for (var i = 0; i < nodes.length; i++) {
if (null != nodes[i].areaType && "70" == nodes[i].areaType) {
ids[index++] = {
areaId: nodes[i].id,
areaType: nodes[i].areaType,
plNo: nodes[i].pId,
orgAreaType: 1
};
}
}
return ids;
},
//获取输入框被勾选 或 未勾选的节点name集合
getCheckedNodesName: function (checked) {
var names = "";
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getCheckedNodes(true);
for (var i = 0; i < nodes.length; i++) {
names = names + "," + nodes[i].name;
}
return names;
},
//获取选中的节点集合
getSelectedNodes: function () {
var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand");
var nodes = treeObj.getSelectedNodes();
return nodes;
},
//获取树
getTreeData: function () {
var sysCode = sessionStorage.getItem("sysCode");
var zNodes = [];
sysAjax({
method: 'POST',
url: dataUrl.util.queryNoDutyRosterParkTreeInfo(),
//data: JSON.stringify(req),
dataType: 'json',
async: false,
success: function (res) {
// console.log(res)
if (res.data != undefined && res.data != null && res.data.length == 0) {
//如果没有返回来数据
$('#schplan_rulehand').removeClass('display-none').text('暂无待排班停车场!');
}
if (res.data != undefined && res.data != null && res.data.length == 0) {
//如果没有返回来数据
$('#schplan_rule').removeClass('display-none').text('暂无待排班停车场!');
}
//禁用服务点级、停车场级可点击的节点
$.each(res.data,function (index,item) {
item.chkDisabled=true
$.each(item.children,function(cIndex,cItem){
cItem.chkDisabled=true
})
})
zNodes = res.data;
}
});
return zNodes;
},
};
areaTreeHand.initTree();
/**
* 处理错误信息
* @param {Object} res
*/
function isError(res) {
if (res == null || res == undefined) {
return true;
}
if (res.code != '8888') {
alert('树失败')
return true;
} else {
return false;
}
};
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
/**
* 左侧单选按钮点击选中右侧.
* @param {Object} event
* @param {Object} treeId
* @param {Object} treeNode
*/
function zTreeOnCheckhand(event, treeId, treeNode) {
console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked);
if (treeNode.checked === true) {
var plno = treeNode.getParentNode().id;
var plname = treeNode.getParentNode().name;
arrid.push(treeNode.id);
$('#planstep-parkCheckhand').append('' + treeNode.name + '')
} else {
arrid.remove(treeNode.id);
$('.plancheck-parkCheckhand' + treeNode.id).remove();
}
;
};
//新增树下面内容删除
$(document).delegate('.closexhand', 'click', function () {
var valid = $(this).parent().attr('data-id');
arrid.remove(valid);
$(this).parent().remove();
//取消树的选中
areaTreeHand.updateNodesForNotChecked(valid, false);
});
// 手动新增------------------------------------------------
// 手动新增初始化
function addinitHand() {
$('#schedulingsetting-con').addClass('display-none');
$('#schedulingsetting-wraphand').removeClass('display-none');
$('#plan-onestep-wraphand').removeClass('display-none');
$('#plan-twostep-wraphand').addClass('display-none');
$('#plan-threestep-wraphand').addClass('display-none');
$('#plan-fourstep-wraphand').addClass('display-none');
$('#step-wraphand').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
//第一步初始化
$('#schplan_rulehand').addClass('display-none').text('');
arrid = [];
$('#planstep-parkCheckhand').empty();
//生效时间初始化
fun.popDateinitHand();
areaTreeHand.initTree(); //初始化区域tree停车场
$('#schjhNames_inphand').val('');//初始化计划名称
}
// 手动步骤中取消按钮 事件
documentBindFunc.on('click', '.close-schedulingsettinghand', function () {
$('#schedulingsetting-con').removeClass('display-none');
$('#schedulingsetting-wraphand').addClass('display-none');
$('#plan-onestep-wraphand').addClass('display-none');
$('#plan-twostep-wraphand').addClass('display-none');
$('#plan-threestep-wraphand').addClass('display-none');
$('#plan-fourstep-wraphand').addClass('display-none');
$('#schplan_rulehand').addClass('display-none').text('');
});
//手动排班 按钮事件
$('#schedulingsetting-addBtnhand').on('click', function () {
//每次点击新增,新获取一个planId
$('#schedulingsetting-addBtnhand').data('planid', '');
$('#bctime_inphand').val('');
addinitHand();
});
// 手动排班 步骤1 下一步按钮事件 第二步初始化事件------------------------------------------------
documentBindFunc.on('click', '#one-step-nexthand', function () {
$('#schplan_rulehand').addClass('display-none').text('');
// 校验规则 如果有没有填的或者填错的 提示信息
var jhname_inp = fun.getDutyRosterPlanNameByHand();
var infoMap = fun.getSelectPlNoInfoByHand();
var berthRangeNos = infoMap.berthRangeNos;
var plNos =infoMap.plNos;
if (jhname_inp == undefined || jhname_inp == '' || jhname_inp == null) {
$('#schplan_rulehand').removeClass('display-none').text('请输入计划名称');
return false;
}
if (null == berthRangeNos || berthRangeNos.length == 0) {
$('#schplan_rulehand').removeClass('display-none').text('请选择泊位区间');
return false;
}
$('#schplan_rulehand').addClass('display-none').text('');
$('#plan-onestep-wraphand').addClass('display-none');
$('#plan-twostep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
//班次名称初始化
$('#bcNames_inphand').val('');
//时间格式化
$('#startTimehand').val('07:00');
$('#endTimehand').val('19:00');
laydate.render({
elem: '#startTimehand',//指定元素
type: 'time',
theme: '#2abb9a',//主体颜色
value: '07:00',
min: '00:00:00',
max: '23:00:00',
format: 'HH:mm',
btns: ['clear', 'confirm'],
position: 'fixed',
done: function (value, date, endDate) {
// console.log(value); //得到日期生成的值,如:2017-08-18
// console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
// console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
// $('#endTime-right').val(value)
}
// range: true
});
laydate.render({
elem: '#endTimehand',//指定元素
type: 'time',
theme: '#2abb9a',//主体颜色
value: '19:00',
format: 'HH:mm',
btns: ['clear', 'confirm'],
position: 'fixed',
done: function (value, date, endDate) {
// console.log(value); //得到日期生成的值,如:2017-08-18
// console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
// console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
// $('#startTime-right').val(value)
}
// range: true
});
//第二步tablecon-list 初始化
$('#schplan_tablecon-listhand').empty();
});
// 手动排班 步骤2 add事件------------------------------------------------
documentBindFunc.on('click', '#schplan_addBtnhand', function () {
var group = fun.getNoAddDutyRosterGroupByHand();
if (group == null || group.name == undefined || group.name == null || group.name.trim().length == 0) {
$('#schplan_rulehand').removeClass('display-none').text('请输入班次名称');
return false;
}
$('#schplan_rulehand').addClass('display-none').text('');
$('#schplan_tablecon-listhand').append(
'
' +
'
' +
'
' + group.name + '
' +
'
' + group.startTime + '-' + group.endTime + '
' +
'
删除
' +
'
' +
'
');
});
// 手动排班 步骤2 delete事件------------------------------------------------
documentBindFunc.on('click', '#schplan_tablecon-listhand .delListhand', function () {
var arrVal = $(this).attr('data-arr');
// objArr.removeByValue(arrVal);//删除这行包含
$(this).parent().parent().parent().remove();
});
// 手动排班 步骤2 下一步初始化 ------------------------------------------------
// 改
documentBindFunc.on('click', '#two-step-nexthand', function () {
var bctimeinphandval = $.trim($('#bctime_inphand').val());
$('#schplan_rulehand').addClass('display-none').text('');
//初始化下拉框
$('.cashierType').selectpicker('render');
//
var groups = fun.getHasAddDutyRosterGroupByHand();
var dutyDayNum = fun.getDutyDaysNumByHand();
if (undefined == groups || null == groups || groups.length == 0) {
$('#schplan_rulehand').removeClass('display-none').text('请至少添加一个班次,如不区分班次,请添加00:00-23:59 全天的班次');
return false;
}
if(undefined == bctimeinphandval || null == bctimeinphandval || bctimeinphandval.length == 0){
$('#schplan_rulehand').removeClass('display-none').text('请添加排班天数');
return false;
}
if(bctimeinphandval=='0'){
$('#schplan_rulehand').removeClass('display-none').text('排班天数不能为0');
return false;
}
if (undefined == dutyDayNum || null == dutyDayNum || groups > 30) {
$('#schplan_rulehand').removeClass('display-none').text('请输入排班天数,并且排班天数不能大于30天');
return false;
}
$('#schplan_rulehand').addClass('display-none').text('');
// 校验规则 如果有没有填的或者填错的 提示信息
$('#plan-twostep-wraphand').addClass('display-none');
$('#plan-threestep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
fun.queryNotDutyChargerList();
setTimeout(function () {//异步加载导致收费员加载不出来,延迟一秒钟
fun.saveDutyRosterGroupsByHand();
}, 1000);
// 改
// 改
});
//第二步的上一步
documentBindFunc.on('click', '#two-step-prevhand', function () {
$('#schplan_rulehand').addClass('display-none').text('');
$('#plan-twostep-wraphand').addClass('display-none');
$('#plan-onestep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
});
// 步骤3------------------------------------------------
documentBindFunc.on('click', '#three-step-nexthand', function () {
// 获取排班后的数据,并进行校验
//获取排班数据
var data = fun.getDutyDataForHand();
var flag = fun.checkDutyDataForHand(data);
if (flag) {
$('#hand_duty_roster_data').data('handdata', JSON.stringify(data));
fun.saveDutyRosterBaseTemps(data);
$('#schplan_rulehand').addClass('display-none').text('');
$('#schtolltypesethand').addClass('ITD-graynav-topbaractive')
$('#schparktypesethand').removeClass('ITD-graynav-topbaractive')
$('#park-wraphand').addClass('display-none')
$('#toll-wraphand').removeClass('display-none')
$('#plan-threestep-wraphand').addClass('display-none');
$('#plan-fourstep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(3).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
}
});
//第三步的上一步
documentBindFunc.on('click', '#three-step-prevhand', function () {
$('#schplan_rulehand').addClass('display-none').text('');
$('#plan-threestep-wraphand').addClass('display-none');
$('#plan-twostep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
});
// 步骤4------------------------------------------------
//第4步的上一步
$('#four-step-prevhand').on('click', function () {
$('#schplan_rulehand').addClass('display-none').text('');
$('#plan-fourstep-wraphand').addClass('display-none');
$('#plan-threestep-wraphand').removeClass('display-none');
$('#step-wraphand').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active');
var _width = $('#park-wraphandthree .schedulingplan-data-wrap ').width();
var _width = _width+120;
$('#park-wraphandthree .schedulingplan-data-wrap ').css('width',_width+'px')
});
//步骤4------------------------------------------------ 切换
documentBindFunc.on('click', '#schparktypesethand', function () {
$('#park-wraphand').removeClass('display-none');
$('#schparktypesethand').addClass('ITD-graynav-topbaractive');
$('#toll-wraphand').addClass('display-none');
$('#schtolltypesethand').removeClass('ITD-graynav-topbaractive');
$('#queryTypehand').attr('data-value', '1');
//从前台缓存的数据中取数据
var data = JSON.parse($('#hand_duty_roster_data').data('handdata'));
fun.handelParkViewDutyRosterDatasetByHandForStep4(data, 'preview');
});
documentBindFunc.on('click', '#schtolltypesethand', function () {
$('#toll-wraphand').removeClass('display-none');
$('#schparktypesethand').removeClass('ITD-graynav-topbaractive');
$('#park-wraphand').addClass('display-none');
$('#schtolltypesethand').addClass('ITD-graynav-topbaractive');
$('#queryTypehand').attr('data-value', '2');
//从前台缓存的数据中取数据
var data = JSON.parse($('#hand_duty_roster_data').data('handdata'));
fun.handelChargerViewDutyRosterDatasetByHandForStep4(data, 'preview');
});
//手工排班 弹窗 点击添加确认事件
documentBindFunc.on('click', '#four-step-nexthand', function () {
fun.submitDutyRosterByHand();
});