1
yusijie
2025-01-09 d74ca0e09be82654359cacf05cf4bfbc9f237156
WebTM/views/É豸¹ÜÀí/É豸¹¤ÒÕ²ÎÊý¶©µ¥µã¼ì±í/SB_EquipICMOTechParamBillEdit.html
@@ -53,6 +53,7 @@
                        <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>
                            <li lay-id="3" style="padding:1px;">附件信息</li>
                        </ul>
                        <div class="layui-tab-content">
                            <!--基本信息-->
@@ -208,7 +209,7 @@
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
@@ -293,6 +294,29 @@
                                    </div>
                                </div>
                            </div>
                            <!--附件信息-->
                            <div class="layui-tab-item">
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-upload">
                                        <button type="button" class="layui-btn" id="testList">选择文件</button><input class="layui-upload-file" type="file" accept="" name="file" multiple="">
                                        <div class="layui-upload-list">
                                            <table class="layui-table" lay-filter="fileTable">
                                                <thead>
                                                    <tr>
                                                        <th>文件名</th>
                                                        <th>图片</th>
                                                        <th>大小</th>
                                                        <th>状态</th>
                                                        <th>操作</th>
                                                    </tr>
                                                </thead>
                                                <tbody id="ProImgByList" class="ProImgByList">
                                                </tbody>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
@@ -359,13 +383,14 @@
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
        }).use(['index', 'form', 'laydate', 'table', 'element','upload'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , upload = layui.upload
                , element = layui.element;
            var HModName = "SB_EquipICMOTechParamBill";
            var HBillType = "3919";
@@ -423,6 +448,8 @@
            if (OperationType == 1) {   //新增
                //获取最大单据号
                get_MAXNum();
                //文件选择初始化
                PicUpload();
                //初始化日期、创建人、创建时间
                $("#HDate").val(Pub_Format(new Date(), "yyyy-MM-dd"));
                $("#HMaker").val(HMaker);
@@ -432,10 +459,15 @@
                $("#HInterID").val(HInterID);//修改时主表ID
                //编辑状态时,根据内码,获取信息并写入界面
                RoadBillMain(HInterID);
                //文件选择初始化
                PicUpload();
                getFile();
            }
            else if (OperationType == 4) {  //下推
                //获取最大单据号
                get_MAXNum();
                //文件选择初始化
                PicUpload();
                //初始化日期、创建人、创建时间
                $("#HDate").val(Pub_Format(new Date(), "yyyy-MM-dd"));
                $("#HMaker").val(HMaker);
@@ -602,15 +634,15 @@
                        , { field: 'HTechParamUnitName', title: '工艺参数单位名称', width: 130, style: 'background-color:#efefef4d;' }
                        , { field: 'HSNO', title: '工艺次序', width: 110, style: 'background-color:#efefef4d;' }
                        , { field: 'HTechParamIDStd', title: 'HTechParamIDStd', width: 100, hide: true, style: 'background-color:#efefef4d;' }
                        , { field: 'HTechParamIDStdName', title: '设备设定值工艺参数', width: 130, edit: 'text', event: "HTechParamIDStdName" }
                        , { field: 'HResultStd', title: '设备设定值', width: 130, edit: 'text' }
                        , { field: 'HTechParamIDStdName', title: '设备设定值工艺参数', hide: true, width: 130, edit: 'text', event: "HTechParamIDStdName" }
                        , { field: 'HResultStd', title: '设备设定值', hide: true, width: 130, edit: 'text' }
                        , { field: 'HVaule', title: '工艺参数值', width: 100, edit: false, event: "HVaule"  }
                        , { field: 'HStd', title: '标准值', width: 100, edit: 'text' }
                        , { field: 'HMax', title: '上限', width: 100, edit: 'text' }
                        , { field: 'HMin', title: '下限', width: 100, edit: 'text' }
                        , { field: 'HResult', title: '检测结果', width: 100, templet: "#HResult" }
                        , { field: 'HRemark', title: '备注', width: 100, edit: 'text' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 70 }
                       // , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 70 }
                    ]]                  
                }
