columns.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {
  2. getNameDescriptionTableColumn,
  3. getStatusTableColumn,
  4. getProjectDomainTableColumn,
  5. getTimeTableColumn,
  6. } from '@/utils/common/tableColumn'
  7. import i18n from '@/locales'
  8. import {
  9. getK8sClusterProviderColumn,
  10. getK8sClusterDistribution,
  11. getK8sClusterModeColumn,
  12. getK8sClusterResourceType,
  13. } from '../utils/columns'
  14. export default {
  15. created () {
  16. this.columns = [
  17. getNameDescriptionTableColumn({
  18. onManager: this.onManager,
  19. hideField: true,
  20. edit: false,
  21. slotCallback: row => {
  22. return (
  23. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
  24. )
  25. },
  26. }),
  27. getK8sClusterProviderColumn(),
  28. getK8sClusterDistribution(),
  29. getK8sClusterModeColumn(),
  30. getK8sClusterResourceType(),
  31. /*
  32. * {
  33. * field: 'version',
  34. * title: i18n.t('k8s.text_153'),
  35. * minWidth: 100,
  36. * slots: {
  37. * default: ({ row }, h) => {
  38. * return [
  39. * <a-tag color="blue">{ row.version }</a-tag>,
  40. * ]
  41. * },
  42. * },
  43. * },
  44. */
  45. {
  46. field: 'machines',
  47. title: i18n.t('k8s.text_191'),
  48. sortable: true,
  49. },
  50. getStatusTableColumn({ vm: this, statusModule: 'kubecluster', minWidth: 40 }),
  51. {
  52. field: 'sync_status',
  53. title: i18n.t('common.text00043'),
  54. minWidth: 40,
  55. slots: {
  56. default: ({ row }, h) => {
  57. let warnTooltip = row.sync_message
  58. if (warnTooltip) {
  59. warnTooltip = (
  60. <a-tooltip placement="top" title={warnTooltip}>
  61. <div class='text-truncate'>
  62. <a-icon type="bulb" theme="twoTone" twoToneColor="#f5222d" class="mr-2" />
  63. <span>{ i18n.t('k8s.text_402') }</span>
  64. </div>
  65. </a-tooltip>
  66. )
  67. }
  68. return [
  69. <div class='text-truncate'>
  70. <status status={ row.sync_status } statusModule="kubecluster_sync_status">
  71. { warnTooltip }
  72. </status>
  73. </div>,
  74. ]
  75. },
  76. },
  77. },
  78. getProjectDomainTableColumn(),
  79. getTimeTableColumn(),
  80. ]
  81. },
  82. }