Li Jun
2022-04-24 fc8a8cea62e5d248834482a1ade9db6ab0758bf2
force-app/main/default/pages/ConsumEquipmentSetShipment.page
@@ -36,12 +36,12 @@
  height: 100px;
  width: 30px;
}
/* add by rentx 2021-10-21 start 设置展示框
/* add by rentx 2021-10-21 start 设置展示框  */
.col_EquipmentManagementCode__c {display: none;}
.col_Scroll{display: none;}
.dataRow.col_Scroll{display: none;}
.col_ManagementCode__c{display: none;}
 */
.modal 
{
    display:none;
@@ -93,6 +93,7 @@
    <!-- Modal content -->
    <div class="modal-content">
        <!-- <span class="close" onclick="stopScan()">&times;</span> -->
        <input type="hidden" id="havCode"  value="" />
        <button onclick="stopScan(0)" >保存</button>
        <button onclick="stopScan(1)" >取消</button>
        <button onclick="qrsacn(2);return false;" >ipad扫描袋子条形码</button>
@@ -141,8 +142,9 @@
                <apex:commandButton onclick="qrsacn(0);return false;" value="扫一扫耗材" rerender="allForm"/>
                <apex:commandButton onclick="qrsacn(1);return false;" value="扫一扫物流单" rerender="allForm"/>
                <apex:commandButton onclick="blockme();" action="{!send}" value="发货" rerender="message" oncomplete="unblockUI();checkMessage();checEventFrame()"/>
                <!-- add     wangweipeng          2021/01/10             start -->
                <apex:commandButton onclick="window.open('/apex/ConsumTrialPDF?id={!parentId}');" value="试用表" rerender="allForm"/>
                <!-- add     wangweipeng          2021/01/10      /apex/ConsumTrialPDF?id={!parentId}     ConsumEquipmentSetShipmentPDF   start -->
                <apex:commandButton onclick="window.open('ConsumTrialPDF?id={!parentId}');" value="试用表" rerender="allForm"/>
                <!--<a href="openSafri/apex/ConsumTrialPDF?id={!parentId}">试用表</a> -->
                <!-- add     wangweipeng          2021/01/10             end -->
                <!-- add by rentx 2021-10-21 start 新增码枪扫描 -->
                <apex:commandButton onclick="document.getElementById('maqCode').focus();return false" id="maqCodeBtn"  value="码枪扫描:" style="padding: 6px;font-size: 110%;margin-right: 1px;"/>
@@ -180,7 +182,8 @@
                    <td >
                      <apex:outputLabel for="slipNo" value="发货-运输单号:" />
                      <apex:inputField id="slipNo" value="{!slip.Name}"/>
                      <apex:commandButton action="{!searchSlip}" value="检索" style="padding: 6px;font-size: 110%;" rerender="allForm" oncomplete="checEventFrame()"/>
                     <!-- <apex:commandButton action="{!searchSlip}" value="检索" style="padding: 6px;font-size: 110%;" rerender="allForm" oncomplete="checEventFrame()"/> -->
                     <apex:commandButton action="{!searchSlip}" value="检索" style="padding: 6px;font-size: 110%;" rerender="searchBlock" oncomplete="checEventFrame()"/>
                    </td>
                    <td width="10px"></td>
                    <td >
@@ -242,6 +245,7 @@
                j$("#tableData input[type=text]").on('change', function() {
                    let rownum = j$(this)[0].id.match(/oppTable\:(\d*)/)[1];
                    alert('====rownum=='+rownum);
                    j$('input[name$="oppTable_L:'+rownum+':rowCheck"]').prop('checked', true).trigger("change");
                })
@@ -253,8 +257,8 @@
                    }
                }
                //20220215 字段集中的输入框变成只读,不能直接变成span,否则后台取不到值
                j$("#tableData input[type=text]").attr("readonly",true);
               j$("#tableData input[type=text]").attr("disabled","disabled");
               //j$("#tableData input[type=text]").attr("readonly",true);  先隐藏掉
               //j$("#tableData input[type=text]").attr("disabled","disabled");
            </script>
        </apex:outputPanel>
    </apex:outputPanel>
