Usage Of lightning:path
In this post, I am going to explain how to use lightning:path component. A lightning:path component displays the progress of a process, which is based on the picklist field that’s specified by Path Settings in Setup. The path is rendered as a horizontal bar with a chevron for each picklist item. The key fields and guidance for success are displayed below the path. In this example, I customized the opportunity path. Based on the user selection on the path, opportunity record stage will be updated.
Apex Class
public class OpportunityStageUpdate { @AuraEnabled public static void updateStage(String stageName , String recordId){ Opportunity opp = [Select Id ,StageName from Opportunity where Id=:recordId] ; opp.StageName =stageName ; update opp ; } }
Lightning Component
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId" controller="OpportunityStageUpdate"> <aura:attribute name="variant" type="String" default="non-linear"/> <aura:attribute name="hideUpdateButton" type="Boolean" default="true"/> <lightning:path aura:id="path" recordId="{!v.recordId}" variant="{!v.variant}" hideUpdateButton="{!v.hideUpdateButton}" onselect="{!c.handleSelect}" /> </aura:component>
({ handleSelect : function (component, event, helper) { var stepName = event.getParam("detail").value; console.log(stepName); console.log(component.get("v.recordId")); var action = component.get("c.updateStage"); action.setParams({stageName:stepName , recordId : component.get("v.recordId")}); action.setCallback(this, function(response) { var state = response.getState(); if (state === "SUCCESS") { var toastEvent = $A.get("e.force:showToast"); if (state === 'SUCCESS'){ toastEvent.setParams({ "title": "Success!", "message": " Status is Update Succesfully !." }); } toastEvent.fire(); $A.get('e.force:refreshView').fire(); } }); $A.enqueueAction(action); } })