columns.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import * as R from 'ramda'
  2. import { PREALLOCATION_OPTION_MAP, STORAGE_TYPES } from '@Compute/constants'
  3. import i18n from '@/locales'
  4. export const getUnusedTableColumn = ({ hidden, vm = {} } = {}) => {
  5. return {
  6. field: 'guest_count',
  7. title: i18n.t('table.title.disk_mounted'),
  8. width: 70,
  9. sortable: true,
  10. sortBy: 'order_by_guest_count',
  11. slots: {
  12. default: ({ row }, h) => {
  13. if (vm.isPreLoad && row.guest_count === undefined) return [<data-loading />]
  14. return row.guest_count >= 1 ? [<span class="success-color">{ i18n.t('compute.text_464') }</span>] : [<span class="warning-color">{ i18n.t('compute.text_281') }</span>]
  15. },
  16. },
  17. formatter: ({ row }) => {
  18. return row.guest_count >= 1 ? i18n.t('compute.text_464') : i18n.t('compute.text_281')
  19. },
  20. hidden: () => {
  21. return R.is(Function, hidden) ? hidden() : hidden
  22. },
  23. }
  24. }
  25. export const getStorageTypeTableColumn = ({ hidden } = {}) => {
  26. return {
  27. field: 'storage_type',
  28. title: i18n.t('storage.text_38'),
  29. width: 100,
  30. formatter: ({ row }) => {
  31. if (row.provider && STORAGE_TYPES[row.provider.toLowerCase()] && STORAGE_TYPES[row.provider.toLowerCase()][row.storage_type]) {
  32. return STORAGE_TYPES[row.provider.toLowerCase()][row.storage_type].label || row.storage_type
  33. }
  34. return row.storage_type
  35. },
  36. hidden: () => {
  37. return R.is(Function, hidden) ? hidden() : hidden
  38. },
  39. }
  40. }
  41. export const getPreallocationTableColumn = () => {
  42. return {
  43. field: 'preallocation',
  44. title: i18n.t('compute.preallocation'),
  45. width: 170,
  46. slots: {
  47. default: ({ row }) => {
  48. return PREALLOCATION_OPTION_MAP[row.preallocation]?.label || '-'
  49. },
  50. },
  51. formatter: ({ row }) => row.preallocation ? PREALLOCATION_OPTION_MAP[row.preallocation].label : '-',
  52. }
  53. }