wtt
2025-04-07 6b51d1286c9972ff3f2e55503990c7a6fc22d60a
WebTM/views/ÏîÄ¿¹ÜÀí/¹¤³ÌÏîÄ¿/PM_ProjectBill.html
@@ -46,7 +46,27 @@
            width: 25%;
        }
    </style>-->
    <!--<style>
        input::-webkit-calendar-picker-indicator {
            display: none; /* éšè—è¾“入框右侧箭头 */
        }
    </style>-->
    <!--用于报漏人 æŸåæƒ…况 çš„æ–‡æœ¬æ¡†æ”¹ä¸ºä¸‹æ¥æ¡†-->
    <style>
        /* é€‰é¡¹åŸºç¡€æ ·å¼ */
        .layui-nav-item {
            padding: 0 20px;
            line-height: 36px;
            cursor: pointer;
            transition: all 0.3s;
            color: #000 !important; /* å¼ºåˆ¶é»‘色字体 */
        }
        /* æ‚¬åœçŠ¶æ€ */
        .layui-nav-item:hover {
            background-color: #f8f8f8 !important;
            color: #000 !important;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
@@ -55,15 +75,15 @@
                <form class="layui-form" action="" lay-filter="formData" style="background-color:white;">
                    <div style="padding: 2px; ">
                        <!--<button type="button" id="btnSearch" style="margin-left: 0px" class="layui-btn layui-btn-normal"  lay-submit="" lay-filter="btnSearch" >预览</button>
        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">新增</button>
        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">修改</button>-->
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">新增</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">修改</button>-->
                        <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>
                        <!--<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CheckBill" id="set_CheckBill">审核</button>
        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_AbandonCheck" id="set_AbandonCheck">反审核</button>
        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CloseBill" id="set_CloseBill">关闭</button>
        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CancelCloseBill" id="set_CancelCloseBill">反关闭</button>-->
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_AbandonCheck" id="set_AbandonCheck">反审核</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CloseBill" id="set_CloseBill">关闭</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CancelCloseBill" id="set_CancelCloseBill">反关闭</button>-->
                    </div>
                    <div class="layui-tab" lay-filter="tab-POStockInBill">
                        <h1 style="text-align: center; padding: 10px 0;"><b>工程项目</b></h1>
@@ -99,7 +119,7 @@
                                        <div class="layui-inline">
                                            <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;">
                                                <input type="date" class="layui-input" lay-verify="HDate" name="HDate"  id="HDate" style="padding-left: 80px;">
                                            </div>
                                        </div>
                                    </div>
@@ -112,7 +132,7 @@
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">结束日期<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                            <div class="layui-input-block" style="margin-left: 125px; width: 195px;">
                                                <input type="date" class="layui-input" lay-verify="HEndDate" name="HEndDate" id="HEndDate" style="padding-left: 80px;">
                                            </div>
                                        </div>
@@ -152,6 +172,16 @@
                                            <label class="layui-form-label" style="width: 85px;">结算金额</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" lay-verify="HLastMoney" name="HLastMoney" id="HLastMoney" value="0">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">部门</label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="text" class="layui-input" lay-verify="HDeptName" name="HDeptName" id="HDeptName" style="background-color:#efefef4d;width: 60%;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">
@@ -664,23 +694,17 @@
                                            </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="HBreakStatus" lay-verify="HBreakStatus" id="HBreakStatus">
                                            </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="HWaterLeakage" lay-verify="HWaterLeakage" id="HWaterLeakage">
                                            </div>
                                        </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" name="HPipeDiameter" id="HPipeDiameter" class="layui-input" value="" style="float: left; width: 150px;" >
                                                <input type="text" name="HPipeDiameter" id="HPipeDiameter" class="layui-input" value="" style="float: left; width: 150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="btnSearchHPipeDiameter" id="btnSearchHPipeDiameter" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
@@ -689,16 +713,38 @@
                                        <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" name="HPipeMaterial" id="HPipeMaterial" class="layui-input" value="" style="float: left; width: 150px; " >
                                                <input type="text" name="HPipeMaterial" id="HPipeMaterial" class="layui-input" value="" style="float: left; width: 150px; ">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="btnSearchHPipeMaterial" id="btnSearchHPipeMaterial" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </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="HBreakStatus" lay-verify="HBreakStatus" id="HBreakStatus" placeholder="请输入或选择" autocomplete="off">
                                                <!-- ä¸‹æ‹‰å®¹å™¨ -->
                                                <div id="dropdownMenu1" class="layui-anim layui-anim-upbit"
                                                     style="display: none;position: absolute;width: 100%;max-height: 200px;overflow-y: auto;border: 1px solid #e6e6e6;background: #f8f8f8;z-index: 999;top: 40px;left: 0;">
                                                    <ul id="optionList1" class="layui-nav layui-nav-tree" style="width: 100%; background:white"></ul>
                                                </div>
                                            </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="HAlarmEmp" lay-verify="HAlarmEmp" id="HAlarmEmp">
                                                <!-- è¾“入框 -->
                                                <input type="text" class="layui-input" name="HAlarmEmp" lay-verify="HAlarmEmp" id="HAlarmEmp" placeholder="请输入或选择" autocomplete="off">
                                                <!-- ä¸‹æ‹‰å®¹å™¨ -->
                                                <div id="dropdownMenu" class="layui-anim layui-anim-upbit"
                                                     style="display: none;position: absolute;width: 100%;max-height: 200px;overflow-y: auto;border: 1px solid #e6e6e6;background: #f8f8f8;z-index: 999;top: 40px;left: 0;">
                                                    <ul id="optionList" class="layui-nav layui-nav-tree" style="width: 100%; background:white"></ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
@@ -711,8 +757,12 @@
                                        </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="HReceEmp" lay-verify="HReceEmp" id="HReceEmp">
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HReceEmp" lay-verify="HReceEmp" id="HReceEmp" value="" style="float: left; width: 150px; ">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="btnSearchHReceEmp" id="btnSearchHReceEmp" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
@@ -905,43 +955,43 @@
                                </div>
                            </div>
                        </div>
                        </div>
                        <div class="layui-tab" lay-filter="tab-POStockInBill">
                            <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">
                                    <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>
                                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up"><i class="layui-icon layui-icon-form"></i>上一行</button>
                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under"><i class="layui-icon layui-icon-form"></i>下一行</button>-->
                                        </div>
                                    </script>
                                </div>
                                <!--项目成员-->
                                <div class="layui-tab-item">
                                    <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
                                    <script type="text/html" id="toolbarDemo1">
                                        <div class="layui-btn-container">
                                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine1"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine1"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn1"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up1"><i class="layui-icon layui-icon-form"></i>上一行</button>
                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under1"><i class="layui-icon layui-icon-form"></i>下一行</button>-->
                                        </div>
                                    </script>
                                </div>
                    </div>
                    <div class="layui-tab" lay-filter="tab-POStockInBill">
                        <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">
                                <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>
                                        <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up"><i class="layui-icon layui-icon-form"></i>上一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under"><i class="layui-icon layui-icon-form"></i>下一行</button>-->
                                    </div>
                                </script>
                            </div>
                            <!--项目成员-->
                            <div class="layui-tab-item">
                                <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
                                <script type="text/html" id="toolbarDemo1">
                                    <div class="layui-btn-container">
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine1"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine1"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn1"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                        <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up1"><i class="layui-icon layui-icon-form"></i>上一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under1"><i class="layui-icon layui-icon-form"></i>下一行</button>-->
                                    </div>
                                </script>
                            </div>
                        </div>
</form>
                    </div>
                </form>
            </div>
        </div>
    </div>
@@ -968,7 +1018,7 @@
        </div>
    </script>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
@@ -999,6 +1049,22 @@
            window.RowDatass = [];  //f6阶段审核人
            window.MemberData = []; //项目成员
            // é¢„定义选项数据
            var dataList1 = [
                { value: '表内管漏损', title: '表内管漏损' },
                { value: '阀门漏水', title: '阀门漏水' },
                { value: '管身漏水', title: '管身漏水' },
                { value: '接口漏水', title: '接口漏水' },
                { value: '水表损坏', title: '水表损坏' },
                { value: '管挖破', title: '管挖破' }
            ];
            var dataList = [
                { value: '用户', title: '用户' },
                { value: '热线1330', title: '热线1330' },
                { value: '报警110', title: '报警110' },
                { value: '调查组', title: '调查组' }
            ];
            //获取参数
@@ -1059,9 +1125,15 @@
                //生成并设置主表的内码和单据号
                createBillNo();
                //初始化制单人和制单时间
                //禁用部门按钮
                $('#btnSearchHDept').addClass("layui-btn-disabled").attr("disabled", true);
                //初始化制单人和制单时间   éƒ¨é—¨
                $("#HMaker").val(sessionStorage["HUserName"]);
                $("#HMakerDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HDeptID").val(sessionStorage["HDeptID"]); //根据登录用户带出部门ID
                $("#HDeptName").val(sessionStorage["HDept"]); //根据登录用户带出部门
                //初始化项目工程主表开始时间和结束时间
                $("#HBeginDate").val(Format(new Date(), "yyyy-MM-dd"));
@@ -1107,9 +1179,14 @@
            else if (OperationType == 3) {//如果修改则走下面 new                                        //编辑
                ////禁用组织选项
                //$("#HOrgID").attr("disabled", true);
                //不禁用部门
                $('#btnSearchHDept').removeClass("layui-btn-disabled").attr("disabled", false);
                //初始化项目阶段表
                get_InitGrid1();
                RoadBillMain(linterid);
            }
            //#endregion
@@ -1131,8 +1208,6 @@
            form.on('submit(btnSearchHCus)', function () {
                CusType = 1;
                get_checkSearchHCus();
            });
            //#endregion
@@ -1182,8 +1257,6 @@
            //#region é€‰æ‹©é¡¹ç›®ç±»åˆ«æŒ‰é’®
            form.on('submit(btnSearchHProjectClass)', function () {
                get_checkSearchHProjectClass();
            });
            //#endregion
@@ -1216,7 +1289,7 @@
                get_checkSearchHTestChecker();
            });
            //#endregion
            //#region é€‰æ‹©å·¥ä½œäººå‘˜æŒ‰é’®
            form.on('submit(btnSearchHTaskWorkEmp)', function () {
                get_checkSearchHTaskWorkEmp();
@@ -1234,7 +1307,6 @@
                get_checkSearchHPipeMaterial();
            });
            //#endregion
            //#region é€‰æ‹©ä»»åŠ¡å®‰è£…è´¹æŒ‰é’®
            form.on('submit(btnSearchHTaskSetupMoney)', function () {
@@ -1258,11 +1330,175 @@
            form.on('submit(btnSearchHTaskWorkMoney)', function () {
                get_checkSearchHTaskWorkMoney();
            });
            //#endregion
            //#region é€‰æ‹©éƒ¨é—¨æŒ‰é’®
            form.on('submit(btnSearchHDept)', function () {
                get_checkSearchHDept();
            });
            //#endregion
            //#region é€‰æ‹©å—理人按钮
            form.on('submit(btnSearchHReceEmp)', function () {
                get_checkSearchHReceEmp();
            });
            //#endregion
            //#region æŸåæƒ…况 ç‚¹å‡»äº‹ä»¶
            // åˆ†ç¦»ç„¦ç‚¹äº‹ä»¶å’Œè¾“入事件
            $('#HBreakStatus').on('focus', function () {  // ç„¦ç‚¹äº‹ä»¶ï¼šæ˜¾ç¤ºå…¨éƒ¨é€‰é¡¹
                renderOptions1('');
                $('#dropdownMenu1').show();
            }).on('input', function () {  // è¾“入事件:过滤选项
                var inputVal = $(this).val().trim();
                renderOptions1(inputVal);
                $('#dropdownMenu1').show();
            });
            // æ–‡æ¡£ç‚¹å‡»å…³é—­ä¸‹æ‹‰
            $(document).on('click', function (e) {
                if (!$(e.target).closest('#HBreakStatus, #dropdownMenu1').length) {
                    $('#dropdownMenu1').hide();
                }
            });
            $('#HBreakStatus').on('focus', function () {  // ç„¦ç‚¹äº‹ä»¶ï¼šæ˜¾ç¤ºå…¨éƒ¨é€‰é¡¹
                renderOptions1('');
                $('#dropdownMenu1').show();
            }).on('input', function () {  // è¾“入事件:过滤选项
                var inputVal = $(this).val().trim();
                renderOptions1(inputVal);
                $('#dropdownMenu1').show();
            });
            // æ–‡æ¡£ç‚¹å‡»å…³é—­ä¸‹æ‹‰
            $(document).on('click', function (e) {
                if (!$(e.target).closest('#HBreakStatus, #dropdownMenu1').length) {
                    $('#dropdownMenu1').hide();
                }
            });
            // æ¸²æŸ“选项(支持显示全部)
            function renderOptions1(filterText) {
                var filteredData = filterText ?
                    dataList1.filter(function (item) {
                        return item.title.toLowerCase().includes(filterText.toLowerCase());
                    }) :
                    dataList1;  // æ— è¿‡æ»¤æ–‡æœ¬æ—¶æ˜¾ç¤ºå…¨éƒ¨
                var html = '';
                if (filteredData.length > 0) {
                    filteredData.forEach(function (item) {
                        html += `<li class="layui-nav-item" data-value="${item.value}">${item.title}</li>`;
                    });
                } else {
                    html = '<li class="layui-nav-item">无匹配结果(可自由输入)</li>';
                }
                $('#optionList1').html(html);
            }
            // é€‰é¡¹ç‚¹å‡»äº‹ä»¶
            $('#optionList1').on('click', 'li', function () {
                if (!$(this).text().includes('无匹配结果')) {
                    var selectedText = $(this).text();
                    $('#HBreakStatus').val(selectedText).trigger('input');
                }
                $('#dropdownMenu1').hide();
            });
            //#endregion
            //#region æŠ¥æ¼äºº ç‚¹å‡»äº‹ä»¶
            // åˆ†ç¦»ç„¦ç‚¹äº‹ä»¶å’Œè¾“入事件
            $('#HAlarmEmp').on('focus', function () {  // ç„¦ç‚¹äº‹ä»¶ï¼šæ˜¾ç¤ºå…¨éƒ¨é€‰é¡¹
                renderOptions('');
                $('#dropdownMenu').show();
            }).on('input', function () {  // è¾“入事件:过滤选项
                var inputVal = $(this).val().trim();
                renderOptions(inputVal);
                $('#dropdownMenu').show();
            });
            // æ–‡æ¡£ç‚¹å‡»å…³é—­ä¸‹æ‹‰
            $(document).on('click', function (e) {
                if (!$(e.target).closest('#HAlarmEmp, #dropdownMenu').length) {
                    $('#dropdownMenu').hide();
                }
            });
            $('#HAlarmEmp').on('focus', function () {  // ç„¦ç‚¹äº‹ä»¶ï¼šæ˜¾ç¤ºå…¨éƒ¨é€‰é¡¹
                renderOptions('');
                $('#dropdownMenu').show();
            }).on('input', function () {  // è¾“入事件:过滤选项
                var inputVal = $(this).val().trim();
                renderOptions(inputVal);
                $('#dropdownMenu').show();
            });
            // æ–‡æ¡£ç‚¹å‡»å…³é—­ä¸‹æ‹‰
            $(document).on('click', function (e) {
                if (!$(e.target).closest('#HAlarmEmp, #dropdownMenu').length) {
                    $('#dropdownMenu').hide();
                }
            });
            // æ¸²æŸ“选项(支持显示全部)
            function renderOptions(filterText) {
                var filteredData = filterText ?
                    dataList.filter(function (item) {
                        return item.title.toLowerCase().includes(filterText.toLowerCase());
                    }) :
                    dataList;  // æ— è¿‡æ»¤æ–‡æœ¬æ—¶æ˜¾ç¤ºå…¨éƒ¨
                var html = '';
                if (filteredData.length > 0) {
                    filteredData.forEach(function (item) {
                        html += `<li class="layui-nav-item" data-value="${item.value}">${item.title}</li>`;
                    });
                } else {
                    html = '<li class="layui-nav-item">无匹配结果(可自由输入)</li>';
                }
                $('#optionList').html(html);
            }
            // é€‰é¡¹ç‚¹å‡»äº‹ä»¶
            $('#optionList').on('click', 'li', function () {
                if (!$(this).text().includes('无匹配结果')) {
                    var selectedText = $(this).text();
                    $('#HAlarmEmp').val(selectedText).trigger('input');
                }
                $('#dropdownMenu').hide();
            });
            //#endregion
            //#region æ—¥æœŸç‚¹å‡»äº‹ä»¶
            $(document).ready(function () {
                // ç‚¹å‡»è¾“入框时触发(仅鼠标点击生效)
                $("#HDate").on('click', function (data) {
                    HDate = $("#HDate").val();
                    console.log("点击时值:", HDate);
                });
    // å¤±ç„¦æ—¶è§¦å‘(包括键盘操作)
                $("#HDate").on('blur', function (data) {
                    HDate = $("#HDate").val();
                    $("#HDate").val(HDate); // è¿™è¡Œå®žé™…可以省略,因为值未改变
                    GetHProjectNumber();
                    console.log("失焦时值:", HDate);
                });
            });
            //#endregion
            //endregion
            //#endregion
            //#region å¤é€‰æ¡† é€‰ä¸­/取消 è§¦å‘事件
            //#region é‡Œç¨‹ç¢‘
            form.on('checkbox(HIsKey)', function (data) {
                //获取下拉框选中的值
@@ -1286,7 +1522,8 @@
                    }
                });
            });
            //#endregion
            //#endregion
            //#endregion
            //#region æ“ä½œæŒ‰é’®è§¦å‘事件
