黄千龙
2023-02-02 cd730d0b1a775abacfba06003bb58327d5d1fb3c
force-app/main/default/pages/ConsumTrial.page
@@ -5,6 +5,13 @@
    <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') }"/>
    <script type="text/javascript">
       var txIds = [];
        var trialuserMap={};
    </script>
    <apex:form id="allForm">
        <style>
            table.headTable td   {
@@ -26,6 +33,8 @@
<script type="text/javascript">
    var heightAjustment = 120;
    var widthAjustment = 30;
        var staticResource = JSON.parse('{!staticResource}');
    // 适用按钮
    function applyJs() {
@@ -303,8 +312,273 @@
        }
        window.history.pushState({},"", window.location.href.replace('&saveType=1',''));
    }
        //2022 02 24 张华建 display PI Data start
        var rowBList;
        var TrialUser = {};
        var ids = [];
        function HasError(){
            // let e = document.getElementById("allPage:allForm:message");
            // if (!e) {
            //     return false;
            // }
            // let divs = j$(e).find("div.message");
            // for (let i = 0; i < divs.length; i++) {
            //     for (let j = 0; j < divs[i].classList.length; j++) {
            //         for(let cls in divs[i].classList){
            //             console.log('cls = ' + cls);
            //             if (cls.indexOf('error')>-1) {
            //                 return true;
            //             }
            //         }
            //     }
            // }
            // return false;
            if(document.getElementById("allPage:allForm:message").children[0] && document.getElementById("allPage:allForm:message").children[0].children[0].className == 'message errorM3'){
                return true;
            }
            return false;
        }
        function isError(){
            if(HasError()){
                alert('xxxx');
            }
        }
        queryUser();
        function q1(){
            var p = new Promise(function(resolve, reject){
                rowBList = JSON.parse('{!rowListString}')
                var x = 0;
                var y = 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++){
                    if(rowBList[i].rnd.AWS_Data_Id__c ){
                        y++;
                        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 == y){
                        console.log('success')
                        resolve('success');
                        clearInterval(id);
                    }
                },500);
            });
            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;
                    document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].split('_')[0]].trialUser;      //zhj 改善取值 2022-12-30
                    console.log('i = '+i);
                }
            });
        }
        function queryUser(){
            debugger
            rowBList = JSON.parse('{!rowListString}')
            console.log('pageB.fixMode = '+'{!pageB.fixMode}')
            if('{!pageB.fixMode}' == 'true'){
                q1().then(function(data){
                    return q2(data);
                })
                unblockUI();
            }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();
            }
        }
        function showPIDiv(awsDataId){
            if(awsDataId.length == 0){
                return
            }
            let index = awsDataId.indexOf('_');
            console.log('show index = ' + index);
            if(TrialUser[awsDataId.substring(0,index)] == null){
                return
            }
            console.log('awsDataId Value:'+awsDataId);
            let parentNode = document.getElementById(awsDataId);
            let createDiv = document.createElement("div");
            createDiv.id = awsDataId+"_PI";
            let piInformation = TrialUser[awsDataId.substring(0,index)].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);
            parentNode.style.position = "relative";
        }
        function hidePIDiv(awsDataId){
            if(awsDataId.length == 0){
                return
            }
            let index = awsDataId.indexOf('_');
            console.log('show index = ' + index);
            if(TrialUser[awsDataId.substring(0,index)] == null){
                return
            }
            document.getElementById(awsDataId+'_PI').remove();
        }
        function q3(){
            var p = new Promise(function(resolve, reject){
                console.log('saveRecordJS')
                txIds = [];
                trialuserMap = {};
                var a = 0;
                var b = 0;
                debugger
                let newCallBack = function newCallBack(result,indexNumber){
                    //赋值dataId和trialUser
                    document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':EditAWSDataId').value = result.object[0].dataId;
                    //document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':TrialUserEncrypt').value = result.object[0].trialUserEncrypt;       //zhj 新方案改造 2022-12-30
                    document.getElementById('allPage:allForm:dataBlock:dataline_R:'+indexNumber+':inputField:6:inputField').value = result.object[0].trialUser;
                    // let transParameters = {
                    //     txId: result.txId,
                    //     isSuccess: 1
                    // };
                    // let confirmCallBack = function confirmCallBack(result){
                    //     console.log('confirmCallBack = '+JSON.stringify(result))
                    // }
                    b++;
                    txIds.push(result.txId)
                    //AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
                };
                for(var i=0;i<rowBList.length;i++){
                    if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                        a++;
                    }
                }
                for(var i=0;i<rowBList.length;i++){
                    if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                        //加密试用者
                        let e = document.getElementById('allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86').children[0].children[0];
                        var trialUser = e.value;
                        trialuserMap['allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86'] = trialUser;
                        let consumApplyPayloadList = [];
                        let consumApplyPIData = new Object();
                        consumApplyPIData.trialUser = trialUser;
                        consumApplyPIData.sfRecordId = '';
                        consumApplyPayloadList.push(consumApplyPIData);
                        AWSService.postConsumTrial(staticResource.newUrl,i,JSON.stringify(consumApplyPayloadList),newCallBack,staticResource.token);
                    }
                }
                var id = setInterval(function(){
                    if(a == b){
                        console.log('a==b success')
                        resolve('success');
                        clearInterval(id);
                    }
                },500);
            });
            return p;
        }
        function q4(){
            debugger
            let b = false;
            for(var i=0;i<rowBList.length;i++){
                if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                    b = true;
                }
            }
            if(!b){
                //unblockUI();
                window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                return;
            }
            saveRecord();
        }
        function Trans(){
            if(HasError()){
                unblockUI();
                for(var e in trialuserMap){
                    document.getElementById(e).children[0].children[0].value = trialuserMap[e];
                }
                return;
            }
            var x = 0;
            let confirmCallBack = function confirmCallBack(result){
                console.log('confirmCallBack = '+JSON.stringify(result))
                x++;
                if(x == txIds.length){
                    //refopener();
                    //unblockUI();
                    window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                }
            }
            for(var i=0;i<txIds.length;i++){
                let transParameters = {
                        txId: txIds[i],
                        isSuccess: 1
                };
                AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
            }
        }
        function saveRecordJS(){
            if('{!pageB.fixMode}' != 'true'){
                unblockUI();
                    return
                }
            q3().then(function(data){
                    return q4(data);
                })
            //unblockUI();
        }
        //2022 02 24 张华建 display PI Data end
