/* * @Description: * @version: * @Author: chen jing wu * @Date: 2023-06-20 14:37:24 * @LastEditors: chen jing wu * @LastEditTime: 2023-10-11 16:54:13 */ import { api, wire,LightningElement, track } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import updateSubmitSolutionForApprovalButton from '@salesforce/apex/lexSolutionProjectRequirementsController.updateSubmitSolutionForApprovalButton'; import init from '@salesforce/apex/lexSolutionProjectRequirementsController.initSubmitSolutionForApprovalButton'; import queryForAttachments from '@salesforce/apex/lexSolutionProjectRequirementsController.queryForAttachments'; import { updateRecord,getRecord } from 'lightning/uiRecordApi'; import STATUS_FIELD from "@salesforce/schema/SolutionProjectRequirements__c.Status__c"; import { refreshApex } from '@salesforce/apex'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import LightningConfirm from 'lightning/confirm'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class LexSubmitSolutionForApproval extends LightningElement { @wire(getRecord, { recordId: '$recordId', fields: [STATUS_FIELD] }) record; @api recordId; status; submitDateYouWant; createdDate; departmentClassId; userId; userName; productLeader; @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=>{ console.log(result); if(result.res){ this.status = result.res.status; this.submitDateYouWant = new Date(result.res.submitDateYouWant); // this.createdDate = result.res.createdDate; this.createdDate = new Date(result.res.createdDate); this.productLeader = result.res.productLeader; this.departmentClassId = result.res.departmentClassId; this.userId = result.res.userId; this.userName = result.res.userName; this.submitSolutionForApproval(); } }); } submitSolutionForApproval(){ if(this.status == '07结案'){ this.showToast('已结案','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } this.createdDate.setDate(this.createdDate.getDate() + 3); if(this.submitDateYouWant.getTime() < this.createdDate.getTime()){ this.showToast('希望提交日期不得小于三天,如紧急需求请邮件联络Solution担当','error'); this.dispatchEvent(new CloseActionScreenEvent()); return; } queryForAttachments({ Id: this.departmentClassId }).then(result=>{ console.log("start"); var records = result; var header = this.productLeader; var usrname = this.userName; var rtn = ''; console.log("start"); if(header != undefined && header != null && header != '' && header.includes(usrname)){ rtn = 'Y'; }else{ rtn = 'N'; } console.log('rtn = ' + rtn); console.log('this.userId = ' + this.userId); console.log('records[0].Department_Class__r.OwnerId = ' + records[0].Department_Class__r.OwnerId); console.log('records[0].Department_Class__r.Owner.SalesManager__c = ' + records[0].Department_Class__r.Owner.SalesManager__c); if(records.length > 0){ if(rtn != 'Y' && this.userId != records[0].Department_Class__r.OwnerId && this.userId != records[0].Department_Class__r.Owner.SalesManager__c){ this.showToast('只允其战略科室主担、产品担当及省经理提交solution项目需求!','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' }); console.log(result); if(result){ updateSubmitSolutionForApprovalButton({ recordId: this.recordId }).then(results=>{ try { if(results){ this.showToast(results,"error"); this.dispatchEvent(new CloseActionScreenEvent()); } else{ setTimeout(() => { refreshApex(this.record); this.dispatchEvent(new CloseActionScreenEvent()); }, 1000); } } catch (error) { if(err.faultstring !=undefined && err.faultstring.indexOf('INVALID_SESSION_ID') != -1) { this.showToast('当前网页已登出,请您重新登录后刷新该网页!','error'); this.dispatchEvent(new CloseActionScreenEvent()); } else { this.showToast(err.faultstring,'error'); this.dispatchEvent(new CloseActionScreenEvent()); } return; } }); // isopd.Id = "{!SolutionProjectRequirements__c.Id}"; // isopd.Submint_TF__c = true; // isopd.Submitter__c = "{!$User.Id}"; }else{ this.dispatchEvent(new CloseActionScreenEvent()); return; } } }