liuyn
2024-03-22 e8be4d964c6b336ed39dba5900b1b9a8f3181b96
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 * @Description: 
 * @version: 
 * @Author: chen jing wu
 * @Date: 2023-06-26 11:10:52
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-10-10 17:37:14
 */
 
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/lexSolutionProgrammaController.initForNewSolutionProgramma';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LightningConfirm from 'lightning/confirm';
import { NavigationMixin } from 'lightning/navigation';
import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
import lwcCSS from '@salesforce/resourceUrl/lwcCSS';
import {loadStyle} from 'lightning/platformResourceLoader';
export default class LexNewSolutionProgramma extends NavigationMixin(LightningElement) {
  @api recordId;
  status;
  girWindowDirectorApproved;
  hospitalOwnerId;
  profileId;
  m2profileId;
  @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());
    }   
}
  connectedCallback(){
    Promise.all([
      loadStyle(this, lwcCSS)
     ]);
     
    init({
      recordId: this.recordId
    }).then(result=>{
      console.log(result);
      this.status = result.status;
      this.girWindowDirectorApproved = result.girWindowDirectorApproved;
      this.hospitalOwnerId = result.hospitalOwnerId;
      this.profileId = result.profileId;
      this.m2profileId = result.m2profileId;
      this.newSolutionProgramma();
    });
  }
  newSolutionProgramma(){
    console.log(this.girWindowDirectorApproved);
    if(this.profileId != this.m2profileId){
      this.showToast('只有GIR窗口才能新建方案','error');
      this.dispatchEvent(new CloseActionScreenEvent());
    }else if(this.status == '07结案'){
      this.showToast('结案后不能新建方案','error');
      this.dispatchEvent(new CloseActionScreenEvent());
    }else if(this.status == '01草案中' || this.status == '02需求已提交'){
      this.dispatchEvent(new CloseActionScreenEvent());
    }else if(!this.girWindowDirectorApproved){
      this.showToast('项目需求还未通过审批不能新建方案','error');
      this.dispatchEvent(new CloseActionScreenEvent());
    }else{
      console.log("start");
      console.log(this.hospitalOwnerId);
      const defaultValues = encodeDefaultFieldValues({
        SolutionProjectRequirements__c: this.recordId,
        Business_Promotion__c: this.hospitalOwnerId
      });
      this[NavigationMixin.Navigate]({
          type: 'standard__objectPage',
          attributes: {
              objectApiName: 'Solution_Programme__c',
              actionName: 'new'
          },
          state: {
              nooverride: '1',
              defaultFieldValues: defaultValues
          
          }
      });
      this.dispatchEvent(new CloseActionScreenEvent());
    }
  }
}