高章伟
2022-03-18 4bfe21c4b5ddc089ae5a95f4b10f6cff148b690d
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
<apex:page controller="TransferApplySelectDetailController" title="选择调拨明细" showHeader="false" sidebar="false" id="allPage" action="{!init}">
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
 
<script type="text/javascript">
    var heightAjustment = 120;
    var widthAjustment = 30;
    var popupBox;
    var filename = "";
    var blobfile = "";
    popupBox = new SimpleDialog("CSVImportDialogId", false);  // 不可拖动
    popupBox.createDialog();
    function openPopupCSV() {
        popupBox.setTitle("导入CSV文件");
        popupBox.importContentNode(document.getElementById("{!$Component.allForm.popupBox}"));
        popupBox.show(document.getElementById("{!$Component.allForm.popupBox}"));
    }
    function remoteLocationPost() {
        var fbody = document.getElementById("file_input").files[0];
        if (typeof fbody === "undefined") {
            alert("请选择CSV文件");
            return;
        }
        else {
            var reader = new FileReader();
            reader.readAsText(fbody);
            reader.onload = function(val) {
                if(this.result.split("\n").length - 1 > {!detailCountLimit}){
                    alert("文件不可超过" + {!detailCountLimit} + "行");
                    return;
                }
                // 判断CSV文件BOM,若包含BOM,则删除。
                if (this.result.charCodeAt(0) === 0xFEFF) {  // 如果第一个字符的编码为utf8
                    this.result = this.result.substr(1);  // 在utf-8编码中,三个隐藏的字节 0xEF 0xBB 0xBF被视为一个字符 EFBBBF(UTF8) FEFF(unicode) 65279
                }
                blockme();
                passToController(this.result);
            }
            popupBox.hide();
        }
    }
    function searchGoPageCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
 
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
 
        if (isChanged) {
            if (window.confirm('画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并检索\n点击 [取消] 只翻页,放弃保存')) {
                saveAndSearchGoPage(3);
            } else {
                searchGoPageCtrl();
            }
        } else {
            searchGoPageCtrl();
        }
    }
    function searchNextCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
 
        if (isChanged) {
            if (window.confirm('画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并检索\n点击 [取消] 只翻页,放弃保存')) {
                saveAndSearchNext(4);
            } else {
                searchNextCtrl();
            }
        } else {
            searchNextCtrl();
        }
    }
 
    function searchPreviousCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
 
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
        if (isChanged) {
            if (window.confirm('画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并检索\n点击 [取消] 只翻页,放弃保存')) {
                saveAndSearchPrevious(5);
            } else {
                searchPreviousCtrl();
            }
        } else {
            searchPreviousCtrl();
        }
    }
 
    function searchOppJs() {
        blockme();
 
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
        if (isChanged) {
            if (window.confirm('画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并检索\n点击 [取消] 只检索,放弃保存')) {
                saveAndSearch(1);
            } else {
                searchOpp();
            }
        } else {
            searchOpp();
        }
    }
