[vue2]简易点击编辑文字区域

效果(放在ant-design的table里了):

调用:
text是显示的文本
onChange回调函数接受的val是更改后的值

<EditableCell
   text={text}
   onChange={val => this.onCellChange(record, val)}
 />
export default {
  template: `
    <div class='editable-cell'>
    <div v-if='editable' class='editable-cell-input-wrapper'>
      <a-input :value='value' @change='handleChange' @pressEnter='check' @blur='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>
  `,
  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;
      console.log('change ok');
      console.log(this.value);
      this.$emit('change', this.value);
    },
    edit() {
      this.editable = true;
    }
  }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值