wtt
2024-10-06 cb2fc709d4e2aec6bbea3e6f4e8ccc24f3d27756
WebTM/views/²Ö´æ¹ÜÀí/ίÍâÓÃÁϵ¥/WW_PPBomBillList.html
@@ -15,6 +15,7 @@
    <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">
@@ -32,19 +33,32 @@
                                <div class="layui-inline">
                                    <label class="layui-form-label">单据号</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" id="HBillNo" style="width:190px;">
                                        <input type="text" class="layui-input ForFilteringSchemes" id="HBillNo" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">日期</label>
                                    <label class="layui-form-label">日期间隔</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input" id="HBeginDate" style="width:190px;">
                                        <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" id="HEndDate" style="width:190px;">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HEndDates" style="width:190px;">
                                    </div>
                                </div>
@@ -52,35 +66,125 @@
                                    <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" id="HDepartName" style="width:190px;">
                                            <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" id="HMaterNumber" style="width:190px;">
                                            <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" id="HMaterName" style="width:190px;">
                                            <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" id="HStocID" style="width:190px;">
                                            <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" id="HMakerMan" style="width:190px;">
                                            <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>
@@ -92,11 +196,14 @@
                                <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-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>
@@ -110,27 +217,42 @@
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
            //使用layui.use åŠ è½½æ¨¡å—
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable'], 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
                , util = layui.util
                , 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 = "";
            var option = [];
            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_InitGrid();
            //加载数据到网格
            get_Display(sWhere);
            set_ClearBill();
            //#endregion
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
@@ -161,145 +283,282 @@
                    //刷新
                    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();
                set_ClearQuery();   //执行重置方法
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery(table, option);
                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_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 }
                    , { field: '日期', title: '日期', width: 125, templet: "<div>{{d.日期 ==null ?'':layui.util.toDateString(d.日期, 'yyyy-MM-dd')}}</div>" }
                    , { field: '单据号', title: '单据号', width: 200, sort: true }
                    , { field: 'HBillType', title: '单据类型', width: 200, hide: true }
            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);      //选择需要查询结束时间
                }
                    , { field: 'HDeptID', title: 'HDeptID', width: 200, hide: true }
                    , { field: '部门名称', title: '部门名称', width: 110 }
                    , { field: 'HUnitID', title: 'HUnitID', width: 200, hide: true }
                    , { field: '单位', title: '单位', width: 200 }
                    , { field: '数量', title: '数量', width: 200}
                    , { field: '类型', title: '类型', width: 200 }
                    , { field: 'HMaterID', title: 'HMaterID', width: 200, hide: true }
                    , { field: '物料代码', title: '物料代码', width: 110 }
                    , { field: '物料名称', title: '物料名称', width: 110 }
                    , { field: '发料日期', title: '发料日期', width: 125, templet: "<div>{{d.发料日期 ==null ?'':layui.util.toDateString(d.发料日期, 'yyyy-MM-dd')}}</div>" }
                    , { field: 'HWHID', title: 'HWHID', width: 200, hide: true }
                    , { field: '仓库代码', title: '仓库代码', width: 200 }
                    , { field: '仓库', title: '仓库', width: 200 }
                    , { field: 'HSPID', title: 'HSPID', width: 200, hide: true }
                    , { field: '仓位代码', title: '仓位代码', width: 200 }
                    , { field: '仓位', title: '仓位', width: 200 }
                    , { field: '损耗率', title: '损耗率', width: 200 }
                    , { field: '表头备注', title: '表头备注', width: 200 }
                //根据日期间隔设置开始时间与结束时间
                $("#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();//执行隐藏方法
                    , { field: '制单人', title: '制单人', width: 200 }
                    , { field: '制单日期', title: '制单日期', width: 200, templet: "<div>{{d.制单日期 ==null ?'':layui.util.toDateString(d.制单日期, 'yyyy-MM-dd HH:mm:ss')}}</div>" }
                    , { field: '审核人', title: '审核人', width: 200 }
                    , { field: '审核日期', title: '审核日期', width: 200, templet: "<div>{{d.审核日期 ==null ? '':layui.util.toDateString(d.审核日期, 'yyyy-MM-dd HH:mm:ss')}}</div>" }
                    , { field: '修改人', title: '修改人', width: 200 }
                    , { field: '修改日期', title: '修改日期', width: 200, templet: "<div>{{d.修改日期 ==null ?'':layui.util.toDateString(d.修改日期, 'yyyy-MM-dd HH:mm:ss')}}</div>" }
                    , { field: '关闭人', title: '关闭人', width: 200 }
                    , { field: '关闭日期', title: '关闭日期', width: 200, templet: "<div>{{d.关闭日期 ==null ?'':layui.util.toDateString(d.关闭日期, 'yyyy-MM-dd HH:mm:ss')}}</div>" }
                    , { field: '作废人', title: '作废人', width: 200 }
                    , { field: '作废日期', title: '作废日期', width: 200, templet: "<div>{{d.作废日期 ==null ?'':layui.util.toDateString(d.作废日期, 'yyyy-MM-dd HH:mm:ss')}}</div>" }
                    , { field: '行关闭人', title: '行关闭人', width: 200 }
                    , { field: '关闭类型', title: '关闭类型', width: 200 }
                    , { field: '表体备注', title: '表体备注', width: 200 }
                    , { field: '源单主内码', title: '源单主内码', width: 200, hide: true }
                    , { field: '源单子内码', title: '源单子内码', width: 200, hide: true }
                    , { field: '源单单号', title: '源单单号', width: 200 }
                    , { field: '源单类型', title: '源单类型', width: 200 }
                    , { field: '关联数量', title: '关联数量', width: 200 }
                ];
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , cellMinWidth: 120
                    , totalRow: true
                    , limit: 10
                    , height: 'full-50'
                    , cols: [columns]
                    , limits: [50, 500, 1000, 5000]
                    , done: function (res, curr, count) {
                //任意字段过滤下拉框初始化
                ColFilter();
                    }
                };
                ////设置列宽
                //var colWidth = getColumnsWidth();
                //if (colWidth == "" || colWidth == []) {
                //}
                //else {
                //    $.each(columns, function (x, m) {
                //        m["width"] = colWidth[x];
                //    });
                //}
                //查询当前登录用户有没有在当前模块设置默认过滤方案
                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) {
                var wait = layer.load();//遮罩
                var HBeginDate = $("#HBeginDate").val();//开始日期
                var HEndDate = $("#HEndDate").val();//结束日期
                if (HBeginDate) {
                    sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + HBeginDate + "'";
                }
                if (HEndDate) {
                    sWhere += " and CONVERT(varchar(100),发料日期, 23) <= '" + HEndDate + "'";
                }
                $.ajax({
                    url: GetWEBURL() + '/WW_PPBomBillController/Get_WW_PPBomBillList',
                    type: "GET",
                    data: { "sWhere": sWhere},
                    success: function (data1) {
                        if (data1.count == 1) {
                            DataList = data1.data;
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
            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);
                            layer.alert(data1.Message, { icon: 5 });
                            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 });
                        layer.close(wait);          //调用关闭
                        layer.alert("接口请求失败!", { icon: 5 });  //弹窗提示失败
                    }
                });
                });
            }
            //新增
            function set_AddNew() {
                layer.open({
                    type: 2,
                    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',
                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);
                        get_FastQuery(table, option); // è°ƒç”¨æŸä¸ªå‡½æ•°æ¥åˆ·æ–°é¡µé¢æˆ–数据
                    },
                    success: function (layero, index) {
@@ -308,50 +567,80 @@
            }
            //编辑单据
            function set_ShowBill() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var linterid = data[0].hmainid.toString();
                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({
                        type: 2
                        , area: ['100%', '100%']
                        , title: '编辑器具采购入库单'
                        , closeBtn: 1
                        , shade: 0.6 //遮罩透明度
                        , maxmin: true //允许全屏最小化
                    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'
                        , resize: false,
                        , content: '../模治具仓库管理/WW_PPBomBillEdit.html?OperationType=3&linterid=' + linterid + '&HSouceBillType=0&closeType=1'  // è®¾ç½® iframe å±‚的内容地址,包含查询参数
                        , resize: false, //禁止用户调整层的大小
                        end: function () {
                            get_FastQuery(table, option);
                            get_FastQuery(table, option);// ç”¨äºŽåˆ·æ–°é¡µé¢æˆ–数据
                        }
                        , cancel: function () {
                            //$(".layui-btn").removeClass("layui-btn-disabled");
                            //$(".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')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].hmainid.toString();
                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) {
                        var wait = layer.load();
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Sc_MouldProdInBill/set_DeleteBill", //方法所在页面和方法名
                            data: { "HInterID": InterID, "user": sessionStorage["HUserName"] },
                    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) {
                                if (result.count == 1) {
                             //   åœ¨å›žè°ƒå‡½æ•°å†…部,首先检查服务器返回的数据中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);
                                        var index = layer.getFrameIndex(window.name); //首先尝试通过window.name获取当前iframe的索引 ç„¶åŽèµ‹å€¼ç»™å‚æ•°index
                                        //关闭当前frame
                                        layer.close(index);
                                        //修改为功后刷新界面
@@ -359,77 +648,80 @@
                                    });
                                } else {
                                    layer.alert(result.code + result.Message, { icon: 5 });
                                    layer.alert(result.code + result.Message, { icon: 5 }); //提示弹窗5 æç¤ºå†…容data1.code + data1.Message  é”™è¯¯æç¤ºè­¦å‘Š
                                }
                                layer.close(wait);
                                layer.close(wait);
                            }, error: function () {
                                layer.close(wait);
                                layer.alert("接口请求失败!", { icon: 5 });
                              //  å¦‚æžœAJAX请求失败
                                layer.close(wait); //则关闭加载
                                layer.alert("接口请求失败!", { icon: 5 });//提示,并显示一条错误消息
                            }
                        });
                    })
                }
                else {
                    layer.msg('请选择一行数据删除!');
                    layer.msg('请选择一行数据删除!');                        // å¦‚果没有选择一行数据或选择了多行数据,则弹出提示信息
                }
            }
            //预览
            function get_ViewReport() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    layer.open({
                        type: 2
                        , area: ['50%', '50%']
                        , title: '打印模版选择'
                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
                        , resize: false   //禁止用户调整层的大小
                    })
                }
                else {
                    layer.msg('请选择一行数据打印!');
                    layer.msg('请选择一行数据打印!');   //提示请选择一行数据
                }
            }
            //打印
            function get_PrintReport() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    layer.open({
                        type: 2
                        , area: ['50%', '50%']
                        , title: '打印模版选择'
                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
                        , resize: false     //禁止用户调整层的大小
                    })
                }
                else {
                    layer.msg('请选择一行数据打印!');
                    layer.msg('请选择一行数据打印!'); //提示请选择一行数据
                }
            }
            //审核
            function get_Audit() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].hmainid.toString();
                    $.ajax({
                        type: "GET",
                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 },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    var index = layer.getFrameIndex(window.name);
                        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);
                                    //修改为功后刷新界面
