KKbes
2023-04-14 f0584331cc6a7e0ff0a38d18b2b7463492f92f23
备品set详细  选择借出按钮
6个文件已添加
262 ■■■■■ 已修改文件
force-app/main/default/classes/SelectRentalButtonController.cls 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/SelectRentalButtonController.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/SelectRentalButtonController.cls
New file
@@ -0,0 +1,95 @@
global with sharing class SelectRentalButtonController {
    @AuraEnabled
    public static Equipment_Set_Detail__c  getEquipmentSetId(String recordId){
        Equipment_Set_Detail__c res=new Equipment_Set_Detail__c();
        try{
            res=[select  Equipment_Set__c,Select_rental__c from Equipment_Set_Detail__c where Id=: recordId];
        }
        catch(Exception e){
            System.debug(Logginglevel.info,'*******e'+e);
        }
        return res;
    }
   @AuraEnabled
   public static List<Equipment_Set_Detail__c>  getEquipmentSet(String esid){
    try{
         List<Equipment_Set_Detail__c>    res=[select Id,Name,Select_rental__c
          from Equipment_Set_Detail__c
           where Equipment_Set__c = : esid];
         return res;
    }
    catch(Exception e){
        System.debug(Logginglevel.info,'*******e'+e);
    }
    return null;
   }
   @AuraEnabled
   public static List<String>  updateEquipment(List<Equipment_Set_Detail__c> sqlResult){
    List<String> res=new List<String>();
    try{
        for(Equipment_Set_Detail__c equipMent :  sqlResult){
            update equipMent;
            res.add('success');
        }
    }
    catch(Exception e){
        System.debug(Logginglevel.info,'*******e'+e);
    }
    return res;
   }
   @AuraEnabled
   public static List<Equipment_Set_Detail__c> findIdArea(List<String> id){
    List<Equipment_Set_Detail__c> res = new  List<Equipment_Set_Detail__c>();
    try{
        res=[select Id,Select_rental__c from Equipment_Set_Detail__c where Id IN : id ];
    }
    catch (Exception e) {
        System.debug(Logginglevel.info,'*******e'+e);
    }
    return res;
   }
   @AuraEnabled
    public static String getSessionId(){
        return UserInfo.getSessionId();
    }
    @AuraEnabled
    public static List<String>  getRecords(){
        List<String> res= new List<String>();
        try{
        List<Equipment_Set_Detail__c>    obj = [select Id  from Equipment_Set_Detail__c where Select_rental__c=true];
            for(Equipment_Set_Detail__c equipMent : obj){
                res.add(equipMent.Id);
            }
        }
        catch(Exception e){
              System.debug(Logginglevel.info,'*******e'+e);
        }
        return res;
    }
}
force-app/main/default/classes/SelectRentalButtonController.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>51.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/lwc/lexSelectRental/lexSelectRental.css
New file
@@ -0,0 +1,11 @@
.lexSelectRentalHolder{
 position: relative;
 display: inline-block;
 width: 80px;
 height: 80px;
 text-align: center;
}
.container .uiContainerManager{
 display : none !important;
}
force-app/main/default/lwc/lexSelectRental/lexSelectRental.html
New file
@@ -0,0 +1,4 @@
<template>
<div class="lexSelectRentalHolder" if:true={IsLoding}>
<lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js
New file
@@ -0,0 +1,136 @@
import { LightningElement,api, track, wire } from 'lwc';
import getEquipmentSetId  from '@salesforce/apex/SelectRentalButtonController.getEquipmentSetId';
import getEquipmentSet  from '@salesforce/apex/SelectRentalButtonController.getEquipmentSet';
import updateEquipment  from '@salesforce/apex/SelectRentalButtonController.updateEquipment';
import getSessionId  from '@salesforce/apex/SelectRentalButtonController.getSessionId';
import getRecords  from '@salesforce/apex/SelectRentalButtonController.getRecords';
import findIdArea   from '@salesforce/apex/SelectRentalButtonController.findIdArea';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexSelectRental extends LightningElement {
    @api recordId;
    IsLoading;
    Equipment_Set_Detail__c;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            console.log(currentPageReference);
            console.log("进入获取page参数")
            const IdValue=currentPageReference.state.recordId;
            if(IdValue){
                let str=`${IdValue}`;
                this.recordId=str;
                console.log("recordId="+str);
            }
        }
    }
    connectedCallback(){
        getEquipmentSetId({recordId:this.recordId}).then(res=>{
            if(res!=null){
            this.IsLoading=false;
            console.log("res");
            console.log(res);
            console.log("进入初始化对象其他属性");
            this.Equipment_Set_Detail__c=res;
            console.log(this.Equipment_Set_Detail__c);
            console.log(this.Equipment_Set_Detail__c.Select_rental__c);
            this.SelectLending();
            }
            else{
                 let a="没进方法";
                 console.log(a);
            }
        }).catch(error =>{
            console.log("error");
            console.log(error.message);
        }).finally(()=>{
        });
    }
    async SelectLending(){
        try{
            this.dispatchEvent(new CloseActionScreenEvent());
            window.sforce = window.sforce || {};
            window.sforce.connection = window.sforce.connection || {};
            let a =await getSessionId();
            window.sforce.connection.sessionId =await getSessionId();
            console.log(a);
            let esid = this.Equipment_Set_Detail__c.Equipment_Set__c;
            console.log(esid);
            //选择借出是一个复选框,这里就是找复选框勾上的数据Id,不知道这个怎么接受从前端穿参数。
            //所以我直接查数据库
            let esdids =new Array();
            esdids=await getRecords();
            console.log(esdids);
            let hasError = false;
            //更新数据
            if (esdids.length > 0) {
                console.log('进入第一个if方法');
                let sqlResult = await getEquipmentSet({esid:esid});
                console.log(sqlResult);
                console.log('返回对象数组第一个'+sqlResult[0]);
                for (let i = 0; i < sqlResult.length; i++) {
                    let esd = sqlResult[i];
                    console.log(i);
                    esd.Select_rental__c = false;
                }
                let result = await updateEquipment({sqlResult : sqlResult});
                console.log(result);
                for (let i=0; i<result.length; i++) {
                    if (result[i]!="success") {
                        alert(result[i].errors.message);
                        hasError = true;
                        return;
                    }
                  }
                let EqObject = await findIdArea({id : esdids});
                console.log(EqObject);
                for (let i = 0; i < EqObject.length; i++) {
                    let esd = EqObject[i];
                    esd.Select_rental__c = true;
                }
                result = await updateEquipment({sqlResult : EqObject});
                console.log(result);
                for (let i=0; i<result.length; i++) {
                    if (result[i]!="success") {
                        alert(result[i].errors.message);
                        hasError = true;
                        return;
                    }
                }
            if (!hasError) {
                //window.top.location.reload;
                //这里好像top不存在
                window.location.reload();
            }
        }
        else {
            alert("请至少选择一个备品set明细。");
        }
    }
        catch(e){
            console.log(e);
            alert(e.message);
    }
    }
}
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexSelectRental">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>