feat: 增加异常错误信息显示

This commit is contained in:
zhanghao 2026-03-19 13:36:14 +08:00
parent 3227aef1af
commit 320d15f26a
4 changed files with 90 additions and 70 deletions

View File

@ -5,29 +5,32 @@
<JsonViewer :value="inputJsonData" copyable boxed sort theme="light" /> <JsonViewer :value="inputJsonData" copyable boxed sort theme="light" />
</template> </template>
<template #output> <template #output>
<JsonViewer <div v-if="nodeOperatingStatus != 'FAILED'">
v-if="props.properties.outputType === 'json'" <JsonViewer
:value="outputJsonData" v-if="props.properties.outputType === 'json'"
copyable :value="outputJsonData"
boxed copyable
sort boxed
theme="light" sort
/> theme="light"
<el-image />
v-if="props.properties.outputType === 'img'" <el-image
v-for="item in outputJsonData.imageUrl" v-if="props.properties.outputType === 'img'"
style="width: 60px; height: 60px" v-for="item in outputJsonData.imageUrl"
:src="item" style="width: 60px; height: 60px"
:preview-src-list="outputJsonData.imageUrl" :src="item"
:preview-teleported="true" :preview-src-list="outputJsonData.imageUrl"
show-progress :preview-teleported="true"
fit="fill" show-progress
/> fit="fill"
<IPlayer />
v-if="props.properties.outputType === 'video'" <IPlayer
v-for="item in outputJsonData.videoUrl" v-if="props.properties.outputType === 'video'"
:videoUrl="item" v-for="item in outputJsonData.videoUrl"
/> :videoUrl="item"
/>
</div>
<div v-else>{{ errorInfoData }}</div>
</template> </template>
</NodeState> </NodeState>
<NodeTitle <NodeTitle
@ -308,6 +311,7 @@ const setNodeName = (name) => {
const nodeOperatingStatus = ref("NORMAL"); const nodeOperatingStatus = ref("NORMAL");
const inputJsonData = ref({}); const inputJsonData = ref({});
const outputJsonData = ref({}); const outputJsonData = ref({});
const errorInfoData = ref('');
const visibleChange = (value, index, quote) => { const visibleChange = (value, index, quote) => {
if (value) { if (value) {
@ -425,6 +429,7 @@ onMounted(() => {
nodeOperatingStatus.value = data.status; nodeOperatingStatus.value = data.status;
let inputData = {}; let inputData = {};
let output = {}; let output = {};
errorInfoData.value = data?.message || ''
try { try {
inputData = JSON.parse(data.paramsIn) || {}; inputData = JSON.parse(data.paramsIn) || {};
output = JSON.parse(data.paramsOut) || {}; output = JSON.parse(data.paramsOut) || {};

View File

@ -5,29 +5,32 @@
<JsonViewer :value="inputJsonData" copyable boxed sort theme="light" /> <JsonViewer :value="inputJsonData" copyable boxed sort theme="light" />
</template> </template>
<template #output> <template #output>
<JsonViewer <div v-if="nodeOperatingStatus != 'FAILED'">
v-if="props.properties.outputType === 'json'" <JsonViewer
:value="outputJsonData" v-if="props.properties.outputType === 'json'"
copyable :value="outputJsonData"
boxed copyable
sort boxed
theme="light" sort
/> theme="light"
<el-image />
v-if="props.properties.outputType === 'img'" <el-image
v-for="item in outputJsonData.imageUrl" v-if="props.properties.outputType === 'img'"
style="width: 60px; height: 60px" v-for="item in outputJsonData.imageUrl"
:src="item" style="width: 60px; height: 60px"
:preview-src-list="outputJsonData.imageUrl" :src="item"
:preview-teleported="true" :preview-src-list="outputJsonData.imageUrl"
show-progress :preview-teleported="true"
fit="fill" show-progress
/> fit="fill"
<IPlayer />
v-if="props.properties.outputType === 'video'" <IPlayer
v-for="item in outputJsonData.videoUrl" v-if="props.properties.outputType === 'video'"
:videoUrl="item" v-for="item in outputJsonData.videoUrl"
/> :videoUrl="item"
/>
</div>
<div v-else>{{ errorInfoData }}</div>
</template> </template>
</NodeState> </NodeState>
<NodeTitle <NodeTitle
@ -328,6 +331,7 @@ const setNodeName = (name) => {
const nodeOperatingStatus = ref("NORMAL"); const nodeOperatingStatus = ref("NORMAL");
const inputJsonData = ref({}); const inputJsonData = ref({});
const outputJsonData = ref({}); const outputJsonData = ref({});
const errorInfoData = ref('');
const visibleChange = (value, index, quote) => { const visibleChange = (value, index, quote) => {
if (value) { if (value) {
@ -532,6 +536,7 @@ onMounted(() => {
nodeOperatingStatus.value = data.status; nodeOperatingStatus.value = data.status;
let inputData = {}; let inputData = {};
let output = {}; let output = {};
errorInfoData.value = data?.message || ''
try { try {
inputData = JSON.parse(data.paramsIn) || {}; inputData = JSON.parse(data.paramsIn) || {};
output = JSON.parse(data.paramsOut) || {}; output = JSON.parse(data.paramsOut) || {};

View File

@ -5,29 +5,32 @@
<JsonViewer :value="inputJsonData" copyable boxed sort theme="light" /> <JsonViewer :value="inputJsonData" copyable boxed sort theme="light" />
</template> </template>
<template #output> <template #output>
<JsonViewer <div v-if="nodeOperatingStatus != 'FAILED'">
v-if="props.properties.outputType === 'json'" <JsonViewer
:value="outputJsonData" v-if="props.properties.outputType === 'json'"
copyable :value="outputJsonData"
boxed copyable
sort boxed
theme="light" sort
/> theme="light"
<el-image />
v-if="props.properties.outputType === 'img'" <el-image
v-for="item in outputJsonData.imageUrl" v-if="props.properties.outputType === 'img'"
style="width: 60px; height: 60px" v-for="item in outputJsonData.imageUrl"
:src="item" style="width: 60px; height: 60px"
:preview-src-list="outputJsonData.imageUrl" :src="item"
:preview-teleported="true" :preview-src-list="outputJsonData.imageUrl"
show-progress :preview-teleported="true"
fit="fill" show-progress
/> fit="fill"
<IPlayer />
v-if="props.properties.outputType === 'video'" <IPlayer
v-for="item in outputJsonData.videoUrl" v-if="props.properties.outputType === 'video'"
:videoUrl="item" v-for="item in outputJsonData.videoUrl"
/> :videoUrl="item"
/>
</div>
<div v-else>{{ errorInfoData }}</div>
</template> </template>
</NodeState> </NodeState>
<NodeTitle <NodeTitle
@ -307,6 +310,7 @@ const setNodeName = (name) => {
const nodeOperatingStatus = ref("NORMAL"); const nodeOperatingStatus = ref("NORMAL");
const inputJsonData = ref({}); const inputJsonData = ref({});
const outputJsonData = ref({}); const outputJsonData = ref({});
const errorInfoData = ref('');
const visibleChange = (value, index, quote) => { const visibleChange = (value, index, quote) => {
if (value) { if (value) {
@ -424,6 +428,7 @@ onMounted(() => {
nodeOperatingStatus.value = data.status; nodeOperatingStatus.value = data.status;
let inputData = {}; let inputData = {};
let output = {}; let output = {};
errorInfoData.value = data?.message || ''
try { try {
inputData = JSON.parse(data.paramsIn) || {}; inputData = JSON.parse(data.paramsIn) || {};
output = JSON.parse(data.paramsOut) || {}; output = JSON.parse(data.paramsOut) || {};

View File

@ -5,7 +5,10 @@
<JsonViewer :value="inputJsonData" copyable boxed sort theme="light" /> <JsonViewer :value="inputJsonData" copyable boxed sort theme="light" />
</template> </template>
<template #output> <template #output>
<JsonViewer :value="outputJsonData" copyable boxed sort theme="light" /> <div v-if="nodeOperatingStatus != 'FAILED'">
<JsonViewer :value="outputJsonData" copyable boxed sort theme="light" />
</div>
<div v-else>{{ errorInfoData }}</div>
</template> </template>
</NodeState> </NodeState>
<NodeTitle <NodeTitle
@ -384,6 +387,7 @@ const visibleChange = (value) => {
const nodeOperatingStatus = ref("NORMAL"); const nodeOperatingStatus = ref("NORMAL");
const inputJsonData = ref({}); const inputJsonData = ref({});
const outputJsonData = ref({}); const outputJsonData = ref({});
const errorInfoData = ref('');
watch( watch(
() => props.properties, () => props.properties,
@ -412,6 +416,7 @@ onMounted(() => {
nodeOperatingStatus.value = data.status; nodeOperatingStatus.value = data.status;
let inputData = {}; let inputData = {};
let output = {}; let output = {};
errorInfoData.value = data?.message || ''
try { try {
inputData = JSON.parse(data.paramsIn) || {}; inputData = JSON.parse(data.paramsIn) || {};
output = JSON.parse(data.paramsOut) || {}; output = JSON.parse(data.paramsOut) || {};