У тебя проблема не в vue, а в базовом html:
Оба
input
у тебя получают одинаковый
id
и оба
label
одинаковый
for
. Поведение браузера при клике на
label
в таком случае не определено, но на практике это значит, что клик идёт всегда первому
input
.
Соответственно надо сделать либо так:
<label class="form-check-label">
<input
type="checkbox"
role="switch"
v-model="methodId"
:value="method.id"
class="form-check-input"
/>
{{ method.name_method }}
</label>
Либо как-то так:
<input
:id="`input-${method.id}`"
type="checkbox" role="switch"
v-model="methodId"
:value="method.id"
class="form-check-input"
/>
<label :for="`input-${method.id}`" class="form-check-label">
{{ method.name_method }}
</label>