wangyi
2025-12-11 96d3537f567b1f7382a3903d9463c3d31b842b9f
新增阶梯工价系数编辑和列表
4个文件已修改
2个文件已添加
2863 ■■■■■ 已修改文件
WebTM/WebTM.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj.user 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/layuiadmin/Scripts/webConfig.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/基础资料/基础资料/Gy_CarTypeList.html 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/工资管理/阶梯工价系数/Gy_SteppedPriceCoefficientBillEdit.html 1170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/工资管理/阶梯工价系数/Gy_SteppedPriceCoefficientBillList.html 1637 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -617,6 +617,8 @@
    <Content Include="views\工资管理\工资运算\Pay_SalaryCalculate_New.html" />
    <Content Include="views\工资管理\技能考核\HR_EmployeeSkillExamBill.html" />
    <Content Include="views\工资管理\技能考核\HR_EmployeeSkillExamBillList.html" />
    <Content Include="views\工资管理\阶梯工价系数\Gy_SteppedPriceCoefficientBillList.html" />
    <Content Include="views\工资管理\阶梯工价系数\Gy_SteppedPriceCoefficientBillEdit.html" />
    <Content Include="views\应收管理\报表分析\Xs_CusShouGongChaoBaoSumReport.html" />
    <Content Include="views\应收管理\报表分析\Xs_CusShouGongChaoBaoReport.html" />
    <Content Include="views\应收管理\报表分析\Kf_SellOutEntryReport_YP.html" />
WebTM/WebTM.csproj.user
@@ -2,9 +2,9 @@
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <NameOfLastUsedPublishProfile>D:\智云迈思\MES\MES-WEB-LayUI\WebTM\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\智云迈思\MES-WEB-LayUI\WebTM\Properties\PublishProfiles\LAYUI.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\gz\MES-WEB-TM\MES-WEB-LayUI\WebTM\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ProjectFiles</ProjectView>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
    <UseIISExpress>true</UseIISExpress>
    <Use64BitIISExpress />
    <IISExpressSSLPort />
WebTM/layuiadmin/Scripts/webConfig.js
@@ -8,7 +8,7 @@
    // var WEBURL = "http://localhost:8082/API/";    //杜贺本地配置
    //var WEBURL = "http://localhost:8082/API/";    //张瑞广本地配置
    var WEBURL = "http://localhost:8080/API/";    //王仪本地配置
    var WEBURL = "http://localhost:81/API/"    //翁涛涛本地配置
    //var WEBURL = "http://localhost:81/API/"    //翁涛涛本地配置
    //var WEBURL = "http://localhost:8082/LuBaoAPI/";    //杨乐本地配置
    //var WEBURL = "http://47.96.97.237/API/";          //智云服务器
    /*var WEBURL = "http://localhost:8082/LuBaoAPI/";*/  //余思杰本地配置
WebTM/views/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_CarTypeList.html
@@ -41,6 +41,14 @@
                                        <input type="text" class="layui-input" name="HName" id="HName">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">组织名称</label>
                                    <div class="layui-input-block" style="width: 185px;">
                                        <select name="HUSEORGID" id="HUSEORGID" lay-verify="HUSEORGID">
                                            <!-- åŠ¨æ€æ¸²æŸ“ç»„ç»‡ -->
                                        </select>
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
@@ -114,7 +122,7 @@
                , form = layui.form
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , laydate = layui.laydate;
            var sWhere = "";
            var option = [];
            var HModName = "Gy_CarTypeList";
