成本项目分配标准:
1:核算在制品单选按钮 选中后前端页面未展示
2:对应方法 文本框填写内容未保存
成本费用单:
1:编辑页面,子表增加一行,成本项目按f7,无法带出对应的数据,同理,物料和部门也是
2:子表日期没有控制,需要控制成日期选择器
3:子表尾端增加操作按钮(可以删除子表中的数据)修复了对应的bug
2个文件已修改
556 ■■■■■ 已修改文件
WebTM/views/基础资料/公用基础资料/Add_Edit_Gy_CostItemAverageType.html 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/成本管理/成本费用单/CB_ItemMoneyBillEdit.html 544 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/»ù´¡×ÊÁÏ/¹«Óûù´¡×ÊÁÏ/Add_Edit_Gy_CostItemAverageType.html
@@ -123,7 +123,7 @@
                                                <div class="layui-col-xs11">
                                                    <label class="layui-form-label"> å¯¹åº”方法:</label>
                                                    <div class="layui-input-block">
                                                        <input class="layui-input" name="HProcNam" id="HProcNam" autocomplete="off">
                                                        <input class="layui-input" name="HProcName" id="HProcName" autocomplete="off">
                                                    </div>
                                                </div>
                                            </div>
@@ -311,6 +311,7 @@
                $("#HCREATEORGID").attr("disabled", true);
                $("#HStopflag").attr("disabled", true);
                $("#HUseFlag").attr("disabled", true);
                $("#HWIPFlag").val(true);
               
                layui.form.render('checkbox');
            }
@@ -344,13 +345,14 @@
                            $("#HHelpCode").val(data.助记码);//助记码
                            $("#HUSEORGID").val(data.HUSEORGID);//使用组织
                            $("#HCREATEORGID").val(data.HCREATEORGID);//创建组织
                            $("#HUseFlag ").val(data.使用状态);//使用状态
                            $("#HCostItemID").val(data.成本项目内码);
                            $("#HUseFlag ").val(data.使用状态);//使用状态HProcName
                            $("#HAverageTypeID").val(data.成本分配类型内码);
                            $("#HAverageTypeID").val(data.成本分配类型内码);
                            $("#HFixRate").val(data.期末在制系数);
                            $("#HRemark").val(data.备注);
                            $("input[name='HWIPFlag']").attr("checked", data.是否核算在制品 == "是" ? true : false);//true:选中 false:不选中
                            $("#HProcName").val(data.对应方法);
                            $("#HCostItemID").val(data.成本项目内码);
                            $("input[name='HWIPFlag']").attr("checked", data.是否核算在制品 == true ? true : false);//true:选中 false:不选中
                            $("input[name='HStopflag']").attr("checked", data.禁用标志 == "是" ? true : false);//true:选中 false:不选中
                            $("#HMakeEmp").val(data.创建人 == "" ? sessionStorage["HMaker"] : data.创建人);
WebTM/views/³É±¾¹ÜÀí/³É±¾·ÑÓõ¥/CB_ItemMoneyBillEdit.html
@@ -253,11 +253,10 @@
    <!--子表表:删除-->
    <script type="text/html" id="barDemo">
        <!--<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <script>
@@ -293,7 +292,7 @@
                }, function () { window.location.href = "../../user/login.html"; });
            }
@@ -356,9 +355,9 @@
            });
            //#endregion
            //#region å­è¡¨ï¼šå¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
