columns.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import * as R from 'ramda'
  2. import { getNameDescriptionTableColumn, getBrandTableColumn, getStatusTableColumn, getCopyWithContentTableColumn, getProjectTableColumn, getTimeTableColumn } from '@/utils/common/tableColumn'
  3. import i18n from '@/locales'
  4. export default {
  5. props: {
  6. getColumns: {
  7. type: [Function, Array],
  8. },
  9. },
  10. data () {
  11. return {
  12. columns: this.getColumn(),
  13. }
  14. },
  15. methods: {
  16. getColumn () {
  17. let column = []
  18. if (R.is(Function, this.getColumns)) {
  19. column = this.getColumns()
  20. return column
  21. }
  22. if (R.is(Array, this.getColumns) && this.getColumns.length > 0) {
  23. column = this.getColumns
  24. return column
  25. }
  26. column = [
  27. getNameDescriptionTableColumn({
  28. field: 'name',
  29. edit: false,
  30. editDesc: false,
  31. hideField: true,
  32. slotCallback: row => {
  33. return (
  34. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{row.name}</side-page-trigger>
  35. )
  36. },
  37. }),
  38. getStatusTableColumn({ statusModule: 'disk', hiddenLogView: true }),
  39. {
  40. field: 'disk_type',
  41. title: i18n.t('compute.text_175'),
  42. width: 70,
  43. formatter: ({ cellValue }) => {
  44. return cellValue === 'sys' ? i18n.t('compute.text_49') : i18n.t('compute.text_50')
  45. },
  46. },
  47. getCopyWithContentTableColumn({
  48. field: 'storage',
  49. title: i18n.t('compute.text_99'),
  50. hideField: true,
  51. slotCallback: (row) => {
  52. if (!row.storage) return [<data-loading />]
  53. return row.storage
  54. },
  55. }),
  56. getCopyWithContentTableColumn({
  57. field: 'guest',
  58. title: this.$t('dictionary.server'),
  59. hideField: true,
  60. slotCallback: (row) => {
  61. if (this.isPreLoad && !row.guest) return [<data-loading />]
  62. return row.guest
  63. },
  64. }),
  65. getBrandTableColumn(),
  66. getTimeTableColumn({ field: 'auto_delete_at', title: i18n.t('compute.text_480'), vm: this }),
  67. getProjectTableColumn(),
  68. ]
  69. return column
  70. },
  71. },
  72. }