FUYU
2023-05-19 559771a80cf779dc13a84ecd2f178e6ca5a8353a
force-app/main/default/pages/ConsumEquipmentSetReceived.page
@@ -7,8 +7,8 @@
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
<apex:includeScript value="/soap/ajax/46.0/connection.js"/>
<apex:includeScript value="/soap/ajax/46.0/apex.js"/>
<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
<apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
<apex:stylesheet value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.css')}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.js')}"/>
<style>
@@ -40,11 +40,118 @@
  height: 100px;
  width: 30px;
}
/*add start by youc 2021-12-07 耗材追溯 -收货 管理编码 备品管理码设置成只读
.col_ManagementCode__c input{
    border:none;
    pointer-events: none;
}
.col_EquipmentManagementCode__c input{
    border:none;
    pointer-events: none;
}
 */
.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
{
    display:none;
    position: fixed; /* Stay in place */
    z-index: 10; /* Sit on top */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    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
{
    background-color: #fefefe;
    margin: auto;
    margin-top: 100px;
    padding: 20px;
    border: 1px solid #888;
    width: 120%; /* Could be more or less, depending on screen size */
}
/*add end by youc 2021-12-07 耗材追溯 -收货*/
</style>
<script type="text/javascript">
    sforce.connection.sessionId = "{!$Api.Session_ID}";
    var JANCODEMap = {};
</script>
<!-- add by youc 2021-12-07 start 耗材追溯 -码枪扫描之后弹出框 -->
<div id="myModal1" class="modal">
    <!-- 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>
        <button onclick="qrsacn(2);return false;" >ipad扫描袋子条形码</button>
        <table style="width:100%" >
            <!-- <tr><th>当前设备信息</th></tr>
            <tr>  <td align="right">备品配套明细型号</td>  <td><span id="xinghao"/></td>  </tr>
            <tr>  <td align="right">机身编号</td>         <td><span id="bianhao"/></td>  </tr>
            <tr>  <td align="right">管理编码</td>         <td><span id="bianma"/></td>  </tr> -->
            <tr class="headerRow" height="30px">
                <td class="headerRow  booleanColumn" onclick="document.getElementById('xiaomaCode').focus();return false" align="left">
                    码枪扫描袋子条形码: <input id="xiaomaCode" onkeypress="return checkXiaoMa(event)" autofocus="autofocus" />
                </td>
                <!-- <td class="headerRow  booleanColumn"> <input id="xiaomaCode" onkeypress="return checkXiaoMa(event)" autofocus="autofocus" /> </td> -->
                <!-- <td class="headerRow  booleanColumn" colspan="8"/> -->
            </tr>
        </table>
        <br/>
        <table id="detailTb" style="width:100%" align="center" >
            <!-- 用字段集显示更简单一点 直接用那个组件更更简单 但是没看懂那个组件是咋用的 所以暂时用最笨的方法了 -->
            <tr class="headerRow" height="30px">
                <!-- Fixture_Model_No__c Consumable_Guaranteen_end_F__c SerialNumber_F__c Salesdepartment__c Asset_return_Day__c Return_DeliverySlip__r.Name Hui_Ji_Jia__c Yi_Zhi_Bao_Fei_Jia__c Yi_Zhi_Guo_Qi_Jia__c Shang_Jia_Jia__c WH_location__c Barcode_F__c ManagementCode__c EquipmentManagementCode__c barcodeforReceipt__c -->
                <!-- <th style="width:25px" class="headerRow  booleanColumn"> -->
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Fixture_Model_No__c.label}</th>
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Consumable_Guaranteen_end_F__c.label}</th>
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.SerialNumber_F__c.label}</th>
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Salesdepartment__c.label}</th>
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Asset_return_Day__c.label}</th>
                <th class="headerRow  booleanColumn">回寄运输单号</th>
                <th class="headerRow  booleanColumn">{!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.EquipmentManagementCode__c.label}</th>
                <th class="headerRow  booleanColumn">移至报废区件数</th>
                <th class="headerRow  booleanColumn">移至过期区件数</th>
                <th class="headerRow  booleanColumn">上架件数</th>
                <!-- </th> -->
            </tr>
            <!-- <tr><td>XXX</td><td>001</td><td> <button value="删除" /></td></tr> -->
        </table>
    </div>
