quill 富文本编辑器 @提及

使用插件quill-mention,实现在quill 富文本编辑器使用@或#提及用户。

1. 安装

npm install quill-mention --save

2. 官方给的示例quill-mention

import "quill-mention";const atValues = [{ id: 1, value: "Fredrik Sundqvist" },{ id: 2, value: "Patrik Sjölin" }
];
const hashValues = [{ id: 3, value: "Fredrik Sundqvist 2" },{ id: 4, value: "Patrik Sjölin 2" }
];
const quill = new Quill("#editor", {modules: {mention: {allowedChars: /^[A-Za-z0-9_]*$/,mentionDenotationChars: ["@", "#"],source: function(searchTerm, renderList, mentionChar) {let values;if (mentionChar === "@") {values = atValues;} else {values = hashValues;}if (searchTerm.length === 0) {renderList(values, searchTerm);} else {const matches = [];for (let i = 0; i < values.length; i++)if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase()))matches.push(values[i]);renderList(matches, searchTerm);}}}}
});

3. 在vue2中使用的示例,已省去无关代码。(示例来自自行封装的Quill.vue通用组件)

<template><quill-editor>...</quill-editor>
</template><script>
import { quillEditor, Quill } from 'vue-quill-editor'
import "quill-mention"// 工具栏配置
const toolbarOptions = [...];export default {name: 'Quill',components: { quillEditor },props: {// 提及的用户数据atValues: {typ: Object,default: ()=>[]},hashValues: {typ: Object,default: ()=>[]}},data() {return {editorOption: {modules: {mention: {allowedChars: /^[a-zA-Z0-9_]*$/,mentionDenotationChars: ["@", "#"],source: (searchTerm, renderList, mentionChar) => {let valuesif (mentionChar === "@") {values = this.atValues} else {values = this.hashValues}if (searchTerm.length === 0) {renderList(values, searchTerm);} else {const matches = []for (let i = 0; i < values.length; i++)if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase()))matches.push(values[i])renderList(matches, searchTerm)}},// 选中后触发onSelect: (item, insertItem) => {this.$emit('atUser', item.id)insertItem(item)}}}}}}}
</script><style lang="less" scoped></style>

4. 无论哪个示例,记得引入css样式。在源码的 dist/quill.mention.css

.ql-mention-list-container {width: 270px;border: 1px solid #f0f0f0;border-radius: 4px;background-color: #ffffff;box-shadow: 0 2px 12px 0 rgba(30, 30, 30, 0.08);z-index: 9001;overflow: auto;
}.ql-mention-loading {line-height: 44px;padding: 0 20px;vertical-align: middle;font-size: 16px;
}.ql-mention-list {list-style: none;margin: 0;padding: 0;overflow: hidden;
}.ql-mention-list-item {cursor: pointer;line-height: 44px;font-size: 16px;padding: 0 20px;vertical-align: middle;
}.ql-mention-list-item.disabled {cursor: auto;
}.ql-mention-list-item.selected {background-color: #d3e1eb;text-decoration: none;
}.mention {height: 24px;width: 65px;border-radius: 6px;background-color: #d3e1eb;padding: 3px 0;margin-right: 2px;user-select: all;
}.mention > span {margin: 0 3px;
}

5. 效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做嵌入式的门槛高吗,要996吗?

好像但凡编程序的&#xff0c;都有被称为IT工程师的可能&#xff0c;嵌入式&#xff08;软件&#xff09;自然而然在大家的眼中也是IT的范畴。作为IT届的标志性规则&#xff0c;996的确是基本每个互联网软件公司的标配。但是从我经历的几家嵌入式软件公司来看加班是必须有的&am…

【前端 | CSS】5种经典布局

页面布局是样式开发的第一步&#xff0c;也是 CSS 最重要的功能之一。 常用的页面布局&#xff0c;其实就那么几个。下面我会介绍5个经典布局&#xff0c;只要掌握了它们&#xff0c;就能应对绝大多数常规页面。 这几个布局都是自适应的&#xff0c;自动适配桌面设备和移动设备…

智慧防灾:数字孪生技术的应用

最近的“杜苏芮”“卡努”有没有对大家产生影响呢&#xff1f; 频繁发生的台风和其他自然灾害引起了人们对于灾害预防和应对的高度关注。在这种背景下&#xff0c;数字孪生作为一项前沿技术&#xff0c;为灾害预防领域提供了全新的解决方案。本文就带大家了解一下数字孪生技术…

数据要素市场之破四化建四化,拆墙又砌墙

摘要&#xff1a;8月8日&#xff0c;首届贵州科技节“2023数据要素流通关键技术论坛”在贵阳举行。此次论坛由贵州省科学技术协会指导&#xff0c;贵州省计算机学会主办&#xff0c;中国计算机学会贵阳会员活动中心、贵州轻工职业技术学院、贵州电子科技职业学院、贵州省大数据…

网络_每日一学——网络的整体概述

今天我们将继续探讨网络相关的知识。网络是由许多设备互相连接而成的&#xff0c;可以传输数据的系统。通过网络&#xff0c;我们可以远程访问他人的计算机、浏览网页、发送电子邮件等。网络是信息时代中不可或缺的一部分。 在网络中&#xff0c;每个设备都有一个唯一的标识符…

redis Hash类型命令

Redis中的Hash类型有多个常用命令可用于对Hash键进行操作。以下是一些常见的Redis Hash类型命令&#xff1a; HSET&#xff1a;设置Hash字段的值。 它将指定字段与相应的值关联起来&#xff0c;如果字段已经存在&#xff0c;则更新其值&#xff0c;如果字段不存在&#xff0c…

go 不写结构体 动态解析 json,类似于 python 解析 json 为 dict格式

遇到一个问题&#xff0c;需要用 go 请求 api&#xff0c;再返给前端&#xff0c;写结构体有些麻烦&#xff0c;前端可以解析 json 在 Go 语言中&#xff0c;没有像 Python 中的字典&#xff08;dict&#xff09;那样的动态类型来自动解析 JSON 数据。Go 是一种静态类型语言&a…

SSM——环境搭建、产品操作、订单操作

SSM 环境搭建与产品操作 1. 环境准备 1.1 数据库与表结构 1.1.1 创建用户与授权 数据库我们使用 Oracle Oracle 为每个项目创建单独 user &#xff0c; oracle 数据表存放在表空间下&#xff0c;每个用户有独立表空间 创建用户及密码 语法 [ 创建用户 ] &#xff1a; crea…

翻出了我当时学习的笔记来了html

php&#xff1a;高级语言 web应用程序 万维网 浏览器中查看 apache&#xff1a;服务器 mysql&#xff1a;数据库 html 标签 css&#xff1a;层叠样式表 javascript&#xff1a;客户端脚本 js jquery mysql数据库基础 php语法基础 面向对象&#xff08;物件&#xff09; smar…

【tool】ubuntu开机发送IP到QQ邮箱

前言&#xff1a; 因为粗心大意&#xff0c;每次连接服务器都得查看一下ip&#xff0c;固定ip也有不好用的时候呀&#xff0c;所以每次开机都给我发一个吧 代码&#xff1a; # 发送多种类型的邮件 import smtplib from email.mime.multipart import MIMEMultipart from emai…

Python爬虫遇到重定向问题解决办法汇总

在进行Python爬虫任务时&#xff0c;遇到重定向问题是常见的问题之一。重定向是指在发送请求时&#xff0c;服务器会返回一个新的URL&#xff0c;将请求重新定向到该URL。为了帮助您解决这个问题&#xff0c;本文将提供一些实用的解决办法&#xff0c;并给出相关的代码示例&…

leetcode做题笔记53

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 思路一&#xff1a;前缀和 int maxSubArray(int* nums, int numsSize){int sum0,ans0,…

如何设置 Eclipse Git 插件中的默认作者和提交者

1、git提交代码时默认带出Windows的系统用户 2、Window->Preferences->Team->Configuration->Add Entry 3、输入键值对&#xff08;user.name要设置的值&#xff09;&#xff08;user.email要设置的值&#xff09;->应用保存 4、应用后&#xff0c;再次提交代码…

【新】通达OA前台反序列化漏洞分析

0x01 前言 注&#xff1a;本文仅以安全研究为目的&#xff0c;分享对该漏洞的挖掘过程&#xff0c;文中涉及的所有漏洞均已报送给国家单位&#xff0c;请勿用做非法用途。 通达OA作为历史上出现漏洞较多的OA&#xff0c;在经过多轮的迭代之后已经很少前台的RCE漏洞了。一般来说…

Leetcode-每日一题【剑指 Offer 16. 数值的整数次方】

题目 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;xn&#xff09;。不得使用库函数&#xff0c;同时不需要考虑大数问题。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10输出&#xff1a;1024.00000 示例 2&#xff1a; 输入&#…

Go语言进阶

个人笔记&#xff0c;大量摘自Go语言高级编程、Go|Dave Cheney等 更新 go get -u all 在非go目录运行go install golang.org/x/tools/goplslatest更新go tools&#xff1a;在go目录运行go get -u golang.org/x/tools/...&#xff0c;会更新bin目录下的应用&#xff1b; 运行…

解决 Android Studio 的 Gradle 面板上只有关于测试的 task 的问题

文章目录 问题描述解决办法 笔者出问题时的运行环境&#xff1a; Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17 问题描述 笔者最近发现一个奇怪的事情。笔者的 Android Studio 的 Gradle 面板上居然除了用于测试的 task 之外&#xff0c;其它什…

【BASH】回顾与知识点梳理(十八)

【BASH】回顾与知识点梳理 十八 十八. 条件判断式18.1 利用 test 指令的测试功能文件类型判断文件权限侦测两个文件之间的比较两个整数之间的判定判定字符串的数据多重条件判定 18.2 利用判断符号 [ ]18.3 Shell script 的默认参数($0, $1...)shift&#xff1a;造成参数变量号码…

从计算到人类知识:ChatGPT与智能演化

引 言 智能是自然界演化出来的结果&#xff0c;而人工智能则是人类创造的产物。随着人工智能的不断进步&#xff0c;尤其是近期ChatGPT的开放&#xff0c;我们发现人工智能的智能水平似乎已经达到了非常高的水平。然而&#xff0c;对于自然界中生物来说很简单的行为&#xff0…

浅谈JVM中的即时编译器(Just-In-Time compiler, JIT)

Java虚拟机&#xff08;JVM&#xff09;中的即时编译器&#xff08;Just-In-Time compiler, JIT&#xff09;是一个非常重要的组件&#xff0c;它负责将字节码转换为本地机器代码。在不使用JIT的情况下&#xff0c;JVM通过解释字节码来执行程序&#xff0c;这意味着它会为每个字…