</script>
 
    <apex:form id="allForm">
        <apex:actionFunction name="searchOpp" action="{!searchOpp}" rerender="allForm,checEventFrame" oncomplete="unblockUI();"/>
        <apex:actionFunction name="saveAndSearch" action="{!saveAndSearch}" rerender="allForm,checEventFrame" oncomplete="unblockUI();">
            <apex:param name="firstParam" assignTo="{!saveType}" value="" />
        </apex:actionFunction>
        <apex:actionFunction action="{!saveAndSearchPrevious}" name="saveAndSearchPrevious" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!saveAndSearchNext}" name="saveAndSearchNext" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!saveAndSearchGoPage}" name="saveAndSearchGoPage" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchNextCtrl}" name="searchNextCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchPreviousCtrl}" name="searchPreviousCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchGoPageCtrl}" name="searchGoPageCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction name="passToController" action="{!importCSVFile}" rerender="allForm, message, checEventFrame" oncomplete="unblockUI();">
            <apex:param name="csvData" value="" />
        </apex:actionFunction>
        <apex:outputPanel style="display:none">
            <apex:outputPanel id="popupBox" layout="block">
                <input type="file" id="file_input" name="attFile" accept=".csv" /><br/>
                <center>
                    <apex:commandButton value="确认" onclick="remoteLocationPost(); return false;" style="width: 20%; margin: 20px 10px 0px 10px" />
                    <apex:commandButton value="取消" onclick="popupBox.hide();" style="width: 20%; margin: 20px 10px 0px 10px" />
                </center>
            </apex:outputPanel>
        </apex:outputPanel>
        <apex:outputPanel id="pageallPanel">
            <apex:pageBlock id="searchBlock" tabStyle="Report">
                <apex:outputPanel layout="none" rendered="{!!isComeFromRa}">
                <table>
                    <tr>
                        <td colspan="3">关键字<apex:inputText value="{!keyword}"/> </td>
                        <td colspan="3">固定资产编号(Key)<apex:inputText value="{!assetnumber}" /></td>
                        <td><apex:commandButton disabled="{!readonly}" value="检索" onclick="searchOppJs(); return false;"/></td>
                        <td><apex:commandButton action="{!turnback}" value="返回" rerender="allForm,checEventFrame"/></td>
                        <td><apex:commandButton disabled="{!readonly}" onclick="openPopupCSV(); return false;" value="批量导入" rerender="allForm,checEventFrame"/></td>
                        <td><apex:commandButton disabled="{!readonly}" action="{!cancelDetail}" value="取消明细" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                        <td><apex:commandButton disabled="{!readonly}" rendered="{!!isCenter}" action="{!savePage}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                    <tr style="{!IF(isCenter,'','display: none;')}">
                        <td colspan="2">所在地区(本部)
                            <apex:selectList id="salesdepartmentOpts" size="1">
                                <apex:selectOptions value="{!salesdepartmentOpts}"/>
                            </apex:selectList>
                        </td>
                        <td colspan="2">所在地区(省)
                            <apex:selectList id="salesProvinceOpts" size="1">
                                <apex:selectOptions value="{!salesProvinceOpts}"/>
                            </apex:selectList>
                        </td>
                        <td colspan="2">备品分类
                            <apex:selectList id="equipmentTypeOpts" size="1">
                                <apex:selectOptions value="{!equipmentTypeOpts}"/>
                            </apex:selectList>
                        </td>
                        <td><apex:commandButton disabled="{!readonly}" rendered="{!isCenter}" value="适用" reRender="allForm" onclick="applyJs(); return false;"/></td>
                        <td><apex:commandButton disabled="{!readonly}" action="{!savePage}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                    <tr>
                        <td colspan="3" id="filter">
                            数据字段
                            <apex:selectList value="{!fieldName}" size="1" style="width:110px">
                                <apex:selectOptions value="{!fieldNameOpts}"/>
                            </apex:selectList> 
                            <apex:selectList value="{!operator}" size="1">
                                <apex:selectOptions value="{!operatorOpts}"/>
                            </apex:selectList> 
                            <apex:inputText value="{!fieldvalue}" style="width:80px"/>
                            <apex:commandButton value="筛选" action="{!filter}" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI()"/>
                            <apex:commandButton value="清除" action="{!clear}" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI()"/>
                        </td>
                    </tr>
                </table>
                <!-- 20201215 ljh add start-->
                </apex:outputPanel>
                <apex:outputPanel layout="none" rendered="{!isComeFromRa}">
                <table>
                    <tr>
                        <td><apex:commandButton disabled="{!readonly}" action="{!turnback}" value="返回" rerender="allForm,checEventFrame"/></td>
                        <td><apex:commandButton disabled="{!readonly}" action="{!savePage}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                </table>
                </apex:outputPanel>
                <!-- 20201215 ljh add end-->
                <div style="clear:both;"></div>
                <apex:outputPanel id="message">
                    <apex:pageMessages />
                </apex:outputPanel>
            </apex:pageBlock>
            <c:RelationListPagingCmp id="cmpid" pgController="{!this}" hasCheckbox="true" isRadio="false" userCPaging="true"/>
        </apex:outputPanel>
    </apex:form>
 
    <apex:outputPanel id="checEventFrame">
        <script type="text/javascript">
            if({!readonly}) {
                j$("input[type!=button]").prop('disabled', true);
                j$("select").prop('disabled', true);
                j$("td#filter input").prop('disabled', false);
                j$("td#filter select").prop('disabled', false);
            }
            // 非集中以外的要去掉三个选项
            if('{!parentObj.RecordType.DeveloperName}'!='CenterToOther') {
                j$("select option[value='13.CTEC教育本部']").remove();
                j$("select option[value='14.医疗人才教育培训本部']").remove();
                j$("select option[value='15.医疗法规事务和质量管理本部']").remove();
            }
            j$("table#tableData tr.dataRow").each(function(index){
                // 个体的调拨数量不可修改
                if(index < j$("tr.dataRow td.dataCellBorder1.col_Manage_type__c span").length
                    && j$("tr.dataRow td.dataCellBorder1.col_Manage_type__c span")[index].innerText == '个体管理') {
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input")[index].disabled = true;
                    }
                }
                // 附属品修改
                var accCheck ='';
                if (index < j$("#tableData td.dataCellBorder1.col_Loaner_accsessary__c span img").length) {
                    accCheck = j$("#tableData td.dataCellBorder1.col_Loaner_accsessary__c span img")[index].title;
                }
                //20210812 ljh 管理编码 start
                if(index < j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input").length) {
                    j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input")[index].disabled = true;
                }
                //20210812 ljh 管理编码 end
                if(accCheck == 'Checked' || accCheck == '选取的' || accCheck == 'チェック'){
                    // 一对一附属品的复选框不显示
                    var onetoonecheck = '';
                    if(index < j$("#tableData td.dataCellBorder1.col_OneToOneAccessory__c span img").length) {
                        onetoonecheck = j$("#tableData td.dataCellBorder1.col_OneToOneAccessory__c span img")[index].title;
                    }
                    var isonetoone = (onetoonecheck == 'Checked' || onetoonecheck == '选取的' || onetoonecheck == 'チェック');
                    if('{!isComeFromRa}' == 'true' || isonetoone) {
                        // 一对一附属品勾不显示
                        if(isonetoone) {
                            j$("tr.dataRow td.dataCellBorder1 input.rowchkcls")[index].style.display = 'none';
                        }
                        // 数量禁用
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input")[index].disabled = true;
                        }
                    }
 
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_SalesProvince_After__c select").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_SalesProvince_After__c select")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_Equipment_Type_After__c select").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_Equipment_Type_After__c select")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input")[index].disabled = true;
                    }
                }
            });
        </script>
    </apex:outputPanel>
    <script type="text/javascript">
        // 适用按钮
        function applyJs() {
            var salesdepartment = document.getElementById('allPage:allForm:searchBlock:salesdepartmentOpts').value; // 所在地区本部
            var salessalesProvince = document.getElementById('allPage:allForm:searchBlock:salesProvinceOpts').value; // 所在地区省
            var equipmentType = document.getElementById('allPage:allForm:searchBlock:equipmentTypeOpts').value;  // 备品分类
 
            var salesdepartments = [];
            j$("td.dataCellBorder1.col_Salesdepartment_After__c").each(function() {
                salesdepartments.push(j$(this));
            });
            var salessalesProvinces = [];
            j$("td.dataCellBorder1.col_SalesProvince_After__c").each(function() {
                salessalesProvinces.push(j$(this));
            });
            var equipmentTypes = [];
            j$("td.dataCellBorder1.col_Equipment_Type_After__c").each(function() {
                equipmentTypes.push(j$(this));
            });
 
            var currentPageRecordCount = j$("input.rowchkcls").length;
            var lastchecked = false;
            for (var i = 0; i < currentPageRecordCount; i++) {
                var isoto = j$("td.dataCellBorder1 input.rowchkcls")[i].style.display == "none";
                if(isoto) {
                    j$("td.dataCellBorder1 input.rowchkcls")[i].checked = lastchecked;
                }
                var checked = j$("td.dataCellBorder1 input.rowchkcls")[i].checked;
                if (checked) {
                    if (salesdepartment != '' && typeof(salesdepartment) != "undefined") {
                        salesdepartments[i].find("select:enabled").val(salesdepartment);
                    }
                    if (salessalesProvince != '' && typeof(salessalesProvince) != "undefined") {
                        salessalesProvinces[i].find("select:enabled").val(salessalesProvince);
                    }
                    if (equipmentType != '' && typeof(equipmentType) != "undefined") {
                        equipmentTypes[i].find("select:enabled").val(equipmentType);
                    }
                }
                lastchecked = checked
            }
        }
        function onFieldChanged (inputfield, lineno) {
            document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
        }
    </script>
</apex:page>