当前位置: 首页 > news >正文

Element ui input组件类型为 textarea 时没有 清空按钮

去github上看 element-ui的 issues,发现2020年就有这个 pr,但是我的这个版本(2.15.14)好像是没有,秉承着不行就自己加的原则,自己写了一个,代码如下:

<template>
  <span class="text-input">
    <el-input
      v-bind="$attrs"
      v-model="modelValue"
      type="textarea"
      @blur="onBlur()"
      @focus="onFocus()"
      v-on="$listeners"
    />
    <span v-if="clearable && showClearIcon && modelValue" class="clear-area">
      <i
        class="el-icon-circle-close clear-button"
        @click="handleClear"
        @mousedown.prevent
      ></i>
    </span>
  </span>
</template>
<script>
export default {
  name: "TextArea",
  model: {
    value: "value",
    event: "change",
  },
  props: {
    value: {
      type: [String, Number],
      default: "",
    },
    clearable: {
      type: Boolean,
      default: true,
    },
  },
  data() {
    return {
      modelValue: "",
      showClearIcon: false,
    };
  },
  created() {
    this.modelValue = this.value;
  },
  watch: {
    modelValue(val) {
      this.$emit("change", val);
    },
  },
  methods: {
    onBlur() {
      this.showClearIcon = false;
    },
    onFocus() {
      this.showClearIcon = true;
    },
    handleClear() {
      this.modelValue = "";
      this.$emit("change", "");
    },
  },
};
</script>

<style lang="scss" scoped>
.text-input {
  display: inline-block;
  position: relative;
  box-sizing: border-box;
  .clear-area {
    position: absolute;
    border-radius: 5px;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 2;
    width: 25px;
    display: flex;
    align-items: center;
  }
  .clear-button {
    border: none;
    cursor: pointer;
    color: #ccc;
  }

  .clear-button:hover {
    color: #878d99;
  }
}

::v-deep .el-textarea__inner {
  padding-right: 30px;
}
</style>

相关文章:

  • [网络_1] 因特网 | 三种交换 | 拥塞 | 差错 | 流量控制
  • Nordic 新一代无线 SoC nRF54L系列介绍
  • Tiny Lexer 一个极简的C语言词法分析器
  • 回溯(子集型):分割回文串
  • 如何在 Windows 上安装与配置 Tomcat
  • 基于PX4和Ardupilot固件下自定义MAVLink消息测试(QGroundControl和Mission Planner)
  • 76. pinctrl和gpio子系统试验
  • 【Easylive】HikariCP 介绍
  • 14:00开始面试,14:08就出来了,问的问题有点变态。。。
  • YOLO霸主地位不保?开源 SOTA 目标检测rf-detr 测评
  • UR机械臂sim2real推荐包
  • CUDA专题8—CUDA L2缓存完全指南:从持久化策略到性能优化实战
  • 代码随想录Day29
  • 学以致用,基于OpenCV的公摊面积估算程序
  • 探秘DeepSeek:开源AI领域的创新先锋
  • 从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.1.3分布式数据加载与并行处理(PyTorch DataLoader优化)
  • 让古籍“活”起来!PDF Craft如何用AI还原电子书灵魂?
  • Qt5.14.2+Cmake使用mingw64位编译opencv4.5成功图文教程
  • 基于python开发的邮箱合并群发工具
  • 5分钟快速手搓mcp发送邮件的server接入到cherrystudio
  • 中国人才网登录入口/合肥全网优化
  • 南京建设网站制作/互联网营销师怎么报名
  • 制作网站首先做的工作/如何找到网络公关公司
  • 做网站业务员应该了解什么/房产网站建设
  • 上传到网站根目录/网站优化哪家好
  • 淘宝联盟里的网站推广怎么做/免费网站推广软件哪个好