<!DOCTYPE html>
|
<html>
|
<head>
|
<meta charset="utf-8" />
|
<title>过滤方案</title>
|
<link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
|
<link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
|
<script src="../../../layuiadmin/layui/layui.js"></script>
|
<script src="../../../layuiadmin/Scripts/json2.js"></script>
|
<script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
|
<script src="../../../layuiadmin/Scripts/webConfig.js"></script>
|
<script src="../../../layuiadmin/layui/layui1.js"></script>
|
<script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
|
<script src="../../../layuiadmin/PubCustom.js"></script>
|
<script src="../../../layuiadmin/layui/lay/modules/table.js"></script>
|
<style>
|
/*树状图点击高亮变色*/
|
.layui-tree-set-active > .layui-tree-entry .layui-tree-main {
|
background: #aef0f7;
|
}
|
/* 防止下拉框的下拉列表被隐藏---必须设置--- */
|
.layui-table-cell {
|
overflow: visible !important;
|
}
|
/* 使得下拉框与单元格刚好合适 */
|
td .layui-form-select {
|
margin-top: -10px;
|
margin-left: -15px;
|
margin-right: -15px;
|
}
|
</style>
|
</head>
|
<body>
|
<div class="layui-fluid">
|
<div class="layui-col-md12">
|
<div class="layui-card" style="padding: 1px">
|
<div class="layui-card-body" style="padding: 1px;">
|
<form class="layui-form" action="" lay-filter="component-form-group">
|
<div style="padding: 2px; ">
|
<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="AddF_A" id="AddF_A">新增方案</button>
|
<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="DelF_A" id="DelF_A">删除方案</button>
|
<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="AddBtn" id="AddBtn">保存方案</button>
|
</div>
|
<div class="layui-row" style="padding:10px 0">
|
<div class="layui-col-xs2 layui-inline" style="border: solid 1.5px #e0d6d64d;">
|
<div id="TreeTable" class="demo-tree-more"></div>
|
</div>
|
<div class="layui-col-xs8 layui-inline" style="padding-left: 10px;">
|
<div>
|
<table class="" id="mainTable" lay-filter="mainTable"></table>
|
<script type="text/html" id="toolbarDemo">
|
<div class="layui-btn-container">
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
|
</div>
|
</script>
|
</div>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
</div>
|
</div>
|
</body>
|
</html>
|
<script type="text/html" id="barDemo">
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
</script>
|
<!--行下拉选择(字段名称)-->
|
<script type="text/html" id="HFieldNameCol">
|
<select name="HFieldNameCol" lay-filter="HFieldNameCol" lay-search id="HFieldNameCol{{d.LAY_TABLE_INDEX+1}}">
|
</select>
|
</script>
|
<!--行下拉选择(比较关系)-->
|
<script type="text/html" id="HControlCol">
|
<select name="HControlCol" lay-filter="HControlCol" id="HControlCol{{d.LAY_TABLE_INDEX+1}}">
|
<option value="" selected="selected"></option>
|
<option value="=">=</option>
|
<option value=">=">>=</option>
|
<option value=">">></option>
|
<option value="<="><=</option>
|
<option value="<"><</option>
|
<option value="<>"><></option>
|
<option value="包含">包含</option>
|
<option value="左包含">左包含</option>
|
<option value="右包含">右包含</option>
|
<option value="不包含">不包含</option>
|
</select>
|
</script>
|
<!--行下拉选择(逻辑)-->
|
<script type="text/html" id="HRelationCol">
|
<select name="HRelationCol" lay-filter="HRelationCol" id="HRelationCol{{d.LAY_TABLE_INDEX+1}}">
|
<option value="and">并且</option>
|
<option value="or">或者</option>
|
</select>
|
</script>
|
<script>
|
layui.config({
|
base: '../../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index', //主入口模块
|
}).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'tree'], function () {
|
//#region 公共变量
|
var $ = layui.$
|
, admin = layui.admin
|
, layer = layui.layer
|
, table = layui.table
|
, form = layui.form
|
, element = layui.element
|
, laypage = layui.laypage
|
, laydate = layui.laydate
|
, tree = layui.tree
|
|
//查询条件
|
var sWhere = "";
|
var option = [];
|
var TreeData = [];
|
var HtitleId = [];//节点
|
//#endregion
|
|
|
//#region 进入页面既加载
|
|
var params = getUrlVars();
|
var HModName = params[params[0]]; //模块名称
|
var colName = params[params[1]]; //列名
|
colName = decodeURI(colName);//对URI 进行解码
|
|
//初始化界面
|
set_ClearBill();
|
//#endregion
|
|
//#region 触发事件:包括form.on(){}格式的所有点击事件、选择事件等
|
|
//头工具栏事件
|
table.on('toolbar(mainTable)', function (obj) {
|
var checkStatus = table.checkStatus('mainTable')
|
, data = checkStatus.data;
|
|
//新增行表格数据
|
var NewRow = { "HFieldNameCol": "", "HControlCol": "", "HConditionCol": "", "HRelationCol": "and", "HIDCol": "" };
|
switch (obj.event) {
|
case 'btn-AddLine':
|
table.cache["mainTable"].push(NewRow);
|
option.data = table.cache["mainTable"];
|
table.render(option);
|
|
selectCol();
|
break;
|
}
|
});
|
|
//行内事件
|
table.on('tool(mainTable)', function (obj) {
|
set_GridDelete(obj); //行内删除
|
});
|
|
//行选择处理(字段名称)
|
form.on('select(HFieldNameCol)', function (data) {
|
//获取下拉框选中的值
|
var elem = data.othis.parents('tr');
|
var dataindex = elem.attr("data-index");
|
$.each(option.data, function (index, value) {
|
if (value.LAY_TABLE_INDEX == dataindex) {
|
value.HFieldNameCol = data.value;//把选中下拉框id值赋值给表格缓存
|
}
|
});
|
});
|
|
//行选择处理(比较关系)
|
form.on('select(HControlCol)', function (data) {
|
//获取下拉框选中的值
|
var elem = data.othis.parents('tr');
|
var dataindex = elem.attr("data-index");
|
$.each(option.data, function (index, value) {
|
if (value.LAY_TABLE_INDEX == dataindex) {
|
value.HControlCol = data.value;//把选中下拉框id值赋值给表格缓存
|
}
|
});
|
});
|
|
//行选择处理(逻辑)
|
form.on('select(HRelationCol)', function (data) {
|
//获取下拉框选中的值
|
var elem = data.othis.parents('tr');
|
var dataindex = elem.attr("data-index");
|
$.each(option.data, function (index, value) {
|
if (value.LAY_TABLE_INDEX == dataindex) {
|
value.HRelationCol = data.value;//把选中下拉框id值赋值给表格缓存
|
}
|
});
|
});
|
|
//新增方案
|
form.on('submit(AddF_A)', function (data) {
|
layer.prompt({ title: '新增方案', formType: 0, maxlength: 50 }, function (text, index) {
|
|
for (var i = 0; i < TreeData.length; i++) {
|
if (TreeData[i].title == text) {
|
return layer.msg("已存在相同的方案名,请重新录入!");
|
}
|
}
|
layer.close(index);
|
TreeData.push({ "TreeData": [], "id": "0", "title": text });
|
MenuMain(TreeData);
|
HtitleId = [];
|
});
|
});
|
|
//删除方案
|
form.on('submit(DelF_A)', function (data) {
|
if (HtitleId.length == 0) {
|
return layer.msg("请选中需要删除的方案!");
|
}
|
|
if (HtitleId.title == "默认方案") {
|
return layer.msg("默认方案不能删除!");
|
}
|
|
layer.confirm('确认要删除选中方案吗?', function (index) {
|
var num = [];
|
for (var i = 0; i < TreeData.length; i++) {
|
if (TreeData[i].id != HtitleId.id || TreeData[i].title != HtitleId.title) {
|
num.push(TreeData[i]);
|
}
|
}
|
if (HtitleId.id != "0") {
|
$.ajax({
|
url: GetWEBURL() + '/Xt_grdAlignment_WMES/Del_Gy_QueryConditionList_F_A',
|
data: { "HModName": HModName, "ID": HtitleId.id, "user": sessionStorage["HUserName"] },
|
async: false,
|
type: "GET",
|
success: function (data1) {
|
if (data1.count == 1) {
|
layer.msg(data1.Message);
|
} else {
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
} else {
|
layer.msg("删除成功!");
|
}
|
HtitleId = [];
|
layer.close(index);
|
TreeData = num;
|
MenuMain(TreeData);
|
|
});
|
});
|
|
//保存方案
|
form.on('submit(AddBtn)', function (data) {
|
if (HtitleId.length == 0) {
|
return layer.msg("请选中需要保存的方案!");
|
}
|
|
layer.confirm('确认要保存:' + HtitleId.title + '方案吗?', function (index) {
|
var TableData = table.cache["mainTable"];
|
var sMainStr = JSON.stringify(TableData);
|
var sMainStr1 = JSON.stringify(HtitleId);
|
var sMainSub = sMainStr + ';' + sMainStr1 + ';' + HModName + ";" + sessionStorage["HUserName"];
|
$.ajax({
|
url: GetWEBURL() + '/Xt_grdAlignment_WMES/Add_Gy_QueryConditionList_F_A',
|
data: { "sMainSub": sMainSub },
|
async: false,
|
type: "POST",
|
success: function (data1) {
|
if (data1.count == 1) {
|
layer.msg(data1.Message);
|
var index = parent.layer.getFrameIndex(window.name);
|
//返回方法
|
var TableDataSql = "and (";
|
for (var i = 0; i < TableData.length; i++) {
|
TableDataSql += get_FastQuery(TableData[i]);
|
if ((i + 1) < TableData.length) {
|
TableDataSql += " " + TableData[i]["HRelationCol"] + " ";
|
}
|
}
|
TableDataSql += ")";
|
parent.GetDataCol(TableDataSql);
|
parent.layer.close(index);
|
} else {
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
});
|
});
|
|
//#endregion
|
|
|
//#region 此页面所有方法
|
function set_ClearBill() {
|
set_InitGrid();
|
get_Display_Tree();
|
get_Display(sWhere);
|
}
|
|
//表格数据
|
function set_InitGrid() {
|
option = {
|
elem: '#mainTable'
|
, toolbar: '#toolbarDemo'
|
, height: 420
|
, cellMinWidth: 90
|
, limits: [50, 500, 5000, 50000]
|
, limit: 50
|
, cols: [[
|
{ field: 'HFieldNameCol', title: '字段名称', width: 100, templet: '#HFieldNameCol' }
|
, { file: 'HControlCol', title: '比较关系', width: 100, templet: '#HControlCol' }
|
, { field: 'HConditionCol', title: '数值', width: 100, edit: 'text' }
|
, { field: 'HRelationCol', title: '逻辑', width: 100, templet: '#HRelationCol' }
|
, { fixed: 'right', title: '操作', toolbar: '#barDemo' }
|
]]
|
};
|
var rowdata = [{ "HFieldNameCol": "", "HControlCol": "", "HConditionCol": "", "HRelationCol": "and", "HIDCol": "" }]
|
option.data = rowdata;
|
table.render(option);
|
}
|
|
|
// 树状图查询
|
function get_Display_Tree() {
|
var ajaxLoad = layer.load();
|
$.ajax({
|
url: GetWEBURL() + '/Xt_grdAlignment_WMES/Gy_QueryConditionList_F_A',
|
data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
|
async: false,
|
type: "GET",
|
success: function (data1) {
|
if (data1.count == 1) {
|
layer.close(ajaxLoad);
|
var data = JSON.parse(data1.data);
|
TreeData = data;
|
MenuMain(data);
|
} else {
|
layer.close(ajaxLoad);
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.close(ajaxLoad);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
}
|
|
//遍历生成主菜单
|
function MenuMain(data) {
|
var liStr = '[';
|
//遍历生成主菜单
|
for (var i = 0; i < data.length; i++) {
|
if (data[i].title == "默认方案") {
|
sWhere = " and HInterID=" + data[i].id;
|
HtitleId = data[i];
|
}
|
liStr += '{"title": "' + data[i].title + '", "id": "' + data[i].id + '"},';
|
};
|
liStr = liStr.substring(0, liStr.length - 1);
|
liStr += "]";
|
var treeTable = JSON.parse(liStr);
|
tree.render({
|
elem: '#TreeTable' //默认是点击节点可进行收缩
|
, data: treeTable
|
, showLine: false //是否开启连接线
|
, click: function (obj) {
|
//高亮变色
|
$(".layui-tree-set").removeClass('layui-tree-set-active');
|
obj.elem.addClass('layui-tree-set-active');
|
|
var data = obj.data; //获取当前点击的节点数据
|
var sql = "";
|
|
HtitleId = data;
|
|
sql = " and HInterID='" + data.id + "' ";
|
get_Display(sql);
|
}
|
|
});
|
}
|
|
function selectCol() {
|
colNames = colName.split(',');
|
var HFieldNameCol_s = "";
|
HFieldNameCol_s += '<option style="color:blue;" value=""></option>';
|
for (var i = 0; i < colNames.length; i++) {
|
HFieldNameCol_s += '<option style="color:blue;" value="' + colNames[i] + '">' + colNames[i] + '</option>';
|
}
|
|
for (var i = 0; i < option.data.length; i++) {
|
$('#HFieldNameCol' + (i + 1)).append(HFieldNameCol_s);;
|
}
|
|
for (var i = 1; i <= option.data.length; i++) {
|
$('#HFieldNameCol' + i + '').find("option[value='" + option.data[i - 1].HFieldNameCol + "']").attr("selected", true);
|
$('#HControlCol' + i + '').find("option[value='" + option.data[i - 1].HControlCol + "']").attr("selected", true);
|
$('#HRelationCol' + i + '').find("option[value='" + option.data[i - 1].HRelationCol + "']").attr("selected", true);
|
}
|
|
form.render('select');
|
}
|
|
//查询
|
function get_Display(sWhere) {
|
var ajaxLoad = layer.load();
|
$.ajax({
|
url: GetWEBURL() + '/Xt_grdAlignment_WMES/Gy_QueryCondition_Z_D_select',
|
type: "GET",
|
async: false,
|
data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "Organization": sessionStorage["Organization"] },
|
success: function (data1) {
|
if (data1.count == 1) {
|
if (data1.data.length == 0) {
|
set_InitGrid()
|
} else {
|
var dataCol = [];//获取返回数据
|
dataCol = data1.data;
|
option.data = dataCol;
|
table.render(option);
|
}
|
selectCol();
|
layer.close(ajaxLoad);
|
} else {
|
layer.close(ajaxLoad);
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.close(ajaxLoad);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
}
|
|
//行内删除
|
function set_GridDelete(obj) {
|
var rowIndex = $(obj.tr).attr("data-index");
|
if (obj.event === 'del') {
|
layer.confirm('真的删除行吗?', function (index) {
|
if (rowIndex === '0') {
|
layer.msg('首行无法删除!!!');
|
} else {
|
var oldData = table.cache["mainTable"];
|
oldData.splice(obj.tr.data('index'), 1)
|
option.data = oldData;//将数据绑定到data上
|
table.render(option);
|
selectCol();
|
layer.close(index);
|
}
|
});
|
}
|
}
|
|
//获取参数
|
function getUrlVars() {
|
var vars = [], hash;
|
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
for (var i = 0; i < hashes.length; i++) {
|
hash = hashes[i].split('=');
|
vars.push(hash[0]);
|
vars[hash[0]] = hash[1];
|
}
|
return vars;
|
}
|
|
//#endregion
|
//以上是layui模块
|
});
|
function get_FastQuery(TableData) {
|
|
var ColName = TableData["HFieldNameCol"];//复选框
|
var Comparator = TableData["HControlCol"];
|
var ColContent = TableData["HConditionCol"];
|
//var HRelationCol = TableData["HRelationCol"];
|
var sWheres = "";
|
|
if (ColName != 0 && Comparator != 0) {
|
var com = "";
|
switch (Comparator) {
|
case "包含":
|
com = "like'%" + ColContent + "%'";
|
break;
|
case "右包含":
|
com = "like'%" + ColContent + "'";
|
break;
|
case "左包含":
|
com = "like'" + ColContent + "%'";
|
break;
|
case "不包含":
|
com = "not like'%" + ColContent + "%'";
|
break;
|
default:
|
com = "" + Comparator + "'" + ColContent + "'";
|
break;
|
}
|
sWheres += ColName + " " + com ;
|
}
|
return sWheres;
|
}
|
</script>
|