高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
force-app/main/default/pages/ConsumEquipmentSetReceived.page
@@ -53,6 +53,10 @@
.col_barcodeforReceipt__c{
    display: none; 
}
.col_boxbarcodeforReceipt__c{
    display: none;
}
.col_EquipmentManagementCode_OldData__c {display: none;}
.col_Scroll{display: none;}
.dataRow.col_Scroll{display: none;}
.modal 
@@ -67,6 +71,7 @@
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    /*   margin-top: 20px*/
}
/* Modal Content/Box */
.modal-content 
@@ -90,6 +95,8 @@
    <!-- Modal content -->
    <div class="modal-content">
        <input type="hidden" id="havCode"  value="" />
        <input type="hidden" id="SMCode"  value="" />
        <input type="hidden" id="boxCode"  value="" />
        <!-- <span class="close" onclick="stopScan()">&times;</span> -->
        <button onclick="stopScan(0)" >保存</button>
        <button onclick="stopScan(1)" >取消</button>
@@ -240,7 +247,7 @@
    var numObj;     //发货件数的 obj
    var rowObj;     //明细行的obj
    //2.为弹出框里的信息赋值 并且展示弹出框 
    function showTb(paobj,rightObj) {
    function showTb(paobj,rightObj,condamama,content250) {
        numObj = rightObj;
        rowObj = paobj;
        //删除缓存
@@ -253,15 +260,21 @@
                i=i-1;
            } 
        }
        j$("#SMCode").val(condamama);//后五位
        j$("#boxCode").val(content250);//盒子码
        //是否需要展示已存在信息,--- 展示的话是不是还需要把打勾的展示出来 用户没扫描小码也展示吗(不显示) 还是说展示选过的(保存过的也不再弹窗里显示)
        //页面上打了勾 关了框后又点开这个框
        var codea = '';
        j$(".col_Barcode_F__c span").each(function (index) {
        //j$(".col_Barcode_F__c span").each(function (index) {
        j$(".col_boxbarcodeforReceipt__c span").each(function (index) {
            var a = rowObj[0].children[3].innerText; //所在地区(本部) 现在   
            var b = rowObj[0].children[11].innerText; //条码
            //同一个本部并且是同一个保有设备
            //j$(this).text() 当前条码
            if (j$(this).text() && b.indexOf(j$(this).text()) == 0 && j$(this).parent().parent()[0].children[3].innerText == a) {
            //if (j$(this).text() && b.indexOf(j$(this).text()) == 0 && j$(this).parent().parent()[0].children[3].innerText == a) {
            if(j$(this).text() && content250.indexOf(j$(this).text()) == 0){
                var ddd = j$(this).parent().parent()[0].children[7].children[0].disabled;//移至报废区件数 判断是否是可编辑状态 如果是可编辑状态,说明还没有保存,进行收货呢
                if (ddd == false) {
                    //判断是否打了勾
@@ -282,8 +295,8 @@
                }else{//如果是只读状态,说明是系统已经存在的数据了
                    var xiaomamma =j$(this).parent().parent()[0].children[13].innerText;
                    //var xiaomamma =j$(this).parent().parent()[0].children[13].children[0].value;
                    codea += xiaomamma + ',';
                    var damamma =j$(this).parent().parent()[0].children[12].innerText;
                    codea += damamma+xiaomamma + ',';
                    console.log('小码=='+codea);
                    j$("#havCode").val(codea);
                }
@@ -312,14 +325,20 @@
        //numflag= 1 关闭输入框,清空码枪输入的值,光标自动定位到码枪输入
        //j$(".modal").hide();
        j$("#myModal1").hide();
        //取得大码的值
        var dama = j$( '#maqCode' ).val();
        //取得盒子条形码
        var boxdama = j$( '#boxCode' ).val();
        j$("#maqCode").val("");
        j$("#maqCode").focus();
        j$("#havCode").val(""); //每次关闭弹窗都清空一下
        j$("#SMCode").val("");
        scanType = null;
        if(numflag == 0 ){
            var typeMap = new Map();
            //用户点击保存 设置三个类型到对应的明细上
            //方便使用倒叙,
            var arrXiaoma = new Array();
            if(rowObj != null){
                //取得弹出框的值
                var tableId = document.getElementById("detailTb"); 
@@ -336,6 +355,7 @@
                            else if (gq) {typeflag = '2';}
                                else if (sj) {typeflag = '3';}
                        typeMap.set(xiaoma,typeflag)
                        arrXiaoma.push(xiaoma);
                    }  
                }
@@ -343,15 +363,20 @@
            //alert('==typeMap=='+typeMap);
            //1.取得当前展示的信息 --为了防止写过多的代码 我们直接取展示列表的第一行即可 拿到barcode和所在地区本部
            var a = rowObj[0].children[3].innerText; //所在地区(本部) 现在   
            var b = rowObj[0].children[11].innerText;
            var b = rowObj[0].children[11].innerText; //条形码
            var c = rowObj[0].children[12].innerText; //大码
            //2.根据这两个值取得展示列表的明细行 
            //2.1 取得barcode相同的数据行-- 同一个保有设备
            let sameAss = [];
            j$(".col_Barcode_F__c span").each(function (index) {
            //用于存放 小码:多少行,便于获取
            var xiamaRowMap = new Map();
            //j$(".col_Barcode_F__c span").each(function (index) {
            j$(".col_boxbarcodeforReceipt__c span").each(function (index) {
                // j$(this).text() && b.indexOf(j$(this).text()) == 0 说明是同一个设备  
                // j$(this).parent().parent()[0].children[3].innerText == a 说明是同一个备品存放地
                if (j$(this).text() && b.indexOf(j$(this).text()) == 0 && j$(this).parent().parent()[0].children[3].innerText == a) {
                //if (j$(this).text() && b.indexOf(j$(this).text()) == 0 && j$(this).parent().parent()[0].children[3].innerText == a && j$(this).parent().parent()[0].children[12].innerText == c) {
                 console.log(j$(this).parent().parent()[0].children[3].innerText+'=='+j$(this).parent().parent()[0].children[12].innerText);
                  if(j$(this).text() && boxdama.indexOf(j$(this).text()) == 0){
                    //设置值
                    var xiaomamma =j$(this).parent().parent()[0].children[13].innerText;
                    //var xiaomamma =j$(this).parent().parent()[0].children[13].children[0].value;
@@ -361,28 +386,53 @@
                        j$(this).parent().parent()[0].children[8].children[0].value = '';
                        j$(this).parent().parent()[0].children[9].children[0].value = '';
                        sameAss.push(this.id.match(/oppTable\:(\d*)/)[1]);
                        xiamaRowMap.set(xiaomamma,this.id.match(/oppTable\:(\d*)/)[1]);
                    }else if(typeMap.has(xiaomamma) && typeMap.get(xiaomamma) == '2' ){
                        j$(this).parent().parent()[0].children[8].children[0].value = '1';
                        j$(this).parent().parent()[0].children[7].children[0].value = '';
                        j$(this).parent().parent()[0].children[9].children[0].value = '';
                        sameAss.push(this.id.match(/oppTable\:(\d*)/)[1]);
                        xiamaRowMap.set(xiaomamma,this.id.match(/oppTable\:(\d*)/)[1]);
                    }else if(typeMap.has(xiaomamma) && typeMap.get(xiaomamma) == '3' ){
                        j$(this).parent().parent()[0].children[9].children[0].value = '1';
                        j$(this).parent().parent()[0].children[7].children[0].value = '';
                        j$(this).parent().parent()[0].children[8].children[0].value = '';
                        sameAss.push(this.id.match(/oppTable\:(\d*)/)[1]);
                    }else if(typeMap.get(xiaomamma) == null){
                        xiamaRowMap.set(xiaomamma,this.id.match(/oppTable\:(\d*)/)[1]);
                    }else if(typeMap.get(xiaomamma) == null && j$("input[name$='oppTable_L:"+ this.id.match(/oppTable\:(\d*)/)[1] +":rowCheck']").prop('disabled') == false){
                        //弹出框删除后,清空对应小码的三个框里的数据 thh 2022-02-15 start
                        j$(this).parent().parent()[0].children[9].children[0].value = '';
                        j$(this).parent().parent()[0].children[7].children[0].value = '';
                        j$(this).parent().parent()[0].children[8].children[0].value = '';
                        j$(this).parent().parent()[0].children[9].children[0].value = '';
                        j$("input[name$='oppTable_L:"+ this.id.match(/oppTable\:(\d*)/)[1] +":rowCheck']").prop('checked',false);
                        //弹出框删除后,清空对应小码的三个框里的数据 thh 2022-02-15 end
                    }
                }
            })
            //update  by     wangweipeng           2022/02/24          start
            //2.2 取得明细行 选中并提前
            if (sameAss.length > 0) {
                sameAss.forEach(function (rn) {
                //倒叙,用于和弹窗框里面的顺序一样
                for(var i = arrXiaoma.length-1;i >= 0;i--){
                    //查看map里面是否包含小码
                    if(xiamaRowMap.containsKey(arrXiaoma[i])){
                        //置顶左侧复选框
                        var leftobj = j$("input[name$='oppTable_L:"+xiamaRowMap.get(arrXiaoma[i])+":rowCheck']:not(:disabled)");
                        //alert(rn+'=leftobj='+leftobj);
                        moveToTop(leftobj);
                        leftobj.prop('checked', true).trigger("change");
                        //置顶右侧明细行
                        j$(".col_Yi_Zhi_Bao_Fei_Jia__c").each(function () {
                        if (j$(this).children()[0] && j$(this).children()[0].id.indexOf('oppTable:'+xiamaRowMap.get(arrXiaoma[i])+':') !== -1) {
                                // j$(this).find("input").attr('autofocus', 'autofocus');
                                var rightobj = j$(this).find("input:not(:disabled)");
                                //alert(rn+'=rightobj='+rightobj);
                                moveToTop(rightobj);
                            }
                        });
                    }
                }
                /*sameAss.forEach(function (rn) {
                    //置顶左侧复选框
                    var leftobj = j$("input[name$='oppTable_L:"+rn+":rowCheck']:not(:disabled)");
                    //alert(rn+'=leftobj='+leftobj);
@@ -397,9 +447,11 @@
                            moveToTop(rightobj);
                        }
                    })
                })
            }
                })*/
            }
            //update  by     wangweipeng           2022/02/24          end
        }
        j$("#boxCode").val("");
    }
    //4.扫小码之后对码的校验
@@ -469,6 +521,19 @@
                j$( '#xiaomaCode' ).val("");
                return;
            }
            //批量赋值的一个操作
            if (nowCode == 'AllmoveToBaoFei') {
                if(tableId.rows.length > 0){
                    for(var i=1;i<tableId.rows.length;i++) {
                        tableId.children[0].children[i].children[7].children[0].checked = true;
                        tableId.children[0].children[i].children[8].children[0].checked = false;
                        tableId.children[0].children[i].children[9].children[0].checked = false;
                    }
                }
                j$( '#xiaomaCode' ).val("");
                return;
            }
            // if (nowCode.length != 3) {
            //     alert("袋子二维码与发货时不匹配!");
            //     j$( '#xiaomaCode' ).val("");
@@ -479,18 +544,22 @@
            // debugger;
            var havCode = document.getElementById("havCode").value;
            //存在于已经扫描过的码 给出提示
            if (havCode.indexOf(nowCode) != -1) {
            var SMCode = document.getElementById("SMCode").value;
            var YZCode =SMCode+nowCode;
            //if (havCode.indexOf(nowCode) != -1) {
            if (havCode.indexOf(YZCode) != -1) {
                alert('该明细已保存过,请重新尝试');
                j$( '#xiaomaCode' ).val("");
                return;
            }
            //aa 拿到该保有设备对应的所有小码 判断是否存在
            var aa = rowObj[0].children[15].children[1].value;
            var aa = rowObj[0].children[17].children[1].value;
            //alert(aa);
            if (aa != null && aa.length > 0) {
                //向弹出框里添加明细行
                if (aa.indexOf(nowCode) == -1) {
                //if (aa.indexOf(nowCode) == -1) {
                if (aa.indexOf(YZCode) == -1) {
                    //alert('this.flag==='+this.flag);
                    if (this.flag == 'delConsumables') {
                        alert('必须先扫描要取消的小码');
@@ -498,7 +567,7 @@
                        this.flag = '';
                        return;
                    }
                    alert('袋子二维码与发货时不匹配!');
                    alert('扫描的小码在发货明细中不存在,请重新扫描!');
                    j$( '#xiaomaCode' ).val("");
                    return;
                }else{
@@ -618,7 +687,7 @@
        var tableId = document.getElementById("detailTb"); 
        if (ipadnowCode.length != 3) {
            if (tableId.children[0].children[tableId.rows.length-1].children[7].children[0] == undefined) {
               alert1('请先扫小码')
               alert('请先扫小码')
               console.log('2=='+ipadnowCode+ipadflag);
               return false;
            }    
@@ -644,24 +713,28 @@
       
        var havCode = document.getElementById("havCode").value;
        //存在于已经扫描过的码 给出提示
        if (havCode.indexOf(ipadnowCode) != -1) {
            alert1('该明细已保存过,请重新尝试')
        var SMCode = document.getElementById("SMCode").value;
        var YZCode =SMCode+ipadnowCode;
        //if (havCode.indexOf(ipadnowCode) != -1) {
        if (havCode.indexOf(YZCode) != -1) {
            alert('该明细已保存过,请重新尝试')
            return false;
        }
        //aa 拿到该保有设备对应的所有小码 判断是否存在
        var aa = rowObj[0].children[15].children[1].value;
        var aa = rowObj[0].children[17].children[1].value;
        if (aa != null && aa.length > 0) {
            //向弹出框里添加明细行
            if (aa.indexOf(ipadnowCode) == -1) {
            //if (aa.indexOf(ipadnowCode) == -1) {
            if (aa.indexOf(YZCode) == -1) {
                console.log('3=='+ipadnowCode+'==='+ipadflag);
                if (ipadflag == 'delConsumables') {
                    alert1('必须先扫描要取消的小码')
                    alert('必须先扫描要取消的小码')
                    ipadflag = '';
                    return false;
                }
                alert1('袋子二维码与发货时不匹配!')
                alert('扫描的小码在发货明细中不存在,请重新扫描!')
                return;
            }else{
                //判断是否已经扫描过
@@ -689,7 +762,7 @@
                                // });
                                // j$
                               //alert(1)
                               alert1('已为您滞后!');
                               alert('已为您滞后!');
                                //已为您滞后!
                                //break;
                            }                                
@@ -725,6 +798,7 @@
        }else if(scanType == 2){//add by youc 2022-01-11 弹出框中ipad扫描小码
            checkipadXiaoMa(content);
        } else {
            var content250 = content;//为了获取ipad端扫码的值
            var tracingCode = content.substr(-8);
            if (tracingCode.indexOf('250') == 0) {
                content = content.slice(0, -8);
@@ -735,6 +809,7 @@
            // j$(".col_Barcode_F__c span").each(function(index) {
            j$(".col_barcodeforReceipt__c span").each(function(index) {
            //update by youc 2021-12-07 end
                if (j$(this).text() && (content.indexOf(j$(this).text())) == 0) {
                    rownum.push(this.id.match(/oppTable\:(\d*)/)[1]);
                    return;
@@ -773,23 +848,40 @@
                }
            })
            var maqiang = j$( '#maqCode' ).val();
            if (rownum.length == 0)
            {
            var allboxbarcode ='';
            j$(".col_boxbarcodeforReceipt__c span").each(function(index) {
                if (j$(this).text() && (allboxbarcode.indexOf(j$(this).text())) == -1){
                    allboxbarcode +=j$(this).text()+',';
                }
            })
            console.log('所有的大码'+allboxbarcode);
            if (content250 !='' && content250 !=undefined && content250.substring(content250.length - 8,content250.length - 5) != '250') {
                    alert('请先扫盒!');
                     if(maqiang !='' && maqiang !=undefined){
                         j$("#maqCode").val("");
                         j$("#maqCode").focus();
                     }
                    return;
                //add by youc 2021-11-30 end
            }else if (rownum.length == 0) {
                //add by youc 2021-12-07 start 删除输入框内容 并光标自动定位到输入框
                //alert('maqiang'+maqiang)
                if(maqiang !='' && maqiang !=undefined){
                  j$("#maqCode").val("");
                  j$("#maqCode").focus();
                  alert('扫描的耗材不存在!')
                 }else{
                   alert1('扫描的耗材不存在!')
                 }
                //add by youc 2021-12-07 start 删除输入框内容 并光标自动定位到输入框
                   alert('扫描的耗材不存在!')
                 }
                //add by youc 2021-12-07 end 删除输入框内容 并光标自动定位到输入框
                return false;
            } else if(allboxbarcode.indexOf(content250) == -1){
               alert('扫描的盒与发货时不一致,请重新扫描');
               if(maqiang !='' && maqiang !=undefined){
                   j$("#maqCode").val("");
                   j$("#maqCode").focus();
               }
               return false;
            } else if (rownum.length > 1) {
                let optStr = "";
                rownum.forEach(function (rn) {
@@ -831,7 +923,8 @@
                                        // rightObj.focus();
                                        //add by youc 2021-12-07 start  展示弹出框
                                        var paobj = j$(this).parent();
                                        showTb(paobj,rightObj);
                                        var condamama = content250.substr(-5);
                                        showTb(paobj,rightobj,condamama,content250);
                                        //add by youc 2021-12-07 end 展示弹出框
                                        return;
                                    }
@@ -862,10 +955,11 @@
                        // j$(this).find("input").attr('autofocus', 'autofocus');
                        var rightobj = j$(this).find("input:not(:disabled)");
                        //moveToTop(rightobj);
                        rightobj.focus();
                        //rightobj.focus();
                        //展示弹出框 add by youc 2021-12-07 start
                        var paobj = j$(this).parent()
                        showTb(paobj,rightobj);
                        var paobj = j$(this).parent();
                        var condamama = content250.substr(-5);
                        showTb(paobj,rightobj,condamama,content250);
                        //展示弹出框 add by youc 2021-12-07 end
                        return;
                    }
@@ -924,83 +1018,83 @@
        }
    }
    function alert1(data) {
    var MainDiv = document.createElement("div"),
      p = document.createElement("p"),
      p1 = document.createElement("p"),
      AllPage = document.createElement("div"),
      btn = document.createElement("div"),
      textNode = document.createTextNode(data ? data : ""),
      textNode1 = document.createTextNode('{!$Label.Environment_Url}'),
      btnText = document.createTextNode("确定");
    // 控制样式
    csss(AllPage, {
      "position": "fixed",
      " _position": "absolute",
      " width": "100%",
      "height": "100%",
      "left": "0",
      "top": "0",
      "background": "rgba(0, 0, 0,0.5)",
      "-moz-opacity": "0.5",
      "filter": "alpha(opacity=50)",
      "z-index": "97",
    });
    csss(MainDiv, {
      "position": "fixed",
      "left": "0",
      "right": "0",
      "top": "30%",
      "width": "17rem",
      "height": "7rem",
      "padding-top":"0.5rem",
      "margin": "0 auto",
      "background-color": "white",
      "font-size": "0.75rem",
      "text-align": "center",
      "position": "relative",
      "border-radius": "5px 5px 5px 5px",
    });
    csss(btn, {
      "background": "#0070d2",
      "color": "white",
      "width": "6rem",
      "margin-left": "5.5rem",
      "margin-bottom":"0.25rem",
      "height": "1.5rem",
      "border-radius": "5px 5px 5px 5px",
      "position": "absolute",
      "padding-top":"0.5rem",
      "bottom":"0",
    })
    // 内部结构套入
    p1.appendChild(textNode1);
    p.appendChild(textNode);
    btn.appendChild(btnText);
    MainDiv.appendChild(p1);
    MainDiv.appendChild(p);
    MainDiv.appendChild(btn);
    AllPage.appendChild(MainDiv);
    // 整体显示到页面内
    document.getElementsByTagName("body")[0].appendChild(AllPage);
    //禁止滚动
    /*$("body").on("touchmove", function (event) {
      event.preventDefault;
    }, false)
    */
    // 确定绑定点击事件删除标签
    btn.onclick = function () {
      AllPage.parentNode.removeChild(AllPage);
      //启用滚动
      //$("body").off("touchmove");
    }
  }
  function csss(targetObj, cssObj) {
    var str = targetObj.getAttribute("style") ? targetObj.getAttribute("style") : "";
    for (var i in cssObj) {
      str += i + ":" + cssObj[i] + ";";
    }
    targetObj.style.cssText = str;
  }
  //   function alert1(data) {
  //   var MainDiv = document.createElement("div"),
  //     p = document.createElement("p"),
  //     p1 = document.createElement("p"),
  //     AllPage = document.createElement("div"),
  //     btn = document.createElement("div"),
  //     textNode = document.createTextNode(data ? data : ""),
  //     textNode1 = document.createTextNode('{!$Label.Environment_Url}'),
  //     btnText = document.createTextNode("确定");
  //   // 控制样式
  //   csss(AllPage, {
  //     "position": "fixed",
  //     " _position": "absolute",
  //     " width": "100%",
  //     "height": "100%",
  //     "left": "0",
  //     "top": "0",
  //     "background": "rgba(0, 0, 0,0.5)",
  //     "-moz-opacity": "0.5",
  //     "filter": "alpha(opacity=50)",
  //     "z-index": "97",
  //   });
  //   csss(MainDiv, {
  //     "position": "fixed",
  //     "left": "0",
  //     "right": "0",
  //     "top": "30%",
  //     "width": "17rem",
  //     "height": "7rem",
  //     "padding-top":"0.5rem",
  //     "margin": "0 auto",
  //     "background-color": "white",
  //     "font-size": "0.75rem",
  //     "text-align": "center",
  //     "position": "relative",
  //     "border-radius": "5px 5px 5px 5px",
  //   });
  //   csss(btn, {
  //     "background": "#0070d2",
  //     "color": "white",
  //     "width": "6rem",
  //     "margin-left": "5.5rem",
  //     "margin-bottom":"0.25rem",
  //     "height": "1.5rem",
  //     "border-radius": "5px 5px 5px 5px",
  //     "position": "absolute",
  //     "padding-top":"0.5rem",
  //     "bottom":"0",
  //   })
  //   // 内部结构套入
  //   p1.appendChild(textNode1);
  //   p.appendChild(textNode);
  //   btn.appendChild(btnText);
  //   MainDiv.appendChild(p1);
  //   MainDiv.appendChild(p);
  //   MainDiv.appendChild(btn);
  //   AllPage.appendChild(MainDiv);
  //   // 整体显示到页面内
  //   document.getElementsByTagName("body")[0].appendChild(AllPage);
  //   //禁止滚动
  //   /*$("body").on("touchmove", function (event) {
  //     event.preventDefault;
  //   }, false)
  //   */
  //   // 确定绑定点击事件删除标签
  //   btn.onclick = function () {
  //     AllPage.parentNode.removeChild(AllPage);
  //     //启用滚动
  //     //$("body").off("touchmove");
  //   }
  // }
  // function csss(targetObj, cssObj) {
  //   var str = targetObj.getAttribute("style") ? targetObj.getAttribute("style") : "";
  //   for (var i in cssObj) {
  //     str += i + ":" + cssObj[i] + ";";
  //   }
  //   targetObj.style.cssText = str;
  // }
</script>
</apex:page>