liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference, NavigationMixin} from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import  init  from '@salesforce/apex/LexConsumApply_FromQISCtl.init';
import  rentalApp  from '@salesforce/apex/LexConsumApply_FromQISCtl.rentalApp';
import  fieldDefineApp  from '@salesforce/apex/LexConsumApply_FromQISCtl.fieldDefineApp';
import UserInfo_Owner from '@salesforce/apex/LexConsumApply_FromQISCtl.UserInfo_Owner';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
import lwcCSS from '@salesforce/resourceUrl/lwcCSS';
import {loadStyle} from 'lightning/platformResourceLoader';
 
// 新建耗材备品申请(QIS)
export default class LexConsumApply_FromQIS extends NavigationMixin(LightningElement) {
 
    @api recordId;
    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(){
        console.log(this.recordId);
        Promise.all([
            loadStyle(this, lwcCSS)
        ]);
        rentalApp({
            recordId: this.recordId
        }).then(result => {
            console.log('rentalApp============',result,result.length);
            if(result.length > 0){
                this.showToast('同一个QIS记录不能重复申请备品','error');
                return;
            }else{
                console.log('rentalApp====else========');
                init({
                    recordId: this.recordId
                }).then(result => {
                    console.log('init============',result);
                    this.IsLoading = false;
                    if (result != null) {
                        if(result.nextAction=='送回'){
                            this.showToast('QIS对应方法为“送回”,不能申请','error');
                            return;
                        }
                        if(result.qISStatus=='草案中'){
                            this.showToast('QIS状态为草案中,不能申请','error');
                            return;
                        }
                        if(result.qISStatus=='FSE填写完毕'){
                            this.showToast('QIS状态为FSE填写完毕,不能申请','error');
                            return;
                        }
                        if(result.qISStatus=='取消'){
                            this.showToast('QIS状态为取消,不能申请','error');
                            return;
                        }
                        UserInfo_Owner({}).then(res=>{
                            if(res.isFormalStuff){
                                this.showToast('试用期内,不能申请','error');
                                return;
                            }else{
                                fieldDefineApp({}).then(resp=>{
                                    var fieldmap = new Map();
                                    for (var i=0; i< resp.length; i++) {
                                        var record = resp[i];
                                        fieldmap.set(record.QualifiedApiName,record.DurableId.toString().split('.')[1]);
                                    }
    
                                })
                                .catch(e=>{console.log(e)})
    
                                const defaultValues = encodeDefaultFieldValues({
                                    Hospital__c: result.hospital,
                                    Strategic_dept__c: result.departmentClass,
                                    Account__c:result.hospitalDepartment,
                                    demo_purpose2__c:'索赔QIS',
                                    Name:'*',
                                    Person_In_Charge__c:res.id,
                                    applyUser__c:res.id,
                                    QIS_number__c:result.qisReportId
                                });
                                console.log('init============',result);
                                console.log('init============',defaultValues);
                                this[NavigationMixin.Navigate]({
                                    type: 'standard__objectPage',
                                    attributes: {
                                        objectApiName: 'Consum_Apply__c',
                                        actionName: 'new'
                                    },
                                    state:{
                                        defaultFieldValues: defaultValues
                                    }
                                });
                            }
                        })
                        this.dispatchEvent(new CloseActionScreenEvent());
                    }
                }).catch(error => {
                    console.log("error");
                    console.log(error);
                });
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });        
    }
 
    showToast(msg,type) {
        if(type == "success"){
          const event = new ShowToastEvent({
              message: msg,
              variant: type
          });
          this.dispatchEvent(event);
        }else{
          const event = new ShowToastEvent({
              message: msg,
              variant: type,
              mode:'sticky'
          });
          this.dispatchEvent(event);
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
 
}