Думаю, лучше следить за выбранным id. вы можете отредактировать свои данные, чтобы получить выбранный идентификатор, например:
data() {
return {
expenseButton: [],
chosenExpenseId: null
};
}
вместо этого ваш ввод шоу получает индекс:
methods: {
showInput(index) {
this.chosenExpenseId = index;
// if want to make the button to hide input once clicked back
// this.chosenExpenseId = this.chosenExpenseId !== index ? index : null;
}
}
в вашем шаблоне вы передаете индекс и проверяете условие отображения ввода как :
<input type="submit" @click="showInput(index)" :value="expense.expensesKey" />
<input v-show="index === chosenExpenseId" v-model.number="expense.subExpense" type="number" />