How to add a menu page for options in wordpress for user that has the role of vendor?

The third argument to add_menu_page() is $capability.

add_menu_page( 
  $page_title, 
  $menu_title, 
  $capability, 
  $menu_slug, 
  $function, 
  $icon_url, 
  $position 
);

That governs who can see the page. You’ve registered yours as “administrator”, which is a user role. Presumably your vendors are not of that role. To fix this, you will need to change that argument to a capability (preferably not a role) that your vendors have. You can create custom capabilities for this, which is probably what I’d do.