@@ -378,16 +377,41 @@
                };
                switch (obj.event) {
                    case 'btn-AddLine':
                        // èŽ·å–å½“å‰æ—¥æœŸ
                        var today = new Date();
                        var formattedDate = today.getFullYear() + '-' +
                            String(today.getMonth() + 1).padStart(2, '0') + '-' +
                            String(today.getDate()).padStart(2, '0');
                        var NewRow = {
                            "HCostItemID": "0"
                            , "HCostItemName": ""
                            , "HMaterID": "0"
                            , "HMaterName": ""
                            , "HMaterialCode": ""
                            , "HDeptName": ""
                            , "HDeptID": "0"
                            , "HMoney": "0"
                            , "HWaster": "0"
                            , "HQty": "0"
                            , "HPrice": "0"
                            , "HDate": formattedDate  // è®¾ç½®å½“前日期
                            , "HBeginBalance": "0"
                            , "HEndBalance": "0"
                            , "HTimes": "0"
                        };
                        table.cache["mainTable"].push(NewRow);
                        option.data = table.cache["mainTable"];
                        table.render(option);
                        for (var i = 1; i <= option.data.length; i++) {
                            $('#HTransType' + i + '').find("option[value='" + option.data[i - 1].HTransType + "']").attr("selected", true);
                        }
                        form.render('select');
                        // é‡æ–°ç»‘定日期选择器事件
                        bindDatePickers();
                        layer.msg('增加一行成功!');
                        break;
                    case 'btn-CopyLine':
                        var copydata = JSON.stringify(data);
                        if (data.length <= 0) {
@@ -705,6 +729,36 @@
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            // ç»‘定日期选择器事件
            function bindDatePickers() {
                // ç§»é™¤æ—§çš„事件绑定
                $(document).off('change', '#mainTable .date-picker');
                // ç»‘定新的事件
                $(document).on('change', '#mainTable .date-picker', function () {
                    var selectedDate = $(this).val();
                    var tr = $(this).closest('tr');
                    var index = tr.attr('data-index');
                    // èŽ·å–è¡¨æ ¼æ•°æ®
                    var tableData = table.cache.mainTable;
                    if (tableData && tableData[index]) {
                        // æ›´æ–°æ•°æ®
                        tableData[index].HDate = selectedDate;
                        // å¯é€‰ï¼šå¦‚果需要立即更新显示
                        $(this).val(selectedDate);
                        console.log('第' + (parseInt(index) + 1) + '行日期更新为:', selectedDate);
                    }
                });
            }
            // åœ¨é¡µé¢åŠ è½½åŽåˆå§‹åŒ–ç»‘å®š
            setTimeout(function () {
                bindDatePickers();
            }, 300);
            //#region èŽ·å–å‚æ•°
            function getUrlVars() {
                var vars = [], hash;
@@ -789,7 +843,7 @@
            //#region å¼¹çª—页面方法
            //#region å…¶ä»–应收单子表初始化
            //#region
            function get_InitGrid() {
                option = {
                    elem: '#mainTable'
@@ -803,41 +857,51 @@
                        , { type: 'numbers', field: '序号', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'HCostItemID', title: '成本项目ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HCostItemName', title: '成本项目名称', edit: 'text', event: "HAreaList", style: 'background-color: #f9f9f9;' }
                        , { field: 'HMaterID', title: '物料ID', hide: true, event: "HAreaList_1",style: 'background-color: #f9f9f9;' }
                        , { field: 'HMaterID', title: '物料ID', hide: true, event: "HAreaList_1", style: 'background-color: #f9f9f9;' }
                        , { field: 'HMaterName', title: '物料名称', edit: 'text', event: "HAreaList_1", style: 'background-color: #f9f9f9;' }
                        , { field: 'HMaterialCode', title: '物料代码', edit: 'text', event: "HAreaList_1", style: 'background-color: #f9f9f9;' }
                        , { field: 'HDeptID', title: '部门ID', hide: true, style: 'background-color: #f9f9f9;'  }
                        , { field: 'HDeptID', title: '部门ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HDeptName', title: '部门', edit: 'text', event: "HAreaList_2", style: 'background-color: #f9f9f9;' }
                        , { field: 'HMoney', title: '金额', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HWaster', title: '损耗', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HQty', title: '数量', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HPrice', title: '单价', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HDate', title: '日期', edit: 'date', style: 'background-color: #f9f9f9;' }
                        , {
                            field: 'HDate',
                            title: '日期',
                            width: 160,
                            edit: false,  // ç¦ç”¨layui的编辑,使用我们自己的
                            templet: function (d) {
                                // ä½¿ç”¨HTML5的date输入框
                                var dateValue = d.HDate || new Date().toISOString().split('T')[0];
                                return '<input type="date" class="layui-input date-picker" value="' + dateValue + '" style="height: 28px; padding: 0 5px; width: 100%; border: none; background: transparent;">';
                            }
                        }
                        , { field: 'HBeginBalance', title: '开始数值', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HEndBalance', title: '结束数值', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HTimes', title: '时间周期', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 70 }
                    ]]
                }
                var rowdata = [
                    {
                        "HCostItemID": "0"
                        , "HCostItemName": ""
                        , "HMaterID": "0"
                        , "HMaterName": ""
                        , "HPMoneyName": ""
                        , "HTransType": ""
                        , "HMoney": "0"
                        , "HDeptName": ""
                        , "HDeptID": "0"
                        , "HMaterialCode": ""
                        // , "HTaxRate": "0"
                        // , "HSumMoney": "0"
                        , "HRemark": ""
                    }
                ];
                var rowdata = [{
                    "HCostItemID": "0"
                    , "HCostItemName": ""
                    , "HMaterID": "0"
                    , "HMaterName": ""
                    , "HMaterialCode": ""
                    , "HDeptName": ""
                    , "HDeptID": "0"
                    , "HMoney": "0"
                    , "HWaster": ""
                    , "HQty": "0"
                    , "HPrice": "0"
                    , "HDate": ""
                    , "HBeginBalance": "0"
                    , "HEndBalance": "0"
                    , "HTimes": ""
                }];
                option.data = rowdata;
                table.render(option);
                DisPlay_HideColumn();
@@ -875,103 +939,110 @@
            function set_GridCellCheck(obj) {
                window.tableEditObj = obj;
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                        if (event.key == "F7") {
                            //器具管理
                            // åŽŸä»£ç ï¼šif (obj.event == "HAreaList") { ... } å†…部
                            if (obj.event == "HAreaList") {
                                CusType = 2;
                                // æ–°å¢žï¼šå°†ç¼–辑对象obj赋值给全局变量,供GetProjectMoneyValue使用
                                tableEditObj = obj;
                                // æ‰“开器具管理小窗体(原有代码不变)
                                layer.open({
                                    type: 2,
                                    skin: 'layui-layer-rim',
                                    area: ['90%', '90%'],
                                    title: '项目费用列表',
                                    shift: 2,
                                    content: ["../../基础资料/公用基础资料/Gy_ItemMoney.html", "yes"],
                                    // ä»¥ä¸‹åŽŸæœ‰ä»£ç å…¨éƒ¨ä¿ç•™ï¼Œæ— éœ€ä¿®æ”¹
                                    btn: ['确定', '取消'],
                                    btn1: function (index, layero) {//按钮【按钮一】的回调
                                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (event.key == "F7") {
                        // èŽ·å–å½“å‰ç¼–è¾‘çš„å­—æ®µ
                        var field = $(this).attr('data-field');
                        // æˆæœ¬é¡¹ç›®é€‰æ‹©
                        if (field === 'HCostItemName' || obj.event === 'HAreaList') {
                            CusType = 2;
                            tableEditObj = obj;
                            layer.open({
                                type: 2,
                                skin: 'layui-layer-rim',
                                area: ['90%', '90%'],
                                title: '项目费用列表',
                                shift: 2,
                                content: ["../../基础资料/公用基础资料/Gy_ItemMoney.html", "yes"],
                                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('请选择数据');
                                    }
                                    //OptionData = checkStatus.data[0];
                                    // æ›´æ–°å½“前编辑行数据
                                    var selected = checkStatus.data[0];
                                    obj.update({
                                        "HCostItemID": checkStatus.data[0].HItemID
                                        , "HCostItemName": checkStatus.data[0].费用项目名称
                                    })
                                    layer.close(index);//关闭弹窗
                                        "HCostItemID": selected.HItemID || '',
                                        "HCostItemName": selected['费用项目名称'] || selected.费用项目名称 || ''
                                    });
                                    layer.close(index);
                                },
                                end: function () {
                                    // å¼¹çª—关闭后的处理
                                    tableEditObj = null;
                                }
                                , end: function () {
                                    //obj.update({
                                    //    "HBeginAddr": OptionData.HItemID
                                    //    , "HBeginAddrName": OptionData.地区名称
                                    //})
                                }
                            })
                            });
                        }
                            if (obj.event === "HAreaList_1") {
                                CusType = 2;
                                tableEditObj = obj; // èµ‹å€¼å…¨å±€ç¼–辑对象,供GetGyMaterial接收
                                layer.open({
                                    type: 2,
                                    skin: 'layui-layer-rim',
                                    area: ['90%', '90%'],
                                    title: '物料列表',
                                    shift: 2,
                                    content: ["../../基础资料/公用基础资料/Gy_Material.html", "yes"],
                                    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('请选择物料数据', { icon: 2 });
                                        }
                                        // æ‰‹åŠ¨é€‰æ‹©æ•°æ®æ—¶çš„å›žæ˜¾ï¼ˆåŒå‡»è‡ªåŠ¨å›žæ˜¾å…¼å®¹ï¼‰ï¼ŒåŒ¹é…ç‰©æ–™å¼¹çª—å­—æ®µ
                                        obj.update({
                                            "HMaterID": checkStatus.data[0].HItemID || '',
                                            "HMaterName": checkStatus.data[0]['物料名称'] || '',
                                            "HMaterialCode": checkStatus.data[0]['物料代码'] || '',
                                        });
                                        layer.close(index);
                                    }
                                });
                            }
                        if (obj.event === "HAreaList_2") {
                        // ç‰©æ–™é€‰æ‹©
                        else if (field === 'HMaterName' || obj.event === 'HAreaList_1') {
                            CusType = 2;
                            tableEditObj = obj; // èµ‹å€¼å…¨å±€ç¼–辑对象,供GetGyMaterial接收
                            tableEditObj = obj;
                            layer.open({
                                type: 2,
                                skin: 'layui-layer-rim',
                                area: ['90%', '90%'],
                                title: '物料列表',
                                shift: 2,
                                content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html', 'yes'],
                                content: ["../../基础资料/公用基础资料/Gy_Material.html", "yes"],
                                btn: ['确定', '取消'],
                                btn1: function (index, layero) {
                                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                                    var iframeWindow = window['layui-layer-iframe' + index];
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');
                                    if (checkStatus.data.length === 0) {
                                        return layer.msg('请选择物料数据', { icon: 2 });
                                    }
                                    // æ‰‹åŠ¨é€‰æ‹©æ•°æ®æ—¶çš„å›žæ˜¾ï¼ˆåŒå‡»è‡ªåŠ¨å›žæ˜¾å…¼å®¹ï¼‰ï¼ŒåŒ¹é…ç‰©æ–™å¼¹çª—å­—æ®µ
                                    var selected = checkStatus.data[0];
                                    obj.update({
                                        "HDeptName": checkStatus.data[0]['部门名称'] || '',
                                        "HDeptID": checkStatus.data[0]['HItemID'] || ''
                                        "HMaterID": selected.HItemID || '',
                                        "HMaterName": selected['物料名称'] || '',
                                        "HMaterialCode": selected['物料代码'] || ''
                                    });
                                    layer.close(index);
                                },
                                end: function () {
                                    tableEditObj = null;
                                }
                            });
                        }
                        // éƒ¨é—¨é€‰æ‹©
                        else if (field === 'HDeptName' || obj.event === 'HAreaList_2') {
                            CusType = 2;
                            tableEditObj = obj;
                            layer.open({
                                type: 2,
                                skin: 'layui-layer-rim',
                                area: ['90%', '90%'],
                                title: '部门列表',
                                shift: 2,
                                content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html', 'yes'],
                                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('请选择数据', { icon: 2 });
                                    }
                                    var selected = checkStatus.data[0];
                                    obj.update({
                                        "HDeptName": selected['部门名称'] || '',
                                        "HDeptID": selected['HItemID'] || ''
                                    });
                                    layer.close(index);
                                },
                                end: function () {
                                    tableEditObj = null;
                                }
                            });
                        }
                        // æ¸…空事件标识,避免重复触发
                        obj.event = "";
                        // é˜»æ­¢äº‹ä»¶å†’泡和默认行为
                        e.preventDefault();
                        e.stopPropagation();
