From 9322dd73bd4a7085cc406dc6ff3908d9da35e02c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@prec-tech.com>
Date: 星期五, 02 六月 2023 16:58:26 +0800
Subject: [PATCH] 新建耗材申请(OPD计划)

---
 force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls-meta.xml                    |    5 +
 force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js-meta.xml |   20 +++++
 force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js          |   99 ++++++++++++++++++++++++
 force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.html        |    5 +
 force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls                             |   81 ++++++++++++++++++++
 5 files changed, 210 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls b/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls
new file mode 100644
index 0000000..f13a3f6
--- /dev/null
+++ b/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls
@@ -0,0 +1,81 @@
+public with sharing class lexConsumApply_FromOPDPlanCtl {
+    public lexConsumApply_FromOPDPlanCtl() {
+
+    }
+
+    @AuraEnabled
+    public static List<FieldDefinition> fieldDefineApp(){
+        try {
+            List<FieldDefinition> rep = [Select QualifiedApiName, EntityDefinition.KeyPrefix, DurableId From FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Consum_Apply__c'];
+            return rep;
+        } catch (Exception e) {
+            throw new AuraHandledException(e.getMessage());
+        }
+    }
+
+    //鑾峰彇褰撳墠鐧诲綍浜虹殑 id
+    @AuraEnabled
+    public static UserResult UserInfo_Owner() {
+        UserResult result = new UserResult();
+        ID myUserID = UserInfo.getUserId();
+        try { 
+            User tempUser =
+                [select Id,isFormal_Stuff__c,FirstName,LastName from user where id = : myUserID ];
+            result.id = tempUser.Id;
+            result.isFormalStuff = tempUser.isFormal_Stuff__c;
+            result.firstName = tempUser.FirstName;
+            result.lastName = tempUser.LastName;
+        } catch (exception e) {
+            
+            result.result = e.getMessage();
+        }
+        return result;
+    }
+
+    @AuraEnabled
+    public static InitData init(String recordId){
+        InitData res = new initData();
+        try {
+            OPDPlan__c rep = [select Id,OPDPlan_Report__c,Name,Rental_Apply2__c,HospitalName__c,OCM_category_Name__c,Account_Laboratory__c from OPDPlan__c where Id =: recordId];
+            res.opdPlan = rep.OPDPlan_Report__c;
+            res.name = rep.Name;
+            res.rentalApply2 = rep.Rental_Apply2__c;
+            res.hospitalName = rep.HospitalName__c;
+            res.ocmCategoryName = rep.OCM_category_Name__c;
+            res.accountLab = rep.Account_Laboratory__c;
+            return res;
+        } catch (Exception e) {
+            throw new AuraHandledException(e.getMessage());
+        }
+    }
+    public class InitData{
+        @AuraEnabled
+        public String opdPlan;
+        @AuraEnabled
+        public String rentalApply2;
+        @AuraEnabled
+        public String hospitalName;
+        @AuraEnabled
+        public String ocmCategoryName;
+        @AuraEnabled
+        public String accountLab;
+        @AuraEnabled
+        public String name;
+    }
+
+    public class UserResult {
+        @AuraEnabled
+        public string result;
+        public UserResult( ) {
+            result = 'Success';
+        }
+        @AuraEnabled
+        public string id;
+        @AuraEnabled
+        public Boolean isFormalStuff;
+        @AuraEnabled
+        public string firstName;
+        @AuraEnabled
+        public string lastName;
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls-meta.xml b/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls-meta.xml
new file mode 100644
index 0000000..45cccbd
--- /dev/null
+++ b/force-app/main/default/classes/lexConsumApply_FromOPDPlanCtl.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>57.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.html b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.html
new file mode 100644
index 0000000..ae58c6c
--- /dev/null
+++ b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.html
@@ -0,0 +1,5 @@
+<template>
+    <div class="dispatchOCSMQARAHolder" if:true={IsLoading}>
+        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js
new file mode 100644
index 0000000..7e07b03
--- /dev/null
+++ b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js
@@ -0,0 +1,99 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference, NavigationMixin} from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import  init  from '@salesforce/apex/lexConsumApply_FromOPDPlanCtl.init';
+import  fieldDefineApp  from '@salesforce/apex/lexConsumApply_FromOPDPlanCtl.fieldDefineApp';
+import UserInfo_Owner from '@salesforce/apex/lexConsumApply_FromOPDPlanCtl.UserInfo_Owner';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
+
+export default class LexConsumApply_FromOPDPlan extends 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);
+        init({
+            recordId: this.recordId
+        }).then(result=>{
+            UserInfo_Owner({}).then(res=>{
+                if(res.isFormalStuff == 'true'){
+                    this.showToast('璇曠敤鏈熷唴锛屼笉鑳界敵璇�','warning');
+                    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({
+                        OPD__c: result.opdPlan,
+                        OPDPlan__c: result.name,
+                        Rental_Apply__c:result.rentalApply2,
+                        Hospital__c:result.hospitalName,
+                        Strategic_dept__c:result.ocmCategoryName,
+                        Account__c:result.accountLab,
+                        Name:'*',
+                        demo_purpose2__c:'OPD璇曠敤',
+                        Person_In_Charge__c:res.lastName + res.firstName,
+                        applyUser__c:res.lastName + res.firstName
+                    });
+    
+                    this[NavigationMixin.Navigate]({
+                        type: 'standard__objectPage',
+                        attributes: {
+                            objectApiName: 'Consum_Apply__c',
+                            actionName: 'new'
+                        },
+                        state:{
+                            defaultFieldValues: this.defaultValues
+                        }
+                    })
+                }
+            })
+            .catch(error => {
+                console.log("error");
+                console.log(error);
+            })
+        })
+
+        .catch(error => {
+            console.log("error");
+            console.log(error);
+        }).finally(() => {
+            this.dispatchEvent(new CloseActionScreenEvent());
+        });        
+    }
+
+    showToast(message, type) {
+        const evt = new ShowToastEvent({
+            title: '',
+            message: message,
+            variant: type
+        });
+        this.dispatchEvent(evt);
+    }
+
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js-meta.xml b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js-meta.xml
new file mode 100644
index 0000000..622f243
--- /dev/null
+++ b/force-app/main/default/lwc/lexConsumApply_FromOPDPlan/lexConsumApply_FromOPDPlan.js-meta.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexEquipmentRentalApply_FromSA">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightning__AppPage</target>
+        <target>lightning__RecordPage</target>
+        <target>lightning__HomePage</target>
+        <target>lightning__RecordAction</target>
+        <!-- 灞忓箷娴侀厤缃� -->
+        <target>lightning__FlowScreen</target>
+    </targets>
+    <!-- 瀹氫箟鍙橀噺 -->
+    <targetConfigs>
+        <targetConfig targets="lightning__FlowScreen">
+            <!-- name js涓娇鐢ㄧ殑鍙橀噺锛屼粠灞忓箷娴佷腑鑾峰彇鍙傛暟  label 鍦ㄥ睆骞曟祦鐨勮LWC鐨勮缃腑鏄剧ず -->
+            <property name="recordId" type="String" label="recordId"/>
+        </targetConfig>
+    </targetConfigs>
+</LightningComponentBundle>
\ No newline at end of file

--
Gitblit v1.9.1