一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - Vue 解決在element中使用$notify在提示信息中換行問題

Vue 解決在element中使用$notify在提示信息中換行問題

2021-11-14 15:54No Silver Bullet JavaScript

這篇文章主要介紹了Vue 解決在element中使用$notify在提示信息中換行問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在項目開發過程中,遇到如下用戶體驗提升需求:需要實現錯誤提示時根據后臺返回錯誤列表信息,換行展示。

實現方式如下:

通過F12元素查看,在對應的樣式中加入white-space:pre-wrap,該樣式的主要作用是識別字符串中的換行符" ",故需要在待展示的信息字符串中加入相應的換行標識符。

在$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在提示信息中換行問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://shq5785.blog.csdn.net/article/details/105164079

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩中文字幕一区二区高清 | 欧美综合精品一区二区三区 | 日本ssswww大学生 | 亚洲国产剧情中文视频在线 | 亚洲激情在线 | 非洲一级毛片又粗又长aaaa | 免费看又黄又爽又猛的视频软件- | 麻豆视频入口 | 欧美精品亚洲精品日韩专区va | 热99re久久精品国产首页 | 国产精品视频免费看 | 国产精品成人免费福利 | 福利视频一区二区思瑞 | 国产自拍视频网站 | 美女脱一净二净不带胸罩 | 天美传媒影视在线免费观看 | 亚洲精品久久久久久婷婷 | 2021最新国产成人精品免费 | 国产-第1页-草草影院 | 国产成人久久精品区一区二区 | 香蕉tv亚洲专区在线观看 | 农村脱精光一级 | caoporn人人 | www.片| 884hutv四虎永久7777 | 亚洲欧洲日产国码天堂 | 9420高清完整版在线观看国语 | 国产成人一区二区三区在线视频 | 色综合综合色 | 成人影院观看 | 精品久久日日躁夜夜躁AV | 成人1234| 暖暖在线精品日本中文 | 欧美一级片观看 | 超碰成人在线播放 | 国产高清露脸学生在线观看 | 日本高清视频在线观看 | 冰山美人调教耻辱h | 99ri在线精品视频 | 日本javhd | 免费在线观看网址入口 |