1
z1873
2025-05-30 d0142c7272bc72c32d29974e9dd2ace5552b835b
WebTM/views/»ù´¡×ÊÁÏ/¹«Óûù´¡×ÊÁÏ/Gy_MaterialCorrection2.html
@@ -27,14 +27,14 @@
        /* é˜²æ­¢ä¸‹æ‹‰æ¡†çš„下拉列表被隐藏---必须设置--- */
        td:has(select) .layui-table-cell {
            overflow: visible !important;
            padding: 0;
            box-sizing: border-box;
        }
        /* ä½¿å¾—下拉框与单元格刚好合适 */
        th .layui-form-select {
        /* td:has(select) .layui-form-select {
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
        } */
    </style>
</head>
@@ -104,9 +104,11 @@
                                                    <option value=">=">>=</option>
                                                    <option value=">">></option>
                                                    <option value="<=">
                                                        <=< <option value="<">
                                                            << <option value="<>">
                                                                <>
                                                        <= </option>
                                                    <option value="<">
                                                        < </option>
                                                    <option value="<>">
                                                        <>
                                                    </option>
                                                    <option value="7">包含</option>
                                                    <option value="8">左包含</option>
@@ -223,11 +225,11 @@
                                <option value="0">委外</option>
                            </select>
                        </script>
                        <script type="text/html" id="materFormula">
                            <select name="HMaterRuleType" id="HMaterRuleType" lay-verify="HMaterRuleType">
                                <option value="其他">其他</option>
                                <option value="染料">染料</option>
                                <option value="助剂">助剂</option>
                        <script type="text/html" id="Division">
                            <select name="HDivisionID" id="HDivisionID" lay-verify="HDivisionID" lay-filter="divisionIDSelect">
                                <option value="3">注塑事业部</option>
                                <option value="4">软磁事业部</option>
                                <option value="0">其他事业部</option>
                            </select>
                        </script>
                    </form>
@@ -236,6 +238,7 @@
        </div>
    </div>
    <script>
        var optionData = []
        //#region æŠ˜å æ³¨é‡Š
        //#endregion
        layui.config({
@@ -449,18 +452,30 @@
            // ä¸‹æ‹‰æ¡†äº‹ä»¶
            form.on('select(materPropertySelect)', function (obj) {
                let value = obj.value
                let curretDate = tempOption.data
                let curretDate = table.cache['tempTable']
                curretDate.forEach(item => {
                    if (item.ColmCols === '物料属性') {
                        item['value'] = value
                    }
                })
                // table.reload('tempTable', {
                //     data: tempOption.data,
                // })
                table.reload('tempTable', {
                    data: curretDate
                })
            })
            form.on('select(divisionIDSelect)', function (obj) {
                let value = obj.value
                let curretDate = table.cache['tempTable']
                curretDate.forEach(item => {
                    if (item.ColmCols === '事业部') {
                        item['value'] = value
                    }
                })
                table.reload('tempTable', {
                    data: curretDate
                })
            })
            //#region æŸ¥è¯¢æŒ‰é’®
@@ -684,8 +699,16 @@
                                    soulTable.render(this);
                                }
                            }
                            let _dataCol;
                            //刷新表格数据
                            // DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, titleData)
                            DisPlay_HideColumnWithCallback(HModName, sessionStorage["HUserName"], option, titleData,
                                function () {
                                    let that = this
                                    _dataCol = dataCol
                                }
                            )
                            ins = table.render(option);
                            //刷新按钮显示
@@ -753,8 +776,18 @@
                            // Display_HideButton(set_HideButton_ID, HBillType, HModName, sessionStorage["HUserName"]);
                            DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, titleData)
                            //刷新表格数据
                            ins = table.render(option);
                            let _newData = option.cols[0]
                            let hideCols = []
                            _newData.forEach(item => {
                                if (item.hide === true) {
                                    hideCols.push(item.field);
                                }
                            })
                            let list2 = data1.list;
                            let data2 = []