@@ -233,11 +241,34 @@
            function set_ClearBill() {
                //初始化表格
                set_InitGrid();
                //初始化组织
                Organ();
                //查询
                get_FastQuery();
            }
            //#endregion//#region èŽ·å–ç»„ç»‡
            function Organ() {
                //获取登录页组织列
                $.ajax({
                    type: "get",
                    async: false,
                    url: GetWEBURL() + "/Web/GetOrganizations",
                    success: function (result) {
                        var Organization = "";
                        if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data;
                            for (var i = 0; i < data.length; i++) {
                                Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                            }
                            $("#HUSEORGID").append(Organization);
                            $("#HUSEORGID").val(sessionStorage["OrganizationID"])
                            form.render('select');
                        }
                        layer.closeAll("loading");
                    }
                })
            }
            //#endregion
            //#region åˆå§‹åŒ–表格
            function set_InitGrid() {
                option = {
@@ -258,7 +289,11 @@
                $.ajax({
                    url: GetWEBURL() + '/Gy_CarType/list',
                    type: "GET",
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    data: {
                        "sWhere": sWhere,
                        "user": sessionStorage["HUserName"],
                        "Organization": $("#HUSEORGID").val() // æ–°å¢žç»„织参数
                    },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
@@ -333,6 +368,7 @@
            function get_FastQuery() {
                var HNumber = $("#HNumber").val();
                var HName = $("#HName").val();
                var HUSEORGID = $("#HUSEORGID").val();
                var ColName = $("#ColName").val();//复选框
                var Comparator = $("#Comparator").val()
                var ColContent = $("#ColContent").val();
@@ -364,6 +400,10 @@
                if (HName) {
                    sWhere += " and è½¦åž‹åç§° like '%" + HName + "%'";
                }
                if (HUSEORGID && HUSEORGID != "0") {
                    sWhere += " and HUSEORGID = " + HUSEORGID;
                }
                sWhere += addSWhereByOpenType();
                get_Display(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
@@ -374,6 +414,7 @@
            function set_ClearQuery() {
                $("#HNumber").val("");
                $("#HName").val("");
                $("#HUSEORGID").val(sessionStorage["OrganizationID"]);
                $("#ColContent").val("");
                $("#ColName").val("0");
                $("#Comparator").val("0");
@@ -382,6 +423,7 @@
            }
            //#endregion
            //#region æ–°å¢ž
            function set_AddNew() {
                layer.open({
WebTM/views/¹¤×ʹÜÀí/½×Ìݹ¤¼ÛϵÊý/Gy_SteppedPriceCoefficientBillEdit.html
New file
@@ -0,0 +1,1170 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>阶梯工价系数单</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
        <div class="layui-card" style="padding: 2px;background-color: #efefef;">
            <div class="layui-card-body" style="padding: 1px;">
                <form class="layui-form" action="" lay-filter="formData" style="background-color:white;">
                    <div style="padding: 2px;">
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnEdit" id="btnEdit">退出</button>
                    </div>
                    <div class="layui-tab" lay-filter="tab-Gy_SteppedPriceCoefficientBill">
                        <h1 style="text-align: center; padding: 10px 0;"><b>阶梯工价系数单</b></h1>
                        <ul class="layui-tab-title" lay-filter="tab-all">
                            <li lay-id="1" style="padding:1px;" class="layui-this">基本信息</li>
                            <li lay-id="2" style="padding:1px;">其他信息</li>
                        </ul>
                        <div class="layui-tab-content">
                            <!--基本信息-->
                            <div class="layui-tab-item layui-show">
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-row">
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;">单据号<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 180px;">
                                                <input type="text" class="layui-input" name="HBillNo" lay-verify="HBillNo" id="HBillNo" style="background-color:#efefef4d;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" lay-verify="HInterID">
                                            </div>
                                        </div>
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;">日期<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width:180px;">
                                                <input type="date" class="layui-input" lay-verify="HDate" name="HDate" id="HDate" style="padding-left: 80px;">
                                            </div>
                                        </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">工序<label style="color:red"> * </label></label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" lay-verify="HProcID" name="HProcID" id="HProcID" style="background-color:#efefef4d;width: 60%;display: inline-block;" placeholder="点击搜索选择工序" readonly>
                                                    <input type="hidden" name="HProcName" id="HProcName">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearchHProc" id="btnSearchHProc" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                           </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">负责人<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px; width: 270px;">
                                                <input type="text" class="layui-input" lay-verify="HEmpName" name="HEmpName" id="HEmpName" style="background-color: #efefef4d; width: 180px; display: inline-block;" readonly>
                                                <input type="hidden" name="HEmpID" id="HEmpID" lay-verify="HEmpID" value="0">
                                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearchHEmp" id="btnSearchHEmp" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">部门<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px; width: 270px;">
                                                <input type="text" class="layui-input" lay-verify="HDeptName" name="HDeptName" id="HDeptName" style="background-color: #efefef4d; width: 180px; display: inline-block;" readonly>
                                                <input type="hidden" name="HDeptID" id="HDeptID" lay-verify="HDeptID" value="0">
                                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearchHDept" id="btnSearchHDept" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">组织<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 110px; width: 501px;">
                                                <select name="HStockOrgID" id="HStockOrgID" lay-verify="HStockOrgID">
                                                </select>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline" style="width:1500px;">
                                            <label class="layui-form-label" style="width: 85px;">备注</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 800px;">
                                                <input type="text" class="layui-input" lay-verify="HRemark" name="HRemark" id="HRemark" style="width:1185px;">
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!--其他信息-->
                            <div class="layui-tab-item">
                                <div class="layui-form-item">
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">制单人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMaker" id="HMaker" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">修改人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HUpDater" id="HUpDater" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">审核人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HChecker" id="HChecker" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">制单日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMakeDate" id="HMakeDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">修改日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HUpDateDate" id="HUpDateDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">审核日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCheckDate" id="HCheckDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">关闭人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCloseMan" id="HCloseMan" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">作废人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HDeleteMan" id="HDeleteMan" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">退回人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBacker" id="HBacker" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">关闭日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCloseDate" id="HCloseDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">作废日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HDeleteDate" id="HDeleteDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">退回日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBackDate" id="HBackDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">退回原因</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBackRemark" id="HBackRemark" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
                </form>
            </div>
        </div>
    </div>
    <!--子表:删除-->
    <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <script>
        layui.config({
            base: '../../../layuiadmin/'
        }).extend({
            index: 'lib/index'
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element;
            var HModName = "Gy_SteppedPriceCoefficientBill";
            var HStockOrgID = sessionStorage["OrganizationID"];
            var HModuleType = "GYST";
            var HPageTitle = get_PageTitle(HModuleType) == "" ? $("h1").html() : get_PageTitle(HModuleType);
            $("h1").html('<b>' + HPageTitle + '</b>');
            var option = {};
            var params = getUrlVars();
            var OperationType = params["OperationType"];
            var linterid = params["linterid"];
            var originalProcessID = ""; // ä¿å­˜åŽŸå§‹å·¥åºID,用于编辑时比较
            if (sessionStorage.login != "login") {
                layer.confirm("登录失效,请重新登录!", {
                    icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                }, function () { window.location.href = "../../user/login.html"; });
            }
            if (!OperationType || OperationType == "1") {
                OperationType = 1;
                createBillNo();
                $("#HMaker").val(sessionStorage["HUserName"]);
                $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                get_InitGrid();
            }
            else if (OperationType == "3") {
                if (!linterid || linterid === "0") {
                    layer.msg("无效的单据ID", { icon: 5 });
                    return;
                }
                get_InitGrid();
                RoadBillMain(linterid);
            } else {
                layer.msg("未知的操作类型: " + OperationType, { icon: 5 });
            }
            DisPlay_HideColumn();
            form.on('submit(btnSearchHProc)', function () {
                get_checkSearchHProc();
            });
            form.on('submit(btnSearchHEmp)', function () {
                get_checkSearchHEmp();
            });
            form.on('submit(btnSearchHDept)', function () {
                get_checkSearchHDept();
            });
            form.on('submit(btnSearchHStockOrg)', function () {
                get_checkSearchHStockOrg();
            });
            form.on('submit(btnSave)', function (data) {
                // æ–°å¢žæ—¶ä¹Ÿè¦è¿›è¡Œé˜¶æ¢¯éªŒè¯
                if (OperationType == 1) { // æ–°å¢žæ¨¡å¼
                    // åœ¨ä¿å­˜å‰å¼ºåˆ¶æ£€æŸ¥é˜¶æ¢¯è¿žç»­æ€§
                    if (!checkStepNonOverlap(true)) {
                        return false; // éªŒè¯ä¸é€šè¿‡ï¼Œé˜»æ­¢ä¿å­˜
                    }
                }
                if (AllowLoadData(data)) {
                    set_AddNew(data);
                }
            });
            form.on('submit(btnEdit)', function (data) {
                if (params[1] != null) {
                    Pub_Close(1);
                } else if (params[1] == null) {
                    Pub_Close(2);
                }
            });
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                var NewRow = {
                    "RowID": (table.cache["mainTable"].length + 1) * 10
                    , "HSeq": table.cache["mainTable"].length + 1
                    , "HMinQty": "0"
                    , "HMaxQty": "0"
                    , "HPriceCoefficient": "1.0"
                    , "HMaxPrice": "0"
                    , "HRemark": ""
                    , "HStockOrgID": $("#HStockOrgID").val()
                };
                switch (obj.event) {
                    case 'btn-AddLine':
                        table.cache["mainTable"].push(NewRow);
                        option.data = table.cache["mainTable"];
                        table.render(option);
                        updateSeq();
                        setTimeout(function () {
                            checkStepNonOverlap();
                        }, 100);
                        break;
                    case 'btn-CopyLine':
                        if (data.length <= 0) {
                            layer.msg("请选择需要复制的一行!");
                        }
                        else if (data.length > 1) {
                            layer.msg("只能选择复制一行!");
                        }
                        else {
                            var copyrow = JSON.parse(JSON.stringify(data[0]));
                            copyrow.RowID = (table.cache["mainTable"].length + 1) * 10;
                            copyrow.HSeq = table.cache["mainTable"].length + 1;
                            table.cache["mainTable"].push(copyrow);
                            option.data = table.cache["mainTable"];
                            table.render(option);
                            updateSeq();
                            setTimeout(function () {
                                checkStepNonOverlap();
                            }, 100);
                        }
                        break;
                    case 'set_HideColumn':
                        get_HideColumn();
                        break;
                }
            });
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);
            });
            table.on('edit(mainTable)', function (obj) {
                var oldText = $(this).prev().text();
                var value = obj.value
                    , data = obj.data
                    , field = obj.field;
                var ref = /^\d+(\.\d+)?$/;
                var refInt = /^\d+$/;
                switch (field) {
                    case "HSeq":
                        if (!refInt.test(value) || value <= 0) {
                            obj.update({ HSeq: oldText });
                            layer.msg("序号必须为正整数!");
                        } else {
                            updateSeq();
                        }
                        break;
                    case "HMinQty":
                        if (!refInt.test(value) || value < 0) {
                            obj.update({ HMinQty: oldText });
                            layer.msg("最小数量必须为非负整数!");
                        } else {
                            checkStepNonOverlap();
                        }
                        break;
                    case "HMaxQty":
                        if (!refInt.test(value) || value < 0) {
                            obj.update({ HMaxQty: oldText });
                            layer.msg("最大数量必须为非负整数!");
                        } else {
                            checkStepNonOverlap();
                        }
                        break;
                    case "HPriceCoefficient":
                        if (!ref.test(value) || value <= 0) {
                            obj.update({ HPriceCoefficient: oldText });
                            layer.msg("工价系数必须为正数!");
                        }
                        break;
                    case "HMaxPrice":
                        if (!ref.test(value) || value < 0) {
                            obj.update({ HMaxPrice: oldText });
                            layer.msg("最大工价必须为非负数!");
                        }
                        break;
                }
            });
            function getUrlVars() {
                var vars = [], hash;
                var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                for (var i = 0; i < hashes.length; i++) {
                    hash = hashes[i].split('=');
                    vars.push(hash[0]);
                    vars[hash[0]] = hash[1];
                }
                return vars;
            }
            function createBillNo() {
                $.ajax({
                    url: GetWEBURL() + "/Web/GetMAXNum",
                    type: "GET",
                    data: { "HBillType": '3341' },
                    success: function (d) {
                        if (d && d.data && d.data.length > 0) {
                            var hInterID = d.data[0].HInterID || "0";
                            var hBillNo = d.data[0].HBillNo || "";
                            if (!hInterID || hInterID === "0" || hInterID === "") {
                                hInterID = new Date().getTime().toString();
                                hBillNo = "JTCF" + Format(new Date(), "yyyyMMddHHmmss");
                            }
                            $("#HInterID").val(hInterID);
                            $("#HBillNo").val(hBillNo);
                            $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                            $("#HMaker").val(sessionStorage["HUserName"] || "admin");
                            $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd HH:mm:ss"));
                        } else {
                            var timestamp = new Date().getTime();
                            $("#HInterID").val(timestamp);
                            $("#HBillNo").val("JTCF" + Format(new Date(), "yyyyMMddHHmmss"));
                            $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                        }
                    },
                    error: function () {
                        var timestamp = new Date().getTime();
                        $("#HInterID").val(timestamp);
                        $("#HBillNo").val("JTCF" + Format(new Date(), "yyyyMMddHHmmss"));
                        $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                    }
                });
            }
            function Organ() {
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Web/GetOrganizations",
                    async: false,
                    success: function (result) {
                        var Organization = "";
                        if (result.count == 1) {
                            var data = result.data;
                            for (var i = 0; i < data.length; i++) {
                                Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                            }
                            $("#HStockOrgID").append(Organization);
                            $("#HStockOrgID").val(HStockOrgID)
                            form.render('select');
                        }
                        layer.closeAll("loading");
                    },
                    complete: function (XHR, TS) { XHR = null }
                })
            }
            Organ();
            function get_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , limit: 50
                    , totalRow: true
                    , cellMinWidth: 120
                    , height: 400
                    , cols: [[
                        { type: 'checkbox', totalRowText: '合计' }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HSeq', title: '阶梯序号', edit: 'text', sort: true }
                        , { field: 'HMinQty', title: '最小数量', edit: 'text', totalRow: true }
                        , { field: 'HMaxQty', title: '最大数量', edit: 'text', totalRow: true }
                        , { field: 'HPriceCoefficient', title: '工价系数', edit: 'text' }
                        , { field: 'HMaxPrice', title: '最大工价', edit: 'text', totalRow: true }
                        , { field: 'HRemark', title: '备注', edit: 'text' }
                        , { field: 'HStockOrgID', title: '组织ID', hide: true }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                    ]]
                };
                if (OperationType == 1) {
                    var rowdata = [{
                        "RowID": 10
                        , "HSeq": 1
                        , "HMinQty": "0"
                        , "HMaxQty": "0"
                        , "HPriceCoefficient": "1.0"
                        , "HMaxPrice": "0"
                        , "HRemark": ""
                        , "HStockOrgID": "0"
                    }];
                    option.data = rowdata;
                }
                table.render(option);
            }
            function RoadBillMain(linterid) {
                var index = layer.load(1, { shade: [0.1, '#fff'] });
                $.ajax({
                    url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/editInit",
                    type: "GET",
                    data: {
                        "HInterID": linterid,
                        "user": sessionStorage["HUserName"] || "admin"
                    },
                    timeout: 10000,
                    success: function (result) {
                        layer.close(index);
                        console.log("=== API返回数据 ===");
                        console.log("完整响应:", result);
                        if (result && result.code == "1" && result.data) {
                            console.log("data.Main:", result.data.Main);
                            console.log("data.Sub:", result.data.Sub);
                            // æ£€æŸ¥ä¸»è¡¨æ•°æ®
                            if (result.data.Main && result.data.Main.length > 0) {
                                var mainData = result.data.Main[0];
                                console.log("主表字段列表:");
                                for (var key in mainData) {
                                    console.log(key + ":", mainData[key]);
                                }
                                // ç‰¹åˆ«æ£€æŸ¥å·¥åºç›¸å…³å­—段
                                console.log("HProcID:", mainData.HProcID);
                                console.log("HProcName:", mainData.HProcName);
                            }
                            processEditData(result.data);
                        } else {
                            var errorMsg = result ? (result.Message || result.msg || "API返回格式错误") : "API返回为空";
                            console.error("API返回错误:", errorMsg);
                            layer.msg("数据加载失败:" + errorMsg, { icon: 2 });
                        }
                    },
                    error: function (xhr, status, error) {
                        layer.close(index);
                        console.error("API请求失败:", status, error);
                        console.log("HTTP状态码:", xhr.status);
                        console.log("响应文本:", xhr.responseText);
                        if (xhr.status === 404) {
                            layer.msg("接口不存在,请检查URL", { icon: 5 });
                        } else if (xhr.status === 500) {
                            layer.msg("服务器内部错误", { icon: 5 });
                        } else {
                            layer.msg("网络错误,请检查连接", { icon: 5 });
                        }
                    }
                });
            }
            function processEditData(data) {
                if (data.Main && data.Main.length > 0) {
                    var mainData = data.Main[0];
                    var formData = {
                        "HInterID": mainData.HInterID || "0",
                        "HBillNo": mainData.HBillNo || "",
                        "HRemark": mainData.HRemark || "",
                        "HProcID": mainData.HProcID || "0",
                        "HProcName": mainData.HProcName || "",
                        "HEmpID": mainData.HEmpID || "0",
                        "HEmpName": mainData.HEmpName || "",
                        "HDeptID": mainData.HDeptID || "0",
                        "HDeptName": mainData.HDeptName || "",
                        "HStockOrgID": mainData.HStockOrgID || "0",
                        "HMaker": mainData.HMaker || "",
                        "HUpDater": mainData.HUpDater || "",
                        "HChecker": mainData.HChecker || "",
                        "HCloseMan": mainData.HCloseMan || "",
                        "HDeleteMan": mainData.HDeleteMan || "",
                        "HBacker": mainData.HBacker || "",
                        "HBackRemark": mainData.HBackRemark || ""
                    };
                    // ä¿å­˜åŽŸå§‹å·¥åºID(用于编辑时比较是否修改了工序)
                    originalProcessID = formData.HProcID;
                    try {
                        if (mainData.HDate) {
                            var hDate = new Date(mainData.HDate);
                            formData.HDate = hDate.toISOString().split('T')[0];
                        }
                        if (mainData.HMakeDate) {
                            var makeDate = new Date(mainData.HMakeDate);
                            formData.HMakeDate = formatDateTime(makeDate);
                        }
                        if (mainData.HUpDateDate) {
                            var updateDate = new Date(mainData.HUpDateDate);
                            formData.HUpDateDate = formatDateTime(updateDate);
                        }
                        if (mainData.HCheckDate) {
                            var checkDate = new Date(mainData.HCheckDate);
                            formData.HCheckDate = formatDateTime(checkDate);
                        }
                        if (mainData.HCloseDate) {
                            var closeDate = new Date(mainData.HCloseDate);
                            formData.HCloseDate = formatDateTime(closeDate);
                        }
                        if (mainData.HDeleteDate) {
                            var deleteDate = new Date(mainData.HDeleteDate);
                            formData.HDeleteDate = formatDateTime(deleteDate);
                        }
                        if (mainData.HBackDate) {
                            var backDate = new Date(mainData.HBackDate);
                            formData.HBackDate = formatDateTime(backDate);
                        }
                    } catch (e) {
                        if (mainData.HDate) formData.HDate = mainData.HDate.toString().split(' ')[0];
                        if (mainData.HMakeDate) formData.HMakeDate = mainData.HMakeDate.toString();
                        if (mainData.HUpDateDate) formData.HUpDateDate = mainData.HUpDateDate.toString();
                        if (mainData.HCheckDate) formData.HCheckDate = mainData.HCheckDate.toString();
                        if (mainData.HCloseDate) formData.HCloseDate = mainData.HCloseDate.toString();
                        if (mainData.HDeleteDate) formData.HDeleteDate = mainData.HDeleteDate.toString();
                        if (mainData.HBackDate) formData.HBackDate = mainData.HBackDate.toString();
                    }
                    layui.form.val("formData", formData);
                    if (formData.HStockOrgID && formData.HStockOrgID !== "0") {
                        $("#HStockOrgID").val(formData.HStockOrgID);
                        form.render('select');
                    }
                    if (mainData.HChecker || mainData.HBillStatus == 2) {
                        $('#btnSave').addClass("layui-btn-disabled").attr("disabled", true);
                        layer.msg("单据已审核,不能编辑", { icon: 2 });
                    } else {
                        $('#btnSave').removeClass("layui-btn-disabled").attr("disabled", false);
                    }
                } else {
                    layer.msg("未获取到主表数据", { icon: 2 });
                }
                if (data.Sub && data.Sub.length > 0) {
                    var subTableData = [];
                    for (var i = 0; i < data.Sub.length; i++) {
                        var subItem = data.Sub[i];
                        var rowItem = {
                            "RowID": subItem.RowID || (i + 1) * 10,
                            "HSeq": subItem.HSeq || (i + 1),
                            "HMinQty": subItem.HMinQty || "0",
                            "HMaxQty": subItem.HMaxQty || "0",
                            "HPriceCoefficient": subItem.HPriceCoefficient || "1.0",
                            "HMaxPrice": subItem.HMaxPrice || "0",
                            "HRemark": subItem.HRemark || "",
                            "HStockOrgID": subItem.HStockOrgID || $("#HStockOrgID").val() || "0"
                        };
                        subTableData.push(rowItem);
                    }
                    option.data = subTableData;
                    table.render(option);
                    setTimeout(function () {
                        table.reload('mainTable', {
                            data: subTableData
                        });
                    }, 100);
                    layer.msg("已加载" + subTableData.length + "行阶梯数据", { icon: 1 });
                } else {
                    option.data = [];
                    table.render(option);
                }
            }
            function formatDateTime(date) {
                if (!date) return "";
                try {
                    if (typeof date === 'string') {
                        date = new Date(date);
                    }
                    return date.getFullYear() + "-" +
                        (date.getMonth() + 1).toString().padStart(2, '0') + "-" +
                        date.getDate().toString().padStart(2, '0') + " " +
                        date.getHours().toString().padStart(2, '0') + ":" +
                        date.getMinutes().toString().padStart(2, '0') + ":" +
                        date.getSeconds().toString().padStart(2, '0');
                } catch (e) {
                    return date.toString();
                }
            }
            // ================ æ–°å¢žï¼šå·¥åºå”¯ä¸€æ€§æ£€æŸ¥å‡½æ•° ================
            function checkProcessUnique() {
                var processID = $("#HProcID").val();
                var currentBillID = $("#HInterID").val();
                var processName = $("#HProcName").val() || "该工序";
                if (processID === "0" || !processID) {
                    return true;
                }
                // ç¼–辑模式:如果工序ID没有变化,则允许
                if (OperationType == 3 && currentBillID && currentBillID !== "0") {
                    if (originalProcessID && originalProcessID === processID) {
                        return true; // å·¥åºæ²¡ä¿®æ”¹ï¼Œå…è®¸ä¿å­˜
                    }
                }
                var index = layer.load(1, { shade: [0.1, '#fff'] });
                var isUnique = true;
                $.ajax({
                    url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/CheckProcessUnique",
                    type: "POST",
                    async: false,
                    contentType: "application/json",
                    data: JSON.stringify({
                        "HProcID": processID,
                        "HStockOrgID": $("#HStockOrgID").val(),
                        "ExcludeID": currentBillID || "0",
                        "user": sessionStorage["HUserName"] || "admin"
                    }),
                    success: function (result) {
                        layer.close(index);
                        if (result && result.code == "1") {
                            if (result.data && result.data.exists) {
                                isUnique = false;
                                var existingBillNo = result.data.billNo || "";
                                if (existingBillNo) {
                                    layer.msg(processID + "已在单据[" + existingBillNo + "]中使用,一个工序只能对应一条阶梯工价系数数据!", {
                                        icon: 5,
                                        time: 5000
                                    });
                                } else {
                                    layer.msg(processID + "已存在其他单据中,一个工序只能对应一条阶梯工价系数数据!", {
                                        icon: 5,
                                        time: 5000
                                    });
                                }
                            }
                        } else {
                            layer.msg("工序唯一性检查失败,请稍后重试", { icon: 3 });
                        }
                    },
                    error: function () {
                        layer.close(index);
                        layer.msg("工序唯一性检查服务暂时不可用", { icon: 3 });
                        // ä¸ºäº†ä¸é˜»å¡žç”¨æˆ·ï¼Œè¿™é‡Œè¿”回true,但生产环境应该根据需求调整
                        isUnique = true;
                    }
                });
                return isUnique;
            }
            function set_AddNew(data) {
                if (window.isSaving) {
                    layer.msg("正在保存,请稍候...", { icon: 0 });
                    return;
                }
                window.isSaving = true;
                var originalText = $('#btnSave').text();
                $('#btnSave').text('保存中...').addClass("layui-btn-disabled").attr("disabled", true);
                var tableMain = {
                    "HInterID": $("#HInterID").val() || "0",
                    "HYear": new Date($("#HDate").val()).getFullYear(),
                    "HPeriod": new Date($("#HDate").val()).getMonth() + 1,
                    "HBillType": "GYSTPRICECOEFF",
                    "HBillSubType": "",
                    "HDate": $("#HDate").val() || Format(new Date(), "yyyy-MM-dd"),
                    "HBillNo": $("#HBillNo").val() || "",
                    "HBillStatus": 1,
                    "HRemark": $("#HRemark").val() || "",
                    "HProcID": $("#HProcID").val() || "0",
                    "HEmpID": $("#HEmpID").val() || "0",
                    "HDeptID": $("#HDeptID").val() || "0",
                    "HStockOrgID": $("#HStockOrgID").val() || "0",
                    "HMaker": sessionStorage["HUserName"] || "admin",
                    "HMakeDate": Format(new Date(), "yyyy-MM-dd HH:mm:ss")
                };
                var tableSub = [];
                var tableCache = table.cache["mainTable"];
                if (tableCache && tableCache.length > 0) {
                    for (var i = 0; i < tableCache.length; i++) {
                        var row = tableCache[i];
                        if (row && row != "") {
                            var subItem = {
                                "HSeq": row["HSeq"] || (i + 1),
                                "HMinQty": row["HMinQty"] || "0",
                                "HMaxQty": row["HMaxQty"] || "0",
                                "HPriceCoefficient": row["HPriceCoefficient"] || "1.0",
                                "HMaxPrice": row["HMaxPrice"] || "0",
                                "HRemark": row["HRemark"] || "",
                                "HStockOrgID": row["HStockOrgID"] || $("#HStockOrgID").val() || "0"
                            };
                            tableSub.push(subItem);
                        }
                    }
                }
                tableMain.SubItems = tableSub;
                var requestData = {
                    "oMain": JSON.stringify(tableMain) + ";" + (sessionStorage["HUserName"] || "admin")
                };
                var index = layer.load(2, { time: 0 });
                $.ajax({
                    type: "POST",
                    url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/ModifyByID",
                    contentType: "application/json",
                    data: JSON.stringify(requestData),
                    dataType: "json",
                    timeout: 30000,
                    success: function (result) {
                        layer.close(index);
                        window.isSaving = false;
                        $('#btnSave').text(originalText).removeClass("layui-btn-disabled").attr("disabled", false);
                        if (result.code == "1") {
                            layer.msg("保存成功!", { icon: 1, time: 2000 });
                            $('#btnSave').addClass("layui-btn-disabled").attr("disabled", true);
                            if (OperationType == 1) {
                                OperationType = 3;
                            }
                        } else {
                            layer.msg("工序未选择");
                        }
                    },
                    error: function (xhr, status, error) {
                        layer.close(index);
                        window.isSaving = false;
                        $('#btnSave').text(originalText).removeClass("layui-btn-disabled").attr("disabled", false);
                        var errorMsg = "请求失败!<br>";
                        if (status === "timeout") {
                            errorMsg += "请求超时";
                        } else {
                            errorMsg += "错误代码: " + xhr.status + "<br>错误信息: " + error;
                        }
                        layer.msg(errorMsg, { icon: 5, time: 5000 });
                    }
                });
            }
            function AllowLoadData(data) {
                var temp;
                var ref = /^\d+(\.\d+)?$/;
                var refInt = /^\d+$/;
                // è¡¨å¤´æ•°æ®æ£€éªŒ
                if ($("#HBillNo").val() == "") {
                    layer.msg("单据号不能为空!");
                    return false;
                }
                if ($("#HDate").val() == "") {
                    layer.msg("日期不能为空!");
                    return false;
                }
                if ($("#HProcID").val() == "0") {
                    layer.msg("工序未选择!");
                    return false;
                }
                if ($("#HStockOrgID").val() == "0") {
                    layer.msg("组织未选择!");
                    return false;
                }
                // æ–°å¢žï¼šæ£€æŸ¥å·¥åºæ˜¯å¦å·²å­˜åœ¨
                if (!checkProcessUnique()) {
                    return false;
                }
                // å­è¡¨æ•°æ®æ£€éªŒ
                var tableData = table.cache["mainTable"];
                if (!tableData || tableData.length == 0) {
                    layer.msg("请至少添加一条阶梯数据!");
                    return false;
                }
                var validRows = 0;
                for (var i = 0; i < tableData.length; i++) {
                    if (tableData[i] && tableData[i] != "") {
                        validRows++;
                        var rowData = tableData[i];
                        temp = rowData["HMinQty"];
                        if (temp == "" || !refInt.test(temp) || parseInt(temp) < 0) {
                            layer.msg("第" + (i + 1) + "行:最小数量必须为非负整数!");
                            return false;
                        }
                        temp = rowData["HMaxQty"];
                        if (temp == "" || !refInt.test(temp) || parseInt(temp) < 0) {
                            layer.msg("第" + (i + 1) + "行:最大数量必须为非负整数!");
                            return false;
                        }
                        if (parseInt(rowData["HMinQty"]) > parseInt(rowData["HMaxQty"])) {
                            layer.msg("第" + (i + 1) + "行:最小数量不能大于最大数量!");
                            return false;
                        }
                        temp = rowData["HPriceCoefficient"];
                        if (temp == "" || !ref.test(temp) || parseFloat(temp) <= 0) {
                            layer.msg("第" + (i + 1) + "行:工价系数必须为正数!");
                            return false;
                        }
                        temp = rowData["HMaxPrice"];
                        if (temp == "" || !ref.test(temp) || parseFloat(temp) < 0) {
                            layer.msg("第" + (i + 1) + "行:最大工价必须为非负数!");
                            return false;
                        }
                    }
                }
                if (validRows === 0) {
                    layer.msg("请至少添加一条有效的阶梯数据!");
                    return false;
                }
                if (!checkStepNonOverlap(true)) {
                    return false;
                }
                return true;
            }
            function checkStepNonOverlap(isValidation) {
                var tableData = table.cache["mainTable"];
                if (!tableData || tableData.length <= 1) return true;
                var validData = [];
                for (var i = 0; i < tableData.length; i++) {
                    if (tableData[i] && tableData[i] != "") {
                        var minQty = parseInt(tableData[i]["HMinQty"]);
                        var maxQty = parseInt(tableData[i]["HMaxQty"]);
                        if (minQty > maxQty) {
                            if (isValidation) {
                                layer.msg("第" + tableData[i]["HSeq"] + "阶:最小数量不能大于最大数量!");
                                return false;
                            } else {
                                layer.msg("第" + tableData[i]["HSeq"] + "阶:最小数量不能大于最大数量!", { icon: 2 });
                                return false;
                            }
                        }
                        validData.push(tableData[i]);
                    }
                }
                if (validData.length <= 1) return true;
                validData.sort(function (a, b) {
                    return parseInt(a.HMinQty) - parseInt(b.HMinQty);
                });
                for (var i = 1; i < validData.length; i++) {
                    var prevMin = parseInt(validData[i - 1]["HMinQty"]);
                    var prevMax = parseInt(validData[i - 1]["HMaxQty"]);
                    var currMin = parseInt(validData[i]["HMinQty"]);
                    var currMax = parseInt(validData[i]["HMaxQty"]);
                    if (currMin <= prevMax) {
                        if (isValidation) {
                            layer.msg("第" + validData[i]["HSeq"] + "阶与第" + validData[i - 1]["HSeq"] + "阶:阶梯范围重叠!");
                            return false;
                        } else {
                            layer.msg("第" + validData[i]["HSeq"] + "阶与第" + validData[i - 1]["HSeq"] + "阶:阶梯范围重叠!");
                        }
                    }
                }
                return true;
            }
            function updateSeq() {
                var tableData = table.cache["mainTable"];
                if (!tableData) return;
                var seq = 1;
                for (var i = 0; i < tableData.length; i++) {
                    if (tableData[i] && tableData[i] != "") {
                        tableData[i].HSeq = seq;
                        seq++;
                    }
                }
                option.data = tableData;
                table.render(option);
            }
            function set_GridDelete(obj) {
                if (obj.event === 'del') {
                    layer.confirm('真的删除行吗?', function (index) {
                        var oldData = table.cache["mainTable"];
                        if (oldData && obj.tr.data('index') < oldData.length) {
                            oldData.splice(obj.tr.data('index'), 1)
                            option.data = oldData;
                            table.render(option);
                            updateSeq();
                            layer.close(index);
                        }
                    });
                }
            }
            function get_HideColumn() {
                var colName = "";
                var contentUrl = "";
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                var urlStr = window.document.location.pathname;
                var urlLen = urlStr.split('/');
                for (var i = 0; i < urlLen.length - 4; i++) {
                    contentUrl += "../";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));
                contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName;
                layer.open({
                    type: 2
                    , 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"] },
                    async: false,
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];
                            var titleData = ["行号", "组织ID"];
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                if (dataCols[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] += "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] += "font-size:100%";
                                }
                                if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                    option.cols[0][i + 1]["hide"] = false;
                                }
                                switch (dataCols[2]) {
                                    case "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++) {
                                if (option.cols[0][i]["fixed"] != null) {
                                    option.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option);
                        } else {
                            table.render(option);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        });
        function get_checkSearchHProc() {
            layer.open({
                type: 2
                , skin: 'layui-layer-rim'
                , area: ['90%', '90%']
                , title: '工序列表'
                , shift: 2
                , content: ['../../基础资料/生产基础资料/Gy_Process.html?Type=2&excludeUsed=true']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {
                    var iframeWindow = window['layui-layer-iframe' + index];
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    var selectedProcessID = checkStatus.data[0].HItemID;
                    var selectedProcessName = checkStatus.data[0].工序名称;
                    // åœ¨å¼¹çª—中选择工序后,直接设置,保存时再检查
                    $("#HProcID").val(selectedProcessID);
                    $("#HProcName").val(selectedProcessName);
                    layer.close(index);
                }
                , btn2: function (index, layero) { }
                , end: function () { }
            })
        }
    </script>
</body>
</html>
WebTM/views/¹¤×ʹÜÀí/½×Ìݹ¤¼ÛϵÊý/Gy_SteppedPriceCoefficientBillList.html
New file
@@ -0,0 +1,1637 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>阶梯工价系数单列表</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <!--引用layui样式文件-->
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <!--引用layui js文件-->
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/HideButton.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
        }
    </style>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <!-- åˆ¶å•日期(创建时间)过滤 -->
                                <div class="layui-inline">
                                    <label class="layui-form-label">开始日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HMakeDate_Begin" 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="HMakeDate_End" style="width:190px;">
                                    </div>
                                </div>
                                <!-- å•据号查询 -->
                                <div class="layui-inline">
                                    <label class="layui-form-label">单据号</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HBillNo" id="HBillNo">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <!--显示当前过滤方案-->
                                <div class="layui-inline" style="margin-left:5px;">
                                    <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div>
                                </div>
                                <div class="layui-colla-content" style="padding: 6px; 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:5px">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName1" id="ColName1" lay-filter="ColName1" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator1" id="Comparator1" lay-filter="Comparator1" 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" value="" name="ColContent1" id="ColContent1">
                                        </div>
                                    </div>
                                    <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="ColName2" id="ColName2" lay-filter="ColName2" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator2" id="Comparator2" lay-filter="Comparator2" 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" value="" name="ColContent2" id="ColContent2">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                        <div id="page" style="position: relative; bottom: 0;"></div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Export" id="btn_Export"><i class="layui-icon layui-icon-export"></i>导出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Add" id="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" id="btn_Edit"><i class="layui-icon layui-icon-form"></i>编辑</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;" id="btn-print" 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_Delete" id="btn_Delete"><i class="layui-icon layui-icon-delete"></i>删除</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Refresh" id="btn_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Audit" id="btn_Audit"><i class="layui-icon layui-icon-radio"></i>审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_DeAudit" id="btn_DeAudit"><i class="layui-icon layui-icon-circle"></i>反审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Close" id="btn_Close"><i class="layui-icon layui-icon-radio"></i>关闭</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_DeClose" id="btn_DeClose"><i class="layui-icon layui-icon-circle"></i>反关闭</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Drop" id="btn_Drop"><i class="layui-icon layui-icon-radio"></i>作废</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_DeDrop" id="btn_DeDrop"><i class="layui-icon layui-icon-circle"></i>反作废</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Exit" id="btn_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_HideColumn" id="btn_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_HideButton" id="btn_HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_SaveScheme" id="btn_SaveScheme"><i class="layui-icon layui-icon-template"></i>保存方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_ReadScheme" id="btn_ReadScheme"><i class="layui-icon layui-icon-set"></i>读取方案</button>
                            </div>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).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
                , soulTable = layui.soulTable
            var HModName = "Gy_SteppedPriceCoefficientBillList";
            var HBillType = "GYSTPRICECOEFF";
            var HMaker = sessionStorage["HUserName"]
            var HStockOrgID = sessionStorage["OrganizationID"]  //组织ID
            var sWhere = "";
            var ins;                //用于导出excel
            var option = [];
            var page = 1;//分页数据
            var size = 50;
            var columns = "";
            var titleData = [];     //不需要显示的字段
            //#endregion
            //#region ã€åŠ¨æ€èŽ·å–æ¨¡å—åç§°ã€‘
            //通过单据类型,从数据库动态获取单据模块命名,引用js文件 PageTitle.js
            var HPageTitle = get_PageTitle(HBillType) == "" ? document.title : get_PageTitle(HBillType);
            //#endregion
            //#region ã€è¿‡æ»¤æ–¹æ¡ˆã€‘
            //过滤条件的classç±»
            var HClassTag = "ForFilteringSchemes";
            //模块名称(中文版) æ¯ä¸ªæ¨¡å—页面都需要修改
            window.HModuleName = "阶梯工价系数单列表";
            //是否已经选择了过滤方案(全局变量)
            window.HDefaultFilter = "";
            //选择的过滤方案内码(全局变量)
            window.HInterID_Choose = 0;
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            //#region åˆå§‹åŒ–界面
            set_ClearBill();
            function set_ClearBill() {
                // åˆå§‹åŒ–制单日期范围(最近30天)
                var endDate = new Date();
                var startDate = new Date(endDate - 1000 * 60 * 60 * 24 * 30);
                $("#HMakeDate_Begin").val(Pub_Format(startDate, "yyyy-MM-dd"));
                $("#HMakeDate_End").val(Pub_Format(endDate, "yyyy-MM-dd"));
                //初始化表格
                set_InitGrid();
                //查询当前登录用户有没有在当前模块设置默认过滤方案
                get_DefaultModule();
            }
            //#endregion
            //#region åˆå§‹åŒ–表格方法
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: false
                    , totalRow: true
                    , height: 'full-50'
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                    , done: function (res, curr, count) {
                        soulTable.render(this);
                    }
                };
                optionPage = {
                    elem: 'page', //注意,这里的 page æ˜¯ ID,不用加 # å·
                    count: 10000, //数据总数,从服务端得到
                    limit: 50,
                    limits: [50, 500, 5000, 50000],
                    layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
                    jump: function (obj, first) {
                        //首次不执行
                        if (!first) {
                            //do something
                            page = obj.curr;
                            size = obj.limit;
                            get_FastQuery();
                        }
                    }
                }
                laypage.render(optionPage);
            }
            //#endregion
            //#region ç‚¹å‡»è¡Œé€‰ä¸­é«˜äº®
            table.on('row(mainTable)', function (obj) {
                //选中行改变颜色
                var flag = !obj.tr.find(':checkbox:first').prop('checked');
                obj.tr.find(':checkbox').prop('checked', 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) {
                    if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                        l.LAY_CHECKED = flag;
                    }
                });
            })
            //#endregion
            table.on('tool(mainTable)', function (obj) {
                var data = obj.data;
                if (obj.event == '单据号') {
                    // å®‰å…¨èŽ·å–HInterID
                    var HInterID = data.HInterID ? data.HInterID.toString() : "";
                    var HBillNo = data.HBillNo || "";
                    if (!HInterID || HInterID === "0") {
                        HInterID = data.hmainid ? data.hmainid.toString() : "";
                    }
                    console.log("点击单据号:", HBillNo, "HInterID:", HInterID);
                    if (HInterID && HInterID !== "0") {
                        layer.open({
                            type: 2,
                            area: ['100%', '100%'],
                            title: HPageTitle + ' - ç¼–辑(' + HBillNo + ')',
                            shift: 0,
                            content: '../../工资管理/阶梯工价系数/Gy_SteppedPriceCoefficientBillEdit.html?OperationType=3&linterid=' + HInterID + '&HSouceBillType=',
                            btn: ['确定'],
                            end: function (index, layero, that) {
                                $("#btnSearch").trigger('click');
                            }
                        });
                    } else {
                        console.error("无法获取有效的HInterID字段,数据:", data);
                        layer.msg("无法打开单据,单据ID无效", { icon: 5 });
                    }
                }
            });
            //#region æ˜¾ç¤ºåˆ—数据
            function DisPlay_HideColumn() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    async: false,
                    data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var newCols = [[]];//对应数据库列顺序col
                            newCols[0].push(option.cols[0][0]);//放入第一个checkbox
                            dataCol = data1.data[0].HGridString.split(',');
                            //列设置列数与页面列数是否一致
                            if (dataCol.length == option.cols[0].length - 1) {
                                //遍历寻找列设置对应列按顺序插入
                                for (var j = 0; j < option.cols[0].length - 1; j++) {
                                    for (var i = 0; i < option.cols[0].length - 1; i++) {
                                        var dataCols = dataCol[j].split('|');
                                        //选择与datacols相应列进行修改
                                        if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                                            //隐藏列
                                            if (dataCols[1] == 1) {
                                                option.cols[0][i + 1]["hide"] = true;
                                            }
                                            //设置列宽
                                            if (dataCols[3] > 0) {
                                                option.cols[0][i + 1]["width"] = dataCols[3];
                                            }
                                            //设置内容字体大小
                                            if (data1.data[0].HFontSize != 0) {
                                                option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                            } else {
                                                option.cols[0][i + 1]["style"] = "font-size:100%";
                                            }
                                            //显示列
                                            if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                                option.cols[0][i + 1]["hide"] = false;
                                            }
                                            //统计列
                                            if (dataCols[6] == 1) {
                                                option.cols[0][i + 1]["totalRow"] = true;
                                            }
                                            //字体所在位置(å·¦ å±…中 å³)
                                            switch (dataCols[2]) {
                                                case "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;
                                            }
                                            //设置表格title属性显示别名
                                            if (dataCols[4] != null && dataCols[4] != "") {
                                                option.cols[0][i + 1]["title"] = dataCols[4];
                                            }
                                            newCols[0].push(option.cols[0][i + 1]);
                                        }
                                    }
                                }
                                //遍历循环后判断对应列数是否一致
                                if (dataCol.length == newCols[0].length - 1) {
                                    option.cols = newCols;
                                    //取消冻结列
                                    for (var i = 1; i < option.cols[0].length - 1; i++) {
                                        if (option.cols[0][i]["fixed"] != null) {
                                            option.cols[0][i]["fixed"] = null;
                                        }
                                        else {
                                            break;
                                        }
                                    }
                                    //冻结列
                                    if (data1.data[0].HFixCols != 0) {
                                        for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                            if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                                data1.data[0].HFixCols += 1;
                                            }
                                            option.cols[0][i + 1]["fixed"] = "left";
                                        }
                                    }
                                }
                            }
                            ins=table.render(option);
                        } else {
                            ins=table.render(option);
                        }
                        //刷新按钮显示
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        Display_HideButton(btns, HBillType, HModName, HMaker);
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
            //#region å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //导出按钮
                    case 'btn_Export': btn_Export();
                        break;
                    //新增按钮
                    case 'btn_Add': btn_Add();
                        break;
                    //编辑按钮
                    case 'btn_Edit': btn_Edit();
                        break;
                    //打印
                    case 'btn-print':
                        get_PrintReport();
                        break;
                    //删除按钮
                    case 'btn_Delete': btn_Delete();
                        break;
                    //刷新按钮
                    case 'btn_Refresh': btn_Refresh();
                        break;
                    //审核按钮      ï¼ˆ1:审核、2:反审核)
                    case 'btn_Audit': set_CheckBill(1);
                        break;
                    //反审核按钮
                    case 'btn_DeAudit': set_CheckBill(2);
                        break;
                    //关闭按钮        ï¼ˆ1:关闭、2:反关闭)
                    case 'btn_Close': set_CloseBill(1);
                        break;
                    //反关闭按钮
                    case 'btn_DeClose': set_CloseBill(2);
                        break;
                    //作废按钮        ï¼ˆ1:作废、2:反作废)
                    case 'btn_Drop': set_DropBill(1);
                        break;
                    //反作废按钮
                    case 'btn_DeDrop': set_DropBill(2);
                        break;
                    //退出按钮
                    case 'btn_Exit': Pub_Close(2);
                        break;
                    //列设置
                    case 'btn_HideColumn': get_HideColumn();
                        break;
                    //按钮设置
                    case 'btn_HideButton':
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        get_HideButton(btns, HBillType, HModName, HMaker);
                        break;
                    //保存方案
                    case 'btn_SaveScheme': set_SaveScheme();
                        break;
                    //读取方案
                    case 'btn_ReadScheme': set_ReadScheme();
                        break;
                };
            });
            //#endregion
            //#region å¯¼å‡ºExecel
            //#region å¯¼å‡ºExecel
            function btn_Export() {
                var data;
                //设置sWhere
                var ajaxLoad = layer.load();
                // ä½¿ç”¨åˆ¶å•日期作为创建时间过滤
                var HMakeDate_Begin = $("#HMakeDate_Begin").val();  // å¼€å§‹åˆ¶å•日期
                var HMakeDate_End = $("#HMakeDate_End").val();      // ç»“束制单日期
                var HBillNo = $("#HBillNo").val();                  // å•据号
                var ColName = $("#ColName").val();
                var Comparator = $("#Comparator").val()
                var ColContent = $("#ColContent").val();
                var ColName1 = $("#ColName1").val();
                var Comparator1 = $("#Comparator1").val()
                var ColContent1 = $("#ColContent1").val();
                var ColName2 = $("#ColName2").val();
                var Comparator2 = $("#Comparator2").val()
                var ColContent2 = $("#ColContent2").val();
                // æ¸…空之前的条件
                sWhere = "";
                // ä¿®å¤ï¼šç¡®ä¿åœ¨è¿ç®—符和值之间有空格
                if (ColName && ColName != 0 && Comparator && Comparator != 0 && ColContent) {
                    var com = "";
                    switch (Comparator) {
                        case "7":
                            com = "like '%" + ColContent + "%'";
                            break;
                        case "8":
                            com = "like '%" + ColContent + "'";
                            break;
                        case "9":
                            com = "like '" + ColContent + "%'";
                            break;
                        case "10":
                            com = "not like '%" + ColContent + "%'";
                            break;
                        default:
                            // å…³é”®ä¿®å¤ï¼šåœ¨è¿ç®—符和值之间添加空格
                            com = Comparator + " '" + ColContent + "'";
                            break;
                    }
                    sWhere += " and " + ColName + " " + com;
                }
                if (ColName1 && ColName1 != 0 && Comparator1 && Comparator1 != 0 && ColContent1) {
                    var com1 = "";
                    switch (Comparator1) {
                        case "7":
                            com1 = "like '%" + ColContent1 + "%'";
                            break;
                        case "8":
                            com1 = "like '%" + ColContent1 + "'";
                            break;
                        case "9":
                            com1 = "like '" + ColContent1 + "%'";
                            break;
                        case "10":
                            com1 = "not like '%" + ColContent1 + "%'";
                            break;
                        default:
                            com1 = Comparator1 + " '" + ColContent1 + "'";
                            break;
                    }
                    sWhere += " and " + ColName1 + " " + com1;
                }
                if (ColName2 && ColName2 != 0 && Comparator2 && Comparator2 != 0 && ColContent2) {
                    var com2 = "";
                    switch (Comparator2) {
                        case "7":
                            com2 = "like '%" + ColContent2 + "%'";
                            break;
                        case "8":
                            com2 = "like '%" + ColContent2 + "'";
                            break;
                        case "9":
                            com2 = "like '" + ColContent2 + "%'";
                            break;
                        case "10":
                            com2 = "not like '%" + ColContent2 + "%'";
                            break;
                        default:
                            com2 = Comparator2 + " '" + ColContent2 + "'";
                            break;
                    }
                    sWhere += " and " + ColName2 + " " + com2;
                }
                // åˆ¶å•日期(创建时间)范围查询
                if (HMakeDate_Begin) {
                    sWhere += " and HMakeDate >= '" + HMakeDate_Begin + "'";
                }
                if (HMakeDate_End) {
                    sWhere += " and HMakeDate <= '" + HMakeDate_End + "'";
                }
                // å•据号查询
                if (HBillNo) {
                    sWhere += " and HBillNo like '%" + HBillNo + "%'";
                }
                console.log("导出查询条件:", sWhere);
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + '/Gy_SteppedPriceCoefficientBillController/GetGy_SteppedPriceCoefficientBillList_Json',
                    async: false,
                    data: { "sWhere": sWhere, "HMaker": HMaker },
                    success: function (data1) {
                        if (data1.count == 1) {
                            data = data1.data
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    },
                    error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                // æ¸…空条件
                sWhere = "";
                // å¤„理数据
                if (data) {
                    data.forEach((item) => {
                        for (let itemobj in item) {
                            if (item[itemobj] == null) {
                                item[itemobj] = "";
                            }
                            if (item[itemobj] && item[itemobj].length > 0) {
                                item[itemobj] = item[itemobj].toString().replaceAll(/[\r\n]+/g, '');
                            }
                        }
                    });
                    table.exportFile(ins.config.id, data, "xls");
                }
            }
            //#endregion
            //#region æ–°å¢ž
            function btn_Add() {
                layer.open({
                    type: 2
                    , skin: 'layui-layer-rim'   //加上边框
                    , area: ['100%', '100%']
                    , title: HPageTitle + '- æ–°å¢ž'
                    , shift: 0  //弹出动画
                    , content: '../../工资管理/阶梯工价系数/Gy_SteppedPriceCoefficientBillEdit.html?OperationType=1&linterid=0&HSouceBillType='
                    , btn: ['确定'],
                    // æŒ‰é’®1 çš„回调
                    end: function (index, layero, that) {
                        //刷新页面
                        $("#btnSearch").trigger('click');
                    }
                })
            }
            //#endregion
            //#region ç¼–辑
            function btn_Edit() {
                var checkStatus = table.checkStatus('mainTable');
                var data = checkStatus.data;
                console.log("编辑按钮点击,选中数据:", data);
                if (data && data.length === 1) {
                    // å®‰å…¨åœ°èŽ·å–å­—æ®µå€¼ï¼Œæ·»åŠ ç©ºå€¼æ£€æŸ¥
                    var HInterID = data[0].HInterID ? data[0].HInterID.toString() : "";
                    var HBillNo = data[0].HBillNo ? data[0].HBillNo.toString() : "";
                    // å¦‚æžœHInterID为空,尝试从其他字段获取
                    if (!HInterID || HInterID === "0") {
                        // å°è¯•其他可能的字段名
                        HInterID = data[0].hmainid ? data[0].hmainid.toString() : "";
                        HInterID = data[0].hMainID ? data[0].hMainID.toString() : HInterID;
                    }
                    console.log("提取的HInterID:", HInterID, "HBillNo:", HBillNo);
                    if (!HInterID || HInterID === "0") {
                        layer.msg("无法获取单据ID或ID无效", { icon: 5 });
                        console.error("无法获取有效的单据ID,数据对象:", data[0]);
                        return;
                    }
                    // ä¿®å¤è·¯å¾„问题:确保使用正确的路径
                    // æ³¨æ„ï¼šé”™è¯¯ä¿¡æ¯ä¸­çš„路径包含中文编码,需要确保路径正确
                    layer.open({
                        type: 2,
                        area: ['100%', '100%'],
                        title: HPageTitle + ' - ç¼–辑(' + HBillNo + ')',
                        shift: 0,
                        // æ³¨æ„ï¼šç¡®ä¿è·¯å¾„正确,从错误信息看可能是路径问题
                        content: '../../工资管理/阶梯工价系数/Gy_SteppedPriceCoefficientBillEdit.html?OperationType=3&linterid=' + HInterID + '&HSouceBillType=',
                        btn: ['确定'],
                        end: function (index, layero, that) {
                            // åˆ·æ–°é¡µé¢
                            $("#btnSearch").trigger('click');
                        },
                        success: function (layero, index) {
                            console.log("编辑页面打开成功,HInterID:", HInterID);
                        },
                        error: function (xhr, status, error) {
                            console.error("打开编辑页面失败:", error);
                            layer.msg("打开编辑页面失败,请检查路径配置", { icon: 5 });
                        }
                    });
                } else {
                    layer.msg('请选择一行数据编辑!');
                }
            }
            //#endregion
            //#region åˆ é™¤
            // æ›¿æ¢åŽŸbtn_Delete方法
            function btn_Delete() {
                var checkStatus = table.checkStatus('mainTable'),
                    data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var HInterID = data[0].HInterID || data[0].hmainid;
                    var HBillNo = data[0].HBillNo || '';
                    if (!HInterID) {
                        layer.msg('单据ID无效!', { icon: 5 });
                        return;
                    }
                    layer.confirm("确认要删除选中行数据?删除后将不可恢复!", { title: "删除确认" }, function (index) {
                        var wait = layer.load();
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/delete",
                            async: false,
                            data: { "HInterID": HInterID, "user": HMaker },
                            success: function (result) {
                                layer.close(wait);
                                if (result.code === "1") {
                                    layer.msg("单据号:" + HBillNo + " åˆ é™¤æˆåŠŸï¼", { time: 1000, icon: 1 }, function () {
                                        $("#btnSearch").trigger('click');
                                    });
                                } else {
                                    layer.msg(result.Message || "删除失败", { icon: 2 });
                                }
                            },
                            error: function (xhr, status, error) {
                                layer.close(wait);
                                layer.msg('删除失败:' + error, { icon: 5 });
                            }
                        });
                    })
                } else {
                    layer.msg('请选择一行数据删除!');
                }
            }
            //#endregion
            //#region åˆ·æ–°
            function btn_Refresh() {
                get_FastQuery();
            }
            //#endregion
            //#region éšè—åˆ—设置
            function Display_HideButton(btns, HBillType, HModName, HMaker) {
                // ç¤ºä¾‹é€»è¾‘:根据权限显示/隐藏按钮
                $.ajax({
                    url: GetWEBURL() + '/Xt_ButtonPermission/GetButtonPermission',
                    type: 'GET',
                    data: { HBillType: HBillType, HModName: HModName, UserName: HMaker },
                    success: function (data) {
                        if (data.code === "1" && data.data) {
                            var permission = data.data;
                            for (var i = 0; i < btns.length; i++) {
                                var btnId = btns[i].id;
                                if (permission[btnId] === "0") {
                                    btns[i].style.display = "none";
                                } else {
                                    btns[i].style.display = "inline-block";
                                }
                            }
                        }
                    }
                });
            }
            // é€€å‡ºæŒ‰é’®æ–¹æ³•
            function Pub_Close(type) {
                if (type === 2) {
                    var index = parent.layer.getFrameIndex(window.name);
                    parent.layer.close(index);
                }
            }
            //#endregion
            //#region æ‰“印功能
            function get_PrintReport() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 0) {
                    return layer.msg('请选择数据打印!');
                }
                else {
                    var hmainid = [];
                    for (var i = 0; i < checkStatus.data.length; i++) {
                        hmainid.push((data[i].hmainid * (10 ** 8)) + data[i].hsubid)
                    }
                    layer.open({
                        type: 2
                        , area: ['50%', '50%']
                        , title: '打印模版选择'
                        , shade: 0.6 //遮罩透明度
                        , maxmin: false //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + hmainid.toString() + '&MyMsg=' + hmainid.toString() + '&Type=Gy_SteppedPriceCoefficientBillList', 'yes']
                        , resize: false
                    })
                }
            }
            //#endregion
            //#region  å®¡æ ¸ï¼ˆnum=1)/反审核(num=2)
            function set_CheckBill(num) {
                var checkStatus = table.checkStatus('mainTable'),
                    data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    // ç»Ÿä¸€ä½¿ç”¨HInterID,兼容hmainid
                    var HInterID = data[0].HInterID || data[0].hmainid;
                    if (!HInterID) {
                        layer.msg('单据ID无效!', { icon: 5 });
                        return;
                    }
                    // è½¬æ¢å‚数:审核=0,反审核=1
                    var IsAudit = num === 1 ? 0 : 1;
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/Audit",
                        async: false,
                        data: {
                            "HInterID": HInterID,
                            "IsAudit": IsAudit,
                            "CurUserName": HMaker
                        },
                        success: function (result) {
                            if (result.code === "1") {
                                layer.msg(result.Message || (num === 1 ? "审核成功" : "反审核成功"), { time: 1000, icon: 1 }, function () {
                                    $("#btnSearch").trigger('click');
                                });
                            } else {
                                layer.msg(result.Message || "操作失败", { icon: 2 });
                            }
                        },
                        error: function () {
                            layer.msg('接口请求失败!', { icon: 5 });
                        }
                    });
                } else {
                    layer.msg(num === 1 ? '请选择一行数据审核!' : '请选择一行数据反审核!');
                }
            }
            //#endregion
            //#region å…³é—­ï¼ˆnum=1)/反关闭(num=2)
            // æ›¿æ¢åŽŸset_CloseBill方法
            function set_CloseBill(num) {
                var checkStatus = table.checkStatus('mainTable'),
                    data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var HInterID = data[0].HInterID || data[0].hmainid;
                    if (!HInterID) {
                        layer.msg('单据ID无效!', { icon: 5 });
                        return;
                    }
                    // è½¬æ¢å‚数:关闭=0,反关闭=1
                    var IsClose = num === 1 ? 0 : 1;
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/CloseGy_SteppedPriceCoefficientBill",
                        async: false,
                        data: {
                            "HInterID": HInterID,
                            "IsAudit": IsClose,  // æ”¹ IsClose ä¸º IsAudit
                            "user": HMaker        // æ”¹ CurUserName ä¸º user
                        },
                        success: function (result) {
                            if (result.code === "1") {
                                layer.msg(result.Message || (num === 1 ? "关闭成功" : "反关闭成功"), { time: 1000, icon: 1 }, function () {
                                    $("#btnSearch").trigger('click');
                                });
                            } else {
                                layer.msg(result.Message || "操作失败", { icon: 2 });
                            }
                        },
                        error: function () {
                            layer.msg('接口请求失败!', { icon: 5 });
                        }
                    });
                } else {
                    layer.msg(num === 1 ? '请选择一行数据关闭!' : '请选择一行数据反关闭!');
                }
            }
            //#endregion
            //#region ä½œåºŸï¼ˆnum=1)/反作废(num=2)
            function set_DropBill(num) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var HInterID = data[0].hmainid.toString();
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/Gy_SteppedPriceCoefficientBill/DropGy_SteppedPriceCoefficientBill",
                        async: false,
                        data: {
                            "HInterID": HInterID,
                            "IsAudit": IsClose,  // æ”¹ IsClose ä¸º IsAudit
                            "user": HMaker        // æ”¹ CurUserName ä¸º user
                        },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    // å¾—到frame索引
                                    var index = layer.getFrameIndex(window.name);
                                    //关闭当前frame
                                    layer.close(index);
                                    //修改为功后刷新界面
                                    $("#btnSearch").trigger('click');
                                });
                            } else {
                                layer.msg(result.Message, { icon: 2, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            }
                        }, error: function () {
                            layer.msg('错误' + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        }
                    });
                }
                else {
                    if (num == 1) {
                        layer.msg('请选择一行数据作废!');
                    }
                    else {
                        layer.msg('请选择一行数据反作废!');
                    }
                }
            }
            //#endregion
            //#region é‡ç½®æŒ‰é’®
            form.on('submit(btnReSearch)', function (data) {
                //清空过滤条件
                set_ClearQuery();
            });
            //重置过滤条件
            function set_ClearQuery() {
                // é‡ç½®åˆ¶å•日期范围(最近30天)
                var endDate = new Date();
                var startDate = new Date(endDate - 1000 * 60 * 60 * 24 * 30);
                $("#HMakeDate_Begin").val(Pub_Format(startDate, "yyyy-MM-dd"));
                $("#HMakeDate_End").val(Pub_Format(endDate, "yyyy-MM-dd"));
                $("#HBillNo").val("");//单据号
                $("#ColContent").val("");
                $("#ColName").val("0");
                $("#Comparator").val("0");
                $("#ColContent2").val("");
                $("#ColName2").val("0");
                $("#Comparator2").val("0");
                $("#ColContent1").val("");
                $("#ColName1").val("0");
                $("#Comparator1").val("0");
                form.render('select');
                sWhere = "";
            }
            //#endregion
            //#region æŸ¥è¯¢æŒ‰é’®
            form.on('submit(btnSearch)', function (data) {
                if (page != 1) {
                    $("#page a:eq(1)").get(0).click();//点击分页栏第一页
                } else {
                    get_FastQuery();
                }
            });
            //快速查询
            //快速查询
            function get_FastQuery() {
                // ä½¿ç”¨åˆ¶å•日期作为创建时间过滤
                var HMakeDate_Begin = $("#HMakeDate_Begin").val();  // å¼€å§‹åˆ¶å•日期
                var HMakeDate_End = $("#HMakeDate_End").val();      // ç»“束制单日期
                var HBillNo = $("#HBillNo").val();                  // å•据号
                console.log("=== æŸ¥è¯¢å‚æ•° ===");
                console.log("HMakeDate_Begin:", HMakeDate_Begin);
                console.log("HMakeDate_End:", HMakeDate_End);
                console.log("HBillNo:", HBillNo);
                // æ¸…空之前的条件
                sWhere = "";
                // æž„建条件数组(避免开头有"and"的问题)
                var conditions = [];
                // åˆ¶å•日期(创建时间)范围查询 - ä½¿ç”¨æ­£ç¡®çš„SQL格式
                if (HMakeDate_Begin && HMakeDate_Begin.trim() !== '') {
                    conditions.push("CONVERT(date, HMakeDate) >= '" + HMakeDate_Begin + "'");
                }
                if (HMakeDate_End && HMakeDate_End.trim() !== '') {
                    conditions.push("CONVERT(date, HMakeDate) <= '" + HMakeDate_End + "'");
                }
                // å•据号查询
                if (HBillNo && HBillNo.trim() !== '') {
                    conditions.push("HBillNo like '%" + HBillNo + "%'");
                }
                // å°†æ¡ä»¶ç»„合成SQL语句
                if (conditions.length > 0) {
                    sWhere = conditions.join(" and ");
                } else {
                    sWhere = "1=1";  // å¦‚果没有条件,使用1=1确保语法正确
                }
                console.log("生成的查询条件:", sWhere);
                // è°ƒç”¨æŸ¥è¯¢æ–¹æ³•
                get_DisplayPage(sWhere);
            }
            //#endregion
            //#region åˆ†é¡µæŸ¥è¯¢
            function get_DisplayPage(sWhere) {
                console.log("=== å¼€å§‹æŸ¥è¯¢ ===");
                console.log("查询条件:", sWhere);
                console.log("页码:", page, "每页数量:", size);
                console.log("当前用户:", sessionStorage["HUserName"]);
                var ajaxLoad = layer.load();
                // æµ‹è¯•不同的API端点
                var apiUrl = GetWEBURL() + '/Gy_SteppedPriceCoefficientBill/list';
                console.log("调用API:", apiUrl);
                $.ajax({
                    url: apiUrl,
                    type: "GET",
                    data: {
                        "sWhere": sWhere,
                        "user": sessionStorage["HUserName"],
                        "page": page,
                        "size": size
                    },
                    dataType: "json",
                    success: function (data1) {
                        layer.close(ajaxLoad);
                        console.log("=== å¤„理表格数据 ===");
                        console.log("API返回数据:", data1);
                        if (data1.code == "1") {
                            var tableData = data1.data || [];
                            var totalCount = data1.total || tableData.length;
                            console.log("表格数据量:", tableData.length);
                            // ç¡®ä¿æ•°æ®æ˜¯æ•°ç»„格式
                            if (!Array.isArray(tableData)) {
                                tableData = [];
                                console.warn("表格数据不是数组格式,已转换为空数组");
                            }
                            // æ£€æŸ¥æ˜¯å¦å·²ç»åˆå§‹åŒ–了表格配置
                            if (!option.cols || !Array.isArray(option.cols)) {
                                console.log("初始化表格列配置...");
                                // å®šä¹‰åˆ—配置
                                option.cols = [[
                                    // å¤é€‰æ¡†åˆ—
                                    { type: 'checkbox', fixed: 'left', width: 50 },
                                    // å•据号(链接到编辑)
                                    {
                                        field: 'HBillNo',
                                        title: '单据号',
                                        width: 180,
                                        fixed: 'left',
                                        event: '单据号',
                                        style: 'cursor: pointer;',
                                        templet: function (d) {
                                            return '<span style="color: blue; cursor: pointer;">' + (d.HBillNo || '') + '</span>';
                                        }
                                    },
                                    // å•据日期
                                    {
                                        field: 'HDate',
                                        title: '单据日期',
                                        width: 150,
                                        templet: function (d) {
                                            if (!d.HDate) return '';
                                            try {
                                                var date = new Date(d.HDate);
                                                return layui.util.toDateString(date, 'yyyy-MM-dd');
                                            } catch (e) {
                                                return d.HDate;
                                            }
                                        }
                                    },
                                    // å¹´åº¦
                                    { field: 'HYear', title: 'å¹´', width: 80, align: 'center' },
                                    // æœŸé—´
                                    { field: 'HPeriod', title: '月', width: 80, align: 'center' },
                                    // å•据状态
                                    // å•据状态显示(根据您提供的状态定义)
                                    {
                                        field: 'HBillStatus',
                                        title: '状态',
                                        width: 100,
                                        align: 'center',
                                        templet: function (d) {
                                            var status = d.HBillStatus;
                                            switch (status.toString()) {
                                                case '1':
                                                    return '<span>未审核</span>';
                                                case '2':
                                                    return '<span>已审核</span>';
                                                case '3':
                                                    return '<span>已关闭</span>';
                                                case '4':
                                                    return '<span>已作废</span>';
                                                case '5':
                                                    return '<span>审核退回</span>';
                                                case '6':
                                                    return '<span>审核中</span>';
                                                default:
                                                    return '<span >状态' + status + '</span>';
                                            }
                                        }
                                    },
                                    // å­è¡¨ç»Ÿè®¡ä¿¡æ¯
                                    {
                                        field: 'SubCount',
                                        title: '序号合计',
                                        width: 90,
                                        align: 'center',
                                        totalRow: true
                                    },
                                    {
                                        field: 'TotalMinQty',
                                        title: '最小数量合计',
                                        width: 120,
                                        align: 'right',
                                        totalRow: true
                                    },
                                    {
                                        field: 'TotalMaxQty',
                                        title: '最大数量合计',
                                        width: 120,
                                        align: 'right',
                                        totalRow: true
                                    },
                                    {
                                        field: 'TotalCoefficient',
                                        title: '工价系数合计',
                                        width: 100,
                                        align: 'right',
                                        totalRow: true
                                    },
                                    {
                                        field: 'TotalMaxPrice',
                                        title: '最大工价合计',
                                        width: 120,
                                        align: 'right',
                                        totalRow: true
                                    },
                                    // å¤‡æ³¨
                                    { field: 'HRemark', title: '备注', width: 200 },
                                    // åˆ¶å•人
                                    { field: 'HMaker', title: '制单人', width: 100 },
                                    // åˆ¶å•日期
                                    {
                                        field: 'HMakeDate',
                                        title: '制单日期',
                                        width: 160,
                                        templet: function (d) {
                                            if (!d.HMakeDate) return '';
                                            try {
                                                var date = new Date(d.HMakeDate);
                                                return layui.util.toDateString(date, 'yyyy-MM-dd HH:mm:ss');
                                            } catch (e) {
                                                return d.HMakeDate;
                                            }
                                        }
                                    },
                                    // å®¡æ ¸äºº
                                    { field: 'HChecker', title: '审核人', width: 100 },
                                    // å®¡æ ¸æ—¥æœŸ
                                    {
                                        field: 'HCheckDate',
                                        title: '审核日期',
                                        width: 160,
                                        templet: function (d) {
                                            if (!d.HCheckDate) return '';
                                            try {
                                                var date = new Date(d.HCheckDate);
                                                return layui.util.toDateString(date, 'yyyy-MM-dd HH:mm:ss');
                                            } catch (e) {
                                                return d.HCheckDate;
                                            }
                                        }
                                    },
                                    // éšè—å­—段
                                    { field: 'HInterID', title: '内码', width: 100, hide: true },
                                    { field: 'RowNum', title: '行号', width: 80, hide: true },
                                    { field: 'HUpDater', title: '更新人', width: 100, hide: true },
                                    { field: 'HUpDateDate', title: '更新日期', width: 160, hide: true },
                                    { field: 'HCloseMan', title: '关闭人', width: 100, hide: true },
                                    { field: 'HCloseDate', title: '关闭日期', width: 160, hide: true },
                                    { field: 'HProcID', title: '工序ID', width: 100, hide: true },
                                    { field: 'HEmpID', title: '员工ID', width: 100, hide: true },
                                    { field: 'HDeptID', title: '部门ID', width: 100, hide: true },
                                    { field: 'HStockOrgID', title: '组织ID', width: 100, hide: true }
                                ]];
                            }
                            // è®¾ç½®å…¶ä»–必要的表格配置
                            option.data = tableData;
                            option.limit = size;
                            console.log("表格配置:", option);
                            try {
                                // å¦‚果表格已经渲染过,则重载数据
                                if (window.tableIns) {
                                    window.tableIns.reload({
                                        data: tableData,
                                        limit: size
                                    });
                                    console.log("表格数据重载完成");
                                } else {
                                    // é¦–次渲染表格
                                    window.tableIns = table.render(option);
                                    console.log("表格首次渲染完成");
                                }
                            } catch (error) {
                                console.error("表格渲染错误:", error);
                                layer.msg("表格渲染失败: " + error.message, { icon: 5 });
                            }
                            // æ›´æ–°åˆ†é¡µä¿¡æ¯
                            try {
                                laypage.render({
                                    elem: 'page',
                                    count: totalCount,
                                    limit: size,
                                    curr: page,
                                    limits: [50, 500, 5000, 50000],
                                    layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
                                    jump: function (obj, first) {
                                        if (!first) {
                                            page = obj.curr;
                                            size = obj.limit;
                                            get_FastQuery();
                                        }
                                    }
                                });
                                console.log("分页渲染完成,总记录数:", totalCount);
                            } catch (error) {
                                console.error("分页渲染错误:", error);
                            }
                            // åˆ·æ–°åˆ—过滤下拉框
                            setTimeout(function () {
                                try {
                                    ColFilter();
                                } catch (error) {
                                    console.error("列过滤刷新错误:", error);
                                }
                            }, 100);
                        } else {
                            layer.msg(data1.message || "查询失败", { icon: 5 });
                            console.error("查询失败:", data1);
                        }
                    },
                    error: function (xhr, status, error) {
                        layer.close(ajaxLoad);
                        layer.msg("查询失败: " + error, { icon: 5 });
                        console.error("AJAX请求失败:", error);
                    }
                });
            }
            //#endregion
            //#region åˆ—明显示下拉框
            function ColFilter() {
                var Organization = '<option  value="0" selected="selected" ></option>';
                for (var i = 1; i < option.cols[0].length; i++) {
                    if (option.cols[0][i].hide != true) {
                        Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].title + '</option>';
                    }
                }
                $("#ColName").empty();
                $("#ColName").append(Organization);
                $("#ColName1").empty();
                $("#ColName1").append(Organization);
                $("#ColName2").empty();
                $("#ColName2").append(Organization);
                form.render('select');
            }
            //#endregion
            //#region åˆ—设置
            function get_HideColumn() {
                var colName = "";
                var contentUrl = "";
                for (var i = 1; i < option.cols[0].length; i++) {
                    colName += option.cols[0][i]["field"] + ",";
                }
                var urlStr = window.document.location.pathname;//获取文件路径
                var urlLen = urlStr.split('/');
                for (var i = 0; i < urlLen.length - 4; i++) {
                    contentUrl += "../";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide_New.html?HModName=' + HModName + '&colName=' + colName;
                layer.open({
                    type: 2
                    , 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);//关闭弹窗
                    }
                })
            }
            //#endregion
            //#region ã€è¿‡æ»¤æ–¹æ¡ˆã€‘
            //获取当前用户的默认过滤方案
            function get_DefaultModule() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_FastICScheme/Chooselist',
                    type: "GET",
                    data: { "user": sessionStorage["Czybm"], "HModuleName": HModuleName, "HInterID": 0, "Type": "Default" },
                    success: function (data1) {
                        if (data1.count == 1) {
                            //当前用户设置有默认的过滤方案
                            var data = data1.data;
                            //当前选择的过滤方案
                            HInterID_Choose = data[0].hmainid;
                            //过滤方案内码
                            HInterID = data[0].hmainid
                            //过滤方案名称
                            HDefaultFilter = data[0].方案名称
                            //过滤方案的备注(方案信息描述)
                            var HRemark = data[0].备注
                            //显示出当前的默认过滤方案
                            document.getElementById("HFilterScheme_Now").style.display = "block";
                            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[i].过滤字段ID).val(data[i].过滤值);
                                if (data[i].过滤标签类型 == 'SELECT') {
                                    $("#" + data[i].过滤字段ID).find("option[value='" + data[i].过滤值 + "']").attr("selected", true);
                                }
                            }
                            //执行查询方法
                            get_FastQuery()
                            form.render("select");
                        } else {
                            //当前用户没有设置默认的过滤方案
                            //隐藏显示过滤方案的标签信息
                            document.getElementById("HFilterScheme_Now").style.display = "none";
                            //执行查询方法
                            get_FastQuery()
                            form.render("select");
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //保存方案
            function set_SaveScheme() {
                var index = layer.open()
                //判断用户是否点击了右上角的"叉号"关闭弹窗页面
                var HIsClose_Manual = 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: '../../系统管理/过滤方案设置/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) {
                                get_FastQuery();
                                //显示当前的过滤方案
                                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: ['新增方案', '保存修改当前方案', '取消']
                    }, function (index, layero) {
                        //新增
                        layer.open({
                            type: 2
                            , area: ['40%', '80%']
                            , title: '过滤方案'
                            , shift: 0//弹出动画
                            , content: '../../系统管理/过滤方案设置/Xt_FastICScheme.html?OperationType=1&HModuleName=' + HModuleName + '&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type
                            , end: function () {
                                get_FastQuery()
                                //显示当前的过滤方案
                                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;
                        //修改
                        $.ajax({
                            type: "POST",
                            url: GetWEBURL() + "/Xt_FastICScheme/save", //方法所在页面和方法名
                            async: true,
                            data: { "oMain": sMainSub },
                            dataType: "json",
                            success: function (data) {
                                if (data.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;
                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: '../../系统管理/过滤方案设置/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) {
                            get_FastQuery()
                            form.render("select");
                        }
                    }
                })
            }
            //#endregion
            //#endregion
            //以上是layui模块
        });
        //#region ã€è¿‡æ»¤æ–¹æ¡ˆè¿”回数据】
        function HFilterScheme(obj)  //返回过滤方案
        {
            var HInterID = obj[0].hmainid;
            HInterID_Choose = obj[0].hmainid;
            $.ajax({
                url: GetWEBURL() + '/Xt_FastICScheme/Chooselist',
                type: "GET",
                data: { "user": sessionStorage["Czybm"], "HModuleName": HModuleName, "HInterID": HInterID, "Type": "Select" },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = data1.data;
                        //赋值过滤方案名称
                        HDefaultFilter = data[0].方案名称
                        var HRemark = data[0].备注
                        //显示当前的过滤方案
                        document.getElementById("HFilterScheme_Now").style.display = "block";
                        document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + HDefaultFilter + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb">  ' + "(" + HRemark + ")" + '</span>';
                        HInterID = data[0].hmainid
                        //根据选择的过滤方案回填数据到列表过滤条件
                        for (let i = 0; i < data.length; i++) {
                            $("#" + data[i].过滤字段ID).val(data[i].过滤值);
                            if (data[i].过滤标签类型 == 'SELECT') {
                                $("#" + data[i].过滤字段ID).find("option[value='" + data[i].过滤值 + "']").attr("selected", true);
                            }
                        }
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //#endregion
    </script>
</body>
</html>