<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>