@@ -1252,20 +1284,51 @@
                var field = cell.data('field'); // èŽ·å–å­—æ®µ
                var rowIndex = cell.closest('tr').data('index'); // èŽ·å–å½“å‰è¡Œæ•°æ®ç´¢å¼•
                // ä½¿ç”¨ layui çš„表格方法更新数据
                // ä½¿ç”¨layui的表格方法更新数据
                var updatedData = table.cache['mainTable'].map(function (item) {
                    if (item.LAY_TABLE_INDEX === rowIndex) { // ä½¿ç”¨ numbers åˆ—索引定位
                    if (item.LAY_TABLE_INDEX === rowIndex) { // ä½¿ç”¨numbers列索引定位
                        item[field] = newValue;
                    }
                    return item;
                });
                layui.table.reload('mainTable', {
                    data: updatedData
                // èŽ·å–å½“å‰è¡Œæ•°æ®
                var currentRowData = table.cache['mainTable'].find(function (item) {
                    return item.LAY_TABLE_INDEX === rowIndex;
                });
                // å‡è®¾è¿™é‡Œè¦åˆ¤æ–­çš„字段是 'HVaule',你可以根据实际需求修改要判断的字段名
                if (field === 'HVaule') {
                    var valueToCheck = parseFloat(newValue);
                    var lowerLimit = parseFloat(currentRowData.HMin);
                    var upperLimit = parseFloat(currentRowData.HMax);
                    // å¾ªçŽ¯éåŽ†å½“å‰è¡Œä¸Šä¸‹é™æ•°æ®å¹¶è¿›è¡Œåˆ¤æ–­ï¼ˆè¿™é‡Œå…¶å®žä¸»è¦æ˜¯åˆ¤æ–­å½“å‰è¡Œçš„ä¸Šä¸‹é™ä¸Žæ›´æ–°å€¼çš„å…³ç³»ï¼‰
                    if (valueToCheck >= lowerLimit && valueToCheck <= upperLimit) {
                        // æ›´æ–°å½“前行的HResult为OK
                        currentRowData.HResult = 'OK';
                    } else {
                        currentRowData.HResult = 'NG';
                    }
                }
                checkRefresh();
                //// ä½¿ç”¨ layui çš„表格方法更新数据
                //var updatedData = table.cache['mainTable'].map(function (item) {
                //    if (item.LAY_TABLE_INDEX === rowIndex) { // ä½¿ç”¨ numbers åˆ—索引定位
                //        item[field] = newValue; // æ›´æ–°å­—段值
                //        item.HResult = hResult; // æ›´æ–°æ£€æµ‹ç»“æžœ
                //    }
                //    return item;
                //});
                //layui.table.reload('mainTable', {
                //    data: updatedData
                //});
                // å–消编辑状态
                cell.removeAttr('contenteditable');
                //取消冒泡
                event.stopPropagation();
            });
@@ -1384,9 +1447,9 @@
            function checkRefresh() {
                for (var i = 1; i <= option.data.length; i++) {
                    //状态
                    $('#HResult' + i + '').find("option[value='" + option.data[i - 1].HResult + "']").attr("selected", true);
                    $('#HResult' + i + '').find("option[value='" + option.data[i - 1].HResult + "']").prop("selected", true);
                }
                form.render('select');
                form.render('select');
            }
            //#endregion
@@ -1441,6 +1504,13 @@
                            });
                            var rowdata = [];
                            for (var i = 0; i < result.data.length; i++) {
                                // èŽ·å–å½“å‰çš„æ•°é‡‡å€¼ã€ä¸Šé™å€¼å’Œä¸‹é™å€¼ï¼Œå¹¶ç¡®ä¿å®ƒä»¬æ˜¯æ•°å€¼ç±»åž‹
                                var value = parseFloat(result.data[i]["数采值"]);
                                var max = parseFloat(result.data[i]["上限值"]);
                                var min = parseFloat(result.data[i]["下限值"]);
                                // åˆ¤æ–­ HResult çš„值
                                var hResult = (value <= max && value >= min) ? "OK" : "NG";
                                rowdata.push(
                                    {
                                        "HTechParamClassID": result.data[i]["HTechParamClassID"] == null ? 0 : result.data[i]["HTechParamClassID"],
@@ -1459,13 +1529,14 @@
                                        "HStd": result.data[i]["标准值"],
                                        "HMax": result.data[i]["上限值"],
                                        "HMin": result.data[i]["下限值"],
                                        "HRemark": result.data[i]["采集来源"]
                                        "HRemark": result.data[i]["采集来源"],
                                        "HResult": hResult
                                    }
                                );
                            }
                            option.data = rowdata;
                            table.render(option);
                            checkRefresh();
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
@@ -1544,7 +1615,7 @@
            form.on('submit(btn_Cancel)', function () {
                layer.confirm('您确定要退出吗?', { icon: 3, title: '提示' }, function (index) {
                    //操作类型(OperationType=1新增、OperationType=2编辑)
                    if (OperationType == 2) {
                    if (OperationType == 2 || OperationType == 1) {
                        Pub_Close(1);
                    }
                    else {
@@ -1554,7 +1625,110 @@
            })
            //#endregion
            //#region æ–‡ä»¶ä¸Šä¼ 
            function PicUpload() {
                //多图片上传
                //多文件列表示例
                var ProImgByList = $('#ProImgByList')
                    , uploadListIns = upload.render({
                        elem: '#testList'
                        , url: GetWEBURL() + "/SB_EquipICMOTechParamBillController/UploadFile"
                        , accept: 'file'
                        , multiple: true
                        , auto: false
                        //, bindAction: '#testListAction' //按扭绑定
                        , data: { "HBillNo": $("#HBillNo").val(), "HRemark": $("#HRemark").val(), "HUserName": sessionStorage["HUserName"] }
                        , choose: function (obj) {
                            var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
                            //读取本地文件
                            obj.preview(function (index, file, result) {
                                var tr = $(['<tr id="upload-' + index + '">'
                                    , '<td>' + file.name + '</td>'
                                    , '<td>' + '<img onclick=\"previewImg(this)\" id="showImg" class="ImgClass" style="width: 150px; margin:10px;cursor:pointer;"src="' + result + '" alt="' + file.name + '">' + '</td>'
                                    , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
                                    , '<td>等待上传</td>'
                                    , '<td>'
                                    , '<button class="layui-btn layui-btn-xs demo-reload ">上传</button>'
                                    , '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
                                    , '</td>'
                                    , '</tr>'].join(''));
                                //单个重传
                                tr.find('.demo-reload').on('click', function () {
                                    obj.upload(index, file);
                                    return false;
                                });
                                //删除
                                tr.find('.demo-delete').on('click', function () {
                                    delete files[index]; //删除对应的文件
                                    tr.remove();
                                    uploadListIns.config.elem.next()[0].value = ''; //清空 input file å€¼ï¼Œä»¥å…åˆ é™¤åŽå‡ºçŽ°åŒåæ–‡ä»¶ä¸å¯é€‰
                                });
                                ProImgByList.append(tr);
                            });
                        }
                        , done: function (res, index, upload) {
                            if (res.code == 1) { //上传成功
                                var tr = ProImgByList.find('tr#upload-' + index)
                                    , tds = tr.children();
                                tds.eq(3).html('<span style="color: #5FB878;">上传成功</span>');
                                tds.eq(4).html(''); //清空操作
                                return delete this.files[index]; //删除文件队列已经上传成功的文件
                            }
                            this.error(index, upload);
                        }
                        , error: function (index, upload) {
                            var tr = ProImgByList.find('tr#upload-' + index)
                                , tds = tr.children();
                            tds.eq(2).html('<span style="color: #FF5722;">上传失败[检查文件名及文件格式]</span>');
                            tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示上传
                        }
                    });
            }
            //#endregion
            //#region ç¼–辑时,获取已上传的文件列表
            function getFile() {
                var ProImgByList = $('#ProImgByList')
                $.ajax({
                    url: GetWEBURL() + '/SB_EquipICMOTechParamBillController/Filelist',
                    type: "GET",
                    data: { "HBillNo": $("#HBillNo").val() },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var index = 0;
                            for (var i = 0; i < data1.data.length; i++) {
                                var tr = $(['<tr id="upload-' + i + '">'
                                    , '<td style="display:none">' + data1.data[i].HItemID + '</td>'
                                    , '<td style="display:none">' + data1.data[i].HSourceBillNo + '</td>'
                                    , '<td>' + data1.data[i].HFileName + '</td>'
                                    , '<td>' + '<img onclick=\"previewImg(this)\" id="showImg' + i + '" class="ImgClass" style="width: 150px; margin:10px;cursor:pointer;"src="' + data1.data[i].HFilePath + '" alt="' + data1.data[i].HFileName + '">' + '</td>'
                                    , '<td>' + (data1.data[i].HFileSize / 1014).toFixed(1) + 'kb</td>'
                                    , '<td style="color: #5FB878;">上传成功</td>'
                                    , '<td style="display:none">' + data1.data[i].url + '</td>'
                                    , '<td>'
                                    , '<button class="layui-btn layui-btn-xs  demo-dowload" type="button" id="deltefile" onclick="javascript:dowload(this)"><i class="layui-icon layui-icon-download-circle layuiadmin-button-btn"></i>下载</button>'
                                    , '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete" type="button" id="deltefile" onclick="javascript:toManager(this)"><i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>'
                                    , '</td>'
                                    , '</tr>'].join(''));
                                $('#ProImgByList').append(tr);
                            }
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endregion
        });
@@ -1638,7 +1812,11 @@
                sSubStr = JSON.parse(sSubStr);
                for (var i = 0; i <= sSubStr.length - 1; i++) {
                    if (sSubStr[i].HTechParamID == "0") {
                        layer.msg("明细记录第" + (i + 1) + "行,工艺参数信息为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        layer.msg("明细记录第" + (i + 1) + "行,工艺参数代码/名称不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        return Result = false;
                    }
                    if (sSubStr[i].HRemark == "手动输入" && (sSubStr[i].HVaule == "" || sSubStr[i].HVaule == null)) {
                        layer.msg("明细记录第" + (i + 1) + "行,手术输入的工艺参数值不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        return Result = false;
                    }
                }
@@ -1648,6 +1826,72 @@
            }
            return Result;
        }
        function previewImg(obj) {
            var img = new Image();
            img.src = obj.src;
            var height = img.height * 1.2; //获取图片高度
            var width = img.width * 1.2; //获取图片宽度
            var imgHtml = "<img src='" + obj.src + "' width='100%' height='100%'/>";
            //弹出层
            layer.open({
                type: 1,
                shade: 0.8,
                offset: 'auto',
                area: ['80%', '80%'],
                shadeClose: true,
                scrollbar: false,
                title: "图片预览", //不显示标题
                content: imgHtml, //捕获的元素,注意:最好该指定的元素要存放在body最外层,否则可能被其它的相对元素所影响
                cancel: function () {
                    //layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', { time: 5000, icon: 6 });
                }
            });
        }
        //#region ä¸‹è½½å·²ä¸Šä¼ çš„æ–‡ä»¶
        function dowload(r) {
            //得到当前所在行
            var rows = r.parentNode.parentNode.rowIndex;
            //得到所在行的第五列的内容:文件地址
            var url = $("#ProImgByList tr:eq(" + (rows - 1) + ") td:eq(6)").html();
            /*window.location.href = url;*/
            window.open(url)
        }
        //#endregion
        //#region åˆ é™¤å·²ä¸Šä¼ çš„æ–‡ä»¶
        function toManager(r) {
            //得到当前所在行
            var rows = r.parentNode.parentNode.rowIndex;
            //得到所在行的第一列的内容:主键ID
            var HItemID = $("#ProImgByList tr:eq(" + (rows - 1) + ") td:eq(0)").html();
            //得到所在行的第二列的内容:单据号
            var HSourceBillNo = $("#ProImgByList tr:eq(" + (rows - 1) + ") td:eq(1)").html();
            //得到所在行的第三列的内容:文件名称
            var HFileName = $("#ProImgByList tr:eq(" + (rows - 1) + ") td:eq(2)").html();
            layer.confirm("确认要删除吗,删除后不能恢复", { title: "删除确认" }, function (index) {
                //删除已上传文件
                $.ajax({
                    url: GetWEBURL() + '/SB_EquipICMOTechParamBillController/DeleteFilelist',
                    type: "GET",
                    data: { "HItemID": HItemID, "HSourceBillNo": HSourceBillNo, "HFileName": HFileName },
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.alert(data1.Message, { icon: 1 });
                            $("#ProImgByList tr").eq((rows - 1)).remove();
                        }
                        else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            })
        }
        //#endregion
    </script>
</body>
</html>