columns.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import i18n from '@/locales'
  2. import { HYPERVISORS_MAP } from '@/constants'
  3. import BrandIcon from '@/sections/BrandIcon'
  4. export const getK8sClusterProviderColumn = () => {
  5. return {
  6. title: i18n.t('k8s.platform'),
  7. field: 'provider',
  8. sortable: true,
  9. slots: {
  10. default: ({ row }, h) => {
  11. if (!row.provider) return '-'
  12. if (row.provider === 'onecloud') {
  13. row.provider = 'kvm'
  14. }
  15. const data = HYPERVISORS_MAP[row.provider]
  16. if (!data || !data.brand) return '-'
  17. return [
  18. <BrandIcon name={ data.brand } />,
  19. ]
  20. },
  21. },
  22. }
  23. }
  24. export const getK8sClusterDistribution = () => {
  25. return {
  26. field: 'distribution',
  27. title: i18n.t('k8s.text_401'),
  28. minWidth: 100,
  29. sortable: true,
  30. slots: {
  31. default: ({ row }, h) => {
  32. let title = ''
  33. // let title = 'Kubernetes'
  34. let type = 'k8s'
  35. const styles = { color: 'rgb(50, 109, 230)', fontSize: '20px' }
  36. if (row.distribution === 'openshift') {
  37. // title = 'OpenShift'
  38. type = 'openshift'
  39. styles.color = 'rgb(225, 38, 52)'
  40. }
  41. if (row.distribution_info && row.distribution_info.version) {
  42. title += `${row.distribution_info.version}`
  43. } else if (row.version) {
  44. title += `${row.version} `
  45. }
  46. return [
  47. <div class="d-inline-flex align-items-right flex-column">
  48. <Icon class="d-block text-left" type={ type } style={ styles } />
  49. <div>{ title }</div>
  50. </div>,
  51. ]
  52. },
  53. },
  54. }
  55. }
  56. export const getK8sClusterModeColumn = () => {
  57. return {
  58. field: 'mode',
  59. title: i18n.t('k8s.text_186'),
  60. sortable: true,
  61. formatter: ({ cellValue }) => {
  62. switch (cellValue) {
  63. case 'customize':
  64. return i18n.t('k8s.text_187')
  65. case 'import':
  66. return i18n.t('k8s.text_143')
  67. default:
  68. return '-'
  69. }
  70. },
  71. }
  72. }
  73. export const getK8sClusterResourceType = () => {
  74. return {
  75. field: 'resource_type',
  76. title: i18n.t('k8s.text_188'),
  77. sortable: true,
  78. formatter: ({ cellValue }) => {
  79. switch (cellValue) {
  80. case 'guest':
  81. return i18n.t('k8s.text_189')
  82. case 'host':
  83. return i18n.t('k8s.text_190')
  84. default:
  85. return '-'
  86. }
  87. },
  88. }
  89. }