<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<title>配组管理</title>
|
<link rel="stylesheet" href="../jqueryui/jquery-ui.min.css">
|
<link rel="stylesheet" href="../src/css/layui.css">
|
<link rel="stylesheet" href="../font-awesome-4.7.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="../pages/css/mylayui.css">
|
<link rel="stylesheet" href="../pages/css/common.css">
|
<style type="text/css">
|
html, body {
|
height: 100%;
|
}
|
.layui-table-view {
|
margin: 0;
|
}
|
</style>
|
</head>
|
<body>
|
<div class="whyc-page-layui-main abs-top0 abs-bottom0"> <!-- 最外层控制位置 -->
|
<div class="whyc-page-layui-content-container">
|
<!-- <div class="whyc-page-layui-siderbar w360"></div> -->
|
<div class="whyc-page-layui-content" style="background-color: pink">
|
<div class="tbl-container">
|
<div class="tbl-filter" lay-filter="tblFilter">
|
<div class="layui-form layui-form-pane" lay-filter="tblFilter">
|
<div class="layui-inline">
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="provinceFilter">
|
<select name="province" id="province" lay-filter="province">
|
<option value="">请选择省/直辖市</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="cityFilter">
|
<select name="city" id="city" lay-filter="city">
|
<option value="">请选择市</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="countyFilter">
|
<select name="county" id="county" lay-filter="county">
|
<option value="">请选择区/县</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="homeFilter">
|
<select name="home" id="home" lay-search="" lay-filter="home">
|
<option value="">请选择机房</option>
|
</select>
|
</div>
|
|
</div>
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="groupFilter">
|
<select name="group" id="group" lay-filter="group">
|
<option value="">请选择电池组</option>
|
</select>
|
</div>
|
|
</div>
|
</div>
|
<button class="layui-btn layui-btn-sm layui-btn-normal" id="search"><i class="fa fa-search"></i> 查询</button>
|
<button class="layui-btn layui-btn-sm layui-btn-normal" id="matchGroup"><i class="fa fa-reply"></i> 配组</button>
|
</div>
|
|
</div>
|
<!-- 表格内容 -->
|
<table id="groupTbl" lay-filter="groupTbl"></table>
|
</div>
|
</div>
|
</div>
|
</div>
|
<script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
|
<script type="text/javascript" src="../jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../src/layui.js"></script>
|
<script type="text/javascript" src="../pages/js/mylayui.js"></script>
|
<script type="text/javascript">
|
layui.use(['layer', 'table', 'form', 'laytpl', 'element'],function() {
|
var layer = layui.layer // 获取layer模块
|
,table = layui.table // 获取table模块
|
,form = layui.form;
|
var parentData = parent.$('#setMatchGroupData').data('data'); // 父容器存储的值
|
// 表格数据配置项
|
var tOptions = {
|
elem: '#groupTbl'
|
,toolbar: true
|
,defaultToolbar: ['exports', 'filter']
|
,cellMinWidth: 80
|
,cols: [[
|
{type: 'radio', fixed: 'left'}
|
,{field:'stationname', title:'机房名称', align:'center', width: 380}
|
,{field:'groupname', title:'电池组名称', align:'center'}
|
,{field:'monnum', title:'单体编号', align:'center'}
|
,{field:'brandname', title:'品牌名称', align:'center'}
|
,{field:'nominalcap', title:'标称容量', align:'center'}
|
,{field:'monvol', title:'标称电压(V)', align:'center'}
|
]]
|
,data:[]
|
,page: {
|
layout:['count', 'prev', 'page', 'next']
|
}
|
,height: 'full-0'
|
};
|
|
// 生成表格数据
|
table.render(tOptions);
|
|
// 点击查询根据查询条件获取电池组的单体列表
|
$('#search').click(function() {
|
var groupData = $('#group').find('option:selected').data('data');
|
// 判断是否已经选中电池组
|
if(groupData) {
|
searchData(groupData);
|
}else {
|
tOptions.data = [];
|
table.render(tOptions);
|
layer.msg('请选择一组电池');
|
}
|
});
|
|
// 查询电池组下所有的单体
|
function searchData(obj) {
|
// 添加等待框
|
var loading = layer.load(0, {shade: [0.1,'#fff']}); //0代表加载的风格,支持0-2
|
var structData = structSearchData(obj);
|
$.ajax({
|
type: 'post',
|
async: true,
|
url:'BattInfAction!serchGroupByInfor',
|
data: 'json='+JSON.stringify(structData),
|
dataType: 'json',
|
success: function(result) {
|
layer.close(loading); // 关闭等待框
|
var rs = JSON.parse(result.result);
|
if(rs.code == 1) {
|
var data = rs.data;
|
var num = 0;
|
var rsData = formaterTblData(data);
|
num = rsData.length;
|
tOptions.data = rsData;
|
// 设置分页信息
|
tOptions.page.layout = ['count', 'prev', 'page', 'next']; //自定义分页布局
|
tOptions.page.limit= num;
|
tOptions.page.limits = [num];
|
}
|
// 重新绘制表格内容
|
table.reload('groupTbl', tOptions);
|
}
|
});
|
}
|
|
// 构造查询对象
|
function structSearchData(data) {
|
var obj = {};
|
obj.StationName1 = '';
|
obj.StationName2 = '';
|
obj.StationName5 = '';
|
obj.StationName3 = '';
|
obj.BattGroupName = '';
|
obj.BattGroupId = data.BattGroupId;
|
return obj;
|
}
|
|
// 构造生成表格数据的方法
|
function formaterTblData(data) {
|
//console.log(data);
|
var rs = []; // 结果集
|
|
// 遍历查询的结果根据查询结果生成指定的格式
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var obj = {};
|
obj.stationname = _data.StationName; // 机房名称
|
obj.groupname = _data.BattGroupName; // 电池组名称
|
obj.monvol = _data.MonVolStd; // 标称电压
|
obj.nominalcap = Number(_data.MonCapStd); // 标称容量
|
obj.monnum = '#'+_data.MonNum; // 单体编号
|
obj.brandname = _data.BattProducer; // 品牌
|
// 不显示内容
|
obj.num = _data.MonNum; // 单体编号不加#
|
obj.battgroupid = _data.BattGroupId; // 电池组id
|
obj.stationid = _data.StationId; // 机房id
|
// 判断当前位置的单体是否为空白()
|
if(_data.num || _data.num == undefined) {
|
rs.push(obj);
|
}
|
}
|
|
return rs; // 返回结果集
|
}
|
|
// 获取模板
|
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
|
// 点击配组
|
$('#matchGroup').click(function() {
|
var checkStatus = table.checkStatus('groupTbl'); //test即为基础参数id对应的值
|
var data = checkStatus.data;
|
//console.log(checkStatus.data);
|
if(data.length == 0) {
|
layer.msg('请选择表格中的电池单体!');
|
}else {
|
var _data = data[0];
|
console.log(_data);
|
console.log(parentData);
|
matchGroup(_data, parentData);
|
}
|
});
|
|
// 根据构造结果进行配组
|
function matchGroup(oData, nData) {
|
var old_cap = oData.nominalcap;
|
var old_vol = oData.monvol;
|
var new_cap = nData.nominalcap;
|
var new_vol = nData.monvol;
|
var isTrue = (old_cap==new_cap && old_vol==new_vol);
|
if(!isTrue) {
|
layer.msg('<span style="font-weight: bold; color: orange">标称容量或标称电压不一致,无法配组!</span>');
|
return;
|
}
|
|
// 符合配组的基本要求
|
parent.layer.confirm('是否确认配组?',{
|
btn: ['确认','取消'] //按钮
|
}, function(){
|
enMatchGroup(oData, nData);
|
}, function(){
|
|
});
|
}
|
|
// 确认配组
|
function enMatchGroup(oData, nData) {
|
var matchGroupData = structMatchGroupData(oData, nData);
|
// 更具构造参数进行配组
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInf_RebuildAction!add',
|
data: 'json='+JSON.stringify(matchGroupData),
|
dataType: 'json',
|
success:function(result) {
|
console.log(result);
|
}
|
});
|
parent.layer.close(parent.layer.index);
|
}
|
|
// 构造进行配组的参数
|
function structMatchGroupData(oData, nData) {
|
var obj = {}; // 结果对象
|
var nowTime = new Date().format('yyyy-MM-dd hh:mm:ss'); // 当前时间
|
// 当前电池单体的信息
|
obj.old_stationname = oData.stationname; // 机房名称
|
obj.old_battgroupname = oData.groupname; // 电池组名称
|
obj.old_battproducer = oData.brandname; // 单体的品牌
|
obj.old_stationid = oData.stationid; // 机房id
|
obj.old_battgroupid = oData.battgroupid; // 电池组id
|
obj.old_monum = oData.num; // 单体编号
|
|
// 被配组单体的信息
|
obj.new_stationname = nData.stationname; // 机房名称
|
obj.new_battgroupname = nData.groupname; // 电池组名称
|
obj.new_battproducer = nData.brandname; // 单体的品牌
|
obj.new_stationid = nData.stationid; // 机房id
|
obj.new_battgroupid = nData.battgroupid; // 电池组id
|
obj.new_monum = nData.num; // 单体编号
|
|
// 公共信息
|
obj.rebuild_time = nowTime;
|
obj.rebuild_address = '';
|
obj.rebuild_clear_type = 1;
|
console.info(obj);
|
return obj;
|
}
|
|
// 省-市-区/县-机房-蓄电池组联动
|
var isNewLoad = true;
|
var pre_province = getQueryString('province');
|
// 查询省下拉框
|
searchProvince();
|
// 查询省
|
var filterLoad = layer.load();
|
function searchProvince() {
|
// 请求后台查询
|
$.ajax({
|
type:'post',
|
async:true,
|
url: 'User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup',
|
data: null,
|
dataType: 'json',
|
success:function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#province'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
var allTxt = "全部(共"+data.length+"种)";
|
list.push(getLayuiSelect(allTxt, '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data, _data, {}, {});
|
if(pre_province == _data && isNewLoad){
|
_tmp = getLayuiSelect(_data, _data, {}, {},true);
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无省/直辖市', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'provinceFilter');
|
|
// 查询市
|
searchCity();
|
}
|
});
|
}
|
|
// 切换省-市
|
form.on('select(province)', function(data) {
|
// 查询市
|
searchCity(true);
|
});
|
|
// 查询市
|
function searchCity(isLoad) {
|
// 构造查询条件
|
var tmp = {
|
StationName1: $("#province").val()
|
};
|
var pre_city = getQueryString('city');
|
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName2',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#city'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
var allTxt = "全部(共"+data.length+"种)";
|
list.push(getLayuiSelect(allTxt, '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data);
|
if(pre_city == _data.StationName2 && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data,true);
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无市/区', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'cityFilter');
|
|
// 查询区县
|
searchCounty();
|
}
|
});
|
}
|
|
// 切换市-区县
|
form.on('select(city)', function(data) {
|
// 查询区县
|
searchCounty(true);
|
});
|
|
|
// 查询区/县
|
function searchCounty(isLoad) {
|
var list = []; // option结果集
|
var ele = $('#county'); // 目标select
|
// 判断必要条件是否存在
|
var parentStatus = checkLayuiParent($("#city"));
|
if(!parentStatus) {
|
layer.close(filterLoad); // 关闭等待框
|
list.push(getLayuiSelect('请先选择市', '', {}, undefined));
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'countyFilter');
|
// 查询机房
|
searchHome();
|
return;
|
}
|
|
// 构造查询条件
|
var tmp = {
|
StationName1: $("#province").val(),
|
StationName2: $("#city").val()
|
};
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
var pre_county = getQueryString('county');
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName5',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
//console.info(rs);
|
var list = []; // option结果集
|
var ele = $('#county'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
var allTxt = "全部(共"+data.length+"种)";
|
list.push(getLayuiSelect(allTxt, '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data);
|
if(pre_county == _data.StationName5 && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data,true);
|
}
|
//console.info(_tmp);
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无区/县', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'countyFilter');
|
|
// 查询机房
|
searchHome();
|
}
|
});
|
}
|
|
// 切换市-区县
|
form.on('select(county)', function(data) {
|
// 查询区县
|
searchHome(true);
|
});
|
|
// 查询机房
|
function searchHome(isLoad) {
|
var list = []; // option结果集
|
var ele = $('#home'); // 目标select
|
// 判断必要条件是否存在
|
var parentStatus = checkLayuiParent($("#county"));
|
if(!parentStatus) {
|
layer.close(filterLoad); // 关闭等待框
|
list.push(getLayuiSelect('请先选择区/县', '', {}, undefined));
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'homeFilter');
|
// 查询蓄电池组
|
searchGroup();
|
return;
|
}
|
|
// 构造查询条件
|
var tmp = {
|
StationName1:$("#province").val(),
|
StationName2:$("#city").val(),
|
StationName5:$("#county").val(),
|
};
|
var pre_home = getQueryString('home');
|
var auto_seach = false;
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName3',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#home'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
var allTxt = "全部(共"+data.length+"种)";
|
list.push(getLayuiSelect(allTxt, '', {StationId: '', dev_id: ''}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _attr = {
|
StationId: _data.StationId,
|
dev_id: _data.FBSDeviceId
|
};
|
var _tmp = getLayuiSelect(_data.StationName, _data.StationName, _attr, _data);
|
if(pre_home == _data.StationName && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName, _data.StationName, _attr, _data,true);
|
auto_seach = true;
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无机房', '', {}, undefined));
|
}
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'homeFilter');
|
// 查询蓄电池组
|
searchGroup();
|
}
|
});
|
}
|
|
// 切换机房-电池组
|
form.on('select(home)', function(data) {
|
// 查询电池组
|
searchGroup();
|
});
|
|
// 查询机房
|
function searchGroup(isLoad) {
|
var list = []; // option结果集
|
var ele = $('#group'); // 目标select
|
// 判断必要条件是否存在
|
var parentStatus = checkLayuiParent($("#home"));
|
if(!parentStatus) {
|
layer.close(filterLoad); // 关闭等待框
|
list.push(getLayuiSelect('请先选择机房', '', {}, undefined));
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'groupFilter');
|
return;
|
}
|
// 构造查询条件
|
var tmp = {
|
StationName1:$("#province").val(),
|
StationName2:$("#city").val(),
|
StationName5:$("#county").val(),
|
StationName: $("#home").val(),
|
StationId: $("#home").find('option:selected').attr('stationid')
|
};
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchBattByStation',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#group'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
var allTxt = "全部(共"+data.length+"种)";
|
list.push(getLayuiSelect(allTxt, '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _attr = {
|
stationname: _data.StationName,
|
dev_id: _data.FBSDeviceId,
|
batt_num: _data.GroupIndexInFBSDevice+1
|
};
|
var txt = _data.BattGroupName+'(共'+_data.MonCount+"节"+')';
|
var _tmp = getLayuiSelect(txt, _data.BattGroupId, _attr, _data);
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无电池组', '', {}, undefined));
|
}
|
|
layer.close(filterLoad);
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'groupFilter');
|
}
|
});
|
}
|
});
|
</script>
|
</body>
|
</html>
|