How to change the node background color and picture when click node?

dont know how to get the picture by node, and has changed background color as below on click node,
code as below
keyResultDiagram.nodes.each(function(n) {
console.log(n.data);

		if(n.data.status == stage ) {
			var shape = n.findObject("SHAPE");
			var GO = go.GraphObject.make;
			var color =  "#302e2f3d"; 
			if (shape) {

				shape.fill = GO(go.Brush, "Linear", {
					0 : color,
					1 : go.Brush.lightenBy(color,
							0.05),
					start : go.Spot.Left,
					end : go.Spot.Right
				});
			}
		}
	})
	keyResultViewModel.executeStage(false); 

if any advice for get picture by node or how to dynamic replace the picture?

how to replace the highlight picture

What is your node template? Does it include a Picture that has a GraphObject.name? If so, when you have a reference to a Node, you can call Panel.findObject on that node with that name to get a reference to the picture object. If it returns non-null, then you can set its Picture.source.

By the way, what you are doing for changing the Shape.fill looks correct, assuming that the shape is really the one that users see and that you want to modify. However it is very inefficient. Brushes can be shared by multiple GraphObjects, but they cannot be modified after they have been used. I recommend creating the Linear Brush once, outside of the loop. Or better, as the value of a global variable.