Detail.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <detail
  3. :showDesc="false"
  4. :showName="false"
  5. :hiddenKeys="['project_domain', 'tenant', 'created_at', 'updated_at']"
  6. :onManager="onManager"
  7. :data="data"
  8. :base-info="baseInfo" />
  9. </template>
  10. <script>
  11. import { k8sStatusColumn } from '@K8S/utils/tableColumns'
  12. export default {
  13. name: 'K8sIngressDetail',
  14. props: {
  15. data: {
  16. type: Object,
  17. required: true,
  18. },
  19. onManager: {
  20. type: Function,
  21. required: true,
  22. },
  23. },
  24. data () {
  25. return {
  26. baseInfo: [
  27. {
  28. field: 'name',
  29. title: this.$t('k8s.text_41'),
  30. slots: {
  31. default: ({ row }) => {
  32. return [
  33. <div class='text-truncate'>
  34. <list-body-cell-wrap copy row={ this.data } onManager={ this.onManager } field='name' title={ row.name } />
  35. </div>,
  36. ]
  37. },
  38. },
  39. },
  40. k8sStatusColumn(),
  41. {
  42. field: 'cluster',
  43. title: this.$t('k8s.text_19'),
  44. },
  45. {
  46. field: 'namespace',
  47. title: this.$t('k8s.text_23'),
  48. },
  49. {
  50. field: 'endpoints',
  51. title: this.$t('k8s.text_240'),
  52. slots: {
  53. default: ({ row }) => {
  54. if (!row.endpoints) return '-'
  55. return row.endpoints.filter(v => v.host).map(v => {
  56. let value = '-'
  57. if (v.host && v.ports) value = `${v.host}:${v.ports}`
  58. if (v.host && !v.ports) value = v.host
  59. return <a-tag>{ value }</a-tag>
  60. })
  61. },
  62. },
  63. },
  64. {
  65. field: 'creationTimestamp',
  66. title: this.$t('k8s.text_74'),
  67. formatter: ({ row }) => {
  68. return (row.creationTimestamp && this.$moment(row.creationTimestamp).format()) || '-'
  69. },
  70. },
  71. ],
  72. }
  73. },
  74. }
  75. </script>