div contenteditable自定义组件

简介: div contenteditable自定义组件
<template>
  <div class="edit-border" @blur="divBlur" @input="divInput" :contenteditable="!disabled" ref="ableRef"></div>
</template>
<script setup>
import { ref, onMounted, nextTick } from 'vue'
/*
    <input-textarea
        v-model:inputValue="value"
        disabled
        maxlength="3000"
        @divInput="divInput"
        @divBlur="divInput"
    >
    </input-textarea>
*/
const props = defineProps({
  inputValue: { type: [Number, String], default: '' },
  disabled: { type: Boolean, default: false },
  maxlength: { type: [Number, String], default: 3000 }
})
const emits = defineEmits(['update:inputValue', 'divBlur', 'divInput'])
const ableRef = ref(null)
function divInput() {
  // 限制输入字数
  if (ableRef.value.innerText.length > props.maxlength) {
    ableRef.value.innerText = ableRef.value.innerText.slice(0, props.maxlength)
    // 调整光标
    ableRef.value.focus()
    document.execCommand('selectAll', false, null)
    document.getSelection().collapseToEnd()
  }
  emits('update:inputValue', ableRef.value.innerText)
  emits('divInput', ableRef.value.innerText)
}
function divBlur() {
  emits('divBlur', ableRef.value.innerText)
}
onMounted(() => {
  nextTick(() => {
    ableRef.value.innerText = props.inputValue
  })
})
</script>
<style lang="scss" scoped>
.edit-border {
  cursor: pointer;
  border: 1px solid #eee;
  padding: 5px;
  border-radius: 4px;
  margin: 10px;
  text-align: left;
}
</style>
目录
相关文章
|
机器学习/深度学习 人工智能 运维
输电线路缺陷检测国内外研究现状
随着我国电网系统的不断发展,基层巡检作业负担越来越重,运维成本越来越高,如何实现输电线路部件缺陷的智能化检测变得愈发重要。同时,由于国家《新一代人工智能发展规划》的提出和国家电网"数字新基建"的部署,人工智能应用于电力设备运维的相关技术得到了快速发展,对输电线路部件视觉缺陷准确检测成为亟待解决的关键问题之一。
2080 0
|
敏捷开发 数据可视化 持续交付
带你读《SAFe 4.5参考指南:面向精益企业的规模化敏捷框架 》之一:SAFe基础
SAFe精益–敏捷领导者是终身学习者和老师,他们通过理解和展示精益–敏捷思维、SAFe原则和系统思考,帮助团队构建更好的系统。本书提供了一套在企业的投资组合、价值流、项目群和团队各个层面的完整的工作指南,包括构成框架的各种角色、活动和工件,以及价值观、理念、原则和实践的各种基本要素,并针对SAFe 4.5和SAFe 4.6进行了更新。
|
分布式计算 物联网 虚拟化
《深度揭秘:软总线如何实现异构网络组网及其独特优势》
软总线技术是解决异构网络组网难题的关键力量,通过协议抽象与归一化、总线中枢智能解析、动态拓扑构建及设备虚拟化管理等方式,实现高效互联。它降低开发复杂度,提升设备兼容性与扩展性,保障数据传输的高效性与稳定性,为万物互联提供坚实支撑。在智能家居、智能工厂和交通等领域,软总线展现出强大优势,推动多设备协同与智能化发展,助力数字化转型与未来创新。
710 3
量化交易系列【5】:如何快速的将日K线数据转换为周K线及月K线数据,神奇的resample函数
量化交易系列【5】:如何快速的将日K线数据转换为周K线及月K线数据,神奇的resample函数
量化交易系列【5】:如何快速的将日K线数据转换为周K线及月K线数据,神奇的resample函数
|
人工智能 自然语言处理 机器人
如何搭建一个智能对话机器人?
如何搭建一个智能对话机器人?
636 1
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
2687 4
|
存储 自然语言处理 算法
【LangChain】如何本地部署基于chatGPT的实时文档和表格数据的助手,在自己的数据上构建chatGPT?
本文介绍了如何使用LangChain库和FAISS工具在本地部署一个基于chatGPT的实时文档和表格数据助手,详细阐述了项目原理、搭建步骤、环境配置、代码修改和运行流程,以及如何在自己的数据上构建和使用chatGPT。
557 1
|
数据可视化 图计算 Python
Matplotlib雷达图
【8月更文挑战第1天】Matplotlib是Python中最流行的数据可视化库之一,它提供了丰富的绘图功能,包括折线图、散点图、直方图等等。本文将介绍Matplotlib中的一种特殊图表类型——雷达图(也称为极坐标图),并通过代码实例演示如何创建和定制雷达图。
|
监控 数据安全/隐私保护 CDN
防止域名被攻击或盗刷产生突发高带宽,阿里云国际如何设置带宽上限值?
防止域名被攻击或盗刷产生突发高带宽,阿里云国际如何设置带宽上限值?
poi在指定位置插入图片并浮动
在使用poi操作docx模板文件时,poi直接插入图片是插入内嵌图片 这个图片是占位置的。
1394 0