|
@@ -93,53 +93,54 @@
|
|
|
</v-simple-table>
|
|
</v-simple-table>
|
|
|
</v-col>
|
|
</v-col>
|
|
|
</v-row>
|
|
</v-row>
|
|
|
|
|
+ </m-card>
|
|
|
|
|
|
|
|
- <!-- 错误信息 -->
|
|
|
|
|
- <v-alert
|
|
|
|
|
- v-if="executionDetail.error"
|
|
|
|
|
- type="error"
|
|
|
|
|
- class="mt-4"
|
|
|
|
|
- prominent
|
|
|
|
|
- >
|
|
|
|
|
- <div class="text-h6 mb-2">执行出错</div>
|
|
|
|
|
- <pre class="error-content">{{ JSON.stringify(executionDetail.error, null, 2) }}</pre>
|
|
|
|
|
- </v-alert>
|
|
|
|
|
-
|
|
|
|
|
- <!-- 节点执行结果 -->
|
|
|
|
|
- <m-card v-if="executionDetail.node_results && executionDetail.node_results.length > 0" class="mt-4" title="节点执行结果" :px5="false">
|
|
|
|
|
- <v-timeline dense>
|
|
|
|
|
- <v-timeline-item
|
|
|
|
|
- v-for="(node, index) in executionDetail.node_results"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- :color="getNodeStatusColor(node)"
|
|
|
|
|
- small
|
|
|
|
|
- >
|
|
|
|
|
- <m-card :no-title="true" :no-elevation="false" :px5="false" :min-height="0" class="mb-2">
|
|
|
|
|
- <template #autoTitle>
|
|
|
|
|
- <div class="d-flex justify-space-between align-center" style="width: 100%;">
|
|
|
|
|
- <span class="font-weight-bold">{{ node.node_name }}</span>
|
|
|
|
|
- <v-chip small>{{ node.execution_time }}ms</v-chip>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <div class="text-caption mb-2 ml-5">开始时间: {{ currentTime(node.start_time) }}</div>
|
|
|
|
|
- <v-expansion-panels>
|
|
|
|
|
- <v-expansion-panel>
|
|
|
|
|
- <v-expansion-panel-header>输出数据</v-expansion-panel-header>
|
|
|
|
|
- <v-expansion-panel-content>
|
|
|
|
|
- <pre class="node-data">{{ JSON.stringify(node.data, null, 2) }}</pre>
|
|
|
|
|
- </v-expansion-panel-content>
|
|
|
|
|
- </v-expansion-panel>
|
|
|
|
|
- </v-expansion-panels>
|
|
|
|
|
- </m-card>
|
|
|
|
|
- </v-timeline-item>
|
|
|
|
|
- </v-timeline>
|
|
|
|
|
- </m-card>
|
|
|
|
|
|
|
+ <!-- 错误信息 -->
|
|
|
|
|
+ <v-alert
|
|
|
|
|
+ v-if="executionDetail.error"
|
|
|
|
|
+ type="error"
|
|
|
|
|
+ class="mt-4"
|
|
|
|
|
+ prominent
|
|
|
|
|
+ style="overflow-x: auto;"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="text-h6 mb-2">执行出错</div>
|
|
|
|
|
+ <pre class="error-content">{{ JSON.stringify(executionDetail.error, null, 2) }}</pre>
|
|
|
|
|
+ </v-alert>
|
|
|
|
|
|
|
|
- <empty
|
|
|
|
|
- v-else-if="!detailLoading && executionDetail.id"
|
|
|
|
|
- class="mt-4"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <!-- 节点执行结果 -->
|
|
|
|
|
+ <m-card v-if="executionDetail.node_results && executionDetail.node_results.length > 0" class="mt-4" title="节点执行结果" :px5="false">
|
|
|
|
|
+ <v-timeline dense class="mr-3">
|
|
|
|
|
+ <v-timeline-item
|
|
|
|
|
+ v-for="(node, index) in executionDetail.node_results"
|
|
|
|
|
+ :key="index"
|
|
|
|
|
+ :color="getNodeStatusColor(node)"
|
|
|
|
|
+ small
|
|
|
|
|
+ >
|
|
|
|
|
+ <m-card :no-title="true" :no-elevation="false" :px5="false" :min-height="0" class="mb-2">
|
|
|
|
|
+ <template #autoTitle>
|
|
|
|
|
+ <div class="d-flex justify-space-between align-center" style="width: 100%;">
|
|
|
|
|
+ <span class="font-weight-bold">{{ node.node_name }}</span>
|
|
|
|
|
+ <v-chip small>{{ node.execution_time }}ms</v-chip>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <div class="text-caption mb-2 ml-5">开始时间: {{ currentTime(node.start_time) }}</div>
|
|
|
|
|
+ <v-expansion-panels>
|
|
|
|
|
+ <v-expansion-panel>
|
|
|
|
|
+ <v-expansion-panel-header>输出数据</v-expansion-panel-header>
|
|
|
|
|
+ <v-expansion-panel-content>
|
|
|
|
|
+ <pre class="node-data">{{ JSON.stringify(node.data, null, 2) }}</pre>
|
|
|
|
|
+ </v-expansion-panel-content>
|
|
|
|
|
+ </v-expansion-panel>
|
|
|
|
|
+ </v-expansion-panels>
|
|
|
|
|
+ </m-card>
|
|
|
|
|
+ </v-timeline-item>
|
|
|
|
|
+ </v-timeline>
|
|
|
</m-card>
|
|
</m-card>
|
|
|
|
|
+
|
|
|
|
|
+ <empty
|
|
|
|
|
+ v-else-if="!detailLoading && executionDetail.id"
|
|
|
|
|
+ class="mt-4"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</v-navigation-drawer>
|
|
</v-navigation-drawer>
|