diff --git a/scss/components/_json.scss b/scss/components/_json.scss new file mode 100644 index 000000000..c9a18b98b --- /dev/null +++ b/scss/components/_json.scss @@ -0,0 +1,7 @@ +.#{$ns}JsonField { + &-nodeValue { + white-space: normal; + word-break: break-all; + overflow-wrap: break-word; + } +} diff --git a/scss/themes/cxd.scss b/scss/themes/cxd.scss index 77a0ccf5a..8218fa334 100644 --- a/scss/themes/cxd.scss +++ b/scss/themes/cxd.scss @@ -523,6 +523,7 @@ $Satus-icon-width: px2rem(14px); @import '../components/result-box'; @import '../components/search-box'; @import '../components/list-menu'; +@import '../components/json'; @import '../components/form/fieldset'; @import '../components/form/group'; diff --git a/scss/themes/dark.scss b/scss/themes/dark.scss index 0c030beb2..25bd89bf6 100644 --- a/scss/themes/dark.scss +++ b/scss/themes/dark.scss @@ -209,6 +209,7 @@ pre { @import '../components/result-box'; @import '../components/search-box'; @import '../components/list-menu'; +@import '../components/json'; @import '../components/form/fieldset'; @import '../components/form/group'; diff --git a/scss/themes/default.scss b/scss/themes/default.scss index 607dfb291..8551bf6d1 100644 --- a/scss/themes/default.scss +++ b/scss/themes/default.scss @@ -72,6 +72,7 @@ $Form-input-borderColor: #cfdadd; @import '../components/result-box'; @import '../components/search-box'; @import '../components/list-menu'; +@import '../components/json'; @import '../components/form/fieldset'; @import '../components/form/group'; diff --git a/src/renderers/Json.tsx b/src/renderers/Json.tsx index 48d605ce1..2f9eb7ea5 100644 --- a/src/renderers/Json.tsx +++ b/src/renderers/Json.tsx @@ -6,6 +6,7 @@ import {filter} from '../utils/tpl'; import cx from 'classnames'; import JSONTree from 'react-json-tree'; +import {autobind} from '../utils/helper'; export interface JSONProps extends RendererProps { className?: string; @@ -98,16 +99,13 @@ export class JSONField extends React.Component { jsonTheme: 'twilight' }; + @autobind valueRenderer(raw: any) { + const cx = this.props.classnames; if (typeof raw === 'string' && /^\"?https?:\/\//.test(raw)) { return ( @@ -115,17 +113,7 @@ export class JSONField extends React.Component { ); } - return ( - - {raw} - - ); + return {raw}; } shouldExpandNode = (keyName: any, data: any, level: any) => { diff --git a/src/renderers/Mapping.tsx b/src/renderers/Mapping.tsx index ce9c77f7c..0eb5a6f49 100644 --- a/src/renderers/Mapping.tsx +++ b/src/renderers/Mapping.tsx @@ -32,7 +32,12 @@ export class MappingField extends React.Component { if (typeof key !== 'undefined' && map && (map[key] ?? map['*'])) { viewValue = render( 'tpl', - map[key] ?? (key === true && map['1'] ? map['1'] : map['*']) // 兼容旧用法,即 value 为 true 时映射 1 + map[key] ?? + (key === true && map['1'] + ? map['1'] + : key === false && map['0'] + ? map['0'] + : map['*']) // 兼容平台旧用法:即 value 为 true 时映射 1 ,为 false 时映射 0 ); }