/**
|
* 批量派单页面管理初始化
|
*/
|
var TOrderCheckDispatchBatch = {
|
driverTableId: "DriverTable", // 司机表格ID
|
selectedDriverIds: [], // 选中的司机ID数组
|
selectedOrderIds: [], // 选中的订单ID数组(从URL参数获取)
|
driverTable: null // 司机Bootstrap Table实例
|
};
|
|
|
|
/**
|
* 初始化司机列表表格的列
|
*/
|
TOrderCheckDispatchBatch.initDriverColumn = function() {
|
return [
|
{field: 'selectItem', radio: false},
|
{title: '司机姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
|
{title: '手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'},
|
{title: '所属代理商', field: 'agentName', visible: true, align: 'center', valign: 'middle'},
|
{title: '分公司名称', field: 'branchOfficeName', visible: true, align: 'center', valign: 'middle'}
|
];
|
};
|
|
|
|
/**
|
* 初始化司机列表表格
|
*/
|
TOrderCheckDispatchBatch.initDriverTable = function() {
|
var columns = this.initDriverColumn();
|
var table = new BSTable(this.driverTableId, "/tOrderCheck/dispatchData", columns);
|
table.setPaginationType("server");
|
|
// 设置初始查询参数
|
table.setQueryParams({
|
dispatchType: 1 // 派单类型
|
});
|
|
this.driverTable = table.init();
|
return this;
|
};
|
|
/**
|
* 搜索司机
|
*/
|
TOrderCheckDispatchBatch.searchDriver = function() {
|
var queryData = {};
|
queryData['dispatchType'] = 1;
|
queryData['keyword'] = $("#keyword").val();
|
this.driverTable.refresh({query: queryData});
|
};
|
|
/**
|
* 重置司机搜索条件
|
*/
|
TOrderCheckDispatchBatch.resetDriverSearch = function() {
|
$("#keyword").val('');
|
this.searchDriver();
|
};
|
|
/**
|
* 获取选中的司机列表
|
*/
|
TOrderCheckDispatchBatch.getSelectedDrivers = function() {
|
var selected = $('#' + this.driverTableId).bootstrapTable('getSelections');
|
return selected;
|
};
|
|
/**
|
* 确认批量派单
|
*/
|
TOrderCheckDispatchBatch.confirmBatchDispatch = function() {
|
var selectedDrivers = this.getSelectedDrivers();
|
var orderCount = this.selectedOrderIds.length;
|
var driverCount = selectedDrivers.length;
|
|
// 验证是否选择了司机
|
if (driverCount === 0) {
|
Feng.info("请选择要派单的司机!");
|
return;
|
}
|
|
// 验证订单数量和司机数量是否匹配
|
if (orderCount !== driverCount) {
|
Feng.error("订单数量与司机数量不匹配!\n当前有" + orderCount + "个待派单订单,需要选择" + orderCount + "个司机,\n您当前选择了" + driverCount + "个司机。");
|
return;
|
}
|
|
// 收集选中司机的ID和姓名
|
var driverIds = selectedDrivers.map(function(driver) { return driver.id; });
|
var driverNames = selectedDrivers.map(function(driver) { return driver.name; });
|
|
this.selectedDriverIds = driverIds;
|
|
swal({
|
title: "确认批量派单?",
|
text: "将" + orderCount + "个订单随机派单给以下" + driverCount + "个司机:\n" + driverNames.join("、"),
|
type: "warning",
|
showCancelButton: true,
|
confirmButtonColor: "#DD6B55",
|
confirmButtonText: "确认批量派单",
|
cancelButtonText: "取消",
|
closeOnConfirm: false
|
}, function() {
|
TOrderCheckDispatchBatch.executeBatchDispatch();
|
});
|
};
|
|
/**
|
* 执行批量派单操作
|
*/
|
TOrderCheckDispatchBatch.executeBatchDispatch = function() {
|
var me = this;
|
var ajax = new $ax(Feng.ctxPath + "/tOrderCheck/executeBatchDispatch", function(data) {
|
if (data.code === 500) {
|
Feng.error("批量派单失败: " + data.message);
|
return;
|
}
|
if (data.code === 200) {
|
Feng.success("批量派单成功!");
|
// 关闭弹窗并刷新父页面
|
parent.TOrderCheck.table.refresh();
|
parent.layer.close(window.parent.TOrderCheck.layerIndex);
|
}
|
}, function(data) {
|
Feng.error("批量派单失败, 系统异常,请稍后重试");
|
});
|
|
ajax.set("orderIds", this.selectedOrderIds.join(','));
|
ajax.set("driverIds", this.selectedDriverIds.join(','));
|
ajax.start();
|
};
|
|
/**
|
* 关闭批量派单页面
|
*/
|
TOrderCheckDispatchBatch.close = function() {
|
parent.layer.close(window.parent.TOrderCheck.layerIndex);
|
};
|
|
/**
|
* 获取URL参数
|
*/
|
TOrderCheckDispatchBatch.getUrlParam = function(name) {
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
var r = window.location.search.substr(1).match(reg);
|
if (r != null) return unescape(r[2]);
|
return null;
|
};
|
|
/**
|
* 初始化页面
|
*/
|
TOrderCheckDispatchBatch.init = function() {
|
// 从URL参数获取选中的订单ID数组
|
var orderIdsStr = this.getUrlParam('orderIds');
|
if (!orderIdsStr) {
|
Feng.error("未获取到选中的订单信息!");
|
this.close();
|
return;
|
}
|
|
try {
|
this.selectedOrderIds = orderIdsStr.split(',');
|
if (!this.selectedOrderIds || this.selectedOrderIds.length === 0) {
|
Feng.error("选中的订单列表为空!");
|
this.close();
|
return;
|
}
|
} catch (e) {
|
Feng.error("订单信息格式错误!");
|
this.close();
|
return;
|
}
|
|
// 初始化司机表格
|
this.initDriverTable();
|
};
|