Vue 解决在element中使用$notify在提示信息中换行问题


Posted in Javascript onNovember 11, 2020

在项目开发过程中,遇到如下用户体验提升需求:需要实现错误提示时根据后台返回错误列表信息,换行展示。

实现方式如下:

通过F12元素查看,在对应的样式中加入white-space:pre-wrap,该样式的主要作用是识别字符串中的换行符"\n",故需要在待展示的信息字符串中加入相应的换行标识符。

在$notify消息提示中,作用于el-notification:

.el-notification {white-space:pre-wrap !important; }

有的童鞋可能试过样式white-space:pre,此时会出现的若提示信息内容较长时显示不齐全的问题。

即使使用自动换行样式(也无效):

/*设置内容超出后自动换行*/
word-wrap: break-word;
word-break: break-all;

具体区别可参加以下参数部分。

Vue 解决在element中使用$notify在提示信息中换行问题

Vue 解决在element中使用$notify在提示信息中换行问题

Vue 解决在element中使用$notify在提示信息中换行问题

补充知识:关于vue ts项目同时引入element-ui和ant-design,ts报错不能编译的解决方法。

vue ts版本同时引入ant和element不能打包。

Subsequent property declarations must have the same type. Property ‘$confirm' must be of type ‘(modalOptios: ModalOptions) => ModalConfirm', but here has type ‘ElMessageBoxShortcutMethod'.

Subsequent property declarations must have the same type. Property ‘$message' must be of type ‘Message', but here has type ‘ElMessage'.

通常vue项目只会用到一个ui库,但是往往会有一些特殊场景一个ui库不满足我们业务场景,我工作中使用到了ant-design-vue(全局引入)和element-ui(按需加载),同时项目是ts版本。

Vue 解决在element中使用$notify在提示信息中换行问题

elemt,ant ts报错

我搜索了很多的解决方案,都不符合,我发现它爆错的地方是两个的类型描述文件冲突了,这时候我把node_modules/element-ui/types/message-box.d.ts 和 node_modules/element-ui/types/message.d.ts 相关地方注释后再打包果然不报错了。

Vue 解决在element中使用$notify在提示信息中换行问题

Vue 解决在element中使用$notify在提示信息中换行问题

既然能通过注释的方式解决打包的问题,但是我们不能每次都去注释一次,这时候马上想到node的 fs包能帮我友好解决这个问题。

解决方案:

在项目根目录创建 config文件夹、os.js文件

Vue 解决在element中使用$notify在提示信息中换行问题

编写os.js文件,如下

/**
 * 这个文件在这是为了解决同时引入element-ui / ant-design ts 爆粗哦,
 * 解决版本把node_modules 相关文件注释了
 * */

let fs = require('fs')
let path = require('path')

let src1 = '../node_modules/element-ui/types/message.d.ts'
annotation(src1, '$message: ElMessage')
let src2 = '../node_modules/element-ui/types/message-box.d.ts'
annotation(src2, '$confirm: ElMessageBoxShortcutMethod')

function annotation(src, params) {
  fs.readFile(path.resolve(__dirname, src), 'utf8', function(err, files) {
    if (!err && files !== '') {
      let val = params
      let has = `// ${params}`
      let start = files.indexOf(val)
      let start2 = files.indexOf(has)
      if (start > -1 && start2 === -1) {
        var result = files.replace(val, has)
        fs.writeFile(
          path.resolve(__dirname, src),
          result,
          'utf8',
          function(err) {
            if (err) {
              console.log(err)
            }
          }
        )

        console.log(params + ' 注释成功!')
      } else {
        console.log('没有需要注释对或者已经注释了!')
      }
    } else {
      console.log(
        params + ' 没有需要注释对或者已经注释了或者注释文件失败!'
      )
    }
  })
}

原来的命令,我们只需要修改build部分

编写package.json运行命令,把我们编写的os.js加入到运行命令

"scripts": {
    "build": "node config/os.js&vue-cli-service build"
  },

现在运行npm run build

Vue 解决在element中使用$notify在提示信息中换行问题

大功告成!

以上这篇Vue 解决在element中使用$notify在提示信息中换行问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 表格操作(交替显示、拖动表格行、选择行等)
Jul 29 Javascript
JavaScript中的prototype使用说明
Apr 13 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
学好js,这些js函数概念一定要知道【推荐】
Jan 19 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
20个最常见的jQuery面试问题及答案
May 23 jQuery
浅谈node中的cluster集群
Jun 02 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
Jul 13 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
Apr 25 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 Javascript
vue 实现element-ui中的加载中状态
Nov 11 #Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 #Javascript
JS前端基于canvas给图片添加水印
Nov 11 #Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 #Javascript
使用Vant完成Dialog弹框案例
Nov 11 #Javascript
vue实现lodop打印功能的示例
Nov 11 #Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 #Javascript
You might like
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php微信开发之上传临时素材
2016/06/24 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
Javascript 继承实现例子
2009/08/12 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
详解Python中for循环的使用方法
2015/05/14 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
set在python里的含义和用法
2019/06/24 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
一道Delphi面试题
2016/10/28 面试题
军训口号
2014/06/13 职场文书
2015年中个人总结范文
2015/03/10 职场文书
销售人员管理制度
2015/08/06 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
Python Matplotlib绘制条形图的全过程
2021/10/24 Python