<template> <div class="editable-cell"> <div v-if="editable" class="editable-cell-input-wrapper" > <a-input :value="value" @change="handleChange" @pressEnter="check" /><a-icon type="check" class="editable-cell-icon-check" @click="check" /> </div> <div v-else class="editable-cell-text-wrapper" > {{ value || ' ' }} <a-icon type="edit" class="editable-cell-icon" @click="edit" /> </div> </div> </template> <script> export default { props: { text: String, }, data () { return { value: this.text, editable: false, }; }, methods: { handleChange (e) { const value = e.target.value; this.value = value; }, check () { this.editable = false; this.$emit('change', this.value); }, edit () { this.editable = true; }, }, }; </script>