Detail.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. :extra-info="extraInfo" />
  10. </template>
  11. <script>
  12. import CodePreview from '@K8S/sections/CodePreview'
  13. import { k8sLabelColumn, k8sStatusColumn } from '@K8S/utils/tableColumns'
  14. export default {
  15. name: 'K8sIngressDetail',
  16. props: {
  17. data: {
  18. type: Object,
  19. required: true,
  20. },
  21. onManager: {
  22. type: Function,
  23. required: true,
  24. },
  25. },
  26. data () {
  27. return {
  28. baseInfo: [
  29. {
  30. field: 'name',
  31. title: this.$t('k8s.text_41'),
  32. slots: {
  33. default: ({ row }) => {
  34. return [
  35. <div class='text-truncate'>
  36. <list-body-cell-wrap copy row={ this.data } onManager={ this.onManager } field='name' title={ row.name } />
  37. </div>,
  38. ]
  39. },
  40. },
  41. },
  42. k8sStatusColumn(),
  43. {
  44. field: 'cluster',
  45. title: this.$t('k8s.text_19'),
  46. },
  47. {
  48. field: 'namespace',
  49. title: this.$t('k8s.text_23'),
  50. },
  51. k8sLabelColumn({ field: 'annotations', title: this.$t('k8s.text_142') }),
  52. {
  53. field: 'creationTimestamp',
  54. title: this.$t('k8s.text_74'),
  55. formatter: ({ row }) => {
  56. return (row.creationTimestamp && this.$moment(row.creationTimestamp).format()) || '-'
  57. },
  58. },
  59. ],
  60. extraInfo: [
  61. {
  62. title: this.$t('k8s.text_216'),
  63. field: 'data',
  64. slots: {
  65. default: ({ row }) => {
  66. return [
  67. <CodePreview data={ row } />,
  68. ]
  69. },
  70. },
  71. },
  72. ],
  73. }
  74. },
  75. }
  76. </script>