/* * @Description: * @version: * @Author: chen jing wu * @Date: 2023-05-15 13:17:26 * @LastEditors: chen jing wu * @LastEditTime: 2023-10-10 17:33:05 */ /* * @Description: * @version: * @Author: chen jing wu * @Date: 2023-05-15 13:17:26 * @LastEditors: chen jing wu * @LastEditTime: 2023-05-24 16:34:40 */ import { api, wire,LightningElement } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { updateRecord } from 'lightning/uiRecordApi'; import init from '@salesforce/apex/OpportunityLightingButtonController.initForChangeContractTypeButton'; import changeTrade from '@salesforce/apex/OpportunityLightingButtonController.changeTrade'; import LightningConfirm from 'lightning/confirm'; import { NavigationMixin } from 'lightning/navigation'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class LexChangeContractType extends NavigationMixin(LightningElement) { @api recordId; stageName; estimationDecision; sapSendOK; ifAuthorizingLock; 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; } } } async handleConfirmClick(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value', }); console.log(result); if(result){ try { console.log("22222"); changeTrade({ oppId: this.recordId }).then(result=>{ console.log("1111"); var str = result; if(str != '1'){ this.showToast(str,"error"); } this.IsLoading = false; window.location = '/' + this.recordId; this.dispatchEvent(new CloseActionScreenEvent()); // this[NavigationMixin.Navigate]({ // type: 'standard__recordPage', // attributes: { // recordId: this.recordId, // objectApiName: 'Opportunity', // actionName: 'view' // } // }); }).catch(error=>{ console.log("error"); console.log(error); }); } catch(e) { console.log(e); } }else{ this.dispatchEvent(new CloseActionScreenEvent()); return; } } connectedCallback(){ Promise.all([ loadStyle(this, lwcCSS) ]); init({ recordId: this.recordId }).then(result=>{ this.stageName = result.stageName; this.estimationDecision = result.estimationDecision; this.sapSendOK = result.sapSendOK; this.ifAuthorizingLock = result.ifAuthorizingLock; this.changeContractType(); }).catch(error=>{ console.log("error"); console.log(error); }); } changeContractType(){ var status = this.stageName; var quostatus = this.estimationDecision; var win = this.sapSendOK; var Auth = this.ifAuthorizingLock; if(status != '引合'){ this.showToast('只有状态1是询价的可以更改合同类型','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } if(Auth == '1'){ this.showToast('询价正在授权申请中,请在SPO中驳回后再做转换。','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } if(quostatus == 'true' || quostatus == true){ this.showToast('已决定报价,不能修改内贸/外贸','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } if(win == 'true' || win == true){ this.showToast('请先取消WIN, 再转换内外贸','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } this.handleConfirmClick('变更合同类型会删除全部报价,是否继续?'); } 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 }}); } }