李金换
2023-04-21 cc7487a59bd4b0fa5bed1dd59f6d0565ace81b8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<apex:page id="page" controller="RentalReportExportController">
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
    <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
    <head>
    </head>
    <style>
        .disabledbutton {
            pointer-events: none;
            opacity: 0.4;
        }
        .hideshow{
            visibility: hidden;
        }
    </style>
    <body>
        <script>
            // sforce.connection.sessionId = '{!GETSESSIONID()}'; 
            var awsList = [];
            var staticResources = JSON.parse('{!staticResourceContact}');
 
            window.onload = function isVisibility() {
                var reportAll = document.getElementById('exportAllData');
                var isContactAll = {!isContactAll};
                if(isContactAll){
                    reportAll.classList.remove("hideshow")
                }
            }
 
            function getPIPayload() {
                let awsList = [];
                let searchPayload = new Object();
 
                var fieldsInputList = '{!fieldInputList}';
                
                let dict = {};
                let namesField = document.getElementById("page:form:repeatBlock:repeat:0:chooseField");
                let optionsField = document.getElementById("page:form:repeatBlock:repeat:0:chooseOperation");
                let valuesField = document.getElementById("page:form:repeatBlock:repeat:0:inputText");
                if (namesField) {
                    dict['name'] = namesField.value;
                }
                if (optionsField) {
                    if (namesField.value == 'sfRecordId' && (optionsField.value == 'like' || optionsField.value == 'not like')) {
                        dict['operator'] = optionsField.value.replace('like', 'in');
                    } else {
                        dict['operator'] = optionsField.value;
                    }
                }
                if (valuesField && valuesField.value) {
                    if (namesField.value == 'sfRecordId') {
                        dict['value'] = valuesField.value.split('\n');
                    } else {
                        dict['value'] = valuesField.value;
                    }
                }
                console.log(dict);
                awsList.push(dict);
                return JSON.stringify(awsList);
            }
 
            function exportsAllData(){
                let requestAllSearchPayload = [];
                console.log('requestSearchPayload ' + requestAllSearchPayload);
                let queryBackContactName = function queryBackContactName(result){
                    console.log('result ' + result.length);
                    var blob = new Blob(["\ufeff", result]);
                    var link = document.createElement('a');
                    link.href = window.URL.createObjectURL(blob);
                    link.setAttribute("download", "contactAll.csv");
                    document.body.appendChild(link);
                    unblockUI();
 
                    link.click(); 
                };
                blockme();
                AWSService.search(staticResources.reportUrl,requestAllSearchPayload,queryBackContactName,staticResources.token);
            }
 
            function exportsData() {
                let requestSearchPayload = getPIPayload();
                if (JSON.parse(requestSearchPayload) && JSON.parse(requestSearchPayload)[0].value) {
                    console.log('requestSearchPayload ' + requestSearchPayload);
                    let queryBackContactName = function queryBackContactName(result){
                        console.log('result ' + result.length);
                        var blob = new Blob(["\ufeff", result]);
                        var link = document.createElement('a');
                        link.href = window.URL.createObjectURL(blob);
                        link.setAttribute("download", "contact.csv");
                        document.body.appendChild(link); 
                        unblockUI();
 
                        link.click(); 
                    };
                    blockme();
                    AWSService.search(staticResources.reportUrl,requestSearchPayload,queryBackContactName,staticResources.token);
                } else {
                    alert("请先输入Salesforce ID值");
                }
            }
        </script>
        
        <apex:form id="form">
            报表对象:
            <br/>
            <apex:selectList id="chooseObject" value="{!selectedObject}" size="1">
                <apex:selectOptions value="{!contactOptions}"/>
            </apex:selectList>            
            <apex:pageBlock id="repeatBlock">
                <apex:repeat id="repeat" value="{!fieldInputList}" var="fieldInput">
                    <apex:selectList id="chooseField" value="{!fieldInput.fieldAPI}" size="1">
                        <apex:selectOptions value="{!filedOptions}"/>
                    </apex:selectList> 
                    <apex:selectList id="chooseOperation" value="{!fieldInput.operation}" size="1">
                        <apex:selectOptions value="{!operationSelectOptions}"/>
                    </apex:selectList> 
                    <apex:inputTextarea id="inputText" value="{!fieldInput.value}" rows="20" cols="35" />
                    <br />
                </apex:repeat>
            </apex:pageBlock>
            <input class="btn" type="Button" id="exportData" value="导出" onclick="exportsData()" />    
            <input class="btn  hideshow " type="Button" id="exportAllData" value="导出全部数据" onclick="exportsAllData()" />                             
        </apex:form>
    </body>
</apex:page>