</div>
<!-- add by youc 2021-12-07 end 耗材追溯 -码枪扫描之后弹出框 -->
<!-- add by qiuyj 2021-11-30 start  pc端扫码支持-->
<div id="myModal2" class="modal">
  <!-- Modal content -->
  <div class="modal-content" style="width:200px">
    <span class="close" onclick="stopScan()">&times;</span>
    <p>扫描中</p>
        <p>Code:<input type="text" id="qrcode"/></p>
    <video playsinline="true" id="preview" style="width: 100%;z-index: 11;transform: scaleX(-1);margin-top: 10px;"></video>
    扫码履历:
    <ul id="scanedqr" style="list-style-type: none; text-align: center;padding: 0;width: 100%; height: 100px; overflow: auto">
    </ul>
  </div>
</div>
<!-- add by qiuyj 2021-11-30 end pc端扫码支持-->
<apex:form id="allForm">
    <apex:inputHidden value="{!done_flg}" id="done_flg"/>
    <apex:outputPanel id="pageallPanel">
@@ -53,6 +160,10 @@
                <apex:commandButton style="float:left;" action="{!save}" onclick="blockme();" value="保存" rerender="allForm" oncomplete="unblockUI();checkMessage();" />
                <apex:commandButton action="{!cancel}" value="取消" rerender="allForm"/>
                <apex:commandButton onclick="qrsacn(0);return false;" value="扫一扫耗材" rerender="allForm"/>
                <!-- add by youc 2021-12-07 start 新增码枪扫描 -->
                <apex:commandButton onclick="document.getElementById('maqCode').focus();return false" id="maqCodeBtn"  value="码枪扫描:" style="padding: 6px;font-size: 110%;margin-right: 1px;"/>
                <input id="maqCode" style="padding:6px" onkeypress="return onKeyPress(event)" autofocus="autofocus" />
                    <!-- add by youc 2021-12-07 end 新增码枪扫描 -->
            </apex:pageBlockButtons>
             <table>
@@ -115,6 +226,459 @@
    </apex:outputPanel>