@@ -1351,7 +1588,7 @@
                            CheckedSet_tableSub_Emp();
                        } else {
                            var HSumMoney = $("#HSumMoney").val();
                            if ( ref.test(value) && ref.test(HSumMoney) ) {
                            if (ref.test(value) && ref.test(HSumMoney)) {
                                obj.update({
                                    HPlanAvgMoney: ((HSumMoney * value) / 100).toFixed(8)                   //预计分配业绩=合同总金额*项目占比
                                    , HPlanCountMoney: (((HSumMoney * value) / 100) * 0.07).toFixed(8)      //(项目提成)预计提成=预计分配业绩*0.07
@@ -1505,7 +1742,7 @@
                    var field = $(this).data('field');
                    laydate.render({
                        elem: this.firstChild
                        , show: true //直接显示
                        , show: true //直接显示
                        , closeStop: this
                        , done: function (nowDate) {
                            //时间选择完成,行数据更新
@@ -1662,7 +1899,7 @@
                    , height: 400
                    , cols: [[
                        { type: 'checkbox', totalRowText: '合计行' }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;'}
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HProjectStageID', title: '项目阶段ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HProjectStageName', title: '项目阶段', edit: 'text', event: "HProjectStageName" }     //f7
@@ -1723,7 +1960,7 @@
                        , { field: 'HIsPM', title: '是否项目经理', templet: "#HIsPM" }
                        , { field: 'HRate', title: '项目占比', edit: 'text', totalRow: true }
                        , { field: 'HPlanAvgMoney', title: '预计分配业绩', edit: 'text', totalRow: true }
                        , { field: 'HPlanCountMoney', title: '预计提成', edit: 'text', totalRow: true}
                        , { field: 'HPlanCountMoney', title: '预计提成', edit: 'text', totalRow: true }
                        , { field: 'HRemarkSub', title: '备注', edit: 'text' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo1' }
                    ]]
@@ -1919,7 +2156,7 @@
                        //获取数据
                        $("#HProjectClassID").val(checkStatus.data[0].HItemID);//项目类别id
                        $("#HProjectClassName").val(checkStatus.data[0].项目类别名称);//项目类别名称
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
@@ -1989,7 +2226,7 @@
                    }
                    , btn2: function (index, layero) { }
                    , end: function () {
                        get_BT($("#HProjectStageBillInterID").val());
                    }
                })
@@ -2165,7 +2402,7 @@
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        }
                        //获取数据
                        $("#HPipeDiameter").val(checkStatus.data[0].管径名称);//管径名称
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
@@ -2178,7 +2415,7 @@
            //#region ç®¡å¾„材质选择页面
            function get_checkSearchHPipeMaterial() {
            function get_checkSearchHPipeMaterial() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
@@ -2311,6 +2548,58 @@
            }
            //#endregion
            //#region éƒ¨é—¨é€‰æ‹©é¡µé¢
            function get_checkSearchHDept() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '部门列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html?openType=2&HOrgName=' + sessionStorage["Organization"], 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        //按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HDeptName").val(checkStatus.data[0].部门名称);
                        $("#HDeptID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //#endregion
            //#region èŒå‘˜é€‰æ‹©é¡µé¢
            function get_checkSearchHReceEmp() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '职员列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_EmployeeList.html?type=HEmp', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        //按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HReceEmp").val(checkStatus.data[0].职员名称);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //#endregion
            //#region  é¡¹ç›®é˜¶æ®µæ¸…单 é€‰æ‹© å¸¦å‡ºè¡¨ä½“数据
            function get_BT(HBillInterID) {
                $.ajax({
@@ -2387,9 +2676,10 @@
                        //获取数据
                        $("#HTaskClassID").val(checkStatus.data[0].HItemID);
                        $("#HTaskClassName").val(checkStatus.data[0].任务类别名称);
                        $("#HTaskClassNumber").val(checkStatus.data[0].任务类别代码);
                        $("#HTaskClassNumber").val(checkStatus.data[0].任务类别代码);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                        //更新项目代码
                        GetHProjectNumber();
                    }
                    , btn2: function (index, layero) { }
                    , end: function () {
@@ -2409,7 +2699,7 @@
                var strurl = '../../项目管理/基础建模/Gy_TaskClass.html'
                if ($("#HTaskClassNumber").val() != "") {
                    strurl = "../../项目管理/基础建模/Gy_TaskClass.html?type=HTaskClass&HNumber=" + $("#HTaskClassNumber").val()
                }
                }
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
@@ -2428,6 +2718,8 @@
                        $("#HTaskClassEntryID").val(checkStatus.data[0].HItemID);
                        $("#HTaskClassEntryName").val(checkStatus.data[0].任务类别名称);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                        //更新项目代码
                        GetHProjectNumber();
                    }
                    , btn2: function (index, layero) { }
                    , end: function () {
@@ -2655,6 +2947,9 @@
                            , "HContacts": tableMain[0]["HContacts"]
                            , "HContactNumber": tableMain[0]["HContactNumber"]
                            , "HDeptID": tableMain[0]["HDeptID"]
                            , "HDeptName": tableMain[0]["HDeptName"]
                            , "HSupplierID": tableMain[0]["HSupplierID"]
                            , "HSupplierName": tableMain[0]["HSupplierName"]
                            , "HMangerEmpID": tableMain[0]["HMangerEmpID"]
@@ -2691,7 +2986,7 @@
                            "HWaterLeakage": tableMain[0]["HWaterLeakage"],
                            "HPipeDiameter": tableMain[0]["HPipeDiameter"],
                            "HPipeMaterial": tableMain[0]["HPipeMaterial"],
                            "HAlarmEm": tableMain[0]["HAlarmEm"],
                            "HAlarmEmp": tableMain[0]["HAlarmEmp"],
                            "HAlarmLink": tableMain[0]["HAlarmLink"],
                            "HReceEmp": tableMain[0]["HReceEmp"],
                            "HReceTime": tableMain[0]["HReceTime"],
@@ -2815,7 +3110,7 @@
                //#region é¡¹ç›®é˜¶æ®µè¡¨æ•°æ®æ£€éªŒ
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i] != "") {
                        ////项目阶段非空检验
                        //if (option.data[i]["HProjectStageID"] == "0") {
                        //    layer.msg("第" + (i + 1) + "行:项目阶段不能为空!");
@@ -2962,6 +3257,28 @@
                return true;
            }
            //#endregion
            //#region ï¼ˆä»»åŠ¡ç±»ï¼‰çš„å·¥ç¨‹é¡¹ç›®æ–°å¢ž
            //任务大类 ä»»åŠ¡é¡¹ç›®åˆ†ç±» æ—¥æœŸ å˜åŒ–时,更新 é¡¹ç›®ä»£ç 
            function GetHProjectNumber() {
                $.ajax({
                    url: GetWEBURL() + '/PM_ProjectBill/GetHProjectHNumber',
                    type: "GET",
                    async: false,
                    data: { "HDeptID": $("#HDeptID").val(), "HDate": $("#HDate").val(), "HTaskClassID": $("#HTaskClassID").val(), "HTaskClassEntryID": $("#HTaskClassEntryID").val()},
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = data1.data[0];
                            $("#HProNumber").val(data.HBillNo)
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endRegion
            //#region é¡¹ç›®é˜¶æ®µè¡¨å¤´å·¥å…·æ äº‹ä»¶ï¼šä¸Šä¸€è¡Œ
            function btn_up(data) {
@@ -3233,7 +3550,7 @@
                        obj.event = "";
                        return false;
                    }else if (event.key == "F6") {
                    } else if (event.key == "F6") {
                        //阶段负责人
                        if (obj.event == "HEmpName") {
                            var HOrgID = $("#HOrgID").val();
@@ -3430,6 +3747,7 @@
                })
            }
            //#endregion
            //#region é¡¹ç›®é˜¶æ®µè¡¨ï¼šæ˜¾ç¤ºåˆ—数据
            function DisPlay_HideColumn() {
                HModName = "PM_ProjectBillSub";
@@ -3441,7 +3759,7 @@
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var titleData = ["RowID","行号","项目阶段ID","相关交付物ID","阶段负责人ID","阶段审核人ID"];//不需要显示的字段 å¯æ‰©å±•
                            var titleData = ["RowID", "行号", "项目阶段ID", "相关交付物ID", "阶段负责人ID", "阶段审核人ID"];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
@@ -3553,6 +3871,7 @@
                })
            }
            //#endregion
            //#region é¡¹ç›®æˆå‘˜è¡¨ï¼šæ˜¾ç¤ºåˆ—数据
            function DisPlay_HideColumn1() {
                HModName = "PM_ProjectBillSub_Emp";
@@ -3565,7 +3884,7 @@
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var titleData = ["行号","项目成员ID"];//不需要显示的字段 å¯æ‰©å±•
                            var titleData = ["行号", "项目成员ID"];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
@@ -3652,6 +3971,7 @@
                form.render('checkbox');
            }
            //#endregion
            //#region é¡¹ç›®æˆå‘˜è¡¨-刷新设置复选框状态
            function CheckedSet_tableSub_Emp() {
                var tableSub_Emp = option1.data;
@@ -3748,7 +4068,7 @@
            ProjectCheckData = obj;
        }
        //f6阶段负责人
        function GetHManagerValue(obj) {
        function GetHManagerValue(obj) {
            RowDatas = obj;
        }
        //阶段负责人