Error: [vuex] do not mutate vuex store state outside mutation handlers.
Ну да, как и должно быть. Вы же помещаете в массив, находящийся в хранилище, ссылку на объект, с которым работаете в компоненте с формой.
Добавляя объект в хранилище, создавайте копию:
this.$store.commit('vehicles/addVehicle', { ...this.vehicle });
// или
addVehicle: (state, payload) => state.vehicles.push({ ...payload }),
Или заменяйте оригинал. Добавляете в компонент метод, создающий объект с дефолтными значениями свойств:
methods: {
createNewVehicle: () => ({
name: '',
description: '',
rent: '',
type: 'custom',
}),
...
Применяете его при создании объекта с данными экземпляра компонента и после вызова мутации:
data() {
return {
vehicle: this.createNewVehicle(),
};
},
this.$store.commit('vehicles/addVehicle', this.vehicle);
this.vehicle = this.createNewVehicle();