@@ -27,7 +27,7 @@ import { dateFormatter } from '../../../../../../helpers';
2727import { HeadBubble , ListItem } from '../../../../common/components' ;
2828import { DetailLayout } from '../../../../common/layouts' ;
2929import { DetailDisplayFieldProps , DetailInfoProps } from '../../../../common/models' ;
30- import { cloneDeep , isEmpty } from '../../../../common/utils' ;
30+ import { isEmpty } from '../../../../common/utils' ;
3131import { allActions } from '../../../actions' ;
3232import { ExternalTrafficPolicy , ResourceStatus , SessionAffinity } from '../../../constants/Config' ;
3333import { BackendGroup , BackendRecord , CreateResource , LbcfResource , PortMap , Resource , RuleMap } from '../../../models' ;
@@ -52,23 +52,23 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
5252 }
5353
5454 render ( ) {
55- let { subRoot } = this . props ,
55+ const { subRoot } = this . props ,
5656 { resourceName, resourceDetailState } = subRoot ,
5757 { resourceDetailInfo } = resourceDetailState ;
5858
59- let istapp = resourceName === 'tapp' ;
60- let resourceIns = resourceDetailInfo . selection ;
59+ const istapp = resourceName === 'tapp' ;
60+ const resourceIns = resourceDetailInfo . selection ;
6161
6262 if ( istapp && resourceIns ) {
6363 //tapp 需要展示灰度升级的container信息
6464 //如果有灰度升级项,需要展示在container当中
65- let { templates, templatePool } = resourceIns . spec ;
65+ const { templates, templatePool } = resourceIns . spec ;
6666 if ( templates ) {
67- let extraContainers = Object . values ( templates ) ;
67+ const extraContainers = Object . values ( templates ) ;
6868 extraContainers . forEach ( ( item : string ) => {
6969 if ( templatePool [ item ] ) {
7070 //修改提示信息
71- let grayUpdateContainers = templatePool [ item ] . spec . containers . map ( c => {
71+ const grayUpdateContainers = templatePool [ item ] . spec . containers . map ( c => {
7272 return {
7373 ...c ,
7474 name : `${ c . name } (灰度升级${ item } )`
@@ -97,36 +97,38 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
9797
9898 /** 展示基础数据 */
9999 private _renderBasicInfo ( resourceIns : Resource ) {
100- let { subRoot } = this . props ,
100+ const { subRoot } = this . props ,
101101 { resourceInfo } = subRoot ;
102102
103- let basicInfo = resourceInfo . detailField . detailInfo . info ? resourceInfo . detailField . detailInfo . info : { } ;
104- let blockKeys = Object . keys ( basicInfo ) ;
103+ const basicInfo = resourceInfo . detailField . detailInfo . info ? resourceInfo . detailField . detailInfo . info : { } ;
104+ const blockKeys = Object . keys ( basicInfo ) ;
105105 let content : JSX . Element ;
106106
107107 if ( blockKeys . length ) {
108108 // 这里需要去遍历 info里面的 metadata 和 status当中的信息
109109
110- let showContentObj : any [ ] = [ ] ;
110+ const showContentObj : any [ ] = [ ] ;
111111 let showContentArr : any [ ] = [ ] ;
112112
113113 blockKeys . forEach ( ( blockKey , index ) => {
114- let detailInfoField = basicInfo [ blockKey ] . dataField [ 0 ] . split ( '.' ) ;
114+ const detailInfoField = basicInfo [ blockKey ] . dataField [ 0 ] . split ( '.' ) ;
115115 // 需要展示的详情的数据
116- let detailInfo = this . _getFinalData ( detailInfoField , resourceIns ) ;
117- let displayField = Object . keys ( basicInfo [ blockKey ] . displayField ) . length ? basicInfo [ blockKey ] . displayField : { } ;
116+ const detailInfo = this . _getFinalData ( detailInfoField , resourceIns ) ;
117+ const displayField = Object . keys ( basicInfo [ blockKey ] . displayField ) . length
118+ ? basicInfo [ blockKey ] . displayField
119+ : { } ;
118120
119121 // 需要展示的字段名
120- let showField = Object . keys ( displayField ) ;
122+ const showField = Object . keys ( displayField ) ;
121123
122124 showField . forEach ( ( item , showIndex ) => {
123- let fieldInfo = displayField [ item ] ;
125+ const fieldInfo = displayField [ item ] ;
124126 /**
125127 * 这里是去判断annotations里面,其为 *.*.*. 可以有很多 .
126128 * eg: storageclass.beta.kubernetes.io/is-default-class
127129 * 那么这里的 数组 ['annotations', 'storageclass.beta.kubernetes.io/is-default-class']
128130 */
129- let dataFieldIns =
131+ const dataFieldIns =
130132 fieldInfo . dataField [ 0 ] !== ''
131133 ? fieldInfo . dataField . length > 1
132134 ? fieldInfo . dataField
@@ -138,7 +140,7 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
138140 showData = showData === '' ? fieldInfo . noExsitedValue : showData ;
139141
140142 // 这里根据displayField当中搞得格式去展示相对应的showContent
141- let showElement = this . _renderFormItem ( { showData, fieldInfo, detailInfo } ) ;
143+ const showElement = this . _renderFormItem ( { showData, fieldInfo, detailInfo } ) ;
142144 // 这里需要对齐进行排序
143145 showContentObj . push ( {
144146 order : fieldInfo . order ,
@@ -170,14 +172,14 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
170172
171173 /** 展示转发规则 rules */
172174 private _renderRules ( resourceIns : Resource ) {
173- let { subRoot } = this . props ,
175+ const { subRoot } = this . props ,
174176 { resourceInfo } = subRoot ;
175177
176178 let content : JSX . Element ;
177179 // 展示转发规则
178- let showContentArr : any [ ] = [ ] ;
180+ const showContentArr : any [ ] = [ ] ;
179181
180- let isQcloudIngress =
182+ const isQcloudIngress =
181183 resourceIns &&
182184 resourceIns . metadata &&
183185 resourceIns . metadata . annotations &&
@@ -187,33 +189,33 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
187189
188190 // 这里是为了腾讯云专用的Ingress的展示,转发配置是放在annotaions里面的
189191 if ( isQcloudIngress ) {
190- let annotations = resourceIns . metadata . annotations ;
191- let showData = {
192+ const annotations = resourceIns . metadata . annotations ;
193+ const showData = {
192194 http : annotations [ 'kubernetes.io/ingress.http-rules' ] || '' ,
193195 https : annotations [ 'kubernetes.io/ingress.https-rules' ] || ''
194196 } ;
195197
196- let showContent = this . _renderRulesItem ( showData , true , resourceIns ) ;
198+ const showContent = this . _renderRulesItem ( showData , true , resourceIns ) ;
197199 showContentArr . push ( showContent ) ;
198200 } else {
199- let basicInfo = resourceInfo . detailField . detailInfo . rules ? resourceInfo . detailField . detailInfo . rules : { } ;
200- let blockKeys = Object . keys ( basicInfo ) ;
201+ const basicInfo = resourceInfo . detailField . detailInfo . rules ? resourceInfo . detailField . detailInfo . rules : { } ;
202+ const blockKeys = Object . keys ( basicInfo ) ;
201203
202204 if ( blockKeys . length ) {
203205 blockKeys . forEach ( ( blockKey , index ) => {
204- let detailInfoField = basicInfo [ blockKey ] . dataField [ 0 ] . split ( '.' ) ;
206+ const detailInfoField = basicInfo [ blockKey ] . dataField [ 0 ] . split ( '.' ) ;
205207 //需要展示的详情的数据
206- let detailInfo = this . _getFinalData ( detailInfoField , resourceIns ) ;
207- let displayField = Object . keys ( basicInfo [ blockKey ] . displayField ) . length
208+ const detailInfo = this . _getFinalData ( detailInfoField , resourceIns ) ;
209+ const displayField = Object . keys ( basicInfo [ blockKey ] . displayField ) . length
208210 ? basicInfo [ blockKey ] . displayField
209211 : { } ;
210212
211213 // 需要展示的字段名
212- let showField = Object . keys ( displayField ) ;
214+ const showField = Object . keys ( displayField ) ;
213215
214216 showField . forEach ( ( item , showIndex ) => {
215- let fieldInfo = displayField [ item ] ;
216- let dataFieldIns = fieldInfo . dataField [ 0 ] !== '' ? fieldInfo . dataField [ 0 ] . split ( '.' ) : [ ] ;
217+ const fieldInfo = displayField [ item ] ;
218+ const dataFieldIns = fieldInfo . dataField [ 0 ] !== '' ? fieldInfo . dataField [ 0 ] . split ( '.' ) : [ ] ;
217219 let showData = this . _getFinalData ( dataFieldIns , detailInfo ) ;
218220
219221 // 这里是要去判断noExist的展示
@@ -251,17 +253,17 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
251253
252254 /** 展示数据卷,数据卷这里特殊处理 */
253255 private _renderVolumes ( resourceIns : Resource ) {
254- let { subRoot } = this . props ,
256+ const { subRoot } = this . props ,
255257 { resourceInfo } = subRoot ;
256258
257- let detailInfo = resourceInfo . detailField . detailInfo . volume ? resourceInfo . detailField . detailInfo . volume : { } ;
258- let blockKeys = Object . keys ( detailInfo ) ;
259+ const detailInfo = resourceInfo . detailField . detailInfo . volume ? resourceInfo . detailField . detailInfo . volume : { } ;
260+ const blockKeys = Object . keys ( detailInfo ) ;
259261 let content : JSX . Element ;
260262
261263 if ( blockKeys . length ) {
262264 // 目前此区域只展示 volumes,故只需要获取volumes
263- let detailInfoField = detailInfo [ 'volumes' ] . dataField [ 0 ] . split ( '.' ) ;
264- let volumns = this . _getFinalData ( detailInfoField , resourceIns ) ;
265+ const detailInfoField = detailInfo [ 'volumes' ] . dataField [ 0 ] . split ( '.' ) ;
266+ const volumns = this . _getFinalData ( detailInfoField , resourceIns ) ;
265267
266268 // 展示数据卷资源的信息
267269 const renderVolumeInfo = ( volumn , type : string ) => {
@@ -271,7 +273,7 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
271273 } else if ( type === 'secret' ) {
272274 content = volumn [ type ] [ 'secretName' ] + t ( '(资源名称)' ) ;
273275 } else if ( type === 'hostPath' ) {
274- let validateType = volumn [ type ] [ 'type' ] ? volumn [ type ] [ 'type' ] : t ( '不校验' ) ;
276+ const validateType = volumn [ type ] [ 'type' ] ? volumn [ type ] [ 'type' ] : t ( '不校验' ) ;
275277 content = volumn [ type ] [ 'path' ] + t ( '(主机路径)' ) + validateType + t ( '(路径检查类型)' ) ;
276278 } else if ( type === 'nfs' ) {
277279 content = volumn [ type ] [ 'server' ] + ':' + volumn [ type ] [ 'path' ] + t ( '(NFS路径)' ) ;
@@ -303,8 +305,8 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
303305 * }
304306 * volumesType即数据卷的类型
305307 */
306- let keys = Object . keys ( volumn ) ;
307- let label = keys . filter ( item => item !== 'name' ) [ 0 ] ; // 这里是因为volumes 当中的数据卷的类型是不固定的
308+ const keys = Object . keys ( volumn ) ;
309+ const label = keys . filter ( item => item !== 'name' ) [ 0 ] ; // 这里是因为volumes 当中的数据卷的类型是不固定的
308310
309311 return (
310312 < ListItem key = { index } label = { label } >
@@ -328,18 +330,18 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
328330
329331 /**展示service高级设置 */
330332 private _renderAdvancedInfo ( resourceIns : Resource ) {
331- let { subRoot } = this . props ,
333+ const { subRoot } = this . props ,
332334 { resourceInfo } = subRoot ;
333335
334- let detailInfo = resourceInfo . detailField . detailInfo . advancedInfo
336+ const detailInfo = resourceInfo . detailField . detailInfo . advancedInfo
335337 ? resourceInfo . detailField . detailInfo . advancedInfo
336338 : { } ;
337- let blockKeys = Object . keys ( detailInfo ) ;
339+ const blockKeys = Object . keys ( detailInfo ) ;
338340 let content : JSX . Element ;
339341
340342 if ( blockKeys . length ) {
341- let advancedInfoField = detailInfo [ 'spec' ] . dataField [ 0 ] . split ( '.' ) ;
342- let advancedInfo = this . _getFinalData ( advancedInfoField , resourceIns ) ;
343+ const advancedInfoField = detailInfo [ 'spec' ] . dataField [ 0 ] . split ( '.' ) ;
344+ const advancedInfo = this . _getFinalData ( advancedInfoField , resourceIns ) ;
343345
344346 content = (
345347 < DetailLayout >
@@ -380,21 +382,23 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
380382 }
381383 /** 展示容器 */
382384 private _renderBackGroup ( resourceIns : LbcfResource ) {
383- let { subRoot } = this . props ,
385+ const { subRoot } = this . props ,
384386 { resourceInfo } = subRoot ;
385387
386- let detailInfo = resourceInfo . detailField . detailInfo . backGroup ? resourceInfo . detailField . detailInfo . backGroup : { } ;
387- let blockKeys = Object . keys ( detailInfo ) ;
388+ const detailInfo = resourceInfo . detailField . detailInfo . backGroup
389+ ? resourceInfo . detailField . detailInfo . backGroup
390+ : { } ;
391+ const blockKeys = Object . keys ( detailInfo ) ;
388392 let content : JSX . Element ;
389393
390394 if ( blockKeys . length ) {
391395 // 目前此区域只展示backGroups,故只需要获取backGroups
392- let detailInfoField = detailInfo [ 'backGroups' ] . dataField [ 0 ] . split ( '.' ) ;
393- let backGroups : BackendGroup [ ] = this . _getFinalData ( detailInfoField , resourceIns ) ;
396+ const detailInfoField = detailInfo [ 'backGroups' ] . dataField [ 0 ] . split ( '.' ) ;
397+ const backGroups : BackendGroup [ ] = this . _getFinalData ( detailInfoField , resourceIns ) ;
394398
395399 const tabs = backGroups
396400 ? backGroups . map ( ( item , index ) => {
397- let tab = {
401+ const tab = {
398402 id : item [ 'name' ] + index ,
399403 label : item [ 'name' ]
400404 } ;
@@ -404,7 +408,7 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
404408
405409 let selected = tabs [ 0 ] ;
406410 if ( this . state . tabName ) {
407- let finder = tabs . find ( x => x . id === this . state . tabName ) ;
411+ const finder = tabs . find ( x => x . id === this . state . tabName ) ;
408412 if ( finder ) {
409413 selected = finder ;
410414 }
@@ -438,21 +442,23 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
438442
439443 /** 展示容器 */
440444 private _renderContainer ( resourceIns : Resource ) {
441- let { subRoot } = this . props ,
445+ const { subRoot } = this . props ,
442446 { resourceInfo } = subRoot ;
443447
444- let detailInfo = resourceInfo . detailField . detailInfo . container ? resourceInfo . detailField . detailInfo . container : { } ;
445- let blockKeys = Object . keys ( detailInfo ) ;
448+ const detailInfo = resourceInfo . detailField . detailInfo . container
449+ ? resourceInfo . detailField . detailInfo . container
450+ : { } ;
451+ const blockKeys = Object . keys ( detailInfo ) ;
446452 let content : JSX . Element ;
447453
448454 if ( blockKeys . length ) {
449455 // 目前此区域只展示 volumes,故只需要获取volumes
450- let detailInfoField = detailInfo [ 'containers' ] . dataField [ 0 ] . split ( '.' ) ;
451- let containers = this . _getFinalData ( detailInfoField , resourceIns ) ;
456+ const detailInfoField = detailInfo [ 'containers' ] . dataField [ 0 ] . split ( '.' ) ;
457+ const containers = this . _getFinalData ( detailInfoField , resourceIns ) ;
452458
453459 const tabs = containers
454460 ? containers . map ( ( item , index ) => {
455- let tab = {
461+ const tab = {
456462 id : item [ 'name' ] + index ,
457463 label : item [ 'name' ]
458464 } ;
@@ -462,7 +468,7 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
462468
463469 let selected = tabs [ 0 ] ? tabs [ 0 ] : { } ;
464470 if ( this . state . tabName ) {
465- let finder = tabs . find ( x => x . id === this . state . tabName ) ;
471+ const finder = tabs . find ( x => x . id === this . state . tabName ) ;
466472 if ( finder ) {
467473 selected = finder ;
468474 }
@@ -499,9 +505,9 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
499505 /** 生成container内部的展示 */
500506 private _renderContainerBody ( containers : any [ ] , detailInfo : DetailInfoProps ) {
501507 // 配置文件当中的detailInfo 下的 container
502- let displayField = Object . keys ( detailInfo ) . length ? detailInfo . displayField : { } ;
508+ const displayField = Object . keys ( detailInfo ) . length ? detailInfo . displayField : { } ;
503509 // 需要展示的字段名
504- let showField = Object . keys ( displayField ) ;
510+ const showField = Object . keys ( displayField ) ;
505511
506512 return containers
507513 ? containers . map ( ( container , index ) => (
@@ -628,8 +634,12 @@ export class ResourceDetailPanel extends React.Component<RootProps, ResourceDeta
628634 placement = "left"
629635 content = {
630636 < React . Fragment >
631- < p > { t ( '名称:' ) + `${ refData [ 'name' ] } ` } </ p >
632- < p > { `Key:${ refData [ 'key' ] } ` } </ p >
637+ { Object . entries ( refData ?? { } ) . map ( ( [ key , value ] ) => (
638+ < >
639+ < p > { `${ t ( '名称:' ) } ${ key } ` } </ p >
640+ < p > { `Key:${ value } ` } </ p >
641+ </ >
642+ ) ) }
633643 </ React . Fragment >
634644 }
635645 >
0 commit comments