<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>委外用料单列表</title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<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/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/PubCustom.js"></script>
|
<script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
|
<script src="../../../layuiadmin/soulTable.slim.js"></script>
|
</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 class="layui-collapse">
|
<div class="layui-colla-item">
|
<div class="layui-colla-title layui-inline">
|
<div class="layui-inline">
|
<span>更多</span>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">单据号</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HBillNo" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">日期间隔</label>
|
<div class="layui-input-block">
|
<select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">开始日期</label>
|
<div class="layui-input-block">
|
<input type="date" class="layui-input ForFilteringSchemes" id="HBeginDate" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">结束日期</label>
|
<div class="layui-input-block">
|
<input type="date" class="layui-input ForFilteringSchemes" id="HEndDate" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">发料日期</label>
|
<div class="layui-input-block">
|
<input type="date" class="layui-input ForFilteringSchemes" id="HEndDates" style="width:190px;">
|
</div>
|
</div>
|
|
<button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
|
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
</button>
|
<button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
|
<!--显示当前过滤方案-->
|
<div class="layui-inline" style="margin-left:5px;">
|
<div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div>
|
</div>
|
<div class="layui-colla-content">
|
<div class="layui-inline">
|
<label class="layui-form-label">部门名称</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HDepartName" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">物料代码</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HMaterNumber" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">物料名称</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HMaterName" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">仓库</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HStocID" style="width:190px;">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">制单人</label>
|
<div class="layui-input-block">
|
<input type="text" class="layui-input ForFilteringSchemes" id="HMakerMan" style="width:190px;">
|
</div>
|
</div>
|
</div>
|
<div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
|
<div class="layui-row" style="margin-top:5px">
|
<div class="layui-inline">
|
<label class="layui-form-label">过滤</label>
|
<div class="layui-input-block">
|
<select name="ColName" id="ColName" class="ForFilteringSchemes" lay-filter="ColName" style="width:190px;">
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<select name="Comparator" id="Comparator" class="ForFilteringSchemes" lay-filter="Comparator" style="width:190px;">
|
<option value="0" selected="selected"></option>
|
<option value="=">=</option>
|
<option value=">=">>=</option>
|
<option value=">">></option>
|
<option value="<="><=</option>
|
<option value="<"><</option>
|
<option value="<>"><></option>
|
<option value="7">包含</option>
|
<option value="8">左包含</option>
|
<option value="9">右包含</option>
|
<option value="10">不包含</option>
|
</select>
|
</div>
|
<div class="layui-inline">
|
<input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent">
|
|
</div>
|
|
|
</div>
|
<div class="layui-row" style="margin-top: 10px; margin-bottom: 10px ">
|
<div class="layui-inline">
|
<label class="layui-form-label">过滤</label>
|
<div class="layui-input-block">
|
<select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<select name="Comparator1" id="Comparator1" lay-filter="Comparator1" class="ForFilteringSchemes" style="width:190px;">
|
<option value="0" selected="selected"></option>
|
<option value="=">=</option>
|
<option value=">=">>=</option>
|
<option value=">">></option>
|
<option value="<="><=</option>
|
<option value="<"><</option>
|
<option value="<>"><></option>
|
<option value="7">包含</option>
|
<option value="8">左包含</option>
|
<option value="9">右包含</option>
|
<option value="10">不包含</option>
|
</select>
|
</div>
|
<div class="layui-inline">
|
<input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
|
</div>
|
</div>
|
<div class="layui-row" style="margin-top: 10px; margin-bottom: 10px ">
|
<div class="layui-inline">
|
<label class="layui-form-label">过滤</label>
|
<div class="layui-input-block">
|
<select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<select name="Comparator2" id="Comparator2" lay-filter="Comparator2" class="ForFilteringSchemes" style="width:190px;">
|
<option value="0" selected="selected"></option>
|
<option value="=">=</option>
|
<option value=">=">>=</option>
|
<option value=">">></option>
|
<option value="<="><=</option>
|
<option value="<"><</option>
|
<option value="<>"><></option>
|
<option value="7">包含</option>
|
<option value="8">左包含</option>
|
<option value="9">右包含</option>
|
<option value="10">不包含</option>
|
</select>
|
</div>
|
<div class="layui-inline">
|
<input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
|
</div>
|
</div>
|
</div>
|
</div>
|
</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-Add"><i class="layui-icon layui-icon-file-b"></i>新增</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Edit"><i class="layui-icon layui-icon-form"></i>编辑</button>
|
<!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-view"><i class="layui-icon layui-icon-tips"></i>预览</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-print"><i class="layui-icon layui-icon-print"></i>打印</button>-->
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-audit"><i class="layui-icon layui-icon-repeat"></i>审核</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Faudit"><i class="layui-icon layui-icon-refresh"></i>反审核</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="set_SaveScheme" id="set_SaveScheme"><i class="layui-icon layui-icon-template"></i>保存方案</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadScheme" id="set_ReadScheme"><i class="layui-icon layui-icon-set"></i>读取方案</button>
|
</div>
|
</script>
|
</form>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<script type="text/javascript">
|
layui.config({
|
base: '../../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index', //主入口模块
|
//使用layui.use 加载模块
|
}).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable'], function () {
|
//#region 公共变量
|
var $ = layui.$
|
, admin = layui.admin
|
, layer = layui.layer //Layer是Layui的一个独立模块,用于快速构建网页弹出层
|
, table = layui.table //Table模块是Layui用于构建表格的模块
|
, form = layui.form //Form模块提供了丰富的表单元素和表单验证功能
|
, element = layui.element //Element模块是Layui的UI组件库
|
, laypage = layui.laypage //Laypage是Layui的分页组件
|
, laydate = layui.laydate // Laydate是Layui的日期时间选择器组件
|
, util = layui.util //Util模块是Layui提供的一些工具方法集合,如请求数据、处理日期时间等
|
, soulTable = layui.soulTable //SoulTable是Layui的一个扩展模块,它基于Layui的Table模块进行了深度定制和扩展,提供了更加强大和灵活的表格操作功能
|
//查询条件
|
var sWhere = ""; //定义一个swhere参数
|
var option = []; //定义一个option数组
|
var HModName = "WW_PPBomBillList"; //定义一个模块表单名
|
//#endregion
|
|
//定义一个需要隐藏的数组
|
var titleData = ["单据ID", "单据类型", "HDeptID", "HUnitID", "HMaterID", "HWHID", "HSPID", "源单主内码", "源单子内码"];//不需要显示的字段 可扩展
|
//#region 【过滤方案】
|
|
//过滤条件的class类
|
var HClassTag = "ForFilteringSchemes"; //定义一个过滤条件class类 使其值为
|
//模块名称(中文版) 每个模块页面都需要修改
|
window.HModuleName = "委外用料单"; //设置模块名 创建全局对象 window 的一个属性 HModuleName,并将这个属性的值设置为字符串 "委外用料单"
|
//是否已经选择了过滤方案(全局变量)
|
window.HDefaultFilter = "";
|
//选择的过滤方案内码(全局变量)
|
window.HInterID_Choose = 0;
|
|
//#endregion
|
|
//#region 进入页面既加载
|
set_ClearBill();
|
//#endregion
|
|
//#region 点击事件包括on form事件等
|
//头工具栏事件
|
table.on('toolbar(mainTable)', function (obj) {
|
switch (obj.event) {
|
//新增按钮
|
case 'btn-Add': set_AddNew();
|
break;
|
//编辑按钮
|
case 'btn-Edit': set_ShowBill();
|
break;
|
//删除按钮
|
case 'btn-Delete': set_DeleteBill();
|
break;
|
//浏览
|
case 'btn-view': get_ViewReport();
|
break;
|
//打印
|
case 'btn-print': get_PrintReport();
|
break;
|
//审核
|
case 'btn-audit': get_Audit();
|
break;
|
//反审核
|
case 'btn-Faudit': get_FAudit();
|
break;
|
//刷新
|
case 'get_Refresh': set_Refresh();
|
break;
|
//列设置
|
case 'set_HideColumn': get_HideColumn();
|
break;
|
//退出
|
case 'get_Exit': Pub_Close(2);
|
break;
|
//保存方案
|
case 'set_SaveScheme': set_SaveScheme();
|
break;
|
//读取方案
|
case 'set_ReadScheme': set_ReadScheme();
|
break;
|
};
|
});
|
|
//重置按钮
|
form.on('submit(btnReSearch)', function (data) {
|
set_ClearQuery(); //执行重置方法
|
});
|
|
//查询按钮
|
form.on('submit(btnSearch)', function (data) {
|
get_FastQuery(); //执行查询方法
|
});
|
|
//日期间隔下拉列表监听
|
form.on('select(HInitTimeCycle)', function (data) {
|
//$("#HInitTimeCycle").val() *1会将其转换为数值类型
|
var HInitTimeCycle = $("#HInitTimeCycle").val() * 1; //将获取的下拉框值*1转化为数字类型 赋值给变量HInitTimeCycle
|
//若日期间隔不为 任意间隔,则禁用开始日期与结束日期的选择
|
if (HInitTimeCycle != -1) { // 判断 hintimecycle参数 的下拉框是否为自选状态, 则执行
|
$('#HBeginDate').prop('disabled', true); //如果为不可选 则开始时间默认为灰色
|
$('#HEndDate').prop('disabled', true); //如果为不可选 则开始时间默认为灰色
|
|
$("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd")); //则开始时间 ,获取当前系统时间减去需要减去的时间即为开始时间
|
$("#HEndDate").val(Format(new Date(), "yyyy-MM-dd")); // 结束时间获取系统当前时间
|
|
//执行查询方法
|
get_FastQuery();
|
} else { //如果为时间任意间隔 ,则执行
|
$('#HBeginDate').prop('disabled', false); //选择需要查询开始时间
|
$('#HEndDate').prop('disabled', false); //选择需要查询结束时间
|
}
|
});
|
//#endregion
|
|
|
//#region 此页面所有方法
|
function set_ClearBill() {
|
//初始化日期间隔、开始日期、结束日期
|
setSelect_HInitTimeCycle();
|
//若日期间隔不为 任意间隔,则禁用开始日期与结束日期的选择
|
var HInitTimeCycle = $("#HInitTimeCycle").val() * 1; //将获取的下拉框值*1转化为数字类型 赋值给变量HInitTimeCycle //从页面上获取HInitTimeCycle元素的值,并确保这个值被存储为一个数值类型的变量
|
if (HInitTimeCycle != -1) {
|
$('#HBeginDate').prop('disabled', true); //如果为不可选 则开始时间默认为灰色
|
$('#HEndDate').prop('disabled', true); //如果为不可选 则开始时间默认为灰色
|
} else {
|
$('#HBeginDate').prop('disabled', false); //选择需要查询开始时间
|
$('#HEndDate').prop('disabled', false); //选择需要查询结束时间
|
}
|
|
//根据日期间隔设置开始时间与结束时间
|
$("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd")); //获取HBeginDate的值,根据获取系统当前时间减去相应的天数即为开始时间
|
$("#HEndDate").val(Format(new Date(), "yyyy-MM-dd")); // 结束时间获取系统当前时间
|
$("#HEndDates").val(Format(new Date(), "yyyy-MM-dd")); // 发料时间获取系统当前时间
|
//初始化表格
|
set_InitGrid(); //执行表格初始化方法
|
//直接执行列表筛选 加载数据到网格
|
get_FastQuery(); //执行查询方法
|
|
//隐藏勾选字段
|
DisPlay_HideColumn();//执行隐藏方法
|
|
//任意字段过滤下拉框初始化
|
ColFilter();
|
|
//查询当前登录用户有没有在当前模块设置默认过滤方案
|
get_DefaultModule();
|
}
|
|
//初始化表格
|
function set_InitGrid() {
|
$("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd")); //初始化开始时间
|
$("#HEndDate").val(Format(new Date(), "yyyy-MM-dd")); //初始化结束时间
|
var columns = [ //初始化表单
|
{ type: 'checkbox', fixed: 'left', totalRowText: '合计'} // 初始化合计行
|
, { field: 'hmainid', title: '单据ID', width: 200, hide: true, sort: true }
|
, { field: '日期', title: '日期', width: 125, templet: "<div>{{d.日期 ==null ?'':layui.util.toDateString(d.日期, 'yyyy-MM-dd')}}</div>", sort: true }
|
, { field: '单据号', title: '单据号', width: 200, sort: true}
|
, { field: 'HBillType', title: '单据类型', width: 200, hide: true, sort: true }
|
, { field: 'HDeptID', title: 'HDeptID', width: 200, hide: true, sort: true }
|
, { field: '部门名称', title: '部门名称', width: 110, sort: true }
|
, { field: 'HUnitID', title: 'HUnitID', width: 200, hide: true, sort: true }
|
, { field: '单位', title: '单位', width: 200, sort: true }
|
, { field: '数量', title: '数量', width: 200, sort: true, totalRow: true}
|
, { field: '类型', title: '类型', width: 200, sort: true }
|
, { field: 'HMaterID', title: 'HMaterID', width: 200, hide: true, sort: true }
|
, { field: '物料代码', title: '物料代码', width: 110, sort: true }
|
, { field: '物料名称', title: '物料名称', width: 110, sort: true }
|
, { field: '发料日期', title: '发料日期', width: 125, templet: "<div>{{d.发料日期 ==null ?'':layui.util.toDateString(d.发料日期, 'yyyy-MM-dd')}}</div>", sort: true }
|
, { field: 'HWHID', title: 'HWHID', width: 200, hide: true, sort: true }
|
, { field: '仓库代码', title: '仓库代码', width: 200, sort: true }
|
, { field: '仓库', title: '仓库', width: 200, sort: true }
|
, { field: 'HSPID', title: 'HSPID', width: 200, hide: true, sort: true }
|
, { field: '仓位代码', title: '仓位代码', width: 200, sort: true }
|
, { field: '仓位', title: '仓位', width: 200, sort: true }
|
, { field: '损耗率', title: '损耗率', width: 200, sort: true }
|
, { field: '表头备注', title: '表头备注', width: 200, sort: true }
|
|
, { field: '制单人', title: '制单人', width: 200, sort: true }
|
//当制单日期 d.制单日期 == null ? '' : layui.util.toDateString(...) 是一个三元运算符表达式,用于根据条件来决定返回哪个值。
|
, { field: '制单日期', title: '制单日期', width: 200, templet: "<div>{{d.制单日期 ==null ?'':layui.util.toDateString(d.制单日期, 'yyyy-MM-dd HH:mm:ss')}}</div>", sort: true }
|
, { field: '审核人', title: '审核人', width: 200, sort: true }
|
, { field: '审核日期', title: '审核日期', width: 200, templet: "<div>{{d.审核日期 ==null ? '':layui.util.toDateString(d.审核日期, 'yyyy-MM-dd HH:mm:ss')}}</div>", sort: true }
|
, { field: '修改人', title: '修改人', width: 200, sort: true }
|
, { field: '修改日期', title: '修改日期', width: 200, templet: "<div>{{d.修改日期 ==null ?'':layui.util.toDateString(d.修改日期, 'yyyy-MM-dd HH:mm:ss')}}</div>", sort: true }
|
, { field: '关闭人', title: '关闭人', width: 200, sort: true }
|
, { field: '关闭日期', title: '关闭日期', width: 200, templet: "<div>{{d.关闭日期 ==null ?'':layui.util.toDateString(d.关闭日期, 'yyyy-MM-dd HH:mm:ss')}}</div>", sort: true }
|
, { field: '作废人', title: '作废人', width: 200, sort: true }
|
, { field: '作废日期', title: '作废日期', width: 200, templet: "<div>{{d.作废日期 ==null ?'':layui.util.toDateString(d.作废日期, 'yyyy-MM-dd HH:mm:ss')}}</div>", sort: true }
|
, { field: '行关闭人', title: '行关闭人', width: 200, sort: true }
|
, { field: '关闭类型', title: '关闭类型', width: 200, sort: true }
|
, { field: '表体备注', title: '表体备注', width: 200, sort: true }
|
, { field: '源单主内码', title: '源单主内码', width: 200, hide: true, sort: true }
|
, { field: '源单子内码', title: '源单子内码', width: 200, hide: true, sort: true }
|
, { field: '源单单号', title: '源单单号', width: 200, sort: true }
|
, { field: '源单类型', title: '源单类型', width: 200, sort: true }
|
, { field: '关联数量', title: '关联数量', width: 200, sort: true }
|
];
|
option = { //设置参数
|
elem: '#mainTable' // 使用#mainTable作为表格的DOM元素
|
, toolbar: '#toolbarDemo' //加载tolbardemo这个表格
|
, page: true // 开启分页
|
, cellMinWidth: 120 //页签宽度
|
, totalRow: true // 是否合计行
|
, limit: 50 //页签默认显示多少行
|
, height: 'full-50' // 页签高度
|
, cols: [columns] // 列表列
|
, limits: [50, 500, 5000, 20000] //页签选择
|
, done: function (res, curr, count) { // done 特定函数调用res curr count参数 res:表示异步操作的结果 、curr:表示当前处理的元素、状态、或者是在一系列处理中当前的位置 ,count:表示已经处理或完成的元素数量
|
soulTable.render(this); //表单渲染
|
}
|
};
|
}
|
|
//#endregion 监听网格表体事件
|
table.on('tool(mainTable)', function (obj) {
|
var data = obj.data; //把obj数据赋值给 data变量
|
|
//单据号超链接
|
//判断对象事件是否为单据号
|
if (obj.event == '单据号') { //检查 obj.event事件 是否等于字符串 '单据号'。如果等于,则执行if循环
|
var linterid = data.hmainid.toString(); //声明变量linterid 为 data.hmainid 把表单单据赋值给声明变量linterid
|
//if (AllowLoadData(sSubStr) != false) { //非空验证
|
layer.open({ //使用 layer的open打开弹出 层
|
type: 2 //表示弹出层的内容是一个 iframe 类型为2
|
, area: ['100%', '100%'] //弹出层的大小是
|
, title: '编辑器具采购入库单' //设置弹出层的名字和变量
|
, closeBtn: 1 //显示关闭按钮
|
, shade: 0.6 //遮罩透明度
|
, maxmin: true //允许全屏最小化
|
, anim: 0 //0-6的动画形式,-1不开启
|
//设置 iframe 的 URL,URL 中包含了查询参数,来调用所需要的值
|
, content: '../模治具仓库管理/WW_PPBomBillEdit.html?OperationType=3&linterid=' + linterid + '&HSouceBillType=0&closeType=1'
|
, resize: false, //是否允许用户调整弹出大小
|
end: function () { //当关闭时调用
|
get_FastQuery(table, option); //执行查询(表和选项)
|
}
|
, cancel: function () { //点击取消时使用回调
|
//$(".layui-btn").removeClass("layui-btn-disabled");
|
}
|
})
|
}
|
});
|
//#endregion
|
|
//加载网格
|
function get_Display(sWhere) { //加载网格调用swhere参数
|
var wait = layer.load(); //遮罩 把layer.load 调用赋值给定义变量 wait
|
$.ajax({ //进入
|
url: GetWEBURL() + '/WW_PPBomBillController/Get_WW_PPBomBillList', //加载方法所在的网页
|
async: false, // 这个选项指定了请求是否应该异步执行
|
type: "GET", //数据请求
|
data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] }, //data里一个表单属性swhere,和user属性 值取自sessionsorage的husername中
|
success: function (data1) { //进入data1 // 当请求成功时,执行这个函数
|
if(data1.count == 1) { //判断数据统计是否唯一 判断对象 data1 中是否存在count属性且count属性是否等于1
|
var data = []; //列字段数据
|
var col = []; //定义应该索引数组
|
var totalArray = []; //创建 需要合计的字段组
|
//给空的数组赋值
|
for (var key in data1.list) { //在表单中使用key查找对应的值
|
data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType }); //在数据库中根据 表单数据ID和数据名称和数据类型在获取 把获取到的数据赋值给data
|
}
|
//在列表左边添加勾选框
|
col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' }); //合计行 在表单左边显示合计行
|
for (var i = 0; i < data.length; i++) {
|
// if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
|
if ($.inArray(data[i].name, titleData) > -1) { // 使用 $.inArray() 方法 查询titledata中是否有获取到的字段,有测进行下不 在找不到元素时会返回 - 1
|
// 列的数据字段名ID 列的标题 内容居中
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列 根据data数组中的字段ID和字段名 ID需要隐藏的字段
|
}
|
else if ($.inArray(data[i].name, totalArray) > -1) { //计算列 // 如果 data[i].name 存在于 totalArray 中
|
// 列的数据字段名ID // 列的标题 //内容居中 //该列支持排序 //用于合计行计算或显示
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });//根据totalarry数组中的字段id和name 找到data表单中对应的数据列 进行计算合计
|
} else if (data[i].name == '单据号') { //判断获取到的字段数据是否为单据号。
|
// 列的数据字段名ID / / 列的标题 //内容居中 //该列支持排序
|
col.push({
|
field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, event: '单据号', event: '单据号', templet: function (d) {
|
return '<span style="color: blue;">' + d.单据号 + '</span>'
|
}, style: 'cursor: pointer;'});// event这个属性可能是自定义的,用于在列上绑定特定的事件或行为
|
} else {
|
switch (data[i].Type) {//获取到的数 为字符串类型
|
//int
|
case 'DateTime': //当它为时间时
|
// 根据列id和列名进行选择,当为data[i].name == "行关闭日期" ? "行关闭人" : data[i].name 则 " ==''?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')去显示时间
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + (data[i].name == "行关闭日期" ? "行关闭人" : data[i].name) + " ==''?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
|
break;
|
default:
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
|
}
|
}
|
}
|
//动态显示列名
|
option = {
|
elem: '#mainTable' // 使用#mainTable作为表格的DOM元素
|
, toolbar: '#toolbarDemo' //加载tolbardemo这个表格
|
, cols: [col] // 页面显示
|
, data: data1.data // 表格数据
|
, height: 800 //表格高度为800
|
, page: true // 开启分页
|
, totalRow: true // 是否显示合计行
|
, cellMinWidth: 90 // 单元格最小宽度
|
, limit: 50 // 默认每页显示的条数
|
, limits: [50, 500, 5000, 20000] // 可选的每页显示条数
|
//res从服务器返回的数据 curr当前页码显示当前页码数据 count:这通常表示数据的总条数 分页控件
|
, done: function (res, curr, count) { // 回调调用显示当前页码数据和数据总条数
|
soulTable.render(this); // 如果soulTable.render是用于重新渲染表格的 重新渲染表格
|
}
|
}
|
|
option.data = data1.data; //表格数据
|
// table 指表格组件 render 方法用来配置option生产表结构
|
table.render(option); //用于渲染或重新渲染一个表格
|
layer.close(wait); //调用可能是为了关闭一个之前因为其他原因(如等待某些初始化操作完成)而显示的加载层
|
|
//刷新表格数据
|
DisPlay_HideColumn();//打开 显示隐藏方法
|
//jQuery选择器$("#Comparator")找到页面上ID为Comparator的元素(通常是一个输入框、选择框等表单元素).val()方法用于获取该元素的值
|
if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") { //当用户将ID为Comparator的元素的值设置为0,并且将ID为ColContent的元素的值清空(或保持为空)时,自动调用ColFilter函数来执行某种与列相关的操作。这种逻辑通常用于表单处理或数据过滤的场景中,以便在用户没有指定某些过滤条件时自动应用一组默认的过滤规则
|
ColFilter(); //如果上述两个条件都为真,那么执行ColFilter(); 。这里ColFilter是一个自定义的函数,可能用于对表格列进行过滤、排序或其他与列相关的操作。
|
}
|
} else {
|
layer.close(wait); //调用可能是为了关闭一个之前因为其他原因(如等待某些初始化操作完成)而显示的加载层
|
//data1表单数据code和Message属性的对象
|
layer.alert(data1.code + data1.Message, { icon: 5 }); //提示弹窗5 提示内容data1.code + data1.Message 错误提示警告
|
}
|
}, error: function () {
|
layer.close(wait); //调用关闭
|
layer.alert("接口请求失败!", { icon: 5 }); //弹窗提示失败
|
}
|
});
|
}
|
//新增
|
function set_AddNew() {
|
layer.open({ //使用 layer.open 方法打开一个新的层
|
type: 2, // 表示这是一个iframe层,即内容是一个外部页面
|
skin: 'layui-layer-rim', //加上边框
|
title: '新增器具采购入库单', // 设置层的标题
|
closeBtn: 1, // 显示关闭按钮
|
shift: 2, //设置层的位置
|
area: ['100%', '100%'], //设置层的大小
|
maxmin: true, // 允许层最大化和最小化
|
content: '../模治具仓库管理/WW_PPBomBillEdit.html?OperationType=1&linterid=&HSouceBillType=0&closeType=1',//设置iframe层的内容地址,即要加载的外部页面
|
end: function () {
|
//刷新页面,
|
get_FastQuery(table, option); // 调用某个函数来刷新页面或数据
|
},
|
success: function (layero, index) {
|
|
}
|
});
|
}
|
//编辑单据
|
function set_ShowBill() {
|
var checkStatus = table.checkStatus('mainTable') // 使用 table 模块的 checkStatus 方法获取表格 'mainTable' 的选中状态
|
, data = checkStatus.data; // 从选中状态中提取数据,这些数据是表格中被选中的行
|
if (checkStatus.data.length === 1) { // 判断表单数据行被选中的行数是否为1行
|
var linterid = data[0].hmainid.toString(); //如果只有一行被选中,则获取该行数据的 hmainid 字段值,并将其转换为字符串
|
//if (AllowLoadData(sSubStr) != false) {//非空验证
|
layer.open({ // 使用 layer.open 方法打开一个新的 iframe 层
|
type: 2 // 表示这是一个iframe层,即内容是一个外部页面
|
, area: ['100%', '100%'] //设置层的大小
|
, title: '编辑器具采购入库单' // 设置层的标题
|
, closeBtn: 1 // 显示关闭按钮
|
, shade: 0.6 //遮罩透明度
|
, maxmin: true //允许全屏最小化
|
, anim: 0 //0-6的动画形式,-1不开启
|
, content: '../模治具仓库管理/WW_PPBomBillEdit.html?OperationType=3&linterid=' + linterid + '&HSouceBillType=0&closeType=1' // 设置 iframe 层的内容地址,包含查询参数
|
, resize: false, //禁止用户调整层的大小
|
end: function () {
|
get_FastQuery(table, option);// 用于刷新页面或数据
|
}
|
, cancel: function () {
|
//$(".layui-btn").removeClass("layui-btn-disabled"); //调用使用CSS类选择器于选择所有class属性中包含layui-btn元素去删除需要删除的名称 //"layui-btn-disabled":这是要被移除的类的名称
|
}
|
})
|
} else {
|
// 如果没有选择一行数据或选择了多行数据,则弹出提示信息
|
layer.msg('请选择一行数据编辑!');
|
}
|
}
|
|
//#region 点击行选中高亮
|
table.on('row(mainTable)', function (obj) {
|
//选中行改变颜色
|
//obj.tr:获取被点击的行的jQuery对象 ,find(':checkbox:first'):在被点击的行中查找第一个复选框,prop('checked'):获取这个复选框的checked属性的值,!:对checked属性的值进行逻辑非操作var flag = ...:将逻辑非操作的结果赋值给变量flag
|
var flag = !obj.tr.find(':checkbox:first').prop('checked'); //获取被点击的复选框行进行判断是否选中
|
// find(':checkbox') :在被点击的行中查找所有的复选框,将所有这些复选框的checked属性设置为flag的值
|
obj.tr.find(':checkbox').prop('checked', flag); //将所有的复选框这种为flag根据第一个复选框来判断
|
if (flag) {
|
obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //设置复选框选中样式
|
$(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
|
} else {
|
obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
|
$(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
|
}
|
//mainTable 为表格ID 注意此处如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
|
layui.each(table.cache.mainTable, function (i, l) {
|
// 代码的目的是遍历layui表格的缓存数据,找到与obj.tr所指向的行对应的缓存项,并修改其某个自定义属性(假设为LAY_CHECKED)的值 // i是数组的索引(对于对象来说,可以认为是键),而l是当前遍历到的项的值
|
if (obj.tr.index() == l.LAY_TABLE_INDEX) { //循环表格使每一行添加一个索引
|
l.LAY_CHECKED = flag;//找到对应行给一个是否选中的状态
|
}
|
});
|
})
|
//#endregion
|
|
//删除
|
function set_DeleteBill() {
|
var checkStatus = table.checkStatus('mainTable') // 使用 table 模块的 checkStatus 方法获取表格 'mainTable' 的选中状态
|
, data = checkStatus.data; //从选中状态中提取数据,这些数据是表格中被选中的行
|
if (checkStatus.data.length === 1) { //判断选中的列表数据行数是否为一条
|
var InterID = data[0].hmainid.toString(); //如果只有一行被选中,则获取该行数据的 hmainid 字段值,并将其转换为字符串
|
//逻辑删除方法
|
layer.confirm("确认要删除吗,删除后不能恢复", { title: "删除确认" }, function (index) {//使用Layer库弹出一个确认对话框,询问用户是否确认删除操作。如果用户点击确认,则执行提供的回调函数。
|
var wait = layer.load(); // 显示一个加载中的提示
|
$.ajax({ //GET请求到服务器
|
type: "GET", // 请求的类型
|
url: GetWEBURL() + "/Sc_MouldProdInBill/set_DeleteBill", //请求的URL 方法所在页面和方法名
|
// data属性包含了要发送到服务器的数据。这里是一个对象,包含两个属性:HInterID和user。它们的值分别来自InterID变量和sessionStorage["HUserName"](从会话存储中获取的用户名)
|
data: { "HInterID": InterID, "user": sessionStorage["HUserName"] }, // 发送到服务器的数据作为查询参数附加到URL上 //data里一个表单属性interid,和user属性
|
// 当请求成功时调用的函数 接受收一个参数result
|
success: function (result) {
|
// 在回调函数内部,首先检查服务器返回的数据中count属性的值是否等于1
|
if (result.count == 1) { //判断对象 data1 中是否存在count属性且count属性是否等于1
|
// { time: 1 * 1000, icon: 1 }是一个配置对象,指定了消息框的显示时间为1秒(1 * 1000毫秒),并且使用图标1(通常表示成功或积极的消息
|
layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
|
// 得到frame索引
|
var index = layer.getFrameIndex(window.name); //首先尝试通过window.name获取当前iframe的索引 然后赋值给参数index
|
//关闭当前frame
|
layer.close(index);
|
//修改为功后刷新界面
|
window.location.reload();
|
});
|
|
} else {
|
layer.alert(result.code + result.Message, { icon: 5 }); //提示弹窗5 提示内容data1.code + data1.Message 错误提示警告
|
}
|
layer.close(wait);
|
}, error: function () {
|
// 如果AJAX请求失败
|
layer.close(wait); //则关闭加载
|
layer.alert("接口请求失败!", { icon: 5 });//提示,并显示一条错误消息
|
}
|
});
|
})
|
}
|
else {
|
layer.msg('请选择一行数据删除!'); // 如果没有选择一行数据或选择了多行数据,则弹出提示信息
|
}
|
}
|
|
//预览
|
function get_ViewReport() {
|
var checkStatus = table.checkStatus('mainTable')//调用 table.checkStatus('mainTable') 方法获取名为 mainTable 的表格的选中状态
|
, data = checkStatus.data; //从选中状态中提取数据,这些数据是表格中被选中的行
|
if (checkStatus.data.length === 1) { //检查被选中的行数据(checkStatus.data)的长度是否等于1
|
layer.open({ //调用 layer.open 方法打开一个新的Layer层
|
type: 2 //设置层的类型为2 ,意味着新层将包含一个iframe,可以加载另一个HTML页面
|
, area: ['50%', '50%'] //设置页面大小
|
, title: '打印模版选择' //设置层的标题为“打印模版选择
|
, shade: 0.6 //遮罩透明度
|
, maxmin: false //允许全屏最小化
|
, anim: 0 //0-6的动画形式,-1不开启
|
//../BaseSet/SRM_OpenTmpList.html),并附加了三个查询参数(linterid、MyMsg 和 Type),它们的值都来自被选中的行数据的 hmainid 属性
|
, content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=HMouldProdInBill', 'yes']
|
, resize: false //禁止用户调整层的大小
|
})
|
}
|
else {
|
layer.msg('请选择一行数据打印!'); //提示请选择一行数据
|
}
|
}
|
|
//打印
|
function get_PrintReport() {
|
var checkStatus = table.checkStatus('mainTable') //调用 table.checkStatus('mainTable') 方法获取名为 mainTable 的表格的选中状态
|
, data = checkStatus.data; //从选中状态中提取数据,这些数据是表格中被选中的行
|
if (checkStatus.data.length === 1) { //检查被选中的行数据(checkStatus.data)的长度是否等于1
|
layer.open({ //调用 layer.open 方法打开一个新的Layer层
|
type: 2 //设置层的类型为2 ,意味着新层将包含一个iframe,可以加载另一个HTML页面
|
, area: ['50%', '50%'] //设置页面大小
|
, title: '打印模版选择' //设置层的标题为“打印模版选择
|
, shade: 0.6 //遮罩透明度
|
, maxmin: false //允许全屏最小化
|
, anim: 0 //0-6的动画形式,-1不开启
|
//并附加了三个查询参数(linterid、MyMsg 和 Type),它们的值都来自被选中的行数据的 hmainid 属性
|
, content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=HMouldProdInBill', 'yes']
|
, resize: false //禁止用户调整层的大小
|
})
|
}
|
else {
|
layer.msg('请选择一行数据打印!'); //提示请选择一行数据
|
}
|
}
|
|
//审核
|
function get_Audit() {
|
var checkStatus = table.checkStatus('mainTable') //调用 table.checkStatus('mainTable') 方法获取名为 mainTable 的表格的选中状态
|
, data = checkStatus.data; //从选中状态中提取数据,这些数据是表格中被选中的行
|
if (checkStatus.data.length === 1) { //检查被选中的行数据(checkStatus.data)的长度是否等于1
|
var InterID = data[0].hmainid.toString(); //如果只有一行被选中,则获取该行数据的 hmainid 字段值,并将其转换为字符串
|
$.ajax({ //GET请求到服务器
|
type: "GET", //请求对象
|
url: GetWEBURL() + "Sc_MouldProdInHouseBill/AuditMouldProdInHouseBill", //方法所在页面和方法名
|
data: { "HInterID": InterID, "user": sessionStorage["HUserName"], "flag": 1 }, //设置随请求一起发送的数据。这里包含了三个字段:HInterID(值为InterID),user(值为sessionStorage中存储的HUserName),以及flag(值为1)
|
success: function (result) { // 当请求成功时,执行这个函数
|
if (result.count == 1) { // 如果服务器返回的数据中的count字段等于1
|
layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () { // 使用layer库显示一个消息提示框,显示result.Message内容,设置显示时间为1秒,并设置图标为成功图标
|
var index = layer.getFrameIndex(window.name); // 获取当前窗口(或iframe)的索引,这通常用于layer库中的弹出层
|
//关闭当前frame
|
layer.close(index);
|
//修改为功后刷新界面
|
window.location.reload();
|
});
|
|
} else {
|
layer.alert(result.code + result.Message, { icon: 5 });// 提示一个警告框 显示result.code和result.Message的拼接内容,并设置图标为错误
|
}
|
}, error: function () {// 当请求失败时,执行这个函数。
|
layer.alert("接口请求失败!", { icon: 5 });//提示弹出警告框 ,提示“接口请求失败!
|
}
|
});
|
}
|
else {
|
// 如果被选中的行数据长度不等于1
|
layer.msg('请选择一行数据!'); //提示请选择一行数据
|
}
|
}
|
|
//反审核
|
function get_FAudit() {
|
var checkStatus = table.checkStatus('mainTable') //调用 table.checkStatus('mainTable') 方法获取名为 mainTable 的表格的选中状态
|
, data = checkStatus.data; //从选择的状态中提取数据
|
if (checkStatus.data.length === 1) { //判断选择的数据长度是否是一行
|
var InterID = data[0].hmainid.toString(); //选中的是一行数据,则获取数据的单据号字段并将去转为字符串赋值给interid
|
$.ajax({ //GET请求到服务器
|
type: "GET", //请求对象
|
url: GetWEBURL() + "Sc_MouldProdInHouseBill/AuditMouldProdInHouseBill", //方法所在页面和方法名
|
data: { "HInterID": InterID, "user": sessionStorage["HUserName"], "flag": 2 }, // 设置随请求一起发送的数据 "HInterID" 选中的行数据的单据号,user":值为`sessionStorage`中存储的(用户名称)flag": 2用于区别不同的审核状态
|
success: function (result) {// 当请求成功时,执行这个函数
|
if (result.count == 1) { // 如果服务器返回的数据中的`count`字段等于1,这可能表示审核操作成功执行
|
layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () { //使用layer库显示一个消息提示框,显示`result.Message`内容,设置显示时间为1秒,并设置图标为成功图
|
var index = layer.getFrameIndex(window.name); // 获取当前窗口(或iframe)的索引,这通常用于layer库中的弹出层
|
//关闭当前frame
|
layer.close(index);
|
//修改为功后刷新界面
|
window.location.reload();
|
});
|
|
} else { // 如果审核操作没有成功执行(`result.count`不等于1)。
|
layer.alert(result.code + result.Message, { icon: 5 });// 使用layer库显示一个警告框,显示`result.code`和`result.Message`的拼接内容,并设置图标为错误图标 提示一个错误弹出框
|
}
|
}, error: function () { //当请求失败时,执行这个函数。
|
|
layer.alert("接口请求失败!", { icon: 5 });// 使用layer库显示一个警告框,提示“接口请求失败!”,并设置图标为错误图标
|
}
|
});
|
}
|
else {
|
layer.msg('请选择一行数据!'); // 当选择的数据不为一行时,提示用户“请选择一行数据!”。
|
}
|
}
|
|
|
//快速过滤
|
function get_FastQuery() {
|
var HBeginDate = $("#HBeginDate").val();//开始日期 获取开始日期的值,假设#HBeginDate是一个日期选择器或输入框的ID
|
var HEndDate = $("#HEndDate").val();//结束日期 获取结束日期的值,同样假设#HEndDate是一个日期选择器或输入框的ID
|
var HEndDates = $("#HEndDates").val();//发料日期
|
var HBillNo = $("#HBillNo").val(); //获取单据号的值,#HBillNo是单据号输入框的ID
|
var HDepartName = $("#HDepartName").val(); //获取部门名称的值,#HDepartName是部门名称输入框或选择器的ID
|
var HMaterNumber = $("#HMaterNumber").val(); // 获取物料编号的值,#HMaterNumber是物料编号输入框的ID。
|
var HMaterName = $("#HMaterName").val();// 获取物料名称的值,#HMaterName是物料名称输入框或选择器的ID
|
var HStockID = $("#HStocID").val(); // 获取库存ID的值
|
var HMakerMan = $("#HMakerMan").val();// 获取制单人(或操作人)的值,#HMakerMan是制单人输入框或选择器的ID
|
|
var ColName = $("#ColName").val();//复选框获取第一个条件列的名称(可能是用于高级查询的一个字段),#ColName是选择列的复选框或下拉框的ID
|
var Comparator = $("#Comparator").val();// 获取第一个条件的比较符(如等于、大于等),#Comparator是比较符选择器的ID
|
var ColContent = $("#ColContent").val(); // 获取第一个条件列的内容(即要匹配的值),#ColContent是内容输入框的ID
|
|
var ColName1 = $("#ColName1").val();//复选框 获取第二个条件的名称,选择下拉框
|
var Comparator1 = $("#Comparator1").val(); //获取第二个条件比较符,
|
var ColContent1 = $("#ColContent1").val(); //获取第二个需要匹配的值
|
var ColName2 = $("#ColName2").val();//复选框 获取第三个条件的名称,选择下拉框
|
var Comparator2 = $("#Comparator2").val(); //获取第三个条件比较符,
|
var ColContent2 = $("#ColContent2").val(); //获取第三个需要匹配的值
|
|
if (ColName != 0 && Comparator != 0) { //检查两个变量ColName(假设代表数据库中的列名)和Comparator(假设代表用于比较的操作符
|
var com = ""; //声明了一个名为com的变量,并将其初始化为空字符串
|
switch (Comparator) {
|
case "7": //当Comparator 为7时
|
com = "like'%" + ColContent + "%'"; //com为包含
|
break;
|
case "8":
|
com = "like'%" + ColContent + "'"; //com为左包含
|
break;
|
case "9":
|
com = "like'" + ColContent + "%'"; //com为右包含
|
break;
|
case "10":
|
com = "not like'%" + ColContent + "%'"; //com为不包含
|
break;
|
default: //当能直接调用数据库的判断条件时
|
com = "" + Comparator + "'" + ColContent + "'";//com为判断条件加需要查询筛选
|
break;
|
}
|
sWhere += " and " + ColName + " " + com; //码将构建好的条件表达式(ColName列名加上com变量中的条件)
|
}
|
if (ColName1 != 0 && Comparator1 != 0) {//检查两个变量ColName1(假设代表数据库中的列名)和Comparator1(假设代表用于比较的操作符
|
var com1 = ""; //声明了一个名为com1的变量,并将其初始化为空字符串
|
switch (Comparator1) {
|
case "7"://当Comparator1 为7时
|
com1 = "like'%" + ColContent1 + "%'";//com1为包含
|
break;
|
case "8":
|
com1 = "like'%" + ColContent1 + "'";//com1为左包含
|
break;
|
case "9":
|
com1 = "like'" + ColContent1 + "%'";//com1为右包含
|
break;
|
case "10":
|
com1 = "not like'%" + ColContent1 + "%'";//com1为不包含
|
break;
|
default:
|
com1 = "" + Comparator1 + "'" + ColContent1 + "'"; //com1为判断条件加需要查询筛选
|
break;
|
}
|
sWhere += " and " + ColName1 + " " + com1; //码将构建好的条件表达式(ColName1列名加上com1变量中的条件)
|
}
|
if (ColName2 != 0 && Comparator2 != 0) {//检查两个变量ColName2(假设代表数据库中的列名)和Comparator2(假设代表用于比较的操作符
|
var com2 = ""; //声明了一个名为com2的变量,并将其初始化为空字符串
|
switch (Comparator2) {
|
case "7":
|
com2 = "like'%" + ColContent2 + "%'";//com2为包含
|
break;
|
case "8":
|
com2 = "like'%" + ColContent2 + "'";//com2为左包含
|
break;
|
case "9":
|
com2 = "like'" + ColContent2 + "%'";//com2为右包含
|
break;
|
case "10":
|
com2 = "not like'%" + ColContent2 + "%'";//com2为不包含
|
break;
|
default:
|
com2 = "" + Comparator2 + "'" + ColContent2 + "'"; //com2为判断条件加需要查询筛选
|
break;
|
}
|
sWhere += " and " + ColName2 + " " + com2;//码将构建好的条件表达式(ColName2列名加上com2变量中的条件)
|
}
|
|
if (HBeginDate) {//判断开始时间
|
//varchar(100)类型 ,字段,时间格式
|
sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + HBeginDate + "'"; //向 sWhere 字符串添加一个条件该条件要求数据库中的“日期”字段(转换为特定格式的字符串后)必须大于或等于 HBeginDate 变量指定的值
|
}
|
if (HEndDate) { //判断结束时间
|
sWhere += " and CONVERT(varchar(100),日期, 23) <= '" + HEndDate + "'"; //向 sWhere 字符串添加一个条件该条件要求数据库中的“日期”字段(转换为特定格式的字符串后)必须大于或等于 HBeginDate 变量指定的值
|
}
|
if (HEndDates) {//判断发料时间
|
sWhere += " and CONVERT(varchar(100),发料日期, 23) <= '" + HEndDates + "'"; //向 sWhere 字符串添加一个条件该条件要求数据库中的“日期”字段(转换为特定格式的字符串后)必须大于或等于 HBeginDate 变量指定的值
|
}
|
if (HBillNo) {
|
sWhere += " and 单据号 like '%" + HBillNo + "%'"; //单据号搜索 如果HBillNo有值,将向sWhere字符串追加一个条件,用于搜索数据库中“单据号”字段包含HBillNo变量值的记录
|
}
|
if (HDepartName) {
|
sWhere += " and 部门名称 like '%" + HDepartName + "%'"; //如果HDepartName有值将向sWhere字符串追加一个条件,用于搜索数据库中“部门名称”字段包含HDepartName变量值的记录
|
}
|
if (HMaterNumber) {
|
sWhere += " and 物料代码 like '%" + HMaterNumber + "%'"; // 如果HMaterNumber有值,向sWhere字符串追加一个条件,用于搜索数据库中“物料代码”字段包含HMaterNumber变量值的记录
|
}
|
if (HMaterName) {
|
sWhere += " and 物料名称 like '%" + HMaterName + "%'"; //如果HMaterName有值,这行代码将向sWhere字符串追加一个条件,用于搜索数据库中“物料名称”字段包含HMaterName变量值的记录
|
}
|
if (HStockID) {
|
sWhere += " and 仓库 like '%" + HStocOut + "%'"; //如果HStockID有值,是向sWhere字符串追加一个条件,用于搜索数据库中“仓库”字段包含某个值的记录。
|
}
|
if (HMakerMan) {
|
sWhere += " and 制单人 like '%" + HMakerMan + "%'"; //如果HMakerMan有值,将向sWhere字符串追加一个条件,用于搜索数据库中“制单人”字段包含HMakerMan变量值的记录
|
}
|
var index = layer.load(0);//用了layer.load方法,通常用于显示一个加载层0作为参数可能指定了加载提示的样式或类型
|
get_Display(sWhere); //调用加载网格
|
//调用接口后清空sWhere缓存
|
sWhere = "";
|
}
|
//重置过滤条件
|
function set_ClearQuery() {
|
var HInitTimeCycle = $("#HInitTimeCycle").val() * 1; //这行代码从ID为HInitTimeCycle的元素中获取值(假设是一个表示天数的整数),并将其转换为数字类型(通过乘以1实现)。这个值用于计算开始日期的偏移量
|
$("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd")); //开始日期 当前日期减去HInitTimeCycle指定的天数(通过毫秒数计算得出),然后使用Format函数(这个函数在代码段中没有定义,但假设它接受一个日期和一个格式字符串,并返回格式化的日期字符串)将日期格式化为"yyyy-MM-dd"格式,最后将这个格式化的日期设置为ID为HBeginDate的元素的值
|
$("#HEndDate").val(Format(new Date(), "yyyy-MM-dd")); //结束日期 获取当前日期格式化为"yyyy-MM-dd"格式
|
$("#HEndDates").val(Format(new Date(), "yyyy-MM-dd"));// 发料日期 获取当前日期格式化为"yyyy-MM-dd"格式
|
$("#HBillNo").val(""); //将单据号设置为空值
|
$("#HDepartName").val(""); //将部门名称设置为空值
|
$("#HMaterNumber").val(""); //将物料代码设空
|
$("#HMaterName").val(""); //将物料名称设空
|
$("#HStocID").val(""); //将仓库名称设空
|
$("#HMakerMan").val(""); //将制单人设空
|
$("#ColName").val(); //复选框 获取取 ID 为 ColName 的元素的值
|
$("#Comparator").val(); //尝试获取 ID 为 Comparator 的元素的值
|
$("#ColContent").val(); // 尝试获取 ID 为 ColContent 的元素的值
|
$("#ColName1").val(); //复选框 获取取 ID 为 ColName1 的元素的值
|
$("#Comparator1").val(); //尝试获取 ID 为 Comparator1 的元素的值
|
$("#ColContent1").val(); // 尝试获取 ID 为 ColContent1 的元素的值
|
$("#ColName2").val(); //复选框 获取取 ID 为 ColName2的元素的值
|
$("#Comparator2").val(); //复选框 获取取 ID 为 ColName2 的元素的值
|
$("#ColContent2").val(); // 尝试获取 ID 为 ColContent1 的元素的值
|
form.render('select');//调用了一个名为form的对象的render方法,并传递了'select'作为参数
|
sWhere = " "; //Where变量重置为一个包含两个空格的字符串
|
get_Display(sWhere); //重新显示数据
|
}
|
//#endregion
|
//刷新
|
function set_Refresh() {
|
$("#btnSearch").click(); //模拟对ID为 btnSearch 的元素的点击操作 // 获取刷新控件 重新渲染界面
|
}
|
|
//隐藏列设置,
|
function get_HideColumn() {
|
var colName = ""; //定义一个空字符串 colName,用于存储需要隐藏的列名
|
var contentUrl = ""; //定义一个空字符串 contentUrl,用于构建要加载的HTML页面的URL
|
for (var i = 1; i < option.cols[0].length - 1; i++) { //它初始化一个名为i的变量,其初始值为1,表示从数组的第二个元素开始遍历(因为数组索引从0开始,所以索引1对应第二个元素)。循环的条件是i小于option.cols[0].length - 1
|
colName += option.cols[0][i]["title"] + ","; //将option.cols[0]数组中除了第一个和最后一个元素之外的所有元素的title属性值以逗号分隔的方式拼接成一个字符串,并将这个字符串赋值给colName变量
|
}
|
var urlStr = window.document.location.pathname;//获取文件路径
|
var urlLen = urlStr.split('/'); //将路径名按斜杠(/)分割成数组 urlLen
|
for (var i = 0; i < urlLen.length - 4; i++) { //环遍历 urlLen 数组,但只到倒数第四个元素
|
contentUrl += "../"; //于每个元素,向 contentUrl 添加 "../",用于向上回退到父目录 ,返回上一级
|
}
|
//把数组编码一个字符串转接给另一个页面再转为数组 赋值给colname
|
colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI 进行编码 bstring() 方法用于提取字符串中介于两个指定下标之间的字符
|
|
contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName; //构建完整的URl
|
|
|
layer.open({ //打开层
|
type: 2 //设置层的类型为2 ,意味着新层将包含一个iframe,可以加载另一个HTML页面
|
, skin: "layui-layer-rim" //加上边框
|
, title: "隐藏列设置" //标题
|
, closeBtn: 1 //窗体右上角关闭 的 样式
|
, shift: 2 //弹出动画
|
, area: ["50%", "90%"] //窗体大小
|
, maxmin: true //设置最大最小按钮是否显示
|
, content: [contentUrl, "yes"]
|
, btn: ["确定", "取消"] //按钮的选择
|
, btn1: function (index, laero) {//选择按钮后调用
|
//刷新表格数据
|
DisPlay_HideColumn();
|
//更新表格缓存的数据
|
layer.close(index);//关闭弹窗
|
}
|
})
|
}
|
|
//显示列数据
|
function DisPlay_HideColumn() {
|
$.ajax({ //打开请求
|
url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',//请求路径
|
type: "GET", //请求方法
|
data: { "HModName": HModName, "user": sessionStorage["HUserName"] }, //data里一个表单属性HModName,和user属性 值取自sessionsorage的husername中
|
success: function (data1) { // 当请求成功时,执行这个函数
|
if (data1.data.length != 0) { // 检查 data1.data 数组的长度是否不为0
|
var dataCol = []; //数据库查询出的列数据
|
var titleData = ["单据ID", "单据类型", "HDeptID", "HUnitID", "HMaterID", "HWHID", "HSPID", "源单主内码","源单子内码"]; //不需要显示的字段 可扩展
|
//从 data1.data 数组的第一个元素中提取 HGridString 属性的值,将这个值(一个逗号分隔的字符串)分割成一个数组,并将这个数组赋值给 dataCol 变量
|
dataCol = data1.data[0].HGridString.split(',');
|
|
for (var i = 0; i < option.cols[0].length - 2; i++) { // 循环数组里减去两个长度 从 0 遍历到 option.cols[0].length - 2。注意这里减去了 2,可能是因为某些特定的列(如最后两列)不需要被处理或者 dataCol 数组的长度与 option.cols[0] 不完全对应。
|
var dataCols = dataCol[i].split('|'); //对于 dataCol 数组中的每个元素 | 分割成数组 dataCols
|
//隐藏列
|
if (dataCols[1] == 1) {
|
option.cols[0][i + 1]["hide"] = true; //如果 dataCols[1](即分割后的第二个值)等于 1,则将对应列的 hide 属性设置为 true,表示该列应该被隐藏
|
}
|
//设置列宽
|
if (dataCols[3] > 0) {
|
option.cols[0][i + 1]["width"] = dataCols[3]; //如果 dataCols[3](即分割后的第四个值)大于 0,则将对应列的 width 属性设置为 dataCols[3] 的值
|
}
|
//设置内容字体大小
|
if (data1.data[0].HFontSize != 0) {//当数值里HFontSize有值时
|
option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;"; // data1.data[0].HFontSize 的值来设置对应列的字体大小
|
} else {
|
option.cols[0][i + 1]["style"] = "font-size:100%"; //否则,使用默认字体大小(100 %)
|
}
|
//设置列宽
|
//if (data1.data[0].HColumnWidth != 0) {
|
// option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
|
//} else {
|
// option.cols[0][i + 1]["width"] = "";
|
//}
|
//显示列
|
if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) { //判断组数中的列 存在是且此列的下一个tetle不存在时运行
|
option.cols[0][i + 1]["hide"] = false; //前列对象的下一个列对象的 hide 属性设置为 false 设置否显示
|
}
|
//字体所在位置(左 居中 右)
|
switch (dataCols[2]) { // switch 语句根据 dataCols[2] 的值来设置列的文本对齐方式
|
case "L": //当为l时
|
option.cols[0][i + 1]["align"] = "left"; //字体向左对齐
|
break;
|
case "M":
|
option.cols[0][i + 1]["align"] = "center"; //字体居中对齐
|
break;
|
case "R":
|
option.cols[0][i + 1]["align"] = "right"; //字体向右对齐
|
break;
|
}
|
}
|
|
//取消冻结列
|
for (var i = 1; i < option.cols[0].length - 1; i++) { //循环option 数组的长度 从 option.cols[0] 数组的第二个元素(索引为 1 的元素,因为索引通常从 0 开始)开始迭代循环的条件是 i < option.cols[0].length - 1,这意味着循环将一直执行,直到 i 等于 option.cols[0].length - 2(即数组倒数第二个元素的索引)。这里减去 1 可能是为了避免处理数组的最后一个元素,但通常这取决于你的具体需求
|
if (option.cols[0][i]["fixed"] != null) { //检查当前正在迭代的列(option.cols[0][i])是否有一个非空的 fixed 属性。如果 fixed 属性存在且其值不是 null 或 undefined(!= null 通常也会检查 undefined,但明确检查两者是更好的做法),则条件为真
|
option.cols[0][i]["fixed"] = null; // 如果上面的条件为真,即当前列被冻结了,则这行代码将 fixed 属性的值设置为 null,从而取消该列的冻结状态
|
}
|
else {
|
break;
|
}
|
}
|
//冻结列
|
if (data1.data[0].HFixCols != 0) {// 首先检查 data1.data[0].HFixCols 是否不为 0,这意味着有列需要被冻结
|
for (var i = 0; i < data1.data[0].HFixCols; i++) { //遍历从 0 到 data1.data[0].HFixCols-1 的索引
|
if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {//检查当前列(通过 i+1 索引,因为可能跳过了第一列或某些列未包含在内)的标题是否存在于 titleData 数组中
|
data1.data[0].HFixCols += 1;//如果列标题在 titleData 中找到 在 data1.data[0].HFixCols 在多循环一次
|
}
|
option.cols[0][i + 1]["fixed"] = "left"; // 无论列标题是否在 titleData 中,都将当前列(通过 i+1 索引)标记为冻结在左侧
|
}
|
}
|
table.render(option);//渲染表格
|
} else {
|
table.render(option);//渲染表格
|
}
|
}, error: function () {
|
layer.alert("接口请求失败!", { icon: 5 });//弹出提示框 提示请求失败
|
}
|
})
|
}
|
|
//#region 初始日期间隔 下拉列表
|
function setSelect_HInitTimeCycle() {
|
var valueList = [0, 1, 2, 3, 4, 5, 6, 29]; // 定义一个代表不同的时间间隔的天数数组
|
var titleList = ["今天", "近两天", "近三天", "近四天", "近五天", "近六天", "近七天", "近30天"]; //定义数组与valuelist数组一样对应 且作用显示与下拉框
|
//创建一个字符串 HInitTimeCycle_ArrayList,用于构建下拉选择框的 HTML。这里首先添加了一个默认选项,其值为 - 1,文本为“任意间隔”,并且被设置为选中状态
|
var HInitTimeCycle_ArrayList = '<option value="-1" selected="selected" >任意间隔</option>';
|
for (var i = 0; i < valueList.length; i++) {//遍历 valueList 数组,对于数组中的每个值,
|
//将对应的选项添加到 HInitTimeCycle_ArrayList 字符串中 每个选项的 value 属性设置为 valueList 中的值,文本设置为 titleList 中对应的名称,并且设置字体颜色为蓝色
|
HInitTimeCycle_ArrayList += '<option style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
|
}
|
|
$("#HInitTimeCycle").empty(); //清空选择的内容
|
//将之前构建的包含所有选项的 HTML 字符串HInitTimeCycle_ArrayList 添加到 ID 为 HInitTimeCycle 的元素中从而创建了完整的下拉选择框
|
$("#HInitTimeCycle").append(HInitTimeCycle_ArrayList);//创建可选择的下拉框显示
|
form.render('select');//渲染表单显示
|
|
$("#HInitTimeCycle").val("29"); //默认选择显示
|
}
|
//#endregion
|
|
//#region 任意字段过滤:列名显示下拉框
|
function ColFilter() {
|
//定义了一个名为 Organization 的变量,并初始化为一个包含单个 <option> 元素的字符串。这个 <option> 元素的值 (value) 被设置为 "0",并且被标记为选中状态 (selected="selected")。它没有包含任何显示的文本(即 <option> 标签和结束标签之间是空的
|
var Organization = '<option value="0" selected="selected" ></option>';
|
for (var i = 1; i < option.cols[0].length; i++) { //循环列表数组,其中包含了列的信息。循环从索引 1 开始,可能是因为索引 0 的项被视为特殊或不希望包含在下拉列表中
|
if (option.cols[0][i].hide != true) { //这行代码检查当前迭代的列对象(option.cols[0][i])的 hide 属性是否不等于 true。如果不等于 true(即该列未被隐藏
|
|
// 向 Organization 字符串追加一个新的 < option > 元素,将新 < option > 元素的 value 属性和显示的文本都设置为当前列的 field 属性值,并设置了字体颜色为蓝色
|
Organization += '<option style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</ option>';
|
}
|
}
|
$("#ColName").empty(); //使用 jQuery 选择器 $("#ColName") 来找到页面上 ID 为 ColName 的元素,然后,它调用 .empty() 方法来移除该元素内部的所有内容
|
$("#ColName").append(Organization); //将 Organization 字符串追加到 ID 为 ColName 的 <select> 元素中
|
$("#ColName1").empty(); //使用 jQuery 选择器 $("#ColName1") 来找到页面上 ID 为 ColName1 的元素,然后,它调用 .empty() 方法来移除该元素内部的所有内容
|
$("#ColName1").append(Organization); //将 Organization 字符串追加到 ID 为 ColName1的 <select> 元素中
|
$("#ColName2").empty();//使用 jQuery 选择器 $("#ColName2") 来找到页面上 ID 为 ColName2的元素,然后,它调用 .empty() 方法来移除该元素内部的所有内容
|
$("#ColName2").append(Organization); //将 Organization 字符串追加到 ID 为 ColName2 的 <select> 元素中
|
form.render('select'); //重新渲染表单
|
}
|
//#endregion
|
|
//#region 【过滤方案】
|
|
//获取当前用户的默认过滤方案
|
function get_DefaultModule() {
|
$.ajax({ //请求调用
|
url: GetWEBURL() + '/Xt_FastICScheme/Chooselist',//调用的url地址
|
type: "GET", //调用的方法
|
// user": 这个属性的值是通过访问sessionStorage对象的"Czybm"键来获取的 // "HInterID": 这个属性的值被硬编码为0
|
//Type": 这个属性的值被设置为"Default"。这通常意味着该对象或数据项被配置为使用默认的类型或行为
|
data: { "user": sessionStorage["Czybm"], "HModuleName": HModuleName, "HInterID": 0, "Type": "Default" },//在Web应用程序中传递用户信息、模块名称、交互ID以及数据项的类型,以便进行进一步的处理或显示
|
success: function (data1) { // 当请求成功时,执行这个函数
|
if (data1.count == 1) {// 判断对象 data1 中是否存在count属性且count属性是否等于1
|
//当前用户设置有默认的过滤方案
|
var data = data1.data;
|
//当前选择的过滤方案
|
HInterID_Choose = data[0].hmainid; //data 数组的第一个元素并从该元素中获取一个名为 hmainid 的属性赋值给HInterID_Choose 变量
|
//过滤方案内码
|
HInterID = data[0].hmainid //data 数组的第一个元素并从该元素中获取一个名为 hmainid 的属性赋值给HInterID 变量
|
//过滤方案名称
|
HDefaultFilter = data[0].方案名称
|
//过滤方案的备注(方案信息描述)
|
var HRemark = data[0].备注
|
//显示出当前的默认过滤方案
|
document.getElementById("HFilterScheme_Now").style.display = "block";
|
// 更新该元素的HTML内容,以显示过滤方案的名称和备注
|
document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + HDefaultFilter + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb"> ' + "(" + HRemark + ")" + '</span>';
|
//把过滤条件值回写到页面上
|
for (let i = 0; i < data.length; i++) { //循环 遍历数据集data中的每个元素
|
$("#" + data[i].过滤字段ID).val(data[i].过滤值); // 尝试更新页面上ID与data[i].过滤字段ID相匹配的输入框的值
|
if (data[i].过滤标签类型 == 'SELECT') { // 如果当前过滤条件的类型是'SELECT'(即下拉选择框)
|
// 则找到对应的下拉选择框中的选项,其value属性与data[i].过滤值相匹配 , 并将该选项设置为选中状态
|
$("#" + data[i].过滤字段ID).find("option[value='" + data[i].过滤值 + "']").attr("selected", true);
|
}
|
}
|
|
var HInitTimeCycle = $("#HInitTimeCycle").val() * 1; // //将获取的下拉框值*1转化为数字类型 赋值给变量HInitTimeCycle
|
//若日期间隔不为 任意间隔,则禁用开始日期与结束日期的选择
|
if (HInitTimeCycle != -1) { //判断下拉框的value值是否为—1
|
$('#HBeginDate').prop('disabled', true); //开始时间不可选,默认灰色
|
$('#HEndDate').prop('disabled', true);//开始结束不可选,默认灰
|
|
$("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd")); //获取HBeginDate的值,根据获取系统当前时间减去相应的天数即为开始时间
|
$("#HEndDate").val(Format(new Date(), "yyyy-MM-dd")); //获取HEndDate的值,调用系统当前时间转为日期格式即为结束日期
|
|
|
//执行查询方法
|
get_FastQuery();
|
} else {
|
$('#HBeginDate').prop('disabled', false); //开始时间可自选
|
$('#HEndDate').prop('disabled', false); //结束时间可自选
|
}
|
|
//执行查询方法
|
get_FastQuery()
|
form.render("select"); //重新渲染
|
} else {
|
//当前用户没有设置默认的过滤方案
|
//隐藏显示过滤方案的标签信息
|
document.getElementById("HFilterScheme_Now").style.display = "none";//在HTML文档中找到ID为HFilterScheme_Now的元素,并设置其CSS的display属性为none
|
//执行查询方法
|
//get_FastQuery()
|
//form.render("select");
|
}
|
}, error: function () {
|
layer.alert("接口请求失败!", { icon: 5 }); //警示示 接口请求失败 警示标志为5的
|
}
|
});
|
}
|
|
//保存方案
|
function set_SaveScheme() {
|
var index = layer.open() //打开新的弹窗
|
//判断用户是否点击了右上角的“叉号”关闭弹窗页面
|
var HIsClose_Manual = false; //把布尔值false赋值给声明变量
|
//获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
|
var Filter = document.getElementsByClassName(HClassTag);
|
|
var HFilterIdList = "";//过滤条件
|
var HFilterIdLists = "";//拼接多个过滤条件
|
var HValue = "";//过滤值
|
var HElement_type = "";//过滤标签类型
|
|
for (var i = 0; i < Filter.length; i++) { //循环数组中的字段
|
HFilterIdList = Filter[i].id; //过滤条件ID
|
HFilterIdLists += Filter[i].id + ","; //过滤条件ID(拼接)
|
HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
|
HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
|
}
|
|
//去除末尾逗号 移除最后一位
|
HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
|
HValue = HValue.substring(0, HValue.length - 1);
|
HElement_type = HElement_type.substring(0, HElement_type.length - 1);
|
|
//当前页面上没有选择过滤方案,进入新增方法
|
if (HDefaultFilter == "") { //判断过滤名称是否为空
|
layer.open({ //打开新的层
|
type: 2 //可以显示新界面
|
, area: ['40%', '80%'] //界面的大小
|
, title: '过滤方案' //设置层名称
|
, shift: 0 //弹出动画
|
// 置了一个名为content的属性 表是url参数,这些查询参数通过JavaScript变量(如HModuleName、HFilterIdLists、HValue、HElement_type)动态构建,用于向目标页面传递信息
|
, content: '../../系统管理/过滤方案设置/Xt_FastICScheme.html?OperationType=1&HModuleName=' + HModuleName + '&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type
|
, cancel: function () {
|
// 右上角关闭事件的逻辑
|
HIsClose_Manual = true; //用户点击对话框的关闭按钮时
|
}
|
, end: function () {
|
if (HIsClose_Manual != true) {//检查HIsClose_Manual变量的值,如果不是true(即对话框不是通过点击关闭按钮关闭的)
|
get_FastQuery();
|
//显示当前的过滤方案
|
// 配置一个UI组件(如对话框)的,它包含了动态构建的URL、处理关闭事件的逻辑,以及在特定条件下显示当前过滤方案信息的逻辑
|
document.getElementById("HFilterScheme_Now").style.display = "block";
|
document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + sessionStorage["HFilterSchemeName_" + sessionStorage["Czybm"]] + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb"> ' + "(" + sessionStorage["HFilterSchemeRemark_" + sessionStorage["Czybm"]] + ")" + '</span>';
|
}
|
}
|
})
|
layer.close(index) //关闭弹窗
|
} else {
|
//当前页面已有过滤方案,用户选择 新增或者编辑
|
layer.confirm('当前已选择过滤方案,是否修改?请选择对应操作', { //弹窗提示是否修改
|
title: "操作提示", //设置默认框标题
|
icon: 0, //确认框是否显示
|
btn: ['新增方案', '保存修改当前方案', '取消'] //btn数组中的内容显示 点击调用相应的方法
|
}, function (index, layero) {
|
//新增
|
layer.open({ //打开层
|
type: 2 //可以打开一个新页面
|
, area: ['40%', '80%'] //设置界面大小
|
, title: '过滤方案' //设置层标题
|
, shift: 0//弹出动画
|
// 置了一个名为content的属性 表是url参数,这些查询参数通过JavaScript变量(如HModuleName、HFilterIdLists、HValue、HElement_type)动态构建,用于向目标页面传递信息
|
, content: '../../系统管理/过滤方案设置/Xt_FastICScheme.html?OperationType=1&HModuleName=' + HModuleName + '&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type
|
, end: function () {
|
get_FastQuery()
|
//显示当前的过滤方案
|
// 配置一个UI组件(如对话框)的,它包含了动态构建的URL、处理关闭事件的逻辑,以及在特定条件下显示当前过滤方案信息的逻辑
|
document.getElementById("HFilterScheme_Now").style.display = "block";
|
document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + sessionStorage["HFilterSchemeName_" + sessionStorage["Czybm"]] + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb"> ' + "(" + sessionStorage["HFilterSchemeRemark_" + sessionStorage["Czybm"]] + ")" + '</span>';
|
}
|
})
|
layer.close(index) //关闭弹窗
|
}, function (index) {
|
//编辑
|
var Filter_Edit = document.getElementsByClassName(HClassTag); //获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
|
HFilterIdList = ""; //过滤条件
|
HFilterIdLists = "";//拼接多个过滤条件
|
HValue = ""; //过滤值
|
HElement_type = ""; //过滤标签类型
|
for (var i = 0; i < Filter_Edit.length; i++) { // 循环过滤对象数组
|
HFilterIdList = Filter_Edit[i].id; //过滤条件ID
|
HFilterIdLists += Filter_Edit[i].id + ","; //过滤条件ID(拼接)
|
HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
|
HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
|
}
|
//去除末尾逗号
|
HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
|
HValue = HValue.substring(0, HValue.length - 1);
|
HElement_type = HElement_type.substring(0, HElement_type.length - 1);
|
|
var sMainSub = HInterID_Choose + ';' + HFilterIdLists + ';' + HValue + ';' + HElement_type + ';' + sessionStorage["Czybm"] + ';' + 3;//把拼接的值赋给smainub
|
|
//修改
|
$.ajax({ //打开请求
|
type: "POST", //请求方法
|
url: GetWEBURL() + "/Xt_FastICScheme/save", //方法所在页面和方法名
|
async: true, // 这个选项指定了请求是否应该异步执行
|
data: { "oMain": sMainSub }, //要发送的数据
|
dataType: "json", //datatype数据类型为json
|
// 当请求成功时调用的函数 接受收一个参数data
|
success: function (data) {
|
if (data.count == 1) { // 说明验证成功了, 判断获取数组是否存在count属性且 count是否等于1
|
layer.msg(data.Message, { time: 1 * 1000, icon: 1 }); //设置弹窗时间
|
}
|
else {
|
|
}
|
layer.closeAll("loading")//重新调用
|
},
|
error: function (err) {
|
|
|
}
|
});
|
layer.close(index) //关闭弹窗
|
}, function (index) {
|
//取消
|
layer.alert('取消') //提示取消
|
layer.close(index) //关闭弹窗
|
});
|
}
|
|
}
|
|
//读取方案
|
function set_ReadScheme() {
|
var HIsClose_Manual = false; //声明变量,储存布尔值false
|
var Filter = document.getElementsByClassName(HClassTag); //获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
|
|
var HFilterIdList = "";//过滤条件
|
var HFilterIdLists = "";//拼接多个过滤条件
|
var HValue = ""; //过滤值
|
var HElement_type = ""; //过滤标签类型
|
for (var i = 0; i < Filter.length; i++) {
|
HFilterIdList = Filter[i].id; //过滤条件ID
|
HFilterIdLists += Filter[i].id + ","; //过滤条件ID(拼接)
|
HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
|
HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
|
}
|
//去除末尾逗号
|
HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
|
HValue = HValue.substring(0, HValue.length - 1);
|
HElement_type = HElement_type.substring(0, HElement_type.length - 1);
|
|
layer.open({ //打开新的层
|
type: 2 //调用新页面
|
, area: ['80%', '80%'] //设置页面大小
|
, title: '过滤方案列表' //设置层标题
|
, shift: 0//弹出动画
|
// 置了一个名为content的属性 表是url参数,这些查询参数通过JavaScript变量(如HModuleName、HFilterIdLists、HValue、HElement_type)动态构建,用于向目标页面传递信息
|
, content: '../../系统管理/过滤方案设置/Xt_FastICSchemeList.html?HType=Select&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type + '&HModuleName=' + HModuleName
|
, cancel: function () {
|
// 右上角关闭事件的逻辑
|
HIsClose_Manual = true; //用户点击对话框的关闭按钮
|
}
|
, end: function () {
|
if (HIsClose_Manual != true) {//检查HIsClose_Manual变量的值,如果不是true(即对话框不是通过点击关闭按钮关闭的)
|
get_FastQuery() //执行查询方法
|
form.render("select"); //重新渲染页面
|
}
|
}
|
})
|
}
|
//#endregion
|
//以上是layui模块
|
});
|
</script>
|
</body>
|
</html>
|