@@ -1147,14 +1218,14 @@
                }
            }
            //#endregion
            //#endregion
            //#region éžç©ºéªŒè¯
@@ -1259,7 +1330,7 @@
                $.ajax({
                    type: "POST",
                    url: GetWEBURL() + "CB_ItemMoneyBillTran/SaveCB_ItemMoneyBillMain", //方法所在页面和方法名
                    async: true,
                    data: { "msg": sMainSub },
@@ -1528,243 +1599,50 @@
        });
        //function GetHDeptNameValue(obj) {
        //    if (!tableEditObj || !tableEditObj.update || !obj || !obj[0]) {
        //        return layer.msg('数据传递异常,请重新选择', { icon: 2 });
        //    }
        //    var data = obj[0];
        //    tableEditObj.update({
        //        HDeptID: data.HItemID || '',
        //        HDeptName: data.部门名称 || data['部门名称'] || ''
        //    });
        //    tableEditObj = null; // æ¸…空临时对象
        //}
        //function GetProjectMoneyValue(selectData) {
        //    if (!tableEditObj || !tableEditObj.update || !selectData) {
        //        return layer.msg('数据传递异常,请重新选择', { icon: 2 });
        //    }
        //    tableEditObj.update({
        //        HCostItemID: selectData.HItemID || '',
        //        HCostItemName: selectData['费用项目名称'] || selectData.费用项目名称 || ''
        //    });
        //    tableEditObj = null;
        //}
        //var tableEditObj = null; // å…¨å±€ä¸´æ—¶å­˜å‚¨è¡¨æ ¼ç¼–辑对象obj
        function GetHDeptNameValue(obj) {
            try {
                console.log('GetHDeptNameValue被调用,参数:', obj);
                if (!obj) {
                    console.error('GetHDeptNameValue: å‚æ•°obj为空');
                    return layer.msg('数据传递异常:参数为空', { icon: 2 });
                }
                if (!Array.isArray(obj) || obj.length === 0) {
                    console.error('GetHDeptNameValue: å‚数不是数组或数组为空');
                    return layer.msg('数据传递异常:请选择有效数据', { icon: 2 });
                }
                console.log('tableEditObj状态:', tableEditObj);
                if (!tableEditObj) {
                    console.error('GetHDeptNameValue: tableEditObj为空,可能是F7快捷键未正确设置');
                    return layer.msg('编辑对象丢失,请重新按F7选择', { icon: 2 });
                }
                if (!tableEditObj.update) {
                    console.error('GetHDeptNameValue: tableEditObj.update方法不存在');
                    console.error('完整的tableEditObj对象:', JSON.stringify(tableEditObj));
                    return layer.msg('编辑对象异常,无法更新数据', { icon: 2 });
                }
                var data = obj[0];
                console.log('接收到的部门数据:', data);
                // æ£€æŸ¥å¿…要字段
                if (!data.HItemID && !data['HItemID']) {
                    console.warn('部门数据缺少HItemID字段,可用字段:', Object.keys(data));
                }
                var deptName = data.部门名称 || data['部门名称'] || '';
                var deptId = data.HItemID || '';
                console.log('即将更新部门数据 - ID:', deptId, '名称:', deptName);
                tableEditObj.update({
                    HDeptID: deptId,
                    HDeptName: deptName
                });
                console.log('部门数据更新成功');
                // æ¸²æŸ“表单
                layui.form.render();
                tableEditObj = null; // æ¸…空临时对象
                console.log('tableEditObj已清空');
            } catch (error) {
                console.error('GetHDeptNameValue执行出错:', error);
                console.error('错误堆栈:', error.stack);
                layer.msg('部门选择失败:' + error.message, { icon: 2 });
            }
        }
        function GetProjectMoneyValue(selectData) {
            try {
                console.log('GetProjectMoneyValue被调用,参数:', selectData);
                console.log('参数类型:', typeof selectData);
                console.log('是否是数组:', Array.isArray(selectData));
                // å¤„理参数:可能是数组也可能是对象
                var data;
                if (Array.isArray(selectData)) {
                    console.log('参数是数组,长度:', selectData.length);
                    if (selectData.length === 0) {
                        return layer.msg('请选择有效的数据', { icon: 2 });
                    }
                    data = selectData[0]; // å–第一个元素
                    console.log('从数组中提取的数据:', data);
                } else {
                    data = selectData; // å·²ç»æ˜¯å¯¹è±¡
                }
                console.log('最终处理的数据:', data);
                if (!data) {
                    console.error('GetProjectMoneyValue: å¤„理后的数据为空');
                    return layer.msg('数据传递异常:费用项目数据为空', { icon: 2 });
                }
                console.log('tableEditObj状态:', tableEditObj);
                if (!tableEditObj) {
                    console.error('GetProjectMoneyValue: tableEditObj为空');
                    console.log('尝试从window.currentEditObj获取:', window.currentEditObj);
                    // å°è¯•从其他可能的全局变量获取
                    if (window.currentEditObj) {
                        console.log('使用window.currentEditObj替代');
                        tableEditObj = window.currentEditObj;
                    } else {
                        console.log('尝试从F7事件中恢复tableEditObj...');
                        // å¯èƒ½æ˜¯åœ¨å¼¹çª—中双击时,tableEditObj已经被清空了
                        // éœ€è¦æ£€æŸ¥æ˜¯å¦æœ‰å…¶ä»–方式获取当前编辑行
                        layer.msg('编辑对象丢失,请重新按F7选择', { icon: 2 });
                        return;
                    }
                }
                if (!tableEditObj.update) {
                    console.error('GetProjectMoneyValue: tableEditObj.update方法不存在');
                    console.error('完整的tableEditObj对象:', tableEditObj);
                    // å°è¯•获取tr元素
                    var trElement = tableEditObj.tr;
                    if (trElement) {
                        console.log('找到tr元素,data-index:', $(trElement).attr('data-index'));
                    }
                    return layer.msg('编辑对象异常,无法更新费用项目数据', { icon: 2 });
                }
                console.log('接收到的费用项目数据:', data);
                console.log('数据的所有字段:', Object.keys(data));
                // æ£€æŸ¥å¿…要字段 - å…ˆæŸ¥çœ‹æœ‰å“ªäº›å­—段
                console.log('查找费用项目相关字段...');
                var itemId = '';
                var itemName = '';
                // å°è¯•多种可能的字段名
                if (data.HItemID) itemId = data.HItemID;
                else if (data['HItemID']) itemId = data['HItemID'];
                else if (data.id) itemId = data.id;
                else if (data.ID) itemId = data.ID;
                if (data['费用项目名称']) itemName = data['费用项目名称'];
                else if (data.费用项目名称) itemName = data.费用项目名称;
                else if (data.HName) itemName = data.HName;
                else if (data.name) itemName = data.name;
                else if (data.名称) itemName = data.名称;
                console.log('找到的费用项目数据 - ID:', itemId, '名称:', itemName);
                if (!itemId && !itemName) {
                    console.warn('未找到有效的费用项目字段,全部字段:', data);
                    layer.msg('未找到费用项目信息,请检查数据', { icon: 2 });
                    return;
                }
                console.log('即将更新费用项目数据 - ID:', itemId, '名称:', itemName);
                tableEditObj.update({
                    HCostItemID: itemId,
                    HCostItemName: itemName
            if (window.tableEditObj && window.tableEditObj.update) {
                var data = Array.isArray(selectData) ? selectData[0] : selectData;
                window.tableEditObj.update({
                    "HCostItemID": data.HItemID || '',
                    "HCostItemName": data['费用项目名称'] || data.费用项目名称 || ''
                });
                console.log('费用项目数据更新成功');
                // é‡æ–°æ¸²æŸ“表格以确保数据显示
                if (layui.table) {
                    var option = window.option || {};
                    if (option.data) {
                        console.log('重新渲染表格,数据行数:', option.data.length);
                        layui.table.render(option);
                    }
                }
                // æ¸²æŸ“表单
                layui.form.render();
                // ä¸æ¸…空tableEditObj,避免第二次调用失败
                // tableEditObj = null;
                // if (window.currentEditObj) {
                //     window.currentEditObj = null;
                // }
                console.log('更新完成,保留tableEditObj以备后续使用');
                // å¯é€‰ï¼šæ·»åŠ æˆåŠŸæç¤º
                layer.msg('费用项目选择成功', { icon: 1, time: 1000 });
            } catch (error) {
                console.error('GetProjectMoneyValue执行出错:', error);
                console.error('错误堆栈:', error.stack);
                console.error('当前selectData:', selectData);
                console.error('当前tableEditObj:', tableEditObj);
                layer.msg('费用项目选择失败:' + error.message, { icon: 2 });
            }
        }
        var tableEditObj = null; // å…¨å±€ä¸´æ—¶å­˜å‚¨è¡¨æ ¼ç¼–辑对象obj(若已定义,无需重复定义)
        function GetGyMaterial(selectData) {
            // æ ¡éªŒï¼šç¡®ä¿ç¼–辑对象、接收方法、弹窗数据均有效
            if (!tableEditObj || !tableEditObj.update || !selectData) {
                return layer.msg('物料数据传递异常,请重新选择', { icon: 2 });
            if (window.tableEditObj && window.tableEditObj.update) {
                var data = Array.isArray(selectData) ? selectData[0] : selectData;
                window.tableEditObj.update({
                    "HMaterID": data.HItemID || '',
                    "HMaterName": data['物料名称'] || '',
                    "HMaterialCode": data['物料代码'] || ''
                });
            }
            // å›žæ˜¾æ•°æ®åˆ°çˆ¶è¡¨æ ¼å•元格(字段与父表格列配置严格对应)
            tableEditObj.update({
                HMaterID: selectData.HItemID || '',        // ç‰©æ–™ID(弹窗返回核心字段HItemID)
                HMaterialCode: selectData['物料代码'] || '',  // ç‰©æ–™ä»£ç ï¼ˆå¼¹çª—返回中文字段名)
                HMaterName: selectData['物料名称'] || '',  // ç‰©æ–™åç§°ï¼ˆå¼¹çª—返回中文字段名)
            });
            // æ¸…空全局临时对象,避免重复赋值
            tableEditObj = null;
        }
        function GetHDeptNameValue(obj) {
            if (window.tableEditObj && window.tableEditObj.update) {
                var data = Array.isArray(obj) ? obj[0] : obj;
                window.tableEditObj.update({
                    "HDeptName": data.部门名称 || data['部门名称'] || '',
                    "HDeptID": data.HItemID || ''
                });
            }
        }
        setTimeout(function () {
            // é‡æ–°ç»‘定行内事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
        }, 300);
        function dealDoubleToFixed(data, num) {
            //用于设置小数位数
            var dotLength = 0;
@@ -1798,7 +1676,7 @@
                }
            }
        }
                //#endregion
                    //#endregion
    </script>
</body>
</html>