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 = '<table>';
|
// Add styles for the table
|
doc += '<style>';
|
doc += 'table, th, td {';
|
doc += ' border: 1px solid black;';
|
doc += ' border-collapse: collapse;';
|
doc += '}';
|
doc += '</style>';
|
// Add all the Table Headers
|
doc += '<tr>';
|
this.columns.forEach(element => {
|
doc += '<th>'+ element.label +'</th>'
|
});
|
doc += '</tr>';
|
// 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 += '<tr>';
|
if (record.Status1__c != null) {
|
doc += '<th>'+record.Status1__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.Status2__c != null) {
|
doc += '<th>'+record.Status2__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.Name != null) {
|
doc += '<th>'+record.Name+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.SAP_Service_Repair_No__c != null) {
|
doc += '<th>'+record.SAP_Service_Repair_No__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.deliveredProductName != null) {
|
doc += '<th>'+record.deliveredProductName+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.SerialNumber__c != null) {
|
doc += '<th>'+record.SerialNumber__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.HP_Name__c != null) {
|
doc += '<th>'+record.HP_Name__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.State_Hospital__c != null) {
|
doc += '<th>'+record.State_Hospital__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.inchargeStaffName != null) {
|
doc += '<th>'+record.inchargeStaffName+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.FSE_ApplyForRepair_Day__c != null) {
|
doc += '<th>'+record.FSE_ApplyForRepair_Day__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.work_location_select__c != null) {
|
doc += '<th>'+record.work_location_select__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.On_site_repair__c != null) {
|
doc += '<th>'+record.On_site_repair__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.Number_of_EffectiveContract__c != null) {
|
doc += '<th>'+record.Number_of_EffectiveContract__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
if (record.NewProductGuaranteeObject__c != null) {
|
doc += '<th>'+record.NewProductGuaranteeObject__c+'</th>';
|
}else{
|
doc += '<th></th>'
|
}
|
doc += '</tr>';
|
});
|
doc += '</table>';
|
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(() => {
|
|
});
|
}
|
|
}
|