import { LightningElement, track, wire, api } from 'lwc'; import { CurrentPageReference } from 'lightning/navigation'; import { NavigationMixin } from 'lightning/navigation'; import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { CloseActionScreenEvent } from 'lightning/actions'; import initRepair from '@salesforce/apex/lexRepairAgainAnController.initRepair'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class lexRepairReturnAnalysis extends NavigationMixin(LightningElement) { @api recordId; @wire(CurrentPageReference) getStateParameters(currentPageReference) { if (currentPageReference) { const urlValue = currentPageReference.state.recordId; if (urlValue) { let str = `${urlValue}`; this.recordId = str; } } } connectedCallback(){ Promise.all([ loadStyle(this,lwcCSS) ]); initRepair({ recordId: this.recordId }).then(res=>{ console.log('init====='+JSON.stringify(res)); if(res){ if(res.repairAgainAnLength > 0){ this.showToast('该修理已存在再修理分析,不能新建','warning'); return; } if(res.sAPServiceRepairNo == '' || res.sAPServiceRepairNo==null){ this.showToast('该修理还没有上传SAP,不能够新建再修理分析','warning'); return; } this.showNewObject() } }) } showNewObject(){ console.log('showNewObject=='); const defaultFieldValues = encodeDefaultFieldValues({ Repair__c: this.recordId, Name: '*' }); this[NavigationMixin.Navigate]({ type: 'standard__objectPage', attributes: { objectApiName: 'RepairAgainAn__c', actionName: 'new', RecordType:'' }, state: { nooverride: '1', defaultFieldValues: defaultFieldValues } }) this.dispatchEvent(new CloseActionScreenEvent()); } showToast(msg,type) { if(type == 'success'){ const event = new ShowToastEvent({ message: msg, variant: type }); this.updateRecordView(this.recordId); this.dispatchEvent(event); this.dispatchEvent(new CloseActionScreenEvent()); }else{ const event = new ShowToastEvent({ message: msg, variant: type, mode: 'sticky' }); this.dispatchEvent(event); this.dispatchEvent(new CloseActionScreenEvent()); } } }