ansi_up---实现后端实时日志(带颜色)前端展示

1.需求:

项目是一个管理系统,当执行安装任务时,需要把后端安装过程中的日志推送到前端,前端在页面上展示实时进度,并且与终端显示的颜色保持一致。
用websocket或者前端设置定时器的方式,定时去获取后端的json数据比较简单,比较纠结的是怎么显示颜色,方便用户直观看到安装过程中的进度,报错等信息。

后端拿到的json数据:

ansi_up---实现后端实时日志(带颜色)前端展示_第1张图片

可以看到ansi 的颜色代码就好像乱码一样,如果直接展示到页面上,是不会转换ansi 的颜色代码,看到的就类似一个普通的txt文本,用户没法直观看到想要的信息。

2.解决

对ansi 的颜色代码进行转化,输出在页面上,需要用到的插件:ansi_up

项目地址:[ansi_up](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);   //调用ansi_to_html()方法,txt就是从后端拿到的json数据

var statusLog= document.getElementById("statusLog"); //statusLog 即是页面需要展示内容的div

statusLog.innerHTML = html;

3.效果

ansi_up---实现后端实时日志(带颜色)前端展示_第2张图片

你可能感兴趣的:(vue)