import { api, wire,LightningElement } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import { updateRecord } from 'lightning/uiRecordApi'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import init from '@salesforce/apex/OpportunityLightingButtonController.initForNewOpportunityAgencyButton'; import queryForRecords from '@salesforce/apex/OpportunityLightingButtonController.queryForNewOpportunityAgencyButtonToRecords'; import queryForRecTypeList from '@salesforce/apex/OpportunityLightingButtonController.queryForNewOpportunityAgencyButtonToRecTypeList'; import queryForRecords2 from '@salesforce/apex/OpportunityLightingButtonController.queryForNewOpportunityAgencyButtonToRecords2'; import { NavigationMixin } from 'lightning/navigation'; import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class LexNewOpportunityAgency extends NavigationMixin(LightningElement) { @api recordId; agency1Id; agencyOpportunity; trade; hospitalId; name; closeForecastedDate; bidPlannedDate; dealerFinalPrice; wholesalePrice; agency1; agency1Name; opportunityStage; opportunityCategory; IsLoading = true; @wire(CurrentPageReference) getStateParameters(currentPageReference) { console.log(111); console.log(currentPageReference); if (currentPageReference) { const urlValue = currentPageReference.state.recordId; if (urlValue) { let str = `${urlValue}`; console.log("str"); console.log(str); this.recordId = str; } } } connectedCallback(){ Promise.all([ loadStyle(this, lwcCSS) ]); init({ recordId: this.recordId }).then(result=>{ console.log(result); this.agency1Id = result.agency1Id; this.agencyOpportunity = result.agencyOpportunity; this.trade = result.trade; this.hospitalId = result.hospitalId; this.name = result.name; this.closeForecastedDate = result.closeForecastedDate; this.bidPlannedDate = result.bidPlannedDate; this.dealerFinalPrice = result.dealerFinalPrice; this.wholesalePrice = result.wholesalePrice; this.agency1 = result.agency1; this.opportunityStage = result.opportunityStage; this.opportunityCategory = result.opportunityCategory; this.agency1Name = result.agency1Name; console.log("1"); if(this.closeForecastedDate == undefined){ this.closeForecastedDate = ''; }else{ this.closeForecastedDate = new String(this.closeForecastedDate).replaceAll("-","/"); } console.log(this.closeForecastedDate); if(this.bidPlannedDate == undefined){ this.bidPlannedDate = ''; }else{ this.bidPlannedDate = new String(this.bidPlannedDate).replaceAll("-","/"); } if(this.dealerFinalPrice == undefined){ this.dealerFinalPrice = ''; } console.log(this.bidPlannedDate); console.log(this.dealerFinalPrice); this.newOpportunityAgency(); }).catch(error=>{ console.log("error"); console.log(error); }) } newOpportunityAgency(){ console.log("2"); var newflag = true; if (this.agency1Id == undefined) { newflag = false; this.showToast("经销商不存在,不能转成【经销商目标询价】。","error"); this.dispatchEvent(new CloseActionScreenEvent()); } else if (this.agencyOpportunity != undefined) { newflag = false; this.showToast("已经转成过【经销商目标询价】。","error"); this.dispatchEvent(new CloseActionScreenEvent()); } else if (this.trade != '内貿') { newflag = false; this.showToast("不是内贸,不能转成【经销商目标询价】。","error"); this.dispatchEvent(new CloseActionScreenEvent()); } else { var records = null; console.log("3"); queryForRecords({ agency1Id: this.agency1Id, hospitalId: this.hospitalId }).then(result=>{ records = result; console.log(records.length); if (records == null || records.length == 0) { newflag = false; this.showToast("没有有效的【经销商医院】。","error"); this.dispatchEvent(new CloseActionScreenEvent()); } if (newflag) { console.log("5"); queryForRecTypeList({ sobjectType: 'Agency_Opportunity__c', developerName: 'Opportunity', isActive: true }).then(result=>{ console.log("6"); var recTypeList = result; if (recTypeList.length == 0) { this.showToast("没有找到,经销商询价的定义。","error"); this.dispatchEvent(new CloseActionScreenEvent()); } else { console.log("7"); queryForRecords2({ qualifiedApiName: 'Agency_Opportunity__c' }).then(result=>{ console.log("8"); var records2 = result; var recTypeId = recTypeList[0].Id; var prefix, fId_Close_Forecasted_Date__c, fId_Agency_Hospital__c , fId_OCM_Change_To_Opportunity_Flg__c, fId_Amount__c , fId_OCMSale_Price__c, fId_Agency__c , fId_StageName__c, fId_Change_To_Opportunity__c , fId_Department_Cateogy__c, fId_Bid_Planned_Date__c; console.log("9"); console.log(records2); for (var i=0; i< records2.length; i++) { var record = records2[i]; prefix = record.EntityDefinition.KeyPrefix.toString(); if (record.QualifiedApiName == 'Close_Forecasted_Date__c') { fId_Close_Forecasted_Date__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'OCM_Change_To_Opportunity_Flg__c') { fId_OCM_Change_To_Opportunity_Flg__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Agency_Hospital__c') { fId_Agency_Hospital__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Amount__c') { fId_Amount__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'OCMSale_Price__c') { fId_OCMSale_Price__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Agency__c') { fId_Agency__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'StageName__c') { fId_StageName__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Change_To_Opportunity__c') { fId_Change_To_Opportunity__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Department_Cateogy__c') { fId_Department_Cateogy__c = record.DurableId.toString().split('.')[1]; } if (record.QualifiedApiName == 'Bid_Planned_Date__c') { fId_Bid_Planned_Date__c = record.DurableId.toString().split('.')[1]; } } console.log("10"); console.log(records[0]); var ahl = records[0]; try { // var url = "/a2Y/e?retURL=%2F" // + this.recordId // + "&Name='(OLYMPUS)'" // + encodeURIComponent(this.name) // + "&RecordType=" + recTypeId + "&" + fId_Close_Forecasted_Date__c + "=" // + encodeURIComponent(this.closeForecastedDate) // + "&" + fId_Bid_Planned_Date__c + "=" // + encodeURIComponent(this.bidPlannedDate) // + "&" + fId_OCM_Change_To_Opportunity_Flg__c + "=1" + "&CF" + fId_Agency_Hospital__c + "_lkid=" + ahl.Id + "&CF" + fId_Agency_Hospital__c + "=" + encodeURIComponent(ahl.Name) + "&" + fId_Amount__c + "=" // + encodeURIComponent(this.dealerFinalPrice) // + "&" + fId_OCMSale_Price__c + "=" // + encodeURIComponent(this.wholesalePrice) // + "&CF" + fId_Agency__c + "_lkid=" // + encodeURIComponent(this.agency1Id) // + "&CF" + fId_Agency__c + "=" // + encodeURIComponent(this.agency1Name) // + "&" + fId_StageName__c + "=" // + encodeURIComponent(this.opportunityStage) // + "&CF" + fId_Change_To_Opportunity__c + "_lkid=" // + encodeURIComponent(this.recordId ) // + "&CF" + fId_Change_To_Opportunity__c + "=" // + encodeURIComponent(this.name ) // + "&" + fId_Department_Cateogy__c + "=" // + encodeURIComponent(this.opportunityCategory); // console.log(url); // window.open(url); if(this.closeForecastedDate){ if(!this.closeForecastedDate.includes(' ')){ this.closeForecastedDate += ' 00:00:00' } this.closeForecastedDate = this.closeForecastedDate.replace(' ','T').replaceAll('/','-') + '.000Z'; console.log(this.closeForecastedDate); } if(this.bidPlannedDate){ if(!this.bidPlannedDate.includes(' ')){ this.bidPlannedDate += ' 00:00:00' } this.bidPlannedDate = this.bidPlannedDate.replace(' ','T').replaceAll('/','-') + '.000Z'; } const defaultValues = encodeDefaultFieldValues({ Name: '(OLYMPUS)' + this.name, Close_Forecasted_Date__c: this.closeForecastedDate, Bid_Planned_Date__c: this.bidPlannedDate, OCM_Change_To_Opportunity_Flg__c: '1', Agency_Hospital__c: ahl.Id, Amount__c: this.dealerFinalPrice, OCMSale_Price__c: this.wholesalePrice, Agency__c: this.agency1Id, StageName__c: this.opportunityStage, Change_To_Opportunity__c: this.recordId, Department_Cateogy__c: this.opportunityCategory }); this[NavigationMixin.Navigate]({ type: 'standard__objectPage', attributes: { objectApiName: 'Agency_Opportunity__c', actionName: 'new' }, state: { nooverride: '1', defaultFieldValues: defaultValues, recordTypeId: recTypeId } }); this.dispatchEvent(new CloseActionScreenEvent()); } catch (error) { console.log(error) } }) } }) } }); } this.IsLoading = false; } showToast(msg,type) { if(type == 'success'){ const event = new ShowToastEvent({ message: msg, variant: type, }); 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()); } } updateRecordView(recordId) { updateRecord({fields: { Id: recordId }}); } }