激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色99999| 国产精品久久久久无码av | 欧美激情视频一区二区免费 | 国产一区二区亚洲 | 久久精品视频日本 | www.48xx.com| 毛片网站视频 | 午夜视频在线免费 | 欧美一级淫片免费视频1 | 免费一级欧美 | 亚洲国产精品一 | 久久久久久片 | 久久在线免费视频 | 九九精品在线观看 | 久久免费视频8 | 国产精品a一 | 成年人在线视频观看 | 精品一区二区三区在线观看视频 | 亚洲综合无码一区二区 | 密室逃脱第一季免费观看完整在线 | 欧美电影在线观看 | 免费观看黄色影片 | xxxx18韩国护士hd老师 | 欧美雌雄另类xxxxx | 久久99国产精品二区护士 | 免费看污视频在线观看 | 13一14毛片免费看 | 免费91在线 | 色蜜桃av| 国产免费久久久久 | 欧美扩阴视频 | 91羞羞 | 欧美激情第一区 | 国产一区二区三区四区五区精品 | 中文字幕在线看第二 | 大西瓜永久免费av在线 | 国产精品久久久久国产精品三级 | 成人免费在线观看视频 | 免费a级片视频 | 经典三级av在线 | 啪啪激情 |