@@ -437,110 +729,598 @@
                                });
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.alert(result.code + result.Message, { icon: 5 });// æç¤ºä¸€ä¸ªè­¦å‘Šæ¡†   æ˜¾ç¤ºresult.code和result.Message的拼接内容,并设置图标为错误
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                        }, error: function () {// å½“请求失败时,执行这个函数。
                            layer.alert("接口请求失败!", { icon: 5 });//提示弹出警告框 ï¼Œæç¤ºâ€œæŽ¥å£è¯·æ±‚失败!
                        }
                    });
                }
                else {
                    layer.msg('请选择一行数据!');
                     // å¦‚果被选中的行数据长度不等于1
                    layer.msg('请选择一行数据!');  //提示请选择一行数据
                }
            }
            //反审核
            function get_FAudit() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].hmainid.toString();
                    $.ajax({
                        type: "GET",
                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 },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    var index = layer.getFrameIndex(window.name);
                        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 {
                                layer.alert(result.code + result.Message, { icon: 5 });
                            } else {        // å¦‚果审核操作没有成功执行(`result.count`不等于1)。
                                layer.alert(result.code + result.Message, { icon: 5 });// ä½¿ç”¨layer库显示一个警告框,显示`result.code`和`result.Message`的拼接内容,并设置图标为错误图标  æç¤ºä¸€ä¸ªé”™è¯¯å¼¹å‡ºæ¡†
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                        }, error: function () {             //当请求失败时,执行这个函数。
                            layer.alert("接口请求失败!", { icon: 5 });// ä½¿ç”¨layer库显示一个警告框,提示“接口请求失败!”,并设置图标为错误图标
                        }
                    });
                }
                else {
                    layer.msg('请选择一行数据!');
                    layer.msg('请选择一行数据!');  // å½“选择的数据不为一行时,提示用户“请选择一行数据!”。
                }
            }
            //快速过滤
            function get_FastQuery(table, option) {
                var HBeginDate = $("#HBeginDate").val();//开始日期
                var HEndDate = $("#HEndDate").val();//结束日期
                var HBillNo = $("#HBillNo").val(); //单据号
                var HDepartName = $("#HDepartName").val();
                var HMaterNumber = $("#HMaterNumber").val();
                var HMaterName = $("#HMaterName").val();
                var HStockID = $("#HStocID").val();
                var HMakerMan = $("#HMakerMan").val();
                if (HBeginDate) {
                    sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + HBeginDate + "'";
            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 (HEndDate) {
                    sWhere += " and CONVERT(varchar(100),发料日期, 23) <= '" + HEndDate + "'";
                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 + "%'";
                    sWhere += " and å•据号 like '%" + HBillNo + "%'";      //单据号搜索 å¦‚æžœHBillNo有值,将向sWhere字符串追加一个条件,用于搜索数据库中“单据号”字段包含HBillNo变量值的记录
                }
                if (HDepartName) {
                    sWhere += " and éƒ¨é—¨åç§° like '%" + HDepartName + "%'";
                    sWhere += " and éƒ¨é—¨åç§° like '%" + HDepartName + "%'"; //如果HDepartName有值将向sWhere字符串追加一个条件,用于搜索数据库中“部门名称”字段包含HDepartName变量值的记录
                }
                if (HMaterNumber) {
                    sWhere += " and ç‰©æ–™ä»£ç  like '%" + HMaterNumber + "%'";
                    sWhere += " and ç‰©æ–™ä»£ç  like '%" + HMaterNumber + "%'";   // å¦‚æžœHMaterNumber有值,向sWhere字符串追加一个条件,用于搜索数据库中“物料代码”字段包含HMaterNumber变量值的记录
                }
                if (HMaterName) {
                    sWhere += " and ç‰©æ–™åç§° like '%" + HMaterName + "%'";
                    sWhere += " and ç‰©æ–™åç§° like '%" + HMaterName + "%'";   //如果HMaterName有值,这行代码将向sWhere字符串追加一个条件,用于搜索数据库中“物料名称”字段包含HMaterName变量值的记录
                }
                if (HStockID) {
                    sWhere += " and ä»“库 like '%" + HStocOut + "%'";
                    sWhere += " and ä»“库 like '%" + HStocOut + "%'";   //如果HStockID有值,是向sWhere字符串追加一个条件,用于搜索数据库中“仓库”字段包含某个值的记录。
                }
                if (HMakerMan) {
                    sWhere += " and åˆ¶å•人 like '%" + HMakerMan + "%'";
                    sWhere += " and åˆ¶å•人 like '%" + HMakerMan + "%'";  //如果HMakerMan有值,将向sWhere字符串追加一个条件,用于搜索数据库中“制单人”字段包含HMakerMan变量值的记录
                }
                var index = layer.load(0);
                get_Display(sWhere);
                var index = layer.load(0);//用了layer.load方法,通常用于显示一个加载层0作为参数可能指定了加载提示的样式或类型
                get_Display(sWhere);  //调用加载网格
                //调用接口后清空sWhere缓存
                sWhere = " where 1 = 1 ";
                sWhere = "";
            }
            //重置过滤条件
            function set_ClearQuery() {
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HBillNo").val("");
                $("#HDepartName").val("");
                $("#HMaterNumber").val("");
                $("#HMaterName").val("");
                $("#HStocID").val("");
                $("#HMakerMan").val("");
                sWhere = " where 1 = 1 ";
                get_Display(sWhere);
                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();
                $("#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>