import { LightningElement,wire,track,api} from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import { NavigationMixin } from 'lightning/navigation'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import search from '@salesforce/apex/lexBatchSelectRepairLWCController.search'; import showPDF from '@salesforce/apex/lexBatchSelectRepairLWCController.showPDF'; const columns = [ { label: '状态1', fieldName: 'Status1__c'}, { label: '状态2', fieldName: 'Status2__c' }, { label: 'RS修理单号', fieldName: 'Name' }, { label: 'SAP修理单号', fieldName: 'SAP_Service_Repair_No__c' }, { label: '型号', fieldName: 'deliveredProductUrl',type:'url', typeAttributes:{ label:{ fieldName:'deliveredProductName' }, target:'_balank' } }, { label: '机身编号', fieldName: 'SerialNumber__c' }, { label: '医院名称', fieldName: 'HP_Name__c' }, { label: '省份', fieldName: 'State_Hospital__c' }, { label: '修理委托者', fieldName: 'inchargeStaffUrl',type:'url', typeAttributes:{ label:{ fieldName:'inchargeStaffName' }, target:'_balank' } }, { label: 'FSE申请日期', fieldName: 'FSE_ApplyForRepair_Day__c' }, { label: '维修中心', fieldName: 'work_location_select__c' }, { label: '服务方式', fieldName: 'On_site_repair__c' }, { label: '有无维修合同对象', fieldName: 'Number_of_EffectiveContract__c' }, { label: '无偿区别标志', fieldName: 'NewProductGuaranteeObject__c' } ]; // 批量选择修理LWC export default class lexBatchSelectRepairLWC extends LightningElement { data = []; columns = columns; //状态1 status1Options = [{ label: '--无--', value: '' }, { label: '0.申请完毕', value: '0.申请完毕' }, { label: '2.维修报价阶段', value: '2.维修报价阶段' }, { label: '3.维修阶段', value: '3.维修阶段' }, { label: '4.修理品返送阶段', value: '4.修理品返送阶段' }, { label: '5.完毕', value: '5.完毕' }, { label: '0.删除', value: '0.删除' }, { label: '0.取消', value: '0.取消' }]; //状态2 status2Options = [{label:'00.申请完毕', value:'00.申请完毕'}, {label:'01.分公司受理完毕', value:'01.分公司受理完毕'}, {label:'02.RC受理完毕', value:'02.RC受理完毕'}, {label:'03.报价检查结束', value:'03.报价检查结束'}, {label:'04.报价跟进中', value:'04.报价跟进中'}, {label:'05.报价同意完备', value:'05.报价同意完备'}, {label:'06.零件齐备', value:'06.零件齐备'}, {label:'07.修理開始', value:'07.修理開始'}, {label:'08.修理预计完成', value:'08.修理预计完成'}, {label:'09.修理完成', value:'09.修理完成'}, {label:'10.最终检查完成', value:'10.最终检查完成'}, {label:'11.RC修理品已返送', value:'11.RC修理品已返送'}, {label:'12.发票已发送', value:'12.发票已发送'}, {label:'13.已返送到用户', value:'13.已返送到用户'}, {label:'14.收到验收单', value:'14.收到验收单'}, {label:'15.验收单签收复核通过', value:'15.验收单签收复核通过'}, {label:'16.部分付款', value:'16.部分付款'}, {label:'16.完毕', value:'16.完毕'}, {label:'17.付款完毕', value:'17.付款完毕'}, {label:'00.取消', value:'00.取消'}, {label:'00.删除', value:'00.删除'}, {label:'00.关闭', value:'00.关闭'}]; //服务方式 siteRepairItems = [{label:'--无--',value:''}, {label:'RC修理',value:'RC修理'}, {label:'直送SORC修理',value:'直送SORC修理'}, {label:'直送OGZ修理',value:'直送OGZ修理'}, {label:'办事处修理',value:'办事处修理'}, {label:'现场修理',value:'现场修理'}]; searchObj = {}; repair = {}; selectedRepairs = []; connectedCallback(){ } //状态1 handleStatus1Change(event){ this.searchObj.Status1 = event.detail.value; } //状态2 handleStatus2Change(event){ this.searchObj.Status2 = event.detail.value; } //服务方式 handleSiteChange(event){ this.searchObj.onSiteRepair = event.detail.value; } //RS修理单号 RepairName handleRepairNameChange(event){ this.searchObj.RepairName = event.detail.value; } //SAP修理单号 SAPRepairNo handleSAPRepairNoChange(event){ this.searchObj.SAPRepairNo = event.detail.value; } //维修中心 workLocationSelect handleWorkLocationChange(event){ this.searchObj.workLocationSelect = event.detail.value; } //机身编码 SerialNumber handleSerialNumberChange(event){ this.searchObj.SerialNumber = event.detail.value; } // 省份 State_Hospital handleStateHospitalChange(event){ this.searchObj.State_Hospital = event.detail.value; } //医院名称 HospitalName handleHospitalChange(event){ this.searchObj.HospitalName = event.detail.value; } //FSE申请日 repair.Aware_date__c handleAwareDateDStart(event){ this.repair.Aware_date__c = event.detail.value; } // repair.Aware_date2__c handleAwareDateDEnd(event){ this.repair.Aware_date2__c = event.detail.value; } // 修理委托者 repair.Incharge_Staff__c handleInchargeStaffChange(event){ this.repair.Incharge_Staff__c = event.detail.value[0]; } //检索 searchRepair(event) { if (JSON.stringify(this.repair) != "{}") { this.searchObj.repair = this.repair; } let jsonStr = JSON.stringify(this.searchObj); if (jsonStr === "{}") { const event = new ShowToastEvent({ title: 'error', message: '请至少添加一个检索条件!', variant:'error', }); this.dispatchEvent(event); }else{ search({ json: jsonStr }).then(result => { if (!result.repairData || result.repairData && (result.repairData.length == 0 || result.repairData.length == 200)) { const event = new ShowToastEvent({ title: 'warning', message: result.status, variant:'warning', }); this.dispatchEvent(event); if (!result.repairData || result.repairData && result.repairData.length == 0) { result.repairData = []; } } let returnArr = []; result.repairData.forEach(function(v){ let objRepair = v.repair; //添加修理委托者和型号名称 objRepair.deliveredProductName = objRepair.Delivered_Product__r ? objRepair.Delivered_Product__r.Name : ''; objRepair.deliveredProductUrl = "/"+objRepair.Delivered_Product__c; objRepair.inchargeStaffName = objRepair.Incharge_Staff__r ? objRepair.Incharge_Staff__r.Name : ''; objRepair.inchargeStaffUrl = "/"+objRepair.Incharge_Staff__c; returnArr.push(objRepair); }); this.data = returnArr; }).catch(error => { console.log("error"); console.log(error); }).finally(() => { }); } } //导出为Excel 画table exportContactData(){ // Prepare a html table let doc = ''; // Add styles for the table doc += ''; // Add all the Table Headers doc += ''; this.columns.forEach(element => { doc += '' }); doc += ''; // Add the data rows let fieldNameArr =[]; this.columns.forEach(function(v){ if (v['typeAttributes']) { fieldNameArr.push(v['typeAttributes'].label.fieldName); }else{ fieldNameArr.push(v.fieldName); } }); fieldNameArr.forEach(v=>{ console.log(v); // console.log(this.data[0].v); }) this.data.forEach(record => { doc += ''; if (record.Status1__c != null) { doc += ''; }else{ doc += '' } if (record.Status2__c != null) { doc += ''; }else{ doc += '' } if (record.Name != null) { doc += ''; }else{ doc += '' } if (record.SAP_Service_Repair_No__c != null) { doc += ''; }else{ doc += '' } if (record.deliveredProductName != null) { doc += ''; }else{ doc += '' } if (record.SerialNumber__c != null) { doc += ''; }else{ doc += '' } if (record.HP_Name__c != null) { doc += ''; }else{ doc += '' } if (record.State_Hospital__c != null) { doc += ''; }else{ doc += '' } if (record.inchargeStaffName != null) { doc += ''; }else{ doc += '' } if (record.FSE_ApplyForRepair_Day__c != null) { doc += ''; }else{ doc += '' } if (record.work_location_select__c != null) { doc += ''; }else{ doc += '' } if (record.On_site_repair__c != null) { doc += ''; }else{ doc += '' } if (record.Number_of_EffectiveContract__c != null) { doc += ''; }else{ doc += '' } if (record.NewProductGuaranteeObject__c != null) { doc += ''; }else{ doc += '' } doc += ''; }); doc += '
'+ element.label +'
'+record.Status1__c+''+record.Status2__c+''+record.Name+''+record.SAP_Service_Repair_No__c+''+record.deliveredProductName+''+record.SerialNumber__c+''+record.HP_Name__c+''+record.State_Hospital__c+''+record.inchargeStaffName+''+record.FSE_ApplyForRepair_Day__c+''+record.work_location_select__c+''+record.On_site_repair__c+''+record.Number_of_EffectiveContract__c+''+record.NewProductGuaranteeObject__c+'
'; var element = 'data:application/vnd.ms-excel,' + encodeURIComponent(doc); let downloadElement = document.createElement('a'); downloadElement.href = element; downloadElement.target = '_self'; // use .csv as extension on below line if you want to export data as csv downloadElement.download = '修理明细表.xls'; document.body.appendChild(downloadElement); downloadElement.click(); } //获取选中Repair getSelectedRows(event) { const selectedRows = event.detail.selectedRows; //Repair__c selectedRepairs // Display that fieldName of the selected rows let selectedRepairsArr = []; for (let i = 0; i < selectedRows.length; i++) { selectedRepairsArr.push(selectedRows[i]); } this.selectedRepairs = selectedRepairsArr; } //跳转到pdf页面 skipPage() { if (this.selectedRepairs.length <= 0 ) { const event = new ShowToastEvent({ title: 'error', message: '请至少选择一个修理', variant:'error', }); this.dispatchEvent(event); return; } let jsonStr = JSON.stringify(this.selectedRepairs); showPDF({ json: jsonStr }).then(result => { if (result.indexOf("https://ocsm") != -1) { window.open(result, "维修委托书PDF", ""); }else{ const event = new ShowToastEvent({ title: 'error', message: result, variant:'error', }); this.dispatchEvent(event); } }).catch(error => { console.log("error"); console.log(error); }).finally(() => { }); } }