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;中国计算机学会贵阳会员活动中心、贵州轻工职业技术学院、贵州电子科技职业学院、贵州省大数据…

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…

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

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

如何设置 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;其它什…

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

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

安全作业-Race竞争型漏洞、原型链污染

1.race漏洞一直卡在虚拟机安装上(待研究) 2.原型链污染 一、第一题js代码 const express require(express) var hbs require(hbs); var bodyParser require(body-parser); const md5 require(md5); var morganBody require(morgan-body); const app express(); var use…

MySQL:表的约束和基本查询

表的约束 表的约束——为了让插入的数据符合预期。 表的约束很多&#xff0c;这里主要介绍如下几个&#xff1a; null/not null,default, comment, zerofill&#xff0c;primary key&#xff0c;auto_increment&#xff0c;unique key 。 空属性 两个值&#xff1a;null&am…

尚硅谷大数据项目《在线教育之采集系统》笔记004

视频地址&#xff1a;尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P047 P048 P049 P050 P051 P052 P053 P054 P055 P056 P047 /opt/module/datax/job/base_province.json [atguigunode001 ~]$ hadoop fs -mkdir /base_province/2022-02-22 [atgu…

工厂方法模式-java实现

介绍 工厂方法模式&#xff0c;通过把工厂抽象为一个接口&#xff0c;这样当我们新增具体产品的时候&#xff0c;就只需要实现一个新的具体工厂类即可。一个具体工厂类&#xff0c;对应着一个产品。 请注意&#xff1a;在工厂方法模式中&#xff0c;一个具体工厂类只对应生产…

活动发布会邀请媒体6步走

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体参加活动发布会对信息的传播&#xff0c;企业品牌建设有诸多的好处&#xff0c;今天就与大家分享下邀请媒体参加活动报道的6个步骤&#xff1a; 1. 策划与准备&#xff1a; -明…

【Flutter】【packages】simple_animations 简单的实现动画

package&#xff1a;simple_animations 导入包到项目中去 可以实现简单的动画&#xff0c; 快速实现&#xff0c;不需要自己过多的设置 有多种样式可以实现[ ] 功能&#xff1a; 简单的用例&#xff1a;具体需要详细可以去 pub 链接地址 1. PlayAnimationBuilder PlayAnima…

勘探开发人工智能应用:人工智能概述

0 提纲 机器学习、深度学习、计算机视觉等技术已在勘探开发、油气生产、炼油炼化、经营管理等重点环节进行应用与推广。请思考&#xff1a; 输入&#xff1a;数据是什么(数字、文本、图)&#xff1f;如何理解数据&#xff1f;如何清洗数据&#xff1f;(需要专业领域知识)输出&…