@@ -270,6 +274,7 @@
    //现在需要 扫到耗材之后 自动勾选置顶并定位到对应的发货件数输入框 并弹出界面 光标自动定位到"码枪扫描袋子条形码"
    var numObj;     //发货件数的 obj
    var rowObj;     //明细行的obj
    var checkObj;     //复选框的obj
    var flag = '';  //该变量会有"cancelConsumables"(取消耗材) 和 "saveConsumables"(保存耗材)
    //扫码弹出框之后 扫小码的操作 -- 
    //1.添加一行
@@ -318,6 +323,9 @@
                return false;
            }
            //判断这个小码code 是否符合要求 1:长度是否正确 2:是否重复输入 3:输入的是否为3位数字
           // var regNeg = /^[1-9]+[0-9]*]*$/; // 负整数
            //z<0||!(/^\d+$/.test(z))
            // && nowCode>=0 && (/^\d+$/.test(nowCode))
            if(nowCode != null && nowCode.length == 3 && !isNaN(nowCode)){
                //获取扫描过的小码
                var tableId = document.getElementById("detailTb"); 
@@ -340,7 +348,7 @@
                }
                //能走到这说明待删除的小码不存在于明细列表 所以要给出提示
                if (this.flag == 'delConsumables') {
                    alert('必须先扫描要取消的小码');
                    alert('删除的小码已删除或未扫描过');
                    j$( '#xiaomaCode' ).val("");
                    this.flag = '';
                    return false;
@@ -375,6 +383,7 @@
    }
    //5.为弹出框里的信息赋值 并且展示弹出框  
    function showTb(leftobj,paobj,rightObj,scanType,content250) {
        checkObj = leftobj;
        numObj = rightObj;
        rowObj = paobj;
        var a = paobj[0].children[0].innerText; //备品配套明细型号 
@@ -401,9 +410,60 @@
        //       return;
        //     }
        // }
        moveToTop(leftobj);
        //update     wangweipeng             2022/02/21             start
        // if (c == '') {
        //判断当前输入是盒
        var bianma;
        if (maqCode !='' && maqCode !=undefined && maqCode.substring(maqCode.length - 8,maqCode.length - 5) == '250') {
            //设置管理编码
            bianma = maqCode.substring(maqCode.length -5,maqCode.length);
            //弹出框的管理编码赋值
            document.getElementById("bianma").innerHTML = bianma;
            //给明细行赋管理编码
            //paobj[0].children[10].children[0].value = bianma;
            c = bianma;
        }else if(content250 !='' && content250 !=undefined && content250.substring(content250.length - 8,content250.length - 5) == '250'){
             //设置管理编码
            bianma = content250.substring(content250.length -5,content250.length);
            //弹出框的管理编码赋值
            document.getElementById("bianma").innerHTML = bianma;
            //给明细行赋管理编码
            //paobj[0].children[10].children[0].value = bianma;
            c = bianma;
        }
        //判断当前扫描是否换盒了
        if(c != null && c != '' && c != undefined){
            //获取当前设备的管理编码,注意可能是一个、多个或空
            var oldbianma = paobj[0].children[10].children[0].value;
            if(oldbianma != null && oldbianma != '' && oldbianma != undefined){
                var oldbianmaArray = oldbianma.split(',');
                var bianmaFlag = true;
                for(var i = 0; i < oldbianmaArray.length; i++){
                    if(oldbianmaArray[i] != '' && oldbianmaArray[i].indexOf(c) == 0){
                        bianmaFlag = false;
                    }
                }
                if(bianmaFlag){
                    if(confirm('已换盒,确认继续吗?')){
                    }else{
                        leftobj.prop('checked', false);
                        j$("#maqCode").val("");
                        stopScan();
                        return;
                    }
                }
            }
        }
        /*moveToTop(leftobj);
        leftobj.prop('checked', true).trigger("change");
        moveToTop(rightObj);
        moveToTop(rightObj);*/
        //update     wangweipeng             2022/02/21             end
        //删除缓存
        var tableId = document.getElementById("detailTb"); 
        if(tableId.rows.length > 0){
@@ -418,26 +478,6 @@
        document.getElementById("xinghao").innerHTML = a;   //备品配套明细型号
        document.getElementById("bianhao").innerHTML = b;   //机身编号
        // if (c == '') {
        //判断当前输入是盒
        if (maqCode !='' && maqCode !=undefined && maqCode.substring(maqCode.length - 8,maqCode.length - 5) == '250') {
            //设置管理编码
            var bianma = maqCode.substring(maqCode.length -5,maqCode.length);
            //弹出框的管理编码赋值
            document.getElementById("bianma").innerHTML = bianma;
            //给明细行赋管理编码
            paobj[0].children[10].children[0].value = bianma;
            c = bianma;
        }else if(content250 !='' && content250 !=undefined && content250.substring(content250.length - 8,content250.length - 5) == '250'){
             //设置管理编码
            var bianma = content250.substring(content250.length -5,content250.length);
            //弹出框的管理编码赋值
            document.getElementById("bianma").innerHTML = bianma;
            //给明细行赋管理编码
            paobj[0].children[10].children[0].value = bianma;
            c = bianma;
        }
        //alert('===c=='+paobj[0].children[10].children[0].innerText);
        // document.getElementById("bianma").innerHTML = ;    //管理编码
@@ -445,19 +485,29 @@
        // var code = paobj[0].children[9].children[0].innerText;
        var code = paobj[0].children[9].children[0].value;  //.innerText; 
        alert('xiaoma'+code);
        var hecode = paobj[0].children[10].children[0].value;  //.innerText;
        //alert('xiaoma'+code);
        if (code != null && code.length > 0) {
            //向弹出框里添加明细行
            var arr = code.split(',');
            alert('xiaomajinlaile'+arr);
            for (var i = arr.length - 1; i >= 0; i--) {
                addRow(arr[i],c);
            var hearr = hecode.split(',');
            //update by    wangweipeng    2022/02/21     start
            //按照复选框的顺序来展示
            for (var i = 0; i < arr.length ; i++) {
                if(c == hearr[i]){
                    addRow(arr[i],c);
                }
            }
            /*for (var i = arr.length - 1; i >= 0; i--) {
                if(c == hearr[i]){
                    addRow(arr[i],c);
                }
            }*/
            //update by    wangweipeng    2022/02/21     end
        }
        //j$(".modal").show();
        j$("#myModal1").show();
        //使用定时器设置光标定位因为如果是弹出选择本部的框之后再设置 会定位不到
        alert('');
        setTimeout(function(){j$("#xiaomaCode").focus();},1000);
        // j$("#xiaomaCode").focus();
        return;
@@ -468,12 +518,13 @@
        //numflag= 1 关闭输入框,清空码枪输入的值,光标自动定位到码枪输入
        //j$(".modal").hide();
        j$("#myModal1").hide();
        scanType = null;
        j$("#maqCode").focus();
        if(numflag == 0 ){
            //用户点击保存 1.设置数量到发货件数上   2.设置小码到明细的备品管理码上
            if(numObj != null){
                //update            wangweipeng                2022/01/12               start
                //update        wangweipeng            2022/02/21                   start
                /*//update            wangweipeng                2022/01/12               start
                //把发货件数字段设置为只读
                //numObj.val(j$("#detailTb").find("tr").length-1)
                for(var i = 0;i < numObj.length;i++){
@@ -492,18 +543,146 @@
                        var resultVar = str.substring(0,str.length-1);
                        // rowObj[0].children[9].children[0].innerText = resultVar; 
                        rowObj[0].children[9].children[0].value = resultVar; 
                        //给明细行赋管理编码
                        //rowObj[0].children[10].children[0].value = tableId.rows[1].cells[0].innerHTML;
                    }
                }*/
                if(rowObj != null){
                    //获取当前扫的盒
                    var newHe = document.getElementById("bianma").innerHTML;
                    //取得所有小码 放到备品管理码上
                    //注意:有两种情况,如果此次扫的小米的盒是已经扫过的,那么直接加就行,如果此次的盒没有扫过,而原来也有已经扫过的盒,那么就需要特殊处理
                    var tableId = document.getElementById("detailTb");
                    var str = '';
                    var str1 = '';
                    var numstr = 0;
                    var he = rowObj[0].children[10].children[0].value;
                    var xiaoma = rowObj[0].children[9].children[0].value;
                    if(tableId.rows.length > 0){//判断此次扫的盒是否有小码
                        //首先判断当前明细原来是否已经扫过码
                        //如果没扫过 那么在原来的 备品管理码、管理编码和发货件数的值上都需要加上此次扫的小码
                        //如果扫过,那么需要把原来此盒的小码都改成此次扫的小码
                        if(he != null && he != '' && he != undefined && xiaoma != null && xiaoma != '' && xiaoma != undefined){
                            var linshistr = '';//临时小码值
                            var linshistr1 = '';//临时盒的值
                            var oldheArray = he.split(',');//获取原来的所有盒
                            var oldxiaomaArray = xiaoma.split(',');//获取原来的所有小码
                            //循环原来明细的盒
                            for(var i = 0;i < oldheArray.length;i++){
                                if(oldheArray[i] != null && oldheArray[i] != '' && oldheArray[i] != undefined){
                                    var oldHe = '';//临时状态变量,1:值不变,2:删除当前小码和盒,3:当前盒等于原来盒,但是当前小码没有变化,值还是不变
                                    //判断原来的盒和现在操作的盒是否相等
                                    if(oldheArray[i] == newHe){
                                        //如果原来的盒等于当前操作的盒,那么接着判断小码情况
                                        //循环弹出框的小码
                                        for(var j=1;j<tableId.rows.length;j++) {
                                            //原来的小码等于当前扫的小码,那么值不需要改变
                                            if(oldxiaomaArray[i] == tableId.rows[j].cells[1].innerHTML){
                                                oldHe = '3';
                                            }
                                        }
                                    }else{
                                        //如果原来的盒不等于当前操作的盒,那么不需要做变化,值把现在循环的盒放到临时变量里面
                                        linshistr += oldxiaomaArray[i] + ',';
                                        linshistr1 += oldheArray[i] + ',';
                                    }
                                    if(oldHe == '3'){
                                        linshistr += oldxiaomaArray[i] + ',';
                                        linshistr1 += oldheArray[i] + ',';
                                    }
                                }
                            }
                            str = linshistr;
                            str1 = linshistr1;
                            //由于以上的操作只能找到原来的盒和小码是否删除,那么一下的操作就是把最新操作的盒和小码追加到字符串的最后面
                            //循环弹出框的小码
                            for(var j=1;j<tableId.rows.length;j++) {
                                var vFlag = true;//临时变量,用于判断是否需要追加
                                for(var o = 0;o < linshistr.split(',').length ; o++){
                                    if(linshistr.split(',')[o] != '' && linshistr.split(',')[o] != null){
                                        //判断是否有相等的盒
                                        if(linshistr1.split(',')[o] == newHe){
                                            //判断小码是否一样,如果一样,那么不需要追加
                                            if(linshistr.split(',')[o] == tableId.rows[j].cells[1].innerHTML){
                                               vFlag = false;
                                            }
                                        }
                                    }
                                }
                                if(vFlag){
                                    //追加新的盒和小码
                                    str += tableId.rows[j].cells[1].innerHTML + ',';
                                    str1 += newHe + ',';
                                }
                            }
                            if(str != '' && str1 != null){
                                str = str.substring(0,str.length-1);
                                str1 = str1.substring(0,str1.length-1);
                            }
                            numstr = str == '' ? null : str.split(',').length;
                        }else{//如果明细原来没有扫过码,那么直接追加就行
                            for(var i=1;i<tableId.rows.length;i++) {
                                str += tableId.rows[i].cells[1].innerHTML + ',';
                                str1 += document.getElementById("bianma").innerHTML + ',';//盒
                            }
                            if(str != '' && str1 != null){
                                str = str.substring(0,str.length-1);
                                str1 = str1.substring(0,str1.length-1);
                            }
                            numstr = j$("#detailTb").find("tr").length-1;//发货件数
                        }
                    }else{
                        //如果没有小码,那么判断原来的是否有小码和盒,如果原来也没有,那么什么也不用做
                        //如果原来有,那么找到等于当前盒的所有小码,都删除掉
                        if(he != null && he != '' && he != undefined && xiaoma != null && xiaoma != '' && xiaoma != undefined){
                            var oldheArray = he.split(',');
                            var oldxiaomaArray = xiaoma.split(',');
                            for(var i = 0;i < oldheArray.length;i++){
                                if(oldheArray[i] != newHe){
                                    str += oldxiaomaArray[i] + ',';
                                    str1 += oldheArray[i] + ',';
                                }
                            }
                            if(str != '' && str1 != null){
                                str = str.substring(0,str.length-1);
                                str1 = str1.substring(0,str1.length-1);
                            }
                            numstr = str == '' ? null : str.split(',').length;//发货件数
                        }
                    }
                    if(str == '' && he == '' && xiaoma == ''){
                        checkObj.prop('checked', false);
                    }else{
                        moveToTop(checkObj);
                        checkObj.prop('checked', true).trigger("change");
                        moveToTop(numObj);
                    }
                    rowObj[0].children[9].children[0].value = str; //备品管理码
                    rowObj[0].children[10].children[0].value = str1;//管理编码
                    numObj[0].innerText = numstr;//发货件数
                }
                //update        wangweipeng            2022/02/21                   end
            }
        }else if(numflag == 1){
            //如果为true,那么证明选择的是取消按钮,那么需要把第一行的复选框去掉
            checkObj.prop('checked', false);
        }
        var maqCode = j$( '#maqCode' ).val();
        alert('==='+j$( '#maqCode' ).val());
        if (maqCode !='' && maqCode !=undefined){
        //alert('==='+j$( '#maqCode' ).val());
        //if (maqCode !='' && maqCode !=undefined){
            j$("#maqCode").val("");
            j$("#maqCode").focus();
        }
            setTimeout(function(){j$("#maqCode").focus();},300);
        //}
    }
    <!-- add by qiuyj 2021-11-30 start  pc端扫码支持-->
    // <!-- add by qiuyj 2021-11-30 start  pc端扫码支持-->
    j$(document).ready(function(){
        j$( '#qrcode' ).unbind();
        j$( '#qrcode' ).keypress( function ( e ) {
@@ -515,6 +694,8 @@
                return false;
            }
        });
        setTimeout(function(){j$("#maqCode").focus();},300);
    });
    // add by qiuyj 2021-11-30 end  pc端扫码支持
    // add by rentx 2021-10-19 end 耗材追溯 -码枪扫码之后展示弹出框 
@@ -571,7 +752,7 @@
            }
            //能走到这说明待删除的小码不存在于明细列表 所以要给出提示
            if (this.flag == 'delConsumables') {
                alert('必须先扫描要取消的小码');
                alert('删除的小码已删除或未扫描过');
                this.flag = '';
                return false;
            }
@@ -605,8 +786,10 @@
        try{
        if (scanType == 1) {
            j$("input[name$='slipNo']").val(content);
            scanType = null;
        }else if(scanType == 2){//add by youc 2021-12-01 弹出框中ipad扫描小码
            checkipadXiaoMa(content);
            scanType = null;
        } else {
            
                 var tracingCode = content.substr(-8);//截取后8位
@@ -621,6 +804,7 @@
                j$(".col_Barcode_F__c span").each(function(index) {
                    if (j$(this).text() && (content.indexOf(j$(this).text()) == 0)) {
                        rownum.push(this.id.match(/oppTable\:(\d*)/)[1]);
                         console.log('1---'+rownum);
                        return;
                    }
                    var JANCODE = content.substr(3, 12);
@@ -652,6 +836,7 @@
                        if ($prdSerialNo[index].value.startsWith(content2)) {
                            if(this.id != undefined){
                                rownum.push(this.id.match(/oppTable\:(\d*)/)[1]);
                                 console.log('2---'+rownum);
                                return;
                            }
                        }
@@ -822,6 +1007,7 @@
            j$("#qrcode").focus();
            //add by qiuyj 2021-11-30 end  pc端扫码支持-->
             //alert('扫描条形码请使用App');
        }
    }