columns.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { getNameDescriptionTableColumn, getTimeTableColumn } from '@/utils/common/tableColumn'
  2. import i18n from '@/locales'
  3. import { k8sStatusColumn } from '@K8S/utils/tableColumns'
  4. export default {
  5. created () {
  6. this.columns = [
  7. getNameDescriptionTableColumn({
  8. onManager: this.onManager,
  9. hideField: true,
  10. edit: false,
  11. showDesc: false,
  12. slotCallback: row => {
  13. return (
  14. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{ row.name }</side-page-trigger>
  15. )
  16. },
  17. }),
  18. {
  19. field: 'namespace',
  20. title: i18n.t('k8s.text_23'),
  21. sortable: true,
  22. },
  23. k8sStatusColumn(),
  24. {
  25. field: 'clusterIP',
  26. title: 'clusterIP',
  27. minWidth: 70,
  28. slots: {
  29. default: ({ row }) => {
  30. if (row.clusterIP === 'None') return row.clusterIP
  31. return [
  32. <list-body-cell-wrap copy row={ row } onManager={ this.onManager } field='clusterIP' title={ row.clusterIP } />,
  33. ]
  34. },
  35. },
  36. },
  37. {
  38. field: 'internalEndpoint',
  39. title: i18n.t('k8s.text_342'),
  40. minWidth: 200,
  41. slots: {
  42. default: ({ row }) => {
  43. if (row.internalEndpoint && row.internalEndpoint.ports && row.internalEndpoint.ports.length) {
  44. return row.internalEndpoint.ports.map(v => {
  45. return <div>{ `${row.internalEndpoint.host}:${v.port} ${v.protocol}` }</div>
  46. })
  47. }
  48. return '-'
  49. },
  50. },
  51. },
  52. {
  53. field: 'externalEndpoints',
  54. title: i18n.t('k8s.text_343'),
  55. slots: {
  56. default: ({ row }) => {
  57. if (row.externalEndpoints && row.externalEndpoints.length) {
  58. return row.externalEndpoints.map(v => {
  59. return <list-body-cell-wrap copy row={ v } onManager={ this.onManager } field='host' title={ v.host } />
  60. })
  61. }
  62. return '-'
  63. },
  64. },
  65. },
  66. {
  67. field: 'type',
  68. title: i18n.t('k8s.text_34'),
  69. },
  70. {
  71. field: 'nodePort',
  72. title: 'nodePort',
  73. slots: {
  74. default: ({ row }) => {
  75. if (row.internalEndpoint && row.internalEndpoint.ports && row.internalEndpoint.ports.length) {
  76. return row.internalEndpoint.ports.map(v => {
  77. let p = v.nodePort
  78. if (p === 0) {
  79. p = '-'
  80. }
  81. return <div> { `${p}` } </div>
  82. })
  83. }
  84. return '-'
  85. },
  86. },
  87. },
  88. getTimeTableColumn({ field: 'creationTimestamp', fromNow: true, sortable: true }),
  89. ]
  90. },
  91. }