add ansi-to-html dependence, show task log ansi with colors

This commit is contained in:
van
2019-11-06 12:25:29 +08:00
parent df10a0da6b
commit a237a0f144
4 changed files with 21 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="log-item">
<div class="line-no">{{index}}</div>
<div class="line-content">{{data}}</div>
<div class="line-content" ><span v-if="isAnsi" v-html="data">{{data}}</span><span v-else="">{{data}}</span></div>
</div>
</template>
@@ -16,11 +16,16 @@ export default {
data: {
type: String,
default: ''
},
isAnsi: {
type: Boolean,
default: false
}
}
}
</script>
<style scoped>
.log-item {
display: table;

View File

@@ -13,7 +13,9 @@
<script>
import LogItem from './LogItem'
import VirtualList from 'vue-virtual-scroll-list'
import Convert from 'ansi-to-html'
import hasAnsi from 'has-ansi'
const convert = new Convert();
export default {
name: 'LogView',
components: {
@@ -44,12 +46,14 @@ export default {
methods: {
getItemProps (index) {
const logItem = this.logData[index]
const isAnsi = hasAnsi(logItem.data)
return {
// <item/> will render with itemProps.
// https://vuejs.org/v2/guide/render-function.html#createElement-Arguments
props: {
index: logItem.index,
data: logItem.data
data: isAnsi ? convert.toHtml(logItem.data) : logItem.data,
isAnsi,
}
}
}