<div id="app">
<b-table striped hover :items="items">
<template v-slot:cell(btnText)="data">
<b-button
size="sm"
@click="putNewValue(data.item)"
class="mr-2"
>
{{data.item.btnText}}
</b-button>
</template>
</b-table>
</div>
class Task {
constructor(context) {
Object.assign(this, context);
this.btnText = "Исправить";
}
fix() {
this.btnText = "Обновление...";
setTimeout(() => {
this.btnText = "Исправить";
}, 2000);
}
}
var app = new Vue({
el: "#app",
data() {
return {
items: [
new Task({ age: 40, first_name: "Dickerson", last_name: "Macdonald"}),
new Task({ age: 21, first_name: "Larsen", last_name: "Shaw" }),
new Task({ age: 89, first_name: "Geneva", last_name: "Wilson" }),
new Task({ age: 38, first_name: "Jami", last_name: "Carney" })
],
modalShow: false
};
},
methods: {
putNewValue(task) {
return task.fix()
}
}
});
Vue.use(BootstrapVue);
This Pen doesn't use any external CSS resources.