style(sj_map_reduce): 优化任务列表参数展示方式
This commit is contained in:
parent
c2197b0088
commit
0a3ea03720
@ -4,7 +4,7 @@ import type { DataTableColumn } from 'naive-ui';
|
|||||||
import { NButton, NCode, NPopover, NTag } from 'naive-ui';
|
import { NButton, NCode, NPopover, NTag } from 'naive-ui';
|
||||||
import hljs from 'highlight.js/lib/core';
|
import hljs from 'highlight.js/lib/core';
|
||||||
import json from 'highlight.js/lib/languages/json';
|
import json from 'highlight.js/lib/languages/json';
|
||||||
import { isNotNull, translateOptions } from '@/utils/common';
|
import { isNotNull, parseArgsJson, translateOptions } from '@/utils/common';
|
||||||
import {
|
import {
|
||||||
jobExecutorEnum,
|
jobExecutorEnum,
|
||||||
jobOperationReasonEnum,
|
jobOperationReasonEnum,
|
||||||
@ -236,19 +236,6 @@ const columns = ref<DataTableColumn<Workflow.JobBatchType>[]>([
|
|||||||
titleAlign: 'center',
|
titleAlign: 'center',
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
render: row => {
|
render: row => {
|
||||||
let argsJson = JSON.parse(row.argsStr!);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (argsJson.jobParams) {
|
|
||||||
argsJson.jobParams = JSON.parse(argsJson.jobParams.replaceAll('\\"', '"'));
|
|
||||||
}
|
|
||||||
if (argsJson.mapResult) {
|
|
||||||
argsJson.mapResult = JSON.parse(argsJson.mapResult.replaceAll('\\"', '"'));
|
|
||||||
}
|
|
||||||
} catch {}
|
|
||||||
|
|
||||||
argsJson = JSON.stringify(argsJson, null, ' ');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NPopover trigger="click">
|
<NPopover trigger="click">
|
||||||
{{
|
{{
|
||||||
@ -258,7 +245,13 @@ const columns = ref<DataTableColumn<Workflow.JobBatchType>[]>([
|
|||||||
</NButton>
|
</NButton>
|
||||||
),
|
),
|
||||||
default: () => (
|
default: () => (
|
||||||
<NCode class="max-h-300px overflow-auto" hljs={hljs} code={argsJson} language="json" show-line-numbers />
|
<NCode
|
||||||
|
class="max-h-300px overflow-auto"
|
||||||
|
hljs={hljs}
|
||||||
|
code={parseArgsJson(row.argsStr!)}
|
||||||
|
language="json"
|
||||||
|
show-line-numbers
|
||||||
|
/>
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</NPopover>
|
</NPopover>
|
||||||
|
@ -121,3 +121,45 @@ export function toggleHtmlClass(className: string) {
|
|||||||
export function isNotNull(value: any) {
|
export function isNotNull(value: any) {
|
||||||
return value !== undefined && value !== null && value !== '' && value !== 'undefined';
|
return value !== undefined && value !== null && value !== '' && value !== 'undefined';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function parseArgsJson(value: string) {
|
||||||
|
let argsJson;
|
||||||
|
|
||||||
|
try {
|
||||||
|
argsJson = JSON.parse(value);
|
||||||
|
|
||||||
|
// A helper function to safely parse JSON strings that might contain escaped quotes
|
||||||
|
const safelyParseJson = (jsonString: string) => {
|
||||||
|
try {
|
||||||
|
return JSON.parse(jsonString.replaceAll('\\"', '"'));
|
||||||
|
} catch (error) {
|
||||||
|
return jsonString; // Return original string if it's not valid JSON
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Process jobParams if it exists
|
||||||
|
if (typeof argsJson.jobParams === 'string') {
|
||||||
|
argsJson.jobParams = safelyParseJson(argsJson.jobParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process mapResult if it exists
|
||||||
|
if (typeof argsJson.mapResult === 'string') {
|
||||||
|
argsJson.mapResult = safelyParseJson(argsJson.mapResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process maps if it exists
|
||||||
|
if (typeof argsJson.maps === 'string') {
|
||||||
|
argsJson.maps = safelyParseJson(argsJson.maps);
|
||||||
|
|
||||||
|
// If maps is a string that represents an array, parse it as JSON
|
||||||
|
if (argsJson.maps.startsWith('"[') && argsJson.maps.endsWith('"]')) {
|
||||||
|
argsJson.maps = safelyParseJson(argsJson.maps.slice(1, -1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
|
||||||
|
// Convert the object back to a pretty-printed JSON string
|
||||||
|
argsJson = JSON.stringify(argsJson, null, 4);
|
||||||
|
|
||||||
|
return argsJson;
|
||||||
|
}
|
||||||
|
@ -10,7 +10,7 @@ import {
|
|||||||
taskStatusRecord
|
taskStatusRecord
|
||||||
} from '@/constants/business';
|
} from '@/constants/business';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
import { tagColor } from '@/utils/common';
|
import { parseArgsJson, tagColor } from '@/utils/common';
|
||||||
import { useTable } from '@/hooks/common/table';
|
import { useTable } from '@/hooks/common/table';
|
||||||
import { fetchGetJobTaskList } from '@/service/api';
|
import { fetchGetJobTaskList } from '@/service/api';
|
||||||
import { fetchJobLogList } from '@/service/api/log';
|
import { fetchJobLogList } from '@/service/api/log';
|
||||||
@ -121,19 +121,6 @@ const { columns, data, loading, mobilePagination } = useTable({
|
|||||||
titleAlign: 'center',
|
titleAlign: 'center',
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
render: row => {
|
render: row => {
|
||||||
let argsJson = JSON.parse(row.argsStr!);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (argsJson.jobParams) {
|
|
||||||
argsJson.jobParams = JSON.parse(argsJson.jobParams.replaceAll('\\"', '"'));
|
|
||||||
}
|
|
||||||
if (argsJson.mapResult) {
|
|
||||||
argsJson.mapResult = JSON.parse(argsJson.mapResult.replaceAll('\\"', '"'));
|
|
||||||
}
|
|
||||||
} catch {}
|
|
||||||
|
|
||||||
argsJson = JSON.stringify(argsJson, null, ' ');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NPopover trigger="click">
|
<NPopover trigger="click">
|
||||||
{{
|
{{
|
||||||
@ -146,7 +133,7 @@ const { columns, data, loading, mobilePagination } = useTable({
|
|||||||
<NCode
|
<NCode
|
||||||
class="max-h-300px overflow-auto"
|
class="max-h-300px overflow-auto"
|
||||||
hljs={hljs}
|
hljs={hljs}
|
||||||
code={argsJson}
|
code={parseArgsJson(row.argsStr)}
|
||||||
language="json"
|
language="json"
|
||||||
show-line-numbers
|
show-line-numbers
|
||||||
/>
|
/>
|
||||||
|
Loading…
Reference in New Issue
Block a user