/* * @Description: * @version: * @Author: chen jing wu * @Date: 2023-06-06 15:41:32 * @LastEditors: chen jing wu * @LastEditTime: 2023-10-10 17:41:40 */ import { api, wire,LightningElement, track } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import updateForSpecSubmitButton from '@salesforce/apex/lexOpportunitySpecialApplyController.updateForSpecSubmitButton'; import init from '@salesforce/apex/lexOpportunitySpecialApplyController.initForSpecSubmitButton'; import { updateRecord,getRecord } from 'lightning/uiRecordApi'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import LightningConfirm from 'lightning/confirm'; import STATUS_FIELD from "@salesforce/schema/OpportunitySpecialApply__c.Status__c"; import { refreshApex } from '@salesforce/apex'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class LexSpecSubmit extends LightningElement { @wire(getRecord, { recordId: '$recordId', fields: [STATUS_FIELD] }) record; @api recordId; applyReason; isUploadFile; status; @track IsLoading = false; @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; } } } 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 }}); } connectedCallback(){ Promise.all([ loadStyle(this, lwcCSS) ]); init({ recordId: this.recordId }).then(result=>{ this.applyReason = result.applyReason; this.isUploadFile = result.isUploadFile; this.status = result.status; this.specSubmit(); }).catch(error=>{ console.log("error"); console.log(error); }); } specSubmit(){ var reason = this.applyReason; var file = this.isUploadFile; var status = this.status; if((reason == '招标质疑'||reason == '取消招标') && (file == false)){ this.showToast('请上传附件。','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } if(status != '草案中'&& status != '驳回'){ this.showToast('当前状态无法提交审批。','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } this.handleConfirmClick('一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?'); } async handleConfirmClick(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value', mode:'sticky' }); console.log(result); this.IsLoading = true; if(result){ updateForSpecSubmitButton({ recordId: this.recordId }).then(result=>{ if(result){ this.showToast(result,'error'); }else{ this.showToast('审批提交成功。','success'); setTimeout(() => { refreshApex(this.record); this.dispatchEvent(new CloseActionScreenEvent()); }, 1000); } this.dispatchEvent(new CloseActionScreenEvent()); }); }else{ this.dispatchEvent(new CloseActionScreenEvent()); return; } } }