columns.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import {
  2. getNameDescriptionTableColumn,
  3. getEnabledTableColumn,
  4. getStatusTableColumn,
  5. getProjectTableColumn,
  6. getTimeTableColumn,
  7. getIpsTableColumn,
  8. } from '@/utils/common/tableColumn'
  9. import i18n from '@/locales'
  10. export default {
  11. created () {
  12. this.columns = [
  13. getNameDescriptionTableColumn({
  14. onManager: this.onManager,
  15. hideField: true,
  16. slotCallback: row => {
  17. return (
  18. <side-page-trigger vm={this} name='InstanceGroupSidePage' id={row.id} list={this.list} tab='instance-group-detail'>{ row.name }</side-page-trigger>
  19. )
  20. },
  21. }),
  22. getStatusTableColumn({ statusModule: 'instanceGroup', vm: this }),
  23. getEnabledTableColumn(),
  24. {
  25. field: 'force_dispersion',
  26. title: i18n.t('table.title.strategy'),
  27. minWidth: 70,
  28. formatter: ({ cellValue }) => {
  29. let ret = i18n.t('compute.text_696')
  30. if (cellValue) ret = i18n.t('compute.text_695')
  31. return ret
  32. },
  33. },
  34. {
  35. field: 'granularity',
  36. title: i18n.t('table.title.granularity'),
  37. minWidth: 70,
  38. },
  39. {
  40. field: 'guest_count',
  41. title: i18n.t('compute.associated_instances'),
  42. minWidth: 120,
  43. slots: {
  44. default: ({ row }) => {
  45. if (this.isPreLoad && row.guest_count === undefined) return [<data-loading />]
  46. return [<side-page-trigger vm={this} name='InstanceGroupSidePage' id={row.id} list={this.list} tab='associated-instances'>{ row.guest_count }</side-page-trigger>]
  47. },
  48. },
  49. },
  50. getIpsTableColumn({ field: 'vips', title: i18n.t('compute.vip_address'), vm: this }),
  51. getTimeTableColumn(),
  52. getProjectTableColumn(),
  53. ]
  54. },
  55. }