unknown
2023-08-23 dfff58b7cd897b824a129edba6b5cdae20bb1e5c
force-app/main/default/lwc/lexCreateQISFromAsset/lexCreateQISFromAsset.js
@@ -1,60 +1,219 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForlexCreateQISFromAssetButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
import {
   LightningElement,
   wire,
   api
} from 'lwc';
import {
   CurrentPageReference
} from "lightning/navigation";
import {
   CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/buttonAssetCtl.init';
import selecctRepairByFomatToday from '@salesforce/apex/buttonAssetCtl.selecctRepairByFomatToday';
import selecctQISReportrByFomatToday from '@salesforce/apex/buttonAssetCtl.selecctQISReportrByFomatToday';
import selectCASE from '@salesforce/apex/buttonAssetCtl.selectCASE';
import selectNullvalue from '@salesforce/apex/buttonAssetCtl.selectNullvalue';
import LightningConfirm from 'lightning/confirm';
import {
   NavigationMixin
} from 'lightning/navigation';
import {
   encodeDefaultFieldValues
} from 'lightning/pageReferenceUtils';
import {
   ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class lexCreateQISFromAsset extends LightningElement {
export default class lexCreateQISFromAsset extends NavigationMixin(LightningElement) {
   @api recordId;
   str;
   IsLoading = true;
   Old_Repair_Name;
   Id;
   day1;
   AssetMarkC;
   AssetOwnerC;
   InstallDate;
   PostingDateC;
   AssetDayC;
   SerialNumber;
   OrderNoC;
   ProductIDC;
   HospitalId;
   HospitalC;
   DepartmentClassId;
   DepartmentClassC;
   Name;
   AccountId;
   msg;
   Old_Repair_Name = '';
   Instration_date_consumable = null;
   Customer_asset_or_loaner = '';
   fomatToday;
   @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=>{
         console.log(result);
         if(result!=null){
            if (result.id!=null) {
               var boolday=confirm('请确认此件是否属于10天内重复报告,如果是,请使用原QIS里的复制功能重新提交。');
               if(!boolday){
                  return;
               }
            }
            if (result.repId!=null) {
               var boolday=confirm('请确认此件是否属于10天内重复报告,如果是,需按照原先的维修信息填写。');
               if(!boolday){
                  return;
               }
            }
   getStateParameters(currentPageReference) {
      if (currentPageReference) {
         const urlValue = currentPageReference.state.recordId;
         if (urlValue) {
            let str = `${urlValue}`;
            this.recordId = str;
         }
      }).catch(err=>{
         console.log("error:");
         console.log(err);
      }).finally(()=>{
      });
      }
   }
   connectedCallback() {
      init({
         recordId: this.recordId
      }).then(result => {
         console.log(result);
         if (result != null) {
            this.Id = result.Id;
            this.day1 = result.day1;
            this.AssetMarkC = result.AssetMarkC;
            this.AssetOwnerC = result.AssetOwnerC;
            this.InstallDate = result.InstallDate;
            this.PostingDateC = result.PostingDateC;
            this.AssetDayC = result.AssetDayC;
            this.SerialNumber = result.SerialNumber;
            this.OrderNoC = result.OrderNoC;
            this.ProductIDC = result.ProductIDC;
            this.HospitalId = result.HospitalId;
            this.HospitalC = result.HospitalC;
            this.DepartmentClassId = result.DepartmentClassId;
            this.DepartmentClassC = result.DepartmentClassC;
            this.Name = result.Name;
            this.AccountId = result.AccountId;
            this.CreateQISFromAsset();
         }
      }).catch(error => {
         console.log(error);
      })
   }
   // 新建授课/考核报告
   CreateQISFromAsset() {
      this.fomatToday = this.day1;
      selecctQISReportrByFomatToday({
         AssetId: this.Id,
         fomatToday: this.fomatToday
      }).then(records => {
         console.log(records);
         if (this.AssetMarkC == null || this.AssetMarkC == undefined) {
            this.ShowToastEvent('保有设备标记为空,请联系管理员补充。!', "error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
         }
         if (records.length >= 1) {
            this.handleConfirmClick01('请确认此件是否属于10天内重复报告,如果是,请使用原QIS里的复制功能重新提交。');
         } else {
            this.ss();
         }
      })
   }
   ss() {
      selecctRepairByFomatToday({
         AssetId: this.Id,
         fomatToday: this.fomatToday
      }).then(records2 => {
         if (this.AssetMarkC == '耗材') {
            selectCASE({
               AssetOwnerC: this.AssetOwnerC
            }).then(result => {
               console.log(result);
               this.Customer_asset_or_loaner = result;
            })
            selectNullvalue({
               InstallDate: this.InstallDate,
               PostingDateC: this.PostingDateC,
               AssetDayC: this.AssetDayC
            }).then(result => {
               console.log(result);
               this.Instration_date_consumable = result;
            })
         }
         if (records2.length >= 1) {
            this.Old_Repair_Name = records2[0].Name;
         }
         if (records2.length >= 1) {
            this.handleConfirmClick02('请确认此件是否属于10天内重复报告,如果是,需按照原先的维修信息填写。');
         } else {
            this.ll();
         }
      })
   }
   ll() {
      const url = encodeDefaultFieldValues({
         Name: "*",
         Hospital__c: this.HospitalId,
         Department_Class__c: this.DepartmentClassId,
         nonyushohin__c: this.Id,
         Generation_Source__c: "保有设备",
         Lots_No__c: this.SerialNumber,
         sell__c: this.Customer_asset_or_loaner,
         Instration_date_consumable__c: this.Instration_date_consumable,
         consumable__c: this.ProductIDC,
         contract_number_ET__c: this.OrderNoC,
         Hospital_Department__c: this.AccountId,
         Old_Repair_Name__c: this.Old_Repair_Name
      });
      this[NavigationMixin.Navigate]({
         type: 'standard__objectPage',
         attributes: {
            objectApiName: 'QIS_Report__c',
            actionName: 'new'
         },
         state: {
            nooverride: '1',
            defaultFieldValues: url
         }
      });
      this.dispatchEvent(new CloseActionScreenEvent());
   }
   async handleConfirmClick01(msg) {
      const result = await LightningConfirm.open({
         message: msg,
         variant: 'headerless',
         label: 'this is the aria-label value'
      });
      if (result) {
         this.ss();
      } else {
         this.dispatchEvent(new CloseActionScreenEvent());
      }
   }
   async handleConfirmClick02(msg) {
      const result = await LightningConfirm.open({
         message: msg,
         variant: 'headerless',
         label: 'this is the aria-label value'
      });
      if (result) {
         this.ll();
      } else {
         this.dispatchEvent(new CloseActionScreenEvent());
      }
   }
   ShowToastEvent(msg, type) {
      const event = new ShowToastEvent({
         title: '',
         message: msg,
         variant: type
      });
      this.dispatchEvent(event);
   }
   closeAction() {
      location.reload();
   }
}