</script>
        <apex:pageMessages />
        <apex:pageMessages id="message"/>
        <!-- oncomplete="clearApplyValue(); return false;" -->
        <apex:actionFunction name="passApplyMsgToController" action="{!showApplyMsg}"  rerender="allForm">
            <apex:param name="applyMsg" value="" />
@@ -313,7 +587,7 @@
        <apex:actionFunction name="sendEmail" action="{!sendEmail}"  rerender="allForm" oncomplete="unblockUI();">
            <apex:param name="emailBody" value="" />
        </apex:actionFunction>
        <apex:actionFunction name="saveRecord" action="{!saveRecord}" oncomplete="refopener();unblockUI();" rerender="allForm"/>
        <apex:actionFunction name="saveRecord" action="{!saveRecord}" oncomplete="Trans();" rerender="allForm"/>
        <apex:inputHidden id="clearApplyFlagId" />
        <apex:outputPanel id="pageallPanel">
            <apex:pageBlock id="searchBlock">
@@ -352,6 +626,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>
                                    <!-- 跟台者 -->
@@ -372,7 +655,7 @@
                                    <apex:commandButton value="适用" rendered="{!canEdit}" onclick="applyJs();return false;"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="保存" onclick="blockme();saveRecord(); return false;" rendered="{!canEdit}"/>
                                    <apex:commandButton value="保存" onclick="blockme();saveRecordJS(); return false;" rendered="{!canEdit}"/>
                                </span>
                            </td>
                        </tr>
@@ -438,13 +721,17 @@
                    </apex:repeat>
                </table>
            </div>
                <apex:repeat id="dataline_R_aws" value="{!pageB.rowBList}" var="var">
                    <apex:inputHidden value="{!var.rnd.AWS_Data_Id__c}" id="EditAWSDataId"/>
                    <!-- <apex:inputHidden value="{!var.rnd.Trial_User_Encrypt__c}" id="TrialUserEncrypt"/>  zhj 新方案改造 2022-12-30 -->
                </apex:repeat>
            <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}">
                                    <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'}">
@@ -481,8 +768,10 @@
                            <!-- <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>