launcher/ui/src/components/LogComponent.vue

76 lines
1.3 KiB
Vue
Raw Normal View History

2024-09-23 16:12:34 +08:00
<script setup>
2024-09-23 19:42:56 +08:00
import { darkTheme } from 'naive-ui'
import hljs from 'highlight.js/lib/core'
2024-09-23 19:42:56 +08:00
2024-09-23 16:12:34 +08:00
const log = inject('log')
const log_ele = inject('log_ele')
hljs.registerLanguage('naive-log', () => ({
contains: [
{
className: 'info',
begin: /\[信息\]/,
end: /$/
},
{
className: 'error',
begin: /\[错误\]/,
end: /$/
},
{
className: 'execute_command',
begin: /\[执行命令\]/,
end: /$/
},
{
className: 'command_out',
begin: /\[命令输出\]/,
end: /$/
}
]
}))
2024-09-23 16:12:34 +08:00
</script>
<template>
<n-config-provider :theme="darkTheme" class="provider" :hljs="hljs">
2024-09-23 20:40:46 +08:00
<n-card class="full" content-style="height: 100%">
<n-log :log="log" class="full selectable-log" ref="log_ele" language="naive-log" />
2024-09-23 19:42:56 +08:00
</n-card>
</n-config-provider>
2024-09-23 16:12:34 +08:00
</template>
2024-09-23 20:30:54 +08:00
<style scoped>
.provider {
flex-grow: 1;
overflow: hidden;
}
.full {
height: 100% !important;
box-sizing: border-box;
}
.selectable-log {
user-select: text;
}
2024-09-23 20:30:54 +08:00
</style>
2024-10-10 10:14:54 +08:00
<style>
pre {
word-break: break-all !important;
}
.n-code pre .hljs-info {
color: #33ff33;
}
.n-code pre .hljs-error {
color: #ff0000;
}
.n-code pre .hljs-execute_command {
color: #edaf1f;
}
.n-code pre .hljs-command_out {
color: #ffffff;
}
2024-10-10 10:14:54 +08:00
</style>