columns.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { k8sStatusColumn } from '@K8S/utils/tableColumns'
  2. import { getNameDescriptionTableColumn, getTimeTableColumn } from '@/utils/common/tableColumn'
  3. import i18n from '@/locales'
  4. export default {
  5. created () {
  6. this.columns = [
  7. getNameDescriptionTableColumn({
  8. onManager: this.onManager,
  9. hideField: true,
  10. edit: false,
  11. showDesc: false,
  12. slotCallback: row => {
  13. return (
  14. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{ row.name }</side-page-trigger>
  15. )
  16. },
  17. }),
  18. {
  19. field: 'namespace',
  20. title: i18n.t('k8s.text_23'),
  21. sortable: true,
  22. },
  23. k8sStatusColumn(),
  24. {
  25. field: 'volume',
  26. title: i18n.t('k8s.text_311'),
  27. minWidth: 120,
  28. },
  29. {
  30. field: 'capacity.storage',
  31. title: i18n.t('k8s.text_312'),
  32. width: 70,
  33. formatter: ({ row }) => {
  34. return row.capacity ? (row.capacity.storage || '0Gi') : '-'
  35. },
  36. },
  37. {
  38. field: 'accessModes',
  39. title: i18n.t('k8s.text_313'),
  40. formatter: ({ row }) => (row.accessModes || []).join(','),
  41. },
  42. {
  43. field: 'storageClass',
  44. title: i18n.t('k8s.text_22'),
  45. },
  46. {
  47. field: 'unused',
  48. title: i18n.t('k8s.text_301'),
  49. slots: {
  50. default: ({ row }, h) => {
  51. let text = i18n.t('k8s.text_303')
  52. let className = 'success-color'
  53. if (row.mountedBy && row.mountedBy.length > 0) {
  54. text = i18n.t('k8s.text_302')
  55. className = 'error-color'
  56. }
  57. return [<div class={className}>{text}</div>]
  58. },
  59. },
  60. },
  61. getTimeTableColumn({ field: 'creationTimestamp', fromNow: true, sortable: true, width: 40 }),
  62. ]
  63. },
  64. }