@@ -770,7 +803,7 @@
                            tempOption.done = function (res, curr, count) {
                                let filterReg = new RegExp(/人|时间|ID|标记|Flag|选择|物料代码|物料名称/i) // éšè—æŒ‡å®šå±žæ€§
                                $.each(res.data, function (index, item) {
                                    if (filterReg.test(item.ColmCols) === true) {
                                    if (filterReg.test(item.ColmCols) === true || hideCols.includes(item.ColmCols)) {
                                        var tr = $('tr[data-index="' + index + '"] td[data-field="value"]').closest('tr')
                                        tr.addClass('layui-hide')
                                    }
@@ -785,7 +818,23 @@
                                        $(td).prepend(selectMaterProperty);
                                        let select = $('tr[data-index="' + index + '"] select[name="HMaterClsID"]'); // ç‰©æ–™å±žæ€§å¯¹åº”的下拉框
                                        if (item['value'] === '') {
                                            select.val('0');
                                            select.val(' ');
                                        } else {
                                            select.val(item['value']);
                                        }
                                        form.render('select')
                                    }
                                    if (item.ColmCols === '事业部') {
                                        let selectMaterProperty = $("#Division").clone(true, true).html();
                                        let tr = $('tr[data-index="' + index + '"] div:contains("事业部")').closest('tr');
                                        let td = tr.find('td[data-field="value"]') // éœ€è¦åŒ…含下拉框的容器
                                        td.removeAttr("data-edit")
                                        td.find('.layui-table-cell').addClass('layui-hide')
                                        $(td).prepend(selectMaterProperty);
                                        let select = $('tr[data-index="' + index + '"] select[name="HDivisionID"]'); // ç‰©æ–™å±žæ€§å¯¹åº”的下拉框
                                        if (item['value'] === '') {
                                            select.val(' ');
                                        } else {
                                            select.val(item['value']);
                                        }
@@ -812,7 +861,7 @@
                            if ($("#ColName option").length < 1) {
                                ColFilter();
                            }
                            layer.alert("查询成功", { icon: 1 });
                            // layer.alert("查询成功", { icon: 1 });
                        } else {
                            //option.data = [[]]
                            //table.render(option);
@@ -889,8 +938,6 @@
                    }
                })
                filterUnit = filterUnit.html();
                $('#btnAddFilter').before(filterUnit);
                ColFilter()
@@ -919,14 +966,6 @@
                    $("#ColContent").val(data2["ColContent"]);
                    form.render('select');
                }
            }
            //批量更新
            function batchUpdate(obj, reg) {
                let field = obj.field;
                let value = obj.value;
                tempData.forEach(item => {
                    item[field] = value
                })
            }
            function btnrowDouble(obj) {
@@ -1187,18 +1226,43 @@
                        return; // è§†ä¸ºé€€å‡º
                    }
                    let dataObj = {}
                    let data = tempOption.data.forEach(item => {
                    let data = table.cache['tempTable'].forEach(item => {
                        let mergeObj = {}
                        mergeObj[item['ColmCols']] = item['value']
                        Object.assign(dataObj, mergeObj)
                    });
                    let mainTableCache = table.checkStatus('mainTable')
                    let idStr = '(' + Array.from(mainTableCache.data).map(e => "'" + e.HItemID + "'").join(',') + ')'
                    let mainTableCache = table.checkStatus('mainTable').data
                    if (mainTableCache.length < 1) {
                        layer.alert('至少要有一条选中的数据!', { icon: 5 })
                        return
                    }
                    let metaInfo = mainTableCache.map(item => Object.assign(item, {
                        // HOnceRightRate: item['一次合格率标准值']
                        // , HDivisionID: divisionJudgment(dataObj['事业部'])
                        HNumber: item['物料代码']
                        // , HName: item['物料名称']
                        // , HModel: item['规格型号']
                        // , HMaterClsID: item['物料属性']
                        // , HRemark: item['备注']
                        // , HQtyDec: item['数量精度']
                        // , HPriceDec: item['单价精度']
                        // , HMoneyDec: item['金额精度']
                        // , HTaxRate: item['默认税率']
                        // , HProfitRate: item['默认利润率']
                        // , HTaxCost: item['含税成本价']
                        // , HFootPrice: item['结算价']
                        // , HWeight: item['克重']
                        // , HColorRemark: item['染色要求']
                        // , HWidth: item['幅宽']
                    }));
                    let idStr = '(' + Array.from(mainTableCache).map(e => "'" + e.HItemID + "'").join(',') + ')'
                    let mapped = Object.assign(dataObj,
                        {
                            HOnceRightRate: dataObj['一次合格率标准值']
                            // , HDivisionID: divisionJudgment(dataObj['事业部'])
                            , HDivisionID: dataObj['事业部']
                            , HNumber: dataObj['物料代码']
                            , HName: dataObj['物料名称']
                            , HModel: dataObj['规格型号']
@@ -1214,14 +1278,26 @@
                            , HWeight: dataObj['克重']
                            , HColorRemark: dataObj['染色要求']
                            , HWidth: dataObj['幅宽']
                            // , HWHID: dataObj['HWHID']
                        }
                    )
                    let chineseReg = new RegExp(/^[\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]+$/)
                    // åŽ»é™¤ä¼ è¾“æ•°æ®çš„ä¸­æ–‡éƒ¨åˆ†ï¼Œæ•°æ®åº“å’ŒåŽç«¯çš„å­—æ®µä¸ä¼šæ˜¯ä¸­æ–‡ï¼Œå‡å°‘ä¼ è¾“æ•°æ®çš„é•¿åº¦
                    $.each(mapped, (key, value) => {
                        if (value === '' || chineseReg.test(key)) {
                            delete mapped[key]
                        }
                    })
                    // XXX: å¯èƒ½åœ¨æ•°æ®é‡å¤§çš„æƒ…况下影响性能 é…Œæƒ…删除
                    $.each(metaInfo[0], (key, value) => {
                        if (value === '' || chineseReg.test(key)) {
                            metaInfo.forEach(item => {
                                delete item[key]
                            })
                        }
                    })
                    if (mapped.HNumber == 0) {
                        throw "请输入物料代码!";
@@ -1235,7 +1311,7 @@
                    if (mapped.HUnitName == 0) {
                        throw "请选择主计量单位!";
                    }
                    debugger;
                    ;
                    if (mapped.HWeight !== undefined) {
                        let HWeight = mapped.HWeight.toString()
                        if (HWeight.substring(HWeight.length - 1, HWeight.length) == ".") {
@@ -1269,15 +1345,16 @@
                        throw "金额精度,请输入0-9正确数字"
                    }
                    debugger;
                    ;
                    let dataStr = JSON.stringify(mapped)
                    metaInfo = JSON.stringify(metaInfo)
                    $.ajax(
                        {
                            type: "POST",
                            url: GetWEBURL() + "/Gy_Material/SaveGy_MaterialList_Modify", //方法所在页面和方法名
                            async: true,
                            data: { "msg": dataStr + ';' + sessionStorage["HUserName"] + ';' + sessionStorage["OrganizationID"] + ';'  + idStr },
                            data: { "msg": metaInfo + ';' + sessionStorage["HUserName"] + ';' + sessionStorage["OrganizationID"] + ';' + idStr + ';' + dataStr },
                            dataType: "json",
                            success: function (data) {
                                if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
@@ -1517,11 +1594,17 @@
                var filterGroup = $('#filter-group')
                Array.from(filterGroup.find('select')).forEach(d => {
                    var temp = $(d).val()
                    if (colNameReg.test(d.id)) {
                        $(d).empty();
                        $(d).append(Organization);
                    }
                    $(d).val(temp)
                    if (temp === null) {
                        $(d).val('0')
                    } else {
                        $(d).val(temp)
                    }
                })
                form.render('select');
            }
@@ -1740,7 +1823,7 @@
            //     $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
            //         if (event.key == "F7") {
            //             var obj = obj
            //             debugger;
            //             ;
            //         }
            //     })
            // }
@@ -1750,6 +1833,7 @@
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    if (e.key == 'F7') {
                        let eventName = obj.event
                        let tempTableCacheData = table.cache['tempTable']
                        if (eventName === 'onHUnitNameKeyDownHandler') {
                            layer.open({
@@ -1771,7 +1855,7 @@
                                    if (checkStatus.data.length === 0) {
                                        return layer.msg('请选择数据');
                                    } else if (checkStatus.data.length === 1) {
                                        tempOption.data.forEach(item => {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === 'HUnitName') {
                                                item['value'] = checkStatus.data[0].计量单位名称
                                            }
@@ -1786,13 +1870,34 @@
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempOption.data
                                            data: tempTableCacheData
                                        })
                                    }
                                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) { }
                                , end: function () {
                                    if (optionData.length > 0) {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === 'HUnitName') {
                                                item['value'] = optionData[0].计量单位名称
                                            }
                                            if (item.ColmCols === 'HUnitID') {
                                                item['value'] = optionData[0].HItemID
                                            }
                                            if (item.ColmCols === '计量单位名称') {
                                                item['value'] = optionData[0].计量单位名称
                                            }
                                            if (item.ColmCols === '计量单位代码') {
                                                item['value'] = optionData[0].计量单位代码
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempTableCacheData
                                        })
                                    }
                                }
                            })
                        }
                        else if (eventName === 'onBasicUnitCodeKeyDownHandler') {
@@ -1815,8 +1920,7 @@
                                    if (checkStatus.data.length === 0) {
                                        return layer.msg('请选择数据');
                                    } else if (checkStatus.data.length === 1) {
                                        debugger
                                        tempOption.data.forEach(item => {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === 'HBASEUNITID') {
                                                item['value'] = checkStatus.data[0].HItemID
                                            }
@@ -1828,16 +1932,33 @@
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempOption.data
                                            data: tempTableCacheData
                                        })
                                    }
                                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) { }
                                , end: function () {
                                    if (optionData.length > 0) {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === 'HBASEUNITID') {
                                                item['value'] = optionData[0].HItemID
                                            }
                                            if (item.ColmCols === '基本计量单位代码') {
                                                item['value'] = optionData[0].计量单位代码
                                            }
                                            if (item.ColmCols === '基本计量单位') {
                                                item['value'] = optionData[0].计量单位名称
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempTableCacheData
                                        })
                                    }
                                }
                            })
                        }
                        else if (eventName === 'onWareHouseKeyDownHandler') {
@@ -1861,11 +1982,11 @@
                                        return layer.msg('请选择一条数据');
                                    }
                                    tempOption.data.forEach(item => {
                                    tempTableCacheData.forEach(item => {
                                        if (item.ColmCols === '仓库名称') {
                                            item['value'] = checkStatus.data[0].仓库名称
                                        }
                                        if (item.ColmCols === 'HWhID') {
                                        if (item.ColmCols === 'HWHID') {
                                            item['value'] = checkStatus.data[0].HItemID
                                        }
                                        if (item.ColmCols === '仓库代码') {
@@ -1874,12 +1995,31 @@
                                    })
                                    table.reload('tempTable', {
                                        data: tempOption.data
                                        data: tempTableCacheData
                                    })
                                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) { }
                                , end: function () {
                                    if (optionData.length > 0) {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === '仓库名称') {
                                                item['value'] = optionData[0].仓库名称
                                            }
                                            if (item.ColmCols === 'HWHID') {
                                                item['value'] = optionData[0].HItemID
                                            }
                                            if (item.ColmCols === '仓库代码') {
                                                item['value'] = optionData[0].仓库代码
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempTableCacheData
                                        })
                                    }
                                }
                            })
                        }
                        else if (eventName === 'onMaterialClassKeyDownHandler') {
@@ -1902,7 +2042,7 @@
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg('请选择一条数据');
                                    }
                                    tempOption.data.forEach(item => {
                                    tempTableCacheData.forEach(item => {
                                        if (item.ColmCols === '物料分类名称') {
                                            item['value'] = checkStatus.data[0].物料分类名称
                                        }
@@ -1915,13 +2055,30 @@
                                    })
                                    table.reload('tempTable', {
                                        data: tempOption.data
                                        data: tempTableCacheData
                                    })
                                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) { }
                                , end: function () {
                                    if (optionData.length > 0) {
                                        tempTableCacheData.forEach(item => {
                                            if (item.ColmCols === '物料分类名称') {
                                                item['value'] = optionData[0].物料分类名称
                                            }
                                            if (item.ColmCols === 'HMaterTypeID') {
                                                item['value'] = optionData[0].HItemID
                                            }
                                            if (item.ColmCols === '物料分类代码') {
                                                item['value'] = optionData[0].物料分类代码
                                            }
                                        })
                                        table.reload('tempTable', {
                                            data: tempTableCacheData
                                        })
                                    }
                                }
                            })
                        }
                        obj.event = ''
@@ -1999,7 +2156,6 @@
            const WHReg = new RegExp(/仓库|WH/);
            const MaterReg = new RegExp(/物料分类|MaterType/);
            const baseMaterReg = new RegExp(/基本计量单位代码|HBASEUNITID|基本计量单位/)
            debugger;
            if (baseMaterReg.test(colName) === true) {
                return 'onBasicUnitCodeKeyDownHandler';
            } else if (UnitReg.test(colName) === true) {
@@ -2023,12 +2179,28 @@
        function materClsJudgment(materClsStr) {
            switch (materClsStr) {
                case '外购': return '1';
                case '自制': return '2';
                default: return '0';
                case '外购': return 1;
                case '自制': return 2;
                default: return 0;
            }
        }
        // è®¡é‡å•位回调
        function GetUnitValue(data) {
            optionData = data;
        }
        // ä»“库回调
        function GetHWHValue(data) {
            optionData = data;
        }
        // ç‰©æ–™åˆ†ç±»å›žè°ƒ
        function GetMaterTypeValue(data) {
            optionData = data;
        }
    </script>