vue實(shí)現(xiàn)前端展示后端實(shí)時(shí)日志帶顏色示例詳解
vue實(shí)現(xiàn)前端展示后端帶顏色的日志
需求
通過loki獲取項(xiàng)目產(chǎn)生的日志,并且在前端顯示出來,一開始在沒有經(jīng)過處理的數(shù)據(jù)會(huì)顯示一些亂碼,并沒有將字符轉(zhuǎn)換
經(jīng)過一番查詢后,發(fā)現(xiàn)可以使用ansi_up來對(duì)日志進(jìn)行操作顏色代碼進(jìn)行轉(zhuǎn)化。
操作
ansi_up
能夠裝換顏色代碼
GitHub地址 https://github.com/drudru/ansi_up
安裝
npm install ansi_up
引入
import {default as AnsiUp} from 'ansi_up';
使用
后端采用loki收集日志
this.logs = res.data.result[0].values
var ansi_up = new AnsiUp()
for (const i in res.data.result[0].values) {
this.logs[i][1] = ansi_up.ansi_to_html(res.data.result[0].values[i][1])
}
渲染
<div v-for="(log, index) in logs" :key="index"> <div v-html="log[1]" style="margin-bottom: 5px; font-size: 16px"></div> </div>
顯示

采用innerHTML例子
需求:
項(xiàng)目是一個(gè)管理系統(tǒng),當(dāng)執(zhí)行安裝任務(wù)時(shí),需要把后端安裝過程中的日志推送到前端,前端在頁面上展示實(shí)時(shí)進(jìn)度,并且與終端顯示的顏色保持一致。
用websocket或者前端設(shè)置定時(shí)器的方式,定時(shí)去獲取后端的json數(shù)據(jù)比較簡單,比較糾結(jié)的是怎么顯示顏色,方便用戶直觀看到安裝過程中的進(jìn)度,報(bào)錯(cuò)等信息。
后端拿到的json數(shù)據(jù):
可以看到ansi 的顏色代碼就好像亂碼一樣,如果直接展示到頁面上,是不會(huì)轉(zhuǎn)換ansi 的顏色代碼,看到的就類似一個(gè)普通的txt文本,用戶沒法直觀看到想要的信息。
解決
對(duì)ansi 的顏色代碼進(jìn)行轉(zhuǎn)化,輸出在頁面上,需要用到的插件:ansi_up
項(xiàng)目地址:https://github.com/drudru/ansi_up
2.1 安裝
$ npm install ansi_up
2.2 引入
import {default as AnsiUp} from 'ansi_up';
2.3 使用
var ansi_up = new AnsiUp;
var html = ansi_up.ansi_to_html(txt); //調(diào)用ansi_to_html()方法,txt就是從后端拿到的json數(shù)據(jù)
var statusLog= document.getElementById("statusLog"); //statusLog 即是頁面需要展示內(nèi)容的div
statusLog.innerHTML = html;
效果

以上就是vue實(shí)現(xiàn)前端展示后端實(shí)時(shí)日志帶顏色示例詳解的詳細(xì)內(nèi)容,更多關(guān)于vue前端展示后端日志帶顏色的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決vscode?Better?Comments插件在vue文件中不顯示相對(duì)應(yīng)的顏色的問題
最近使用了Better?Comments這款插件,發(fā)現(xiàn)在ts文件中可以顯示對(duì)應(yīng)的顏色,但在vue文件中并不顯示對(duì)應(yīng)顏色?,下面小編給大家分享解決方法,感興趣的朋友跟隨小編一起看看吧2022-09-09
vue如何移動(dòng)到指定位置(scrollIntoView)親測(cè)避坑
這篇文章主要介紹了vue如何移動(dòng)到指定位置(scrollIntoView)親測(cè)避坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
vue 驗(yàn)證碼界面實(shí)現(xiàn)點(diǎn)擊后標(biāo)灰并設(shè)置div按鈕不可點(diǎn)擊狀態(tài)
今天小編就為大家分享一篇vue 驗(yàn)證碼界面實(shí)現(xiàn)點(diǎn)擊后標(biāo)灰并設(shè)置div按鈕不可點(diǎn)擊狀態(tài),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue中promise的使用及異步請(qǐng)求數(shù)據(jù)的方法
這篇文章主要介紹了vue中promise的使用及異步請(qǐng)求數(shù)據(jù)的方法,文章給大家較詳細(xì)的介紹了遇到的問題及解決方法,需要的朋友可以參考下2018-11-11
vue-cropper組件實(shí)現(xiàn)圖片切割上傳
這篇文章主要為大家詳細(xì)介紹了vue-cropper組件實(shí)現(xiàn)圖片切割上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
vue實(shí)現(xiàn)pdf文件發(fā)送到郵箱功能的示例代碼
這篇文章主要介紹了vue實(shí)現(xiàn)pdf文件發(fā)送到郵箱功能,實(shí)現(xiàn)代碼包括對(duì)郵箱格式內(nèi)容是否為空的驗(yàn)證方法,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
vue?contextmenujs鼠標(biāo)右鍵菜單高度不夠顯示不全的問題及解決方法
這篇文章主要介紹了使用vue-contextmenujs鼠標(biāo)右鍵菜單時(shí),當(dāng)高度不夠時(shí)顯示不全的問題,大家需要注意本文給提供的解決方案雖然能夠解決現(xiàn)有問題,但是如果組件升級(jí)了,想要使用最新升級(jí)后的組件,還要再次修改代碼,需要的朋友可以參考下2022-07-07