</apex:form>
<script type="text/javascript">
    //add by youc 2021-12-07 start  =====================================start==================================
    //1.扫码后对码的校验
    function onKeyPress(e) {
        var keyCode = null;
        if(e.which)
            keyCode = e.which;
        else if(e.keyCode)
            keyCode = e.keyCode;
        if(keyCode == 13) {
            //拿到当前输入code
            var nowCode = j$( '#maqCode' ).val();
            filljsQR(nowCode);
            nowCode = '';
            return false;
        }
        return true;
    }
    var numObj;     //发货件数的 obj
    var rowObj;     //明细行的obj
    //2.为弹出框里的信息赋值 并且展示弹出框
    function showTb(paobj,rightObj,condamama,content250) {
        numObj = rightObj;
        rowObj = paobj;
        //删除缓存
        var tableId = document.getElementById("detailTb");
        if(tableId.rows.length > 0){
            var rownum = tableId.rows.length ;
            for (i=1;i<rownum;i++) {
                tableId.deleteRow(i);
                rownum=rownum-1;
                i=i-1;
            }
        }
        j$("#SMCode").val(condamama);//后五位
        j$("#boxCode").val(content250);//盒子码
        //是否需要展示已存在信息,--- 展示的话是不是还需要把打勾的展示出来 用户没扫描小码也展示吗(不显示) 还是说展示选过的(保存过的也不再弹窗里显示)
        //页面上打了勾 关了框后又点开这个框
        var codea = '';
        //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() && content250.indexOf(j$(this).text()) == 0){
                var ddd = j$(this).parent().parent()[0].children[7].children[0].disabled;//移至报废区件数 判断是否是可编辑状态 如果是可编辑状态,说明还没有保存,进行收货呢
                if (ddd == false) {
                    //判断是否打了勾
                    var bf = j$(this).parent().parent()[0].children[7].children[0].value;
                    var gq = j$(this).parent().parent()[0].children[8].children[0].value;
                    var sj = j$(this).parent().parent()[0].children[9].children[0].value;
                    //var xiaomamma =j$(this).parent().parent()[0].children[13].children[0].value;//小码 001
                    var xiaomamma =j$(this).parent().parent()[0].children[13].innerText;
                    //var xiaomamma2 =j$(this).parent().parent()[0].children[13].children[0].innerText;
                    console.log('小码=='+xiaomamma);
                    if (bf== '1') {
                        addRow(xiaomamma,'1');
                    }else if (gq == '1') {
                        addRow(xiaomamma,'2');
                    }else if (sj == '1') {
                        addRow(xiaomamma,'3')
                    }
                }else{//如果是只读状态,说明是系统已经存在的数据了
                    var xiaomamma =j$(this).parent().parent()[0].children[13].innerText;
                    //var xiaomamma =j$(this).parent().parent()[0].children[13].children[0].value;
                    var damamma =j$(this).parent().parent()[0].children[12].innerText;
                    codea += damamma+xiaomamma + ',';
                    console.log('小码=='+codea);
                    j$("#havCode").val(codea);
                }
            }
        })
        // var aa = paobj[0].children[15].children[1].value;
        // if (aa != null && aa.length > 0) {
        //     //向弹出框里添加明细行
        //     var arr = aa.split(',');
        //     for (var i = arr.length - 1; i >= 0; i--) {
        //         addRow(arr[i]);
        //     }
        // }
        //j$(".modal").show();
        j$("#myModal1").show();
        //使用定时器设置光标定位因为如果是弹出选择本部的框之后再设置 会定位不到
        setTimeout(function(){j$("#xiaomaCode").focus();},300);
        // j$("#xiaomaCode").focus();
        return;
        // j$("#maqCodeBtn").click();
    }
    //3.关闭弹框
    function stopScan(numflag) {
        //numflag= 1 关闭输入框,清空码枪输入的值,光标自动定位到码枪输入
        //j$(".modal").hide();
        j$("#myModal1").hide();
        //取得盒子条形码
        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");
                if(tableId.rows.length > 0){
                    for(var i=1;i<tableId.rows.length;i++) {
                        var xiaoma = tableId.rows[i].children[6].innerText;
                        var bf = tableId.rows[i].children[7].children[0].checked;
                        var gq = tableId.rows[i].children[8].children[0].checked;
                        var sj = tableId.rows[i].children[9].children[0].checked;
                        //alert('进来了'+xiaoma+'=bf='+bf+'=gq='+gq+'=sj='+sj);
                        var typeflag = '';
                        if (bf) {typeflag = '1';}
                            else if (gq) {typeflag = '2';}
                                else if (sj) {typeflag = '3';}
                        typeMap.set(xiaoma,typeflag)
                        arrXiaoma.push(xiaoma);
                    }
                }
            }
            //alert('==typeMap=='+typeMap);
            //1.取得当前展示的信息 --为了防止写过多的代码 我们直接取展示列表的第一行即可 拿到barcode和所在地区本部
            var a = rowObj[0].children[3].innerText; //所在地区(本部) 现在
            var b = rowObj[0].children[11].innerText; //条形码
            var c = rowObj[0].children[12].innerText; //大码
            //2.根据这两个值取得展示列表的明细行
            //2.1 取得barcode相同的数据行-- 同一个保有设备
            let sameAss = [];
            //用于存放 小码:多少行,便于获取
            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 && 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;
                    if(typeMap.has(xiaomamma) && typeMap.get(xiaomamma) == '1' ){
                        j$(this).parent().parent()[0].children[7].children[0].value = '1';
                        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]);
                        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[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) {
                //倒叙,用于和弹窗框里面的顺序一样
                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);
                    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:'+rn+':') !== -1) {
                            // j$(this).find("input").attr('autofocus', 'autofocus');
                            var rightobj = j$(this).find("input:not(:disabled)");
                            //alert(rn+'=rightobj='+rightobj);
                            moveToTop(rightobj);
                        }
                    })
                })*/
            }
            //update  by     wangweipeng           2022/02/24          end
        }
        j$("#boxCode").val("");
        setTimeout(function(){j$("#maqCode").focus();},300);
    }
    //4.扫小码之后对码的校验
    var flag = '';
    function checkXiaoMa(e) {
        var keyCode = null;
        if(e.which)
            keyCode = e.which;
        else if(e.keyCode)
            keyCode = e.keyCode;
        if(keyCode == 13) {
            //拿到当前输入code 先扫小码 再扫三个区
            var nowCode = j$( '#xiaomaCode' ).val();
            //alert(nowCode);
            //判断这个小码是否为 delConsumables(删除耗材) 如果是 存该信息到flag中
            if (nowCode == 'delConsumables') {
                this.flag = 'delConsumables';
                j$( '#xiaomaCode' ).val("");
                return;
            }
            //判断这个小码是否为 saveConsumables(保存耗材) 如果是 保存
            if (nowCode == 'saveConsumables') {
                //相当于点击保存按钮
                stopScan(0);
                j$( '#xiaomaCode' ).val("");
                j$("#maqCode").focus();
                return;
            }
            //判断这个小码是否为 cancelConsumables(取消耗材) 如果是 取消
            if (nowCode == 'cancelConsumables') {
                //相当于点击取消按钮
                stopScan(1);
                j$( '#xiaomaCode' ).val("");
                return;
            }
            //判断当前小码的值 是否为(moveToBaoFei 移至报废区) (moveToGuoqi 移至过期区) (shangjiaQuantity 上架件数)
            var tableId = document.getElementById("detailTb");
            if (nowCode.length != 3) {
                if (tableId.children[0].children[tableId.rows.length-1].children[7].children[0] == undefined) {
                    alert('请先扫小码');
                    j$( '#xiaomaCode' ).val("");
                    return;
                }
            }
            if (nowCode == 'moveToBaoFei') {
                //取得上一个扫的条码
                tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = true;
                tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = false;
                tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = false;
                //alert('moveToBaoFei'+nowCode);
                j$( '#xiaomaCode' ).val("");
                return;
            }
            if (nowCode == 'moveToGuoqi') {
                //取得上一个扫的条码
                tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = false;
                tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = true;
                tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = false;
                j$( '#xiaomaCode' ).val("");
                return;
            }
            if (nowCode == 'shangjiaQuantity') {
                tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = false;
                tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = false;
                tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = true;
                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 == 'allMoveToGuoqi') {
                if(tableId.rows.length > 0){
                    for(var i=1;i<tableId.rows.length;i++) {
                        tableId.children[0].children[i].children[7].children[0].checked = false;
                        tableId.children[0].children[i].children[8].children[0].checked = true;
                        tableId.children[0].children[i].children[9].children[0].checked = false;
                    }
                }
                j$( '#xiaomaCode' ).val("");
                return;
            }
            if (nowCode == 'allShangJia') {
                if(tableId.rows.length > 0){
                    for(var i=1;i<tableId.rows.length;i++) {
                        tableId.children[0].children[i].children[7].children[0].checked = false;
                        tableId.children[0].children[i].children[8].children[0].checked = false;
                        tableId.children[0].children[i].children[9].children[0].checked = true;
                    }
                }
                j$( '#xiaomaCode' ).val("");
                return;
            }
            // if (nowCode.length != 3) {
            //     alert("袋子二维码与发货时不匹配!");
            //     j$( '#xiaomaCode' ).val("");
            //     return;
            // }
            //如果扫的小码之前扫描过并保存了 提示信息
            // var tableId = document.getElementById("detailTb");
            // debugger;
            var havCode = document.getElementById("havCode").value;
            //存在于已经扫描过的码 给出提示
            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[17].children[1].value;
            //alert(aa);
            if (aa != null && aa.length > 0) {
                //向弹出框里添加明细行
                //if (aa.indexOf(nowCode) == -1) {
                if (aa.indexOf(YZCode) == -1) {
                    //alert('this.flag==='+this.flag);
                    if (this.flag == 'delConsumables') {
                        alert('已进入删除小码操作,请扫描正确的小码');
                        j$( '#xiaomaCode' ).val("");
                        this.flag = '';
                        return;
                    } else if(nowCode != null && nowCode.length == 3 && !isNaN(nowCode)){
                       }else{
                          alert('当前小码不正确');
                          j$( '#xiaomaCode' ).val("");
                          return;
                       }
                    alert('扫描的小码在发货明细中不存在或未寄回,请重新扫描!');
                    j$( '#xiaomaCode' ).val("");
                    return;
                }else{
                    //判断是否已经扫描过
                    // var tableId = document.getElementById("detailTb");
                    if(tableId.rows.length > 0){
                        for(var i=1;i<tableId.rows.length;i++) {
                            console.log(nowCode+'=498='+tableId.rows[i].cells[6].innerHTML);
                            if(nowCode == tableId.rows[i].cells[6].innerHTML){
                                if (this.flag == 'delConsumables') {
                                    //删除这一行
                                    tableId.rows[i].remove();
                                    this.flag = '';
                                    j$( '#xiaomaCode' ).val("");
                                    return;
                                }else{
                                    //小码已存在 滞后 先删后加 相当于让扫这个小码的那三个类型
                                    var bf1 = tableId.children[0].children[i].children[7].children[0].checked;
                                    var gq1 = tableId.children[0].children[i].children[8].children[0].checked;
                                    var sj1 = tableId.children[0].children[i].children[9].children[0].checked;
                                    console.log(bf1+'=1='+gq1+'=='+sj1);
                                    tableId.rows[i].remove();
                                    j$( '#xiaomaCode' ).val("");
                                    // return;
                                    alert('小码已扫描,无需再次扫描!');
                                    // console.log(bf1+'=2='+gq1+'=='+sj1);
                                    if (bf1) {
                                         addRow(nowCode,'1');
                                    }else if (gq1) {
                                         addRow(nowCode,'2');
                                    }else if (sj1) {
                                         addRow(nowCode,'3');
                                    }else{
                                         addRow(nowCode,'');
                                    }
                                    //break;
                                    return;
                                }
                            }
                        }
                    }
                    console.log('新码直接添加');
                    addRow(nowCode,'');
                }
            }
            return;
        }
        return;
    }
    //5.添加1行
    function addRow(nowcode,xm) {
        // 取得对应的明细行
        //1. 拿到待展示的数据
        var a = rowObj[0].children[0].innerText; //备品配套明细型号
        var b = rowObj[0].children[1].innerText; //消耗品有效期至
        var c = rowObj[0].children[2].innerText; //机身编号
        var d = rowObj[0].children[3].innerText; //所在地区(本部) 现在
        var e = rowObj[0].children[4].innerText; //回寄日
        var f = rowObj[0].children[5].innerText; //回寄运输单号
/**
        j$("#detailTb").append("<tr><td>"+a+"</td><td>"+b+"</td><td>"+c+"</td><td>"+d+"</td><td>"+e+"</td><td>"+f+"</td><td>"+nowcode+"</td><td><input type=\"checkbox\" onchange=\"checktype(1,j$(this))\" /></td><td><input type=\"checkbox\" onchange=\"checktype(2,j$(this))\" /></td><td><input type=\"checkbox\" onchange=\"checktype(3,j$(this))\"/></td></tr>");
**/
      j$('#detailTb').append('<tr><td>'+a+'</td><td>'+b+'</td><td>'+c+'</td><td>'+d+'</td><td>'+e+'</td><td>'+f+'</td><td>'+nowcode+'</td><td><input type=\'checkbox\' onchange=\'checktype(1,j$(this))\' /></td><td><input type=\'checkbox\' onchange=\'checktype(2,j$(this))\' /></td><td><input type=\'checkbox\' onchange=\'checktype(3,j$(this))\'/></td></tr>');
        //判断是哪个类型
        j$('#detailTb tr:last').find('td')[7].children[0].checked = xm == '1' ? true : false;
        j$('#detailTb tr:last').find('td')[8].children[0].checked = xm == '2' ? true : false;
        j$('#detailTb tr:last').find('td')[9].children[0].checked = xm == '3' ? true : false;
        //清空输入框
        j$( '#xiaomaCode' ).val("");
    }
    //6.选中一个类型后其他两个自动取消勾选
    function checktype(num,checjObj) {
        // body...
        var tr = checjObj.parent().parent();
        // debugger;
        tr[0].children[7].children[0].checked = num == 1 ? true : false;
        tr[0].children[8].children[0].checked = num == 2 ? true : false;
        tr[0].children[9].children[0].checked = num == 3 ? true : false;
        // debugger;
    }
    //add by youc 2021-12-07 end   =====================================end==================================
    j$(document).ready(function(){
        // j$( '#qrcode' ).unbind();
        // j$( '#qrcode' ).keypress( function ( e ) {
@@ -123,14 +687,193 @@
        //         return false;
        //     }
        // });
        //<!-- add by qiuyj 2021-11-30 start  pc端扫码支持-->
        j$( '#qrcode' ).unbind();
        j$( '#qrcode' ).keypress( function ( e ) {
            if ( e.which == 13 ) {
                filljsQR(j$( '#qrcode' ).val());
                j$("#scanedqr").append("<li>"+j$( '#qrcode' ).val()+"</li>");
                j$("#scanedqr").animate({ scrollTop: j$("#scanedqr").prop("scrollHeight")}, 1000);
                j$('#myModal2').hide();
                return false;
            }
        });
        //<!-- add by qiuyj 2021-11-30 end  pc端扫码支持-->
        var tbwidth = j$('#tableHeader').css('width');
        tbwidth = parseInt(tbwidth.slice(0, -2)) - 76;
        j$('#tableHeader').css('width', tbwidth+'px');
        j$('#tableData').css('width', tbwidth+'px');
    });
    // add by youc 2022-01-11 start
    //ipad扫完小码之后
    var ipadflag = '';
    var ipadnowCode;
    function checkipadXiaoMa(ipadnowCode1) {
        ipadnowCode = ipadnowCode1;
        console.log('0=='+ipadnowCode+ipadflag);
        if (ipadnowCode == 'delConsumables') {
            ipadflag = 'delConsumables';
            return false;
        }
        //判断这个小码是否为 saveConsumables(保存耗材) 如果是 保存
        else if (ipadnowCode == 'saveConsumables') {
            //相当于点击保存按钮
            stopScan(0);
            return false;
        }
        //判断这个小码是否为 cancelConsumables(取消耗材) 如果是 取消
        else if (ipadnowCode == 'cancelConsumables') {
            //相当于点击取消按钮
            stopScan(1);
            return false;
        }
        console.log('1=='+ipadnowCode);
        //判断当前小码的值 是否为(moveToBaoFei 移至报废区) (moveToGuoqi 移至过期区) (shangjiaQuantity 上架件数)
        var tableId = document.getElementById("detailTb");
        if (ipadnowCode.length != 3) {
            if (tableId.children[0].children[tableId.rows.length-1].children[7].children[0] == undefined) {
               alert('请先扫小码')
               console.log('2=='+ipadnowCode+ipadflag);
               return false;
            }
        }
        if (ipadnowCode == 'moveToBaoFei') {
            //取得上一个扫的条码
            tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = true;
            tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = false;
            tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = false;
            return false
        }else if (ipadnowCode == 'moveToGuoqi') {
            //取得上一个扫的条码
            tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = false;
            tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = true;
            tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = false;
            return false
        }else if (ipadnowCode == 'shangjiaQuantity') {
            tableId.children[0].children[tableId.rows.length-1].children[7].children[0].checked = false;
            tableId.children[0].children[tableId.rows.length-1].children[8].children[0].checked = false;
            tableId.children[0].children[tableId.rows.length-1].children[9].children[0].checked = true;
            return false
        } else if (ipadnowCode == '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;
                }
            }
            return false
        }else if (ipadnowCode == 'allMoveToGuoqi') {
            if(tableId.rows.length > 0){
                for(var i=1;i<tableId.rows.length;i++) {
                    tableId.children[0].children[i].children[7].children[0].checked = false;
                    tableId.children[0].children[i].children[8].children[0].checked = true;
                    tableId.children[0].children[i].children[9].children[0].checked = false;
                }
            }
            return false
        }else if (ipadnowCode == 'allShangJia') {
            if(tableId.rows.length > 0){
                for(var i=1;i<tableId.rows.length;i++) {
                    tableId.children[0].children[i].children[7].children[0].checked = false;
                    tableId.children[0].children[i].children[8].children[0].checked = false;
                    tableId.children[0].children[i].children[9].children[0].checked = true;
                }
            }
            return false
        }
        var havCode = document.getElementById("havCode").value;
        //存在于已经扫描过的码 给出提示
        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[17].children[1].value;
        if (aa != null && aa.length > 0) {
            //向弹出框里添加明细行
            //if (aa.indexOf(ipadnowCode) == -1) {
            if (aa.indexOf(YZCode) == -1) {
                console.log('3=='+ipadnowCode+'==='+ipadflag);
                if (ipadflag == 'delConsumables') {
                    alert('已进入删除小码操作,请扫描正确的小码')
                    ipadflag = '';
                    return false;
                }else if(ipadnowCode != null && ipadnowCode.length == 3 && !isNaN(ipadnowCode)){
                }else{
                  alert('当前小码不正确');
                  return;
                }
                alert('扫描的小码在发货明细中不存在或未寄回,请重新扫描!')
                return;
            }else{
                //判断是否已经扫描过
                // var tableId = document.getElementById("detailTb");
                var flagto =false;
                if(tableId.rows.length > 0){
                    for(var i=1;i<tableId.rows.length;i++) {
                        //alert(ipadnowCode+'=498='+tableId.rows[i].cells[6].innerHTML)
                        if(ipadnowCode == tableId.rows[i].cells[6].innerHTML){
                            console.log('4==='+ipadflag);
                            if (null!=ipadflag && ipadflag == 'delConsumables') {
                                //删除这一行
                                tableId.rows[i].remove();
                                ipadflag = '';
                                flagto =true;
                                //return;
                                 break;
                            }else{
                                //小码已存在 滞后 先删后加 相当于让扫这个小码的那三个类型
                                var bf1 = tableId.children[0].children[i].children[7].children[0].checked;
                                var gq1 = tableId.children[0].children[i].children[8].children[0].checked;
                                var sj1 = tableId.children[0].children[i].children[9].children[0].checked;
                                console.log(bf1+'=1='+gq1+'=='+sj1);
                                tableId.rows[i].remove();
                                // return;
                                //alert('qqq')
                                // this.j$alert('ceshi','123',{
                                //     confirmButtonText:'确定',
                                // });
                                // j$
                               //alert(1)
                               alert('小码已扫描,无需再次扫描!');
                                //已为您滞后!
                                //break;之前就是注释的
                                console.log(bf1+'=2='+gq1+'=='+sj1);
                                if (bf1) {
                                    addRow(ipadnowCode,'1');
                                }else if (gq1) {
                                    addRow(ipadnowCode,'2');
                                }else if (sj1) {
                                    addRow(ipadnowCode,'3');
                                }else{
                                     addRow(ipadnowCode,'');
                                }
                                return;
                        }
                        }
                    }
                    //
                }
                if(!flagto){
                   addRow(ipadnowCode,'');
                }
            }
        }
        return true;
        }
    // add by youc 2022-01-11 end
    function checkMessage() {
        if (j$(escapeVfId('allPage:allForm:done_flg')).val() == 'true') {
            alert("保存成功");
            alert('保存成功');
        }
    }
@@ -142,14 +885,21 @@
    function filljsQR(content) {
        if (scanType == 1) {
            j$("input[name$='slipNo']").val(content);
        }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);
            }
            let rownum = [];
            var $Col_Scroll = j$(".dataRow.col_Scroll");
            j$(".col_Barcode_F__c span").each(function(index) {
            //update by youc 2021-12-07 start 根据col_barcodeforReceipt__c展示 防止重复
            // 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;
@@ -187,8 +937,41 @@
                    }
                }
            })
            if (rownum.length == 0) {
                alert('扫描的耗材不存在!')
            var maqiang = j$( '#maqCode' ).val();
            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{
                   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) {
@@ -217,34 +1000,57 @@
                            action: function () {
                                var rn = this.$content.find('#salesDept').val();
                                var leftobj = j$("input[name$='oppTable_L:"+rn+":rowCheck']:not(:disabled)");
                                moveToTop(leftobj);
                                leftobj.prop('checked', true).trigger("change");
                                //moveToTop(leftobj);
                                //注释 by youc  因为 之前的逻辑是直接找到整一个设备并且置顶并勾选
                                // leftobj.prop('checked', true).trigger("change");
                                //注释 by youc  因为 之前的逻辑是直接找到整一个设备并且置顶并勾选
                                j$(".col_Yi_Zhi_Bao_Fei_Jia__c").each(function () {
                                    if (j$(this).children()[0] && j$(this).children()[0].id.indexOf('oppTable:'+rn+':') !== -1) {
                                        // j$(this).find("input").attr('autofocus', 'autofocus');
                                        var rightobj = j$(this).find("input:not(:disabled)");
                                        moveToTop(rightobj);
                                        rightobj.focus();
                                        //moveToTop(rightobj);
                                        // rightObj.focus();
                                        //add by youc 2021-12-07 start  展示弹出框
                                        var paobj = j$(this).parent();
                                        var condamama = content250.substr(-5);
                                        showTb(paobj,rightobj,condamama,content250);
                                        //add by youc 2021-12-07 end 展示弹出框
                                        return;
                                    }
                                })
                            }
                        },
                        cancel: {
                            text: '取消'
                            text: '取消',
                           //add by youc 2021-11-30 start
                            action: function () {
                                 if(maqiang !='' && maqiang !=undefined){
                                     j$("#maqCode").val("");
                                     j$("#maqCode").focus();
                                 }
                            }
                        }
                    }
                });
            } else {
                var leftobj = j$("input[name$='oppTable_L:"+rownum[0]+":rowCheck']:not(:disabled)");
                moveToTop(leftobj);
                leftobj.prop('checked', true).trigger("change");
                //moveToTop(leftobj);
                //注释 by youc  因为 之前的逻辑是直接找到整一个设备并且置顶并勾选
                // leftobj.prop('checked', true).trigger("change");
                //注释 by youc  因为 之前的逻辑是直接找到整一个设备并且置顶并勾选
                j$(".col_Yi_Zhi_Bao_Fei_Jia__c").each(function () {
                    if (j$(this).children()[0] && j$(this).children()[0].id.indexOf('oppTable:'+rownum[0]+':') !== -1) {
                        // j$(this).find("input").attr('autofocus', 'autofocus');
                        var rightobj = j$(this).find("input:not(:disabled)");
                        moveToTop(rightobj);
                        rightobj.focus();
                        //moveToTop(rightobj);
                        //rightobj.focus();
                        //展示弹出框 add by youc 2021-12-07 start
                        var paobj = j$(this).parent();
                        var condamama = content250.substr(-5);
                        showTb(paobj,rightobj,condamama,content250);
                        //展示弹出框 add by youc 2021-12-07 end
                        return;
                    }
                })
@@ -294,8 +1100,91 @@
        if (!standalone && !safari && ios) {
            window.location.href="sfqr://scan";
        } else {
            alert('扫描条形码请使用App');
            //<!-- add by qiuyj 2021-11-30 start  pc端扫码支持-->
           j$("#myModal2").show();
            j$("#qrcode").focus();
            //<!-- add by qiuyj 2021-11-30 end  pc端扫码支持-->
             //alert('扫描条形码请使用App');
        }
    }
  //   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>