From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001 From: 高章伟 <gaozhangwei@prec-tech.com> Date: 星期五, 03 三月 2023 14:50:59 +0800 Subject: [PATCH] gzw 测试环境代码更新 --- force-app/main/default/pages/BatchSelectRepairPage.page | 292 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 210 insertions(+), 82 deletions(-) diff --git a/force-app/main/default/pages/BatchSelectRepairPage.page b/force-app/main/default/pages/BatchSelectRepairPage.page index 0dd6f47..f140b90 100644 --- a/force-app/main/default/pages/BatchSelectRepairPage.page +++ b/force-app/main/default/pages/BatchSelectRepairPage.page @@ -1,10 +1,11 @@ -<apex:page id="Page" showHeader="false" sidebar="false" controller="BatchSelectRepairPageController" applyBodyTag="false" applyHtmlTag="false" action="{!init}"> +<apex:page id="Page" showHeader="false" sidebar="false" controller="BatchSelectRepairPageController" applyBodyTag="false" applyHtmlTag="false" action="{!init}" lightningStylesheets="true" > <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/> <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> <apex:includeScript value="{!URLFOR($Resource.apex20)}"/> +<apex:includeScript value="{!URLFOR($Resource.xlsxCoreMinJs)}"/> <title>鎵归噺閫夋嫨淇悊鍔熻兘</title> <style type="text/css"> .pure-table { @@ -37,6 +38,10 @@ text-align: center; vertical-align: bottom; } + + .bPageBlock{ + border-top: 3px solid #3044b5; + } .pure-table td { background-color: transparent; @@ -55,88 +60,210 @@ //鍏ㄩ�夊姛鑳� function checkAll() { var cnt = j$(escapeVfId('raCnt')).val(); - if (j$(escapeVfId('Page:allForm:allBlock:j_id66:checkAll')).attr('checked') == 'checked') { + // alert(jQuery('input[id$=checklist]').length); + if (jQuery('input[id$=checkAll]').attr('checked') === 'checked') { + // alert(j$('input[id$=checklist]')[0].checked); for (var i = 0; i < cnt; i++) { - j$(escapeVfId('Page:allForm:allBlock:j_id66:records:' + i + ':checklist')).attr('checked',true); + j$('input[id$=checklist]')[i].checked = true; } } else { for (var i = 0; i < cnt; i++) { - j$(escapeVfId('Page:allForm:allBlock:j_id66:records:' + i + ':checklist')).attr('checked',false); + j$('input[id$=checklist]')[i].checked = false; } } } + + //璺宠浆鍒皃df椤甸潰 + function skipPage() { + var pdfURL = j$(escapeVfId('pdfURL')).val(); + window.open(pdfURL, "缁翠慨濮旀墭涔DF", ""); + } + + // table杞珽xcel鏂囦欢 + function exportExcel() { + var csv = table2csv(j$(escapeVfId('theTable table'))[0]); + // console.log(csv) + var sheet = csv2sheet(csv); + var blob = sheet2blob(sheet); + openDownloadDialog(blob,'淇悊鏄庣粏琛�.xlsx'); + } + + function table2csv(table) { + var csv = []; + var trSize = j$(j$(escapeVfId('theTable table'))[0]).find('tr').length; + var spanSize = j$(j$(escapeVfId('theTable table'))[0]).find('tr td span').length; + var aSize = j$(j$(escapeVfId('theTable table'))[0]).find('tr td span a').length; + var fixSize = 0; + var g = 0; + var nbsp = '&nb' + 'sp;'; + for(var i = 0; i < trSize; i++){ + var temp = []; + // 鏍囬鍒楃敤td + if(i == 0){ + for(var j = 0; j < 15; j++){ + temp.push(j$(table).find('tr td')[j].innerHTML); + } + temp.shift(); // 绉婚櫎绗竴涓叏閫夋寜閽� + } else{ + for(var k = fixSize; k < fixSize + 14; k++){ + var htmlText = j$(table).find('tr td span')[k].innerHTML; + if(htmlText.slice(1,2) == 'a' && htmlText.slice(htmlText.length-2,htmlText.length-1) == 'a'){ + temp.push(j$(table).find('tr td span a')[g].innerHTML); + g++; + } else{ + if(j$(table).find('tr td span')[k].innerHTML == nbsp){ + temp.push(''); + }else{ + temp.push(j$(table).find('tr td span')[k].innerHTML); + } + } + } + if(fixSize < spanSize){ + fixSize += 14; + } + } + csv.push(temp.join(';')); + } + temp.push(''); + csv.push(temp.join(';')); + // csv.shift(); + return csv.join('\n'); + } + + function csv2sheet(csv) { + var sheet = {}; // 灏嗚鐢熸垚鐨剆heet + csv = csv.split('\n'); + csv.forEach(function(row, i) { + row = row.split(';'); + if(i == 0) sheet['!ref'] = 'A1:'+String.fromCharCode(65+row.length-1)+(csv.length-1); + row.forEach(function(col, j) { + sheet[String.fromCharCode(65+j)+(i+1)] = {v: col}; + }); + }); + return sheet; + } + + function sheet2blob(sheet, sheetName) { + sheetName = sheetName || 'sheet1'; + var workbook = { + SheetNames: [sheetName], + Sheets: {} + }; + workbook.Sheets[sheetName] = sheet; + // 鐢熸垚excel鐨勯厤缃」 + var wopts = { + bookType: 'xlsx', // 瑕佺敓鎴愮殑鏂囦欢绫诲瀷 + bookSST: false, // 鏄惁鐢熸垚Shared String Table锛屽畼鏂硅В閲婃槸锛屽鏋滃紑鍚敓鎴愰�熷害浼氫笅闄嶏紝浣嗗湪浣庣増鏈琁OS璁惧涓婃湁鏇村ソ鐨勫吋瀹规�� + type: 'binary' + }; + var wbout = XLSX.write(workbook, wopts); + var blob = new Blob([s2ab(wbout)], {type:"application/octet-stream"}); + // 瀛楃涓茶浆ArrayBuffer + function s2ab(s) { + var buf = new ArrayBuffer(s.length*2); // 姣忎釜瀛楃鍗犫饯2涓瓧鑺� + var view = new Uint8Array(buf); + for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; + return buf; + } + return blob; + } + + /** + * 閫氱敤鐨勬墦寮�涓嬭浇瀵硅瘽妗嗘柟娉曪紝娌℃湁娴嬭瘯杩囧叿浣撳吋瀹规�� + * @param url 涓嬭浇鍦板潃锛屼篃鍙互鏄竴涓猙lob瀵硅薄锛屽繀閫� + * @param saveName 淇濆瓨鏂囦欢鍚嶏紝鍙�� + */ + function openDownloadDialog(url, saveName) { + if(typeof url == 'object' && url instanceof Blob) { + url = URL.createObjectURL(url); // 鍒涘缓blob鍦板潃 + } + var aLink = document.createElement('a'); + aLink.href = url; + aLink.download = saveName || ''; // HTML5鏂板鐨勫睘鎬э紝鎸囧畾淇濆瓨鏂囦欢鍚嶏紝鍙互涓嶈鍚庣紑锛屾敞鎰忥紝file:///妯″紡涓嬩笉浼氱敓鏁� + var event; + if(window.MouseEvent) event = new MouseEvent('click'); + else { + event = document.createEvent('MouseEvents'); + event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + } + aLink.dispatchEvent(event); + } </script> <apex:form id="allForm" style="margin: 10px 10px;"> - <apex:actionFunction name="RetrievalBtn" action="{!RetrievalBtn}" rerender="Form, message" onComplete="unblockUI();"/> - <!-- <apex:actionFunction name="showPDF" action="{!showPDF}" rerender="Form, message" onComplete="unblockUI();" /> --> + <!-- <apex:actionFunction name="RetrievalBtn" action="{!RetrievalBtn}" rerender="allForm, message" onComplete="unblockUI();"/> --> + <!-- <apex:actionFunction name="showPDF" action="{!showPDF}" rerender="allForm, message" onComplete="skipPage();unblockUI();"/> --> <!-- 鍚庡彴鎶ラ敊淇℃伅鏄剧ず鐨勫叧閿� --> <apex:outputPanel id="message"> <apex:pageMessages ></apex:pageMessages> </apex:outputPanel> <apex:outputPanel id="allPanel"> + <input type="hidden" id="pdfURL" value="{!pdfURL}" /> <apex:pageBlock mode="maindetail" Id="allBlock"> <div style="position: relative; width:100%; "> <apex:pageBlock title="妫�绱㈠垪" id="Editable"> <table> - <tr><td style="text-align: left;padding-right: 100px;"> </td></tr> + <!--<tr><td> </td></tr>--> <tr> - <td style="text-align: right; width:100px;"> - <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="鐘舵��1"/> - </td> - <td style="text-align: left;position: relative; top: 7px;"> + <td style="text-align: left; position: relative; top: 7px; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 25px;" value="鐘舵��1"/> <apex:selectList value="{!RevalInfo.Status1}" size="1" style="width: 150px; height: 24px;"> + <apex:selectOptions value="{!StatusItems1}"/> + </apex:selectList><p/> + </td> + <td style="text-align: left; position: relative; top: 7px; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 25px;" value="鐘舵��2"/> + <apex:selectList value="{!RevalInfo.Status2}" size="1" style="width: 150px; height: 24px;"> <apex:selectOptions value="{!StatusItems}"/> </apex:selectList><p/> </td> - <td style="text-align: right; width:150px;"> + <td style="text-align: left;padding-left: 50px;"> <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="RS淇悊鍗曞彿"/> - </td> - <td style="text-align: left;"> <apex:inputText id="RepairName" value="{!RevalInfo.RepairName}"/> </td> - <td style="text-align: right; width:130px;"> - <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="SAP淇悊鍗曞彿"/> - </td> - <td style="text-align: left;padding-right: 70px;"> + <td style="text-align: left;padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 6px;" value="SAP淇悊鍗曞彿"/> <apex:inputText id="SAPRepairNo" value="{!RevalInfo.SAPRepairNo}"/> + </td> + </tr> + <!--<tr><td> </td></tr>--> + <tr> + <td style="text-align: left; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="鏈鸿韩缂栫爜"/> + <apex:inputText id="SerialNumber" value="{!RevalInfo.SerialNumber}"/> </td> - <td style="text-align: right; width:60px;"> + <td style="text-align: left; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 50px;" value="鐪佷唤"/> + <apex:inputText id="State_Hospital" value="{!RevalInfo.State_Hospital}"/> + </td> + <td style="text-align: left; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 50px;" value="鍖婚櫌鍚嶇О"/> + <apex:inputText id="HP_Name" value="{!RevalInfo.HospitalName}"/> + </td> + <td style="text-align: left; padding-left: 50px;" > + <apex:outputLabel style="font-weight: bold; padding-right: 22px;" value="FSE鐢宠鏃�"/> + <apex:inputField id="FSE_ApplyForRepair_Day" value="{!RevalInfo.repair.Aware_date__c}"/>锛�<apex:inputField value="{!RevalInfo.repair.Aware_date2__c}"/> + </td> + </tr> + <!--<tr><td> </td></tr>--> + <tr> + <td style="text-align: left; position: relative; top: 7px;padding-left: 50px;"> <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="鏈嶅姟鏂瑰紡"/> - </td> - <td style="text-align: left;position: relative; top: 7px;"> <apex:selectList value="{!RevalInfo.onSiteRepair}" size="1" style="width: 150px; height: 24px;"> <apex:selectOptions value="{!SiteRepairItems}"/> </apex:selectList><p/> </td> - </tr> - <tr><td style="text-align: left;padding-right: 100px;"> </td></tr> - <tr> - <td style="text-align: right; width:100px;"> - <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="鏈鸿韩缂栫爜"/> - </td> - <td style="text-align: left;"> - <apex:inputText id="SerialNumber" value="{!RevalInfo.SerialNumber}"/> - </td> - <td style="text-align: right; width:150px;"> - <apex:outputLabel style="font-weight: bold; " value="淇悊濮旀墭鑰�"/> - </td> - <td style="text-align: left;"> - <apex:inputField id="InchargeStaffName" value="{!RevalInfo.repair.Incharge_Staff__c}"/> - </td> - <td style="text-align: right; width:130px;"> - <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="FSE鐢宠鏃�"/> - </td> - <td style="text-align: left;padding-right: 50px;"> - <apex:inputField id="FSE_ApplyForRepair_Day" value="{!RevalInfo.repair.Aware_date__c}"/> - </td> - <td style="text-align: right; width:60px;"> - <apex:outputLabel style="font-weight: bold; padding-right: 5px;" value="缁翠慨涓績"/> - </td> - <td style="text-align: left;"> + <td style="text-align: left; padding-left: 50px;"> + <apex:outputLabel style="font-weight: bold; padding-right: 22px;" value="缁翠慨涓績"/> <apex:inputText id="workLocationSelect" value="{!RevalInfo.workLocationSelect}"/> + <!-- <apex:selectList value="{!RevalInfo.workLocationSelect}" size="1" style="width: 150px; height: 24px;"> + <apex:selectOptions value="{!workLocationSelect}"/> + </apex:selectList><p/> --> + </td> + <td style="text-align: left;padding-left: 50px;"> + <div style="float:left;padding-right: 22px;"><apex:outputLabel style="font-weight: bold; " value="淇悊濮旀墭鑰�"/></div> + <div style="float:left"><apex:inputField id="InchargeStaffName" value="{!RevalInfo.repair.Incharge_Staff__c}"/></div> </td> </tr> - <tr><td style="text-align: left;padding-right: 100px;"> </td></tr> <tr> <td style="text-align: center;" colspan="6"> <apex:commandButton style="width:80px;" value="妫�绱�" action="{!RetrievalBtn}" onclick="blockme();" reRender="allForm,message" onComplete="unblockUI();"/> @@ -146,73 +273,74 @@ </apex:pageBlock> <apex:pageBlock title="璇︾粏淇℃伅" > <input type="hidden" id="raCnt" value="{!RACount}" /> - <apex:commandButton style="width:80px;" value="鎵撳嵃PDF" action="{!showPDF}" onclick="blockme();" reRender="allForm,message" onComplete="unblockUI();"/> - <div style="width:100%;height:385px;overflow:auto;"> - <table class="pure-table pure-table-horizontal" id="theTable_header" style="width:99%; margin-top:10px;border-collapse: collapse;table-layout:fixed;"> - <tr style="background-color:#f2f3f3;"> - <th style="align:left; width:2%"><apex:inputCheckbox id="checkAll" onclick="checkAll();" style="text-align:left;"/></th> - <th style="text-align:left; width:6%">鐘舵��1</th> - <th style="text-align:left; width:6%">鐘舵��2</th> - <th style="text-align:left; width:7%">RS淇悊鍗曞彿</th> - <th style="text-align:left; width:8%">SAP淇悊鍗曞彿</th> - <th style="text-align:left; width:10%">鍨嬪彿</th> - <th style="text-align:left; width:5%">鏈鸿韩缂栧彿</th> - <th style="text-align:left; width:9%">鍖婚櫌鍚嶇О</th> - <th style="text-align:left; width:5%">鐪佷唤</th> - <th style="text-align:left; width:5%">淇悊濮旀墭鑰�</th> - <th style="text-align:left; width:8%">FSE鐢宠鏃ユ湡</th> - <th style="text-align:left; width:6%">缁翠慨涓績</th> - <th style="text-align:left; width:5%">鏈嶅姟鏂瑰紡</th> - <th style="text-align:left; width:8%">鏈夋棤缁翠慨鍚堝悓瀵硅薄</th> - <th style="text-align:left; width:8%">鏃犲伩鍖哄埆鏍囧織</th> + <apex:commandButton style="width:80px;" value="鎵撳嵃PDF" action="{!showPDF}" onclick="blockme();" reRender="allForm,message" onComplete="unblockUI();skipPage();"/> + <apex:commandButton style="width:80px;" value="瀵煎嚭Excel" onclick="exportExcel();"/> + <div id="theTable" style="width:100%;height:385px;overflow:auto;"> + <!-- <table class="pure-table pure-table-horizontal" id="theTable_header" style="width:99%; margin-top:10px;border-collapse: collapse;table-layout:fixed;font-weight:bold;word-break:break-all;word-break:break-all;"> + </table> --> + <table class="pure-table pure-table-horizontal" id="theTable_header" style="margin-top:10px; width:99%; border-collapse: collapse;table-layout:fixed;"> + <tr style="background-color:#f2f3f3;font-weight:bold;"> + <td style="align:left; width:2%"><apex:inputCheckbox id="checkAll" onclick="checkAll();" style="text-align:left;"/></td> + <td style="text-align:center; width:6%">鐘舵��1</td> + <td style="text-align:center; width:6%">鐘舵��2</td> + <td style="text-align:center; width:8%">RS淇悊鍗曞彿</td> + <td style="text-align:center; width:9%">SAP淇悊鍗曞彿</td> + <td style="text-align:center; width:10%">鍨嬪彿</td> + <td style="text-align:center; width:6%">鏈鸿韩缂栧彿</td> + <td style="text-align:center; width:8%">鍖婚櫌鍚嶇О</td> + <td style="text-align:center; width:5%">鐪佷唤</td> + <td style="text-align:center; width:5%">淇悊濮旀墭鑰�</td> + <td style="text-align:center; width:7%">FSE鐢宠鏃ユ湡</td> + <td style="text-align:center; width:6%">缁翠慨涓績</td> + <td style="text-align:center; width:6%">鏈嶅姟鏂瑰紡</td> + <td style="text-align:center; width:8%;">鏈夋棤缁翠慨鍚堝悓瀵硅薄</td> + <td style="text-align:center; width:6%">鏃犲伩鍖哄埆鏍囧織</td> </tr> - </table> - <table class="pure-table pure-table-horizontal" id="theTable_header" style="width:99%; border-collapse: collapse;table-layout:fixed;"> <apex:repeat value="{!RAInfoList}" var="ra" id="records"> <tr> - <td align="left" width="2%"> + <td align="center" width="2%"> <apex:inputCheckbox style="text-align:left;" id="checklist" value="{!ra.IFCheck}" /> </td> - <td align="left" width="6%"> + <td align="center" width="6%"> <apex:outputField id="Status1" value="{!ra.repair.Status1__c}"/> </td> - <td align="left" width="6%"> + <td align="center" width="6%"> <apex:outputField id="Status2" value="{!ra.repair.Status2__c}"/> </td> - <td align="left" width="7%"> + <td align="center" width="8%"> <apex:outputField id="OTCode" value="{!ra.repair.Name}"/> </td> - <td align="left" width="8%"> + <td align="center" width="9%"> <apex:outputField id="SAP_Service_Repair_No" value="{!ra.repair.SAP_Service_Repair_No__c}"/> </td> - <td align="left" width="10%"> + <td align="center" width="10%"> <apex:outputField id="Delivered_Product" value="{!ra.repair.Delivered_Product__c}"/> </td> - <td align="left" width="5%" style="word-wrap:break-word;word-break:break-all;"> + <td align="center" width="6%" style="word-wrap:break-word;word-break:break-all;"> <apex:outputField id="SerialNumber" value="{!ra.repair.SerialNumber__c}"/> </td> - <td align="left" width="9%"> + <td align="center" width="8%"> <apex:outputField id="HP_Name" value="{!ra.repair.HP_Name__c}"/> </td> - <td align="left" width="5%"> + <td align="center" width="5%"> <apex:outputField id="State_Hospital" value="{!ra.repair.State_Hospital__c}"/> </td> - <td align="left" width="5%"> + <td align="center" width="5%"> <apex:outputField id="Incharge_Staff" value="{!ra.repair.Incharge_Staff__c}"/> </td> - <td align="left" width="8%"> + <td align="center" width="7%"> <apex:outputField id="FSE_ApplyForRepair_Day" value="{!ra.repair.FSE_ApplyForRepair_Day__c}"/> </td> - <td align="left" width="6%"> + <td align="center" width="6%"> <apex:outputField id="work_location_select" value="{!ra.repair.work_location_select__c}"/> </td> - <td align="left" width="5%"> + <td align="center" width="6%"> <apex:outputField id="On_site_repair" value="{!ra.repair.On_site_repair__c}"/> </td> <td align="center" width="8%"> <apex:outputField id="Number_of_EffectiveContract" value="{!ra.repair.Number_of_EffectiveContract__c}"/> </td> - <td align="left" width="8%"> + <td align="center" width="6%"> <apex:outputField id="NewProductGuaranteeObject" value="{!ra.repair.NewProductGuaranteeObject__c}"/> </td> </tr> -- Gitblit v1.9.1