高章伟
2022-03-18 4bfe21c4b5ddc089ae5a95f4b10f6cff148b690d
force-app/main/default/pages/ConsumTrial.page
@@ -5,6 +5,7 @@
    <apex:stylesheet value="{!URLFOR($Resource.ConsumTrialPageCss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.ReceivingNotePageJS)}"/>
    <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }"/>
    <apex:form id="allForm">
        <style>
            table.headTable td   {
@@ -23,287 +24,392 @@
              background-repeat:no-repeat;
            }
        </style>
<script type="text/javascript">
    var heightAjustment = 120;
    var widthAjustment = 30;
        <script type="text/javascript">
            var heightAjustment = 120;
            var widthAjustment = 30;
            var staticResource = JSON.parse('{!staticResource}');
    // 适用按钮
    function applyJs() {
        var appliedFlag = true;
        var selectFlag = true;
        var isCheckFlag = false;
        var ShowDemonstration = j$(escapeVfId('allPage:allForm:searchBlock:ShowDemonstration')).val();  // 展示/演示
        var OperationType = j$(escapeVfId('allPage:allForm:searchBlock:OperationType')).val();  // 术式类别
        var ConsumStartDate = j$(escapeVfId('allPage:allForm:searchBlock:ConsumStartDate')).val();  // 预计使用日
        var CaseOrAnimalOrgan = j$(escapeVfId('allPage:allForm:searchBlock:CaseOrAnimalOrgan')).val();  // 病例/动物脏器
        var TrialUser= j$(escapeVfId('allPage:allForm:searchBlock:TrialUser')).val();  // 试用者
        var FollowerUserid = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkid')).val();  // 跟台者Id
        var FollowerUsername = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkold')).val();  // 跟台者Name
            // 适用按钮
            function applyJs() {
                var appliedFlag = true;
                var selectFlag = true;
                var isCheckFlag = false;
                var ShowDemonstration = j$(escapeVfId('allPage:allForm:searchBlock:ShowDemonstration')).val();  // 展示/演示
                var OperationType = j$(escapeVfId('allPage:allForm:searchBlock:OperationType')).val();  // 术式类别
                var ConsumStartDate = j$(escapeVfId('allPage:allForm:searchBlock:ConsumStartDate')).val();  // 预计使用日
                var CaseOrAnimalOrgan = j$(escapeVfId('allPage:allForm:searchBlock:CaseOrAnimalOrgan')).val();  // 病例/动物脏器
                var TrialUser= j$(escapeVfId('allPage:allForm:searchBlock:TrialUser')).val();  // 试用者
                var FollowerUserid = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkid')).val();  // 跟台者Id
                var FollowerUsername = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkold')).val();  // 跟台者Name
        var ShowDemonstrations = []; // 展示/演示
        j$("td.intf.dataCellBorder1.Show_demonstration__c").each(function() {
            ShowDemonstrations.push(j$(this));
        });
        var OperationTypes = [];  // 术式类别
        j$("td.intf.dataCellBorder1.Operation_Type__c").each(function() {
            OperationTypes.push(j$(this));
        });
        var ConsumStartDates = [];  // 备品预计使用日
        j$("td.intf.dataCellBorder1.Consum_Start_Date__c").each(function() {
            ConsumStartDates.push(j$(this));
        });
        var CaseOrAnimalOrgans = [];  // 病例/动物脏器
        j$("td.intf.dataCellBorder1.Case_OR_animal_organ__c").each(function() {
            CaseOrAnimalOrgans.push(j$(this));
        });
                var ShowDemonstrations = []; // 展示/演示
                j$("td.intf.dataCellBorder1.Show_demonstration__c").each(function() {
                    ShowDemonstrations.push(j$(this));
                });
                var OperationTypes = [];  // 术式类别
                j$("td.intf.dataCellBorder1.Operation_Type__c").each(function() {
                    OperationTypes.push(j$(this));
                });
                var ConsumStartDates = [];  // 备品预计使用日
                j$("td.intf.dataCellBorder1.Consum_Start_Date__c").each(function() {
                    ConsumStartDates.push(j$(this));
                });
                var CaseOrAnimalOrgans = [];  // 病例/动物脏器
                j$("td.intf.dataCellBorder1.Case_OR_animal_organ__c").each(function() {
                    CaseOrAnimalOrgans.push(j$(this));
                });
        var TrialUsers = [];  // 试用者
        j$("td.intf.dataCellBorder1.Trial_User__c").each(function() {
            TrialUsers.push(j$(this));
        });
                var TrialUsers = [];  // 试用者
                j$("td.intf.dataCellBorder1.Trial_User__c").each(function() {
                    TrialUsers.push(j$(this));
                });
        var FollowerUsers = [];  // 跟台者:
        j$("td.intf.dataCellBorder1.Follower_User__c").each(function() {
            FollowerUsers.push(j$(this));
        });
                var FollowerUsers = [];  // 跟台者:
                j$("td.intf.dataCellBorder1.Follower_User__c").each(function() {
                    FollowerUsers.push(j$(this));
                });
        var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
        for (var i = 0; i < currentPageRecordCount; i++) {
            var checkBox = j$(escapeVfId('allPage:allForm:dataBlock:dataline_L:' + i + ':rowCheck'));
            if (checkBox.prop('checked') == true) {
                isCheckFlag = true;
                // 'x'时不适用
                if (ShowDemonstration != 'x') {
                    ShowDemonstrations[i].find("select").val(ShowDemonstration);
                    appliedFlag = false;
                }
                if (OperationType != 'x') {
                    OperationTypes[i].find("select").val(OperationType);
                    appliedFlag = false;
                }
                if (ConsumStartDate != null && ConsumStartDate != '' && typeof(ConsumStartDate) != "undefined") {
                    ConsumStartDates[i].find("input").val(ConsumStartDate);
                    appliedFlag = false;
                }
                if (CaseOrAnimalOrgan != 'x') {
                    CaseOrAnimalOrgans[i].find("select").val(CaseOrAnimalOrgan);
                    appliedFlag = false;
                }
                if (TrialUser != null && TrialUser != '' && typeof(TrialUser) != "undefined") {
                    TrialUsers[i].find("input").val(TrialUser);
                    appliedFlag = false;
                }
                // if (equipmentTypes[i].find("select").val() != productCategory && productCategory != '') {
                if (FollowerUserid != null && parseInt(FollowerUserid) != 0 && typeof(FollowerUserid) != "undefined"
                    && FollowerUsername != null && FollowerUsername != 'null' && typeof(FollowerUsername) != "undefined") {
                    // setChangeFlg();
                    var inputs = FollowerUsers[i].find("input");
                    for (var j = 0; j < inputs.length; j++) {
                        if(inputs[j].name.endsWith('_lkid')) {
                            inputs[j].value = FollowerUserid;
                var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
                for (var i = 0; i < currentPageRecordCount; i++) {
                    var checkBox = j$(escapeVfId('allPage:allForm:dataBlock:dataline_L:' + i + ':rowCheck'));
                    if (checkBox.prop('checked') == true) {
                        isCheckFlag = true;
                        // 'x'时不适用
                        if (ShowDemonstration != 'x') {
                            ShowDemonstrations[i].find("select").val(ShowDemonstration);
                            appliedFlag = false;
                        }
                        else if (inputs[j].name.endsWith('_lkold')
                            || inputs[j].name.endsWith('inputField')) {
                            inputs[j].value = FollowerUsername;
                        if (OperationType != 'x') {
                            OperationTypes[i].find("select").val(OperationType);
                            appliedFlag = false;
                        }
                        if (ConsumStartDate != null && ConsumStartDate != '' && typeof(ConsumStartDate) != "undefined") {
                            ConsumStartDates[i].find("input").val(ConsumStartDate);
                            appliedFlag = false;
                        }
                        if (CaseOrAnimalOrgan != 'x') {
                            CaseOrAnimalOrgans[i].find("select").val(CaseOrAnimalOrgan);
                            appliedFlag = false;
                        }
                        if (TrialUser != null && TrialUser != '' && typeof(TrialUser) != "undefined") {
                            TrialUsers[i].find("input").val(TrialUser);
                            appliedFlag = false;
                        }
                        // if (equipmentTypes[i].find("select").val() != productCategory && productCategory != '') {
                        if (FollowerUserid != null && parseInt(FollowerUserid) != 0 && typeof(FollowerUserid) != "undefined"
                            && FollowerUsername != null && FollowerUsername != 'null' && typeof(FollowerUsername) != "undefined") {
                            // setChangeFlg();
                            var inputs = FollowerUsers[i].find("input");
                            for (var j = 0; j < inputs.length; j++) {
                                if(inputs[j].name.endsWith('_lkid')) {
                                    inputs[j].value = FollowerUserid;
                                }
                                else if (inputs[j].name.endsWith('_lkold')
                                    || inputs[j].name.endsWith('inputField')) {
                                    inputs[j].value = FollowerUsername;
                                }
                            }
                            appliedFlag = false;
                        }
                    }
                    appliedFlag = false;
                }
                j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
                // var clearApplyFlag = false;
                window.setTimeout(function () {
                    if (ConsumStartDate == null
                        && TrialUser == null
                        && (FollowerUserid== null || FollowerUsername == null)) {  // 适用入力框全为空
                        // alert('适用区输入框为空,请输入适用值。');
                        var applyMsg = '适用区输入框为空,请输入适用值。';
                        //passApplyMsgToController(applyMsg, 'Fail');
                        return;
                    }
                    if (isCheckFlag == false) {
                        // alert('未勾选任何待适用数据。');
                        var applyMsg = '未勾选任何待适用数据。';
                        //passApplyMsgToController(applyMsg, 'Fail');
                        return;
                    }
                    if (selectFlag) {
                        if (!appliedFlag) {
                            var alertMsg = "适用完了 \r\n";
                            if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (TrialUser != null && typeof(TrialUser) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "试用者" + " 适用为 " + TrialUser + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                                && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                                var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                                alertMsg += alertMsg2;
                            }
                            // alert(alertMsg);
                            // clearApplyFlag = true;
                            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                            //passApplyMsgToController(alertMsg, 'Success');
                        }
                    } else {
                        if (!appliedFlag) {
                            var alertMsg = "适用完了 \r\n";
                            if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (TrialUser != null && typeof(TrialUser) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + " 试用者" + " 适用为 " + TrialUser + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                                && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                                var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                                alertMsg += alertMsg2;
                            }
                            //passApplyMsgToController(alertMsg, 'Success');
                            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                        } else {
                            var alertMsg = "其他选项: " + otherSelectOptionText +"中无此选项值" + otherSelectOptionValue + ",无法更新。";
                            //passApplyMsgToController(alertMsg, 'Fail');
                        }
                    }
                }, 5);
            }
            function clearApplyValue() {
                var clearApplyValueFlag = j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val();
                if(clearApplyValueFlag) {
                    j$(escapeVfId('{!$Component.stockId}')).val('');
                    j$(escapeVfId('{!$Component.applyEquipmentTypeId}')).val('');
                    j$(escapeVfId('{!$Component.applyAssetTypeListId}')).val('');
                    j$(escapeVfId('{!$Component.otherSelectionId}')).val('');
                }
                j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
            }
            function checkSavingJs() {
                var isSavingSuccess = j$(escapeVfId('isSavingSuccessId')).val();
                // alert(isSavingSuccess);
                if (isSavingSuccess != 'false') {
                    //setSaveSuccessMsg();
                }
            }
        }
        j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
        // var clearApplyFlag = false;
        window.setTimeout(function () {
            if (ConsumStartDate == null
                    && TrialUser == null
                    && (FollowerUserid== null || FollowerUsername == null)) {  // 适用入力框全为空
                // alert('适用区输入框为空,请输入适用值。');
                var applyMsg = '适用区输入框为空,请输入适用值。';
                //passApplyMsgToController(applyMsg, 'Fail');
                return;
            }
            if (isCheckFlag == false) {
                 // alert('未勾选任何待适用数据。');
                var applyMsg = '未勾选任何待适用数据。';
                //passApplyMsgToController(applyMsg, 'Fail');
                return;
            function resetMove(d, up, len) {
                var line = j$(escapeVfId(d)).find('input')[0].value;
                resetMoveUpDown(up, parseInt(line), len);
            }
            if (selectFlag) {
                if (!appliedFlag) {
                    var alertMsg = "适用完了 \r\n";
                    if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                        var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                        alertMsg += alertMsg1;
            function moveToTop(d, up, len) {
                var line = j$(escapeVfId(d)).find('input')[0].value;
                console.log(line);
                var isSuccessful = true;
                if (up) {
                    for(var i = parseInt(line) ; i > 1 && isSuccessful; i-- ) {
                        isSuccessful = resetMoveUpDown(up, i, len);
                    }
                    if (TrialUser != null && typeof(TrialUser) != "undefined") {
                        var alertMsg1 = "已将打勾数据中的 " + "试用者" + " 适用为 " + TrialUser + " \r\n";
                        alertMsg += alertMsg1;
                    }
                    if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                    && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                        var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                        alertMsg += alertMsg2;
                    }
                    // alert(alertMsg);
                    // clearApplyFlag = true;
                    j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                    //passApplyMsgToController(alertMsg, 'Success');
                }
            } else {
                if (!appliedFlag) {
                    var alertMsg = "适用完了 \r\n";
                    if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                        var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                        alertMsg += alertMsg1;
                else {
                    for(var i = parseInt(line) ; i < len && isSuccessful; i++ ) {
                        isSuccessful = resetMoveUpDown(up, i, len);
                    }
                    if (TrialUser != null && typeof(TrialUser) != "undefined") {
                        var alertMsg1 = "已将打勾数据中的 " + " 试用者" + " 适用为 " + TrialUser + " \r\n";
                        alertMsg += alertMsg1;
                    }
                    if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                    && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                        var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                        alertMsg += alertMsg2;
                    }
                    //passApplyMsgToController(alertMsg, 'Success');
                    j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                } else {
                    var alertMsg = "其他选项: " + otherSelectOptionText +"中无此选项值" + otherSelectOptionValue + ",无法更新。";
                    //passApplyMsgToController(alertMsg, 'Fail');
                }
                unblockUI();
            }
        }, 5);
    }
    function clearApplyValue() {
        var clearApplyValueFlag = j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val();
        if(clearApplyValueFlag) {
            j$(escapeVfId('{!$Component.stockId}')).val('');
            j$(escapeVfId('{!$Component.applyEquipmentTypeId}')).val('');
            j$(escapeVfId('{!$Component.applyAssetTypeListId}')).val('');
            j$(escapeVfId('{!$Component.otherSelectionId}')).val('');
        }
        j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
    }
            function resetMoveUpDown(up, line, len) {
    function checkSavingJs() {
        var isSavingSuccess = j$(escapeVfId('isSavingSuccessId')).val();
        // alert(isSavingSuccess);
        if (isSavingSuccess != 'false') {
            //setSaveSuccessMsg();
        }
    }
                var items = j$(".dataCellBorder2");
                var item1 = j$("td.intf.dataCellBorder1.Degree_Of_Importance__c");
                var item2 = j$("td.dataCellBorder1.col_Fixture_Model_No__c");
                var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
                var isSuccessful = false;
                // alert(item1);
                var i = line - 1;
                var i1 = line + 1;
                // var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                if (up == true){
                    var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                    var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                    if(line != 1) {
                        var model1 = j$(item2[i - 1]).find("span").text();
                        var model2 = j$(item2[i]).find("span").text();
                        if (model1 != model2) {
                            unblockUI();
                            return;
                        }
    function resetMove(d, up, len) {
        var line = j$(escapeVfId(d)).find('input')[0].value;
        resetMoveUpDown(up, parseInt(line), len);
    }
                        var v1 = j$(item1[i - 1]).find("input").val();
                        var v2 = j$(item1[i]).find("input").val();
                        setChangeFlg(i-1);
                        setChangeFlg(i);
                        j$(items[i - 1]).children('.ordernocls').val(line);
                        j$(items[i]).children('.ordernocls').val(line - 1);
                        j$(item1[i - 1]).find("input").val(v2);
                        j$(item1[i]).find("input").val(v1);
    function moveToTop(d, up, len) {
        var line = j$(escapeVfId(d)).find('input')[0].value;
        console.log(line);
        var isSuccessful = true;
        if (up) {
            for(var i = parseInt(line) ; i > 1 && isSuccessful; i-- ) {
                isSuccessful = resetMoveUpDown(up, i, len);
                        isSuccessful = true;
                        // j$(item1[i - 1]).children('.ordernocls').val('' + line);
                        // j$(item1[i]).children('.ordernocls').val('' + i);
                    }
                    else {
                        j$(items[i]).children('.ordernocls').val(line);
                    }
                    var tr1 = j$(items[i]).parents("tr");
                    tr.prev().before(tr);
                    trL.prev().before(trL);
                }
                else {
                    if(line < currentPageRecordCount) {
                        var model1 = j$(item2[i]).find("span").text();
                        var model2 = j$(item2[line]).find("span").text();
                        if (model1 != model2) {
                            unblockUI();
                            return;
                        }
                        var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                        var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                        var v1 = j$(item1[i]).find("input").val();
                        var v2 = j$(item1[i + 1]).find("input").val();
                        setChangeFlg(i);
                        setChangeFlg(i + 1);
                        j$(items[i]).children('.ordernocls').val(line + 1);
                        j$(items[i + 1]).children('.ordernocls').val(line);
                        j$(item1[i]).find("input").val(v2);
                        j$(item1[line]).find("input").val(v1);
                        var tr1 = j$(items[i]).parents("tr");
                        tr.next().after(tr);
                        trL.next().after(trL);
                        isSuccessful = true;
                    }
                    else {
                        j$(items[i]).children('.ordernocls').val(line);
                    }
                }
                unblockUI();
                return isSuccessful;
            }
        }
        else {
            for(var i = parseInt(line) ; i < len && isSuccessful; i++ ) {
                isSuccessful = resetMoveUpDown(up, i, len);
            function refopener() {
                window.opener.location.href = '/apex/ConsumTrial?id={!parId}';
            }
        }
        unblockUI();
    }
    function resetMoveUpDown(up, line, len) {
            if (window.history.pushState) {
                if (window.location.href.indexOf('&saveType=1') > -1) {
                    refopener();
                }
                window.history.pushState({}, "", window.location.href.replace('&saveType=1', ''));
            }
        var items = j$(".dataCellBorder2");
        var item1 = j$("td.intf.dataCellBorder1.Degree_Of_Importance__c");
        var item2 = j$("td.dataCellBorder1.col_Fixture_Model_No__c");
        var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
        var isSuccessful = false;
        // alert(item1);
        var i = line - 1;
        var i1 = line + 1;
        // var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
        if (up == true){
            var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
            var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
            if(line != 1) {
                var model1 = j$(item2[i - 1]).find("span").text();
                var model2 = j$(item2[i]).find("span").text();
                if (model1 != model2) {
            //2022 02 24 张华建 display PI Data start
            var rowBList;
            var TrialUser = {};
            var ids = [];
            queryUser();
            function q1(){
                var p = new Promise(function(resolve, reject){
                    rowBList = JSON.parse('{!rowListString}')
                    var x = 0;
                    let searchCallBack = function searchCallBack(result){
                        let contacts = result.object;
                        if(contacts == null){
                            return;
                        }
                        let temp = {}
                        temp.trialUser = contacts.trialUser;
                        TrialUser[contacts.dataId] = temp;
                        x++;
                    };
                    for(var i=0;i<rowBList.length;i++){
                        ids.push(rowBList[i].rnd.AWS_Data_Id__c + '_' + rowBList[i].rnd.Id);
                        AWSService.query(staticResource.queryUrl,rowBList[i].rnd.AWS_Data_Id__c,searchCallBack,staticResource.token);
                    }
                    var id = setInterval(function(){
                        if(x >= rowBList.length){
                            console.log('success')
                            resolve('success');
                            clearInterval(id);
                        }
                    },1000);
                });
                return p;
            }
            function q2(value){
                var p = new Promise(function(resolve, reject){
                    console.log('进入q2'+value)
                    for(var i=0;i<ids.length;i++){
                        console.log('i = '+i);
                        document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].substring(0,18)].trialUser;
                        console.log('i = '+i);
                    }
                });
            }
            function queryUser(){
                rowBList = JSON.parse('{!rowListString}')
                console.log('pageB.fixMode = '+'{!pageB.fixMode}')
                if('{!pageB.fixMode}' == 'true'){
                    q1().then(function(data){
                        return q2(data);
                    })
                    unblockUI();
                    return;
                }
                var v1 = j$(item1[i - 1]).find("input").val();
                var v2 = j$(item1[i]).find("input").val();
                setChangeFlg(i-1);
                setChangeFlg(i);
                j$(items[i - 1]).children('.ordernocls').val(line);
                j$(items[i]).children('.ordernocls').val(line - 1);
                j$(item1[i - 1]).find("input").val(v2);
                j$(item1[i]).find("input").val(v1);
                isSuccessful = true;
                // j$(item1[i - 1]).children('.ordernocls').val('' + line);
                // j$(item1[i]).children('.ordernocls').val('' + i);
            }
            else {
                j$(items[i]).children('.ordernocls').val(line);
            }
            var tr1 = j$(items[i]).parents("tr");
            tr.prev().before(tr);
            trL.prev().before(trL);
        }
        else {
            if(line < currentPageRecordCount) {
                var model1 = j$(item2[i]).find("span").text();
                var model2 = j$(item2[line]).find("span").text();
                if (model1 != model2) {
                }else{
                    blockme();
                    console.log(rowBList)
                    let searchCallBack = function searchCallBack(result){
                        let contacts = result.object;
                        if(contacts == null){
                            return;
                        }
                        let temp = {}
                        temp.trialUser = contacts.trialUser;
                        TrialUser[contacts.dataId] = temp;
                    };
                    for(var i=0;i<rowBList.length;i++){
                        ids.push(rowBList[i].rnd.AWS_Data_Id__c + '_' + rowBList[i].rnd.Id);
                        AWSService.query(staticResource.queryUrl,rowBList[i].rnd.AWS_Data_Id__c,searchCallBack,staticResource.token);
                    }
                    unblockUI();
                    return;
                }
                var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                var v1 = j$(item1[i]).find("input").val();
                var v2 = j$(item1[i + 1]).find("input").val();
                setChangeFlg(i);
                setChangeFlg(i + 1);
                j$(items[i]).children('.ordernocls').val(line + 1);
                j$(items[i + 1]).children('.ordernocls').val(line);
                j$(item1[i]).find("input").val(v2);
                j$(item1[line]).find("input").val(v1);
                var tr1 = j$(items[i]).parents("tr");
                tr.next().after(tr);
                trL.next().after(trL);
                isSuccessful = true;
            }
            else {
                j$(items[i]).children('.ordernocls').val(line);
            function showPIDiv(awsDataId){
                if(awsDataId.length == 0){
                    return
                }
                console.log('awsDataId Value:'+awsDataId);
                let parentNode = document.getElementById(awsDataId);
                let createDiv = document.createElement("div");
                createDiv.id = awsDataId+"_PI";
                let piInformation = 'trialUser:'+TrialUser[awsDataId.substring(0,18)].trialUser
                //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone
                createDiv.innerText = piInformation;
                let x=window.event.x;
                let y=window.event.y;
                createDiv.style.left=x;
                createDiv.style.top=y;
                createDiv.style.background="#dddddd";
                createDiv.style.position = "absolute";
                parentNode.appendChild(createDiv);
            }
        }
        unblockUI();
        return isSuccessful;
    }
    function refopener() {
        window.opener.location.href = '/apex/ConsumTrial?id={!parId}';
    }
    if (window.history.pushState) {
        if (window.location.href.indexOf('&saveType=1') > -1) {
            refopener();
        }
        window.history.pushState({},"", window.location.href.replace('&saveType=1',''));
    }
</script>
            function hidePIDiv(awsDataId){
                if(awsDataId.length == 0){
                    return
                }
                document.getElementById(awsDataId+'_PI').remove();
            }
            //2022 02 24 张华建 display PI Data end
        </script>
        <apex:pageMessages />
        <!-- oncomplete="clearApplyValue(); return false;" -->
        <apex:actionFunction name="passApplyMsgToController" action="{!showApplyMsg}"  rerender="allForm">
@@ -352,6 +458,15 @@
                                    <!-- 试用者 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Trial_User__c.label}
                                    <apex:inputField id="TrialUser" value="{!pageB.caesdInput.Trial_User__c}"/>
                                    <!-- <script>
                                           sfdcPage.appendToOnloadQueue(function () {
                                            var queryBack = function queryBack(data) {
                                                console.log('data = ' + data);
                                                document.getElementById('{!pageB.caesdInput.AWS_Data_Id__c}') = data.object.trialUser;
                                            };
                                                AWSService.query(staticResources.queryUrl, '{!pageB.caesdInput.AWS_Data_Id__c}', queryBack, staticResources.token);
                                            });
                                    </script> -->
                                </td>
                                <td>
                                    <!-- 跟台者 -->
@@ -359,11 +474,11 @@
                                    <apex:inputField id="FollowerUser" value="{!pageB.caesdInput.Follower_User__c}"/>
                                </td>
                            </apex:outputPanel>
                        <!-- </tr> -->
                        <!-- <tr> -->
                            <!-- </tr> -->
                            <!-- <tr> -->
                            <td>
                            <!-- </td> -->
                            <!-- <td colspan="5"> -->
                                <!-- </td> -->
                                <!-- <td colspan="5"> -->
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="编辑" rendered="{!canEdit}" onclick="blockme();" action="{!changeFixModel}" reRender="allForm" oncomplete="unblockUI();windowResize();"/>
                                    <apex:commandButton value="编辑" style="float: right; margin-right: 40px;" rendered="{!AND(canEdit == false, redOnly == false)}" onclick="var w = window.open('/apex/ConsumTrial?id={!parId}&canedit=true', '编辑试用表画面', 'width='+(window.screen.width-200)+',height='+(window.screen.height-200)+',left=100,top=100'); w.focus(); return false;"/>
@@ -378,10 +493,10 @@
                        </tr>
                    </table>
                </apex:outputPanel>
                </apex:pageBlock>
                <apex:pageBlock id="dataBlock" tabStyle="Report">
            </apex:pageBlock>
            <apex:pageBlock id="dataBlock" tabStyle="Report">
                <apex:inputHidden id="currentPageRecordCnt" value="{!pageB.currentPageRecordCnt}"/>
<!--                     <table id="msgtable">
                <!--                     <table id="msgtable">
                <tr>
                    <td>
                        <apex:outputPanel id="message">
@@ -390,39 +505,39 @@
                    </td>
                </tr>
            </table> -->
            <div id="out_Div_L">
                <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                    <tr class="headerRow" height="30px">
                        <apex:outputPanel layout="none" rendered="{!canEdit}">
                            <td class="col_chk" align="center">
                                <input type='checkbox' onClick='checkAll()' id="checker" />
                            </td>
                        </apex:outputPanel>
                        <apex:repeat value="{!outputFieldList}" var="info">
                            <td class="col_{!info.value}">
                               {!info.label}
                            </td>
                        </apex:repeat>
                    </tr>
                </table>
            </div>
            <div id="out_Div" >
                <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                    <tr class="headerRow" height="30px">
                         <apex:repeat value="{!inputFieldList}" var="info">
                            <td class="col_{!info.value} colViewing" >
                               {!info.label}
                            </td>
                        </apex:repeat>
                        <td class="col_UpDown"> 向上/向下 </td>
                        <td class="col_Scroll"></td>
                    </tr>
                </table>
            </div>
            <div style="clear:both;"/>
            <div id="in_Div_L">
                <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                    <apex:variable value="{!0}" var="Cnt" />
                <div id="out_Div_L">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                        <tr class="headerRow" height="30px">
                            <apex:outputPanel layout="none" rendered="{!canEdit}">
                                <td class="col_chk" align="center">
                                    <input type='checkbox' onClick='checkAll()' id="checker" />
                                </td>
                            </apex:outputPanel>
                            <apex:repeat value="{!outputFieldList}" var="info">
                                <td class="col_{!info.value}">
                                    {!info.label}
                                </td>
                            </apex:repeat>
                        </tr>
                    </table>
                </div>
                <div id="out_Div" >
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                        <tr class="headerRow" height="30px">
                            <apex:repeat value="{!inputFieldList}" var="info">
                                <td class="col_{!info.value} colViewing" >
                                    {!info.label}
                                </td>
                            </apex:repeat>
                            <td class="col_UpDown"> 向上/向下 </td>
                            <td class="col_Scroll"></td>
                        </tr>
                    </table>
                </div>
                <div style="clear:both;"/>
                <div id="in_Div_L">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                        <apex:variable value="{!0}" var="Cnt" />
                        <apex:repeat id="dataline_L" value="{!pageB.rowBList}" var="var">
                            <tr class="dataRow" id="tableData_L_{!Cnt}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                                <apex:outputPanel layout="none" rendered="{!canEdit}">
@@ -434,120 +549,120 @@
                                    <td class="dataCellBorder1 {!'col_' + info.value}"><apex:outputField value="{!var.rnd[info.value]}" /></td>
                                </apex:repeat>
                            </tr>
                        <apex:variable value="{!Cnt+1}" var="Cnt" />
                    </apex:repeat>
                </table>
            </div>
            <div id="in_Div" style="overflow:auto;">
                <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                    <apex:variable value="{!0}" var="Cnt_R" />
                    <apex:repeat id="dataline_R" value="{!pageB.rowBList}" var="var">
                    <tr id="tableData_R_{!Cnt_R}" class="dataRow" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                        <apex:repeat value="{!inputFieldList}" var="info" id="inputField">
                            <td class="dataCellBorder1 intf {!info.value} col_{!info.value}">
                                <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value != 'Degree_Of_Importance__c'}">
                                    <!-- onchange="setChangeFlg('{!var.lineNo}')" -->
                                    <apex:outputPanel rendered="{!info.value != 'Case_OR_animal_organ__c'}">
                                        <apex:inputField id="inputField" value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo - 1}')" style="{!IF(info.value == 'Follower_User__c', 'width: 75%; ', '')}"/>
                                        <script>
                                            if( document.getElementById('{!$Component.inputField}' + ':inputField_mlktp')){
                                                document.getElementById('{!$Component.inputField}' + ':inputField_mlktp').style.display="none" ;
                                            }
                                        </script>
                                    </apex:outputPanel>
                                    <apex:outputPanel rendered="{!info.value == 'Case_OR_animal_organ__c'}">
                                    <apex:selectList value="{!var.rnd.Case_OR_animal_organ__c}" multiselect="false" size="1">
                                            <apex:selectOptions value="{!Case_OR_animal_organOps}"/>
                                        </apex:selectList>
                                    </apex:outputPanel>
                                </apex:outputPanel>
                                <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value == 'Degree_Of_Importance__c'}">
                                    <input id="Degree_Of_Importance__c" value="{!var.rnd[info.value]}" disabled="true"/>
                                    <apex:inputHidden value="{!var.rnd[info.value]}"/>
                                </apex:outputPanel>
                                <apex:outputPanel rendered="{!((contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true) == false}">
                                    <apex:outputField value="{!var.rnd[info.value]}"/>
                                </apex:outputPanel>
                            </td>
                            <apex:variable value="{!Cnt+1}" var="Cnt" />
                        </apex:repeat>
                        <td class="dataCellBorder2 col_UpDown" id="row{!Cnt_R}">
                            <apex:outputPanel rendered="{!pageB.fixMode}">
                                <button value="↑↑" id="top" onclick="blockme(); moveToTop('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑↑</button>
                                <button value="↑" id="up" onclick="blockme(); resetMove('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑</button>|
                                <button value="↓" id="down" onclick="blockme(); resetMove('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓</button>
                                <button value="↓↓" id="bottom" onclick="blockme(); moveToTop('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓↓</button>
                            </apex:outputPanel>
                            <apex:inputText value="{!var.lineNo}" styleClass="ordernocls" style="display:none;"/>
                            <!-- <apex:inputHidden value="{!var.rnd.Degree_Of_Importance__c}"/> -->
                        </td>
                        <td class="col_Scroll"></td>
                    </tr>
                    <apex:variable value="{!Cnt_R+1}" var="Cnt_R" />
                    </apex:repeat>
                </table>
            </div>
                    </table>
                </div>
                <div id="in_Div" style="overflow:auto;">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                        <apex:variable value="{!0}" var="Cnt_R" />
                        <apex:repeat id="dataline_R" value="{!pageB.rowBList}" var="var">
                            <tr id="tableData_R_{!Cnt_R}" class="dataRow" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                                <apex:repeat value="{!inputFieldList}" var="info" id="inputField">
                                    <td class="dataCellBorder1 intf {!info.value} col_{!info.value}" id="{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,info.value)}" onmouseover="showPIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')" onmouseout="hidePIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')">
                                        <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value != 'Degree_Of_Importance__c'}">
                                            <!-- onchange="setChangeFlg('{!var.lineNo}')" -->
                                            <apex:outputPanel rendered="{!info.value != 'Case_OR_animal_organ__c'}">
                                                <apex:inputField id="inputField" value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo - 1}')" style="{!IF(info.value == 'Follower_User__c', 'width: 75%; ', '')}"/>
                                                <script>
                                                    if( document.getElementById('{!$Component.inputField}' + ':inputField_mlktp')){
                                                        document.getElementById('{!$Component.inputField}' + ':inputField_mlktp').style.display="none" ;
                                                    }
                                                </script>
                                            </apex:outputPanel>
                                            <apex:outputPanel rendered="{!info.value == 'Case_OR_animal_organ__c'}">
                                                <apex:selectList value="{!var.rnd.Case_OR_animal_organ__c}" multiselect="false" size="1">
                                                    <apex:selectOptions value="{!Case_OR_animal_organOps}"/>
                                                </apex:selectList>
                                            </apex:outputPanel>
                                        </apex:outputPanel>
                                        <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value == 'Degree_Of_Importance__c'}">
                                            <input id="Degree_Of_Importance__c" value="{!var.rnd[info.value]}" disabled="true"/>
                                            <apex:inputHidden value="{!var.rnd[info.value]}"/>
                                        </apex:outputPanel>
                                        <apex:outputPanel rendered="{!((contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true) == false}">
                                            <apex:outputField value="{!var.rnd[info.value]}"/>
                                        </apex:outputPanel>
                                    </td>
                                </apex:repeat>
                                <td class="dataCellBorder2 col_UpDown" id="row{!Cnt_R}">
                                    <apex:outputPanel rendered="{!pageB.fixMode}">
                                        <button value="↑↑" id="top" onclick="blockme(); moveToTop('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑↑</button>
                                        <button value="↑" id="up" onclick="blockme(); resetMove('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑</button>|
                                        <button value="↓" id="down" onclick="blockme(); resetMove('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓</button>
                                        <button value="↓↓" id="bottom" onclick="blockme(); moveToTop('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓↓</button>
                                    </apex:outputPanel>
                                    <apex:inputText value="{!var.lineNo}" styleClass="ordernocls" style="display:none;"/>
                                    <!-- <apex:inputHidden value="{!var.rnd.Degree_Of_Importance__c}"/> -->
                                </td>
                                <td class="col_Scroll"></td>
                            </tr>
                            <apex:variable value="{!Cnt_R+1}" var="Cnt_R" />
                        </apex:repeat>
                    </table>
                </div>
            </apex:pageBlock>
<script type="text/javascript">
    function runSFDCAddRemote(MetadataConnectionWarning) {
        if (MetadataConnectionWarning) SFDCAddRemote('{!$Api.Session_ID}');
    }
    function sortTableJs(key) {
      // blockme();
      sortTablefunc(key);
    }
            <script type="text/javascript">
                function runSFDCAddRemote(MetadataConnectionWarning) {
                    if (MetadataConnectionWarning) SFDCAddRemote('{!$Api.Session_ID}');
                }
                function sortTableJs(key) {
                    // blockme();
                    sortTablefunc(key);
                }
    j$(function() {
        var tableWidth = 0;
        j$('body .pbBody table#tableHeader tr.headerRow td').each(function() {
            var colClass = getColClassName(this);
            if (colClass != 'col_Scroll') {
                var headerCol = j$('body .pbBody table.list tr.headerRow td.' + colClass);
                tableWidth += headerCol.width();
            }
        });
        j$('table#tableData').css('width', (1260 + 2) + 'px');
        j$('table#tableHeader').css('width', (1260 + 2) + 'px');
                j$(function() {
                    var tableWidth = 0;
                    j$('body .pbBody table#tableHeader tr.headerRow td').each(function() {
                        var colClass = getColClassName(this);
                        if (colClass != 'col_Scroll') {
                            var headerCol = j$('body .pbBody table.list tr.headerRow td.' + colClass);
                            tableWidth += headerCol.width();
                        }
                    });
                    j$('table#tableData').css('width', (1260 + 2) + 'px');
                    j$('table#tableHeader').css('width', (1260 + 2) + 'px');
        // list の headerRow の tdに toggleWidth() を追加
        bindTdToggleWidth();
        if( document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp')){
            document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp').style.display="none" ;
        }
    });
    // var elements = document.getElementsByTagName("select");
    // for (i = 0; i < elements.length; i++) {
    //     var id = elements[i].id;
    //     if (id.length > 5 && id.substring(id.length - 5, id.length) == 'mlktp') {
    //         elements[i].style.display = "none";
    //     }
    // }
    // var tbl_l = document.getElementById("tableData_L");
    // var input_l = tbl_l.getElementsByTagName("input");
    // for (i = 0; i < input_l.length; i++) {
    //     var id = input_l[i].id + '_lkid';
    //     if (document.getElementById(id) != null) {
    //         input_l[i].style.width = "75%";
    //     }
    // }
    // var tbl = document.getElementById("tableData");
    // var input = tbl.getElementsByTagName("input");
    // for (i = 0; i < input.length; i++) {
    //     var id = input[i].id + '_lkid';
    //     if (document.getElementById(id) != null) {
    //         input[i].style.width = "75%";
    //     }
    // }
    //aをクリックする際に、tdイベントを実装しない
    // j$("a[name='out_Div_a']").bind("click",function(event){
    //     event.stopPropagation();
    // });
    windowResize();
    j$("td.dataCellBorder1 input").change(function(){
        var names = this.name.split(':');
        var i = names[names.length - 4];
        j$("input.rowchkcls")[i].checked = true;
    })
</script>
                    // list の headerRow の tdに toggleWidth() を追加
                    bindTdToggleWidth();
                    if( document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp')){
                        document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp').style.display="none" ;
                    }
                });
                // var elements = document.getElementsByTagName("select");
                // for (i = 0; i < elements.length; i++) {
                //     var id = elements[i].id;
                //     if (id.length > 5 && id.substring(id.length - 5, id.length) == 'mlktp') {
                //         elements[i].style.display = "none";
                //     }
                // }
                // var tbl_l = document.getElementById("tableData_L");
                // var input_l = tbl_l.getElementsByTagName("input");
                // for (i = 0; i < input_l.length; i++) {
                //     var id = input_l[i].id + '_lkid';
                //     if (document.getElementById(id) != null) {
                //         input_l[i].style.width = "75%";
                //     }
                // }
                // var tbl = document.getElementById("tableData");
                // var input = tbl.getElementsByTagName("input");
                // for (i = 0; i < input.length; i++) {
                //     var id = input[i].id + '_lkid';
                //     if (document.getElementById(id) != null) {
                //         input[i].style.width = "75%";
                //     }
                // }
                //aをクリックする際に、tdイベントを実装しない
                // j$("a[name='out_Div_a']").bind("click",function(event){
                //     event.stopPropagation();
                // });
                windowResize();
                j$("td.dataCellBorder1 input").change(function(){
                    var names = this.name.split(':');
                    var i = names[names.length - 4];
                    j$("input.rowchkcls")[i].checked = true;
                })
            </script>
        </apex:outputPanel>
    </apex:form>
</apex:page>