columns.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import {
  2. getNameDescriptionTableColumn,
  3. getStatusTableColumn,
  4. getTagTableColumn,
  5. getBrandTableColumn,
  6. getAccountTableColumn,
  7. } from '@/utils/common/tableColumn'
  8. import {
  9. getVpcTableColumn,
  10. getPeerVpcTableColumn,
  11. getExtPeerAccountTableColumn,
  12. } from '../utils/column'
  13. export default {
  14. created () {
  15. this.columns = [
  16. getNameDescriptionTableColumn({
  17. onManager: this.onManager,
  18. hideField: true,
  19. slotCallback: row => {
  20. return (
  21. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
  22. )
  23. },
  24. }),
  25. getStatusTableColumn({ statusModule: 'vpcPeerConnect', vm: this }),
  26. getTagTableColumn({ onManager: this.onManager, resource: 'vpc_peering_connections', columns: () => this.columns }),
  27. getVpcTableColumn(this),
  28. getPeerVpcTableColumn(),
  29. getExtPeerAccountTableColumn(),
  30. {
  31. field: 'project',
  32. title: this.$t('common.attribution_scope'),
  33. slots: {
  34. default: ({ row }, h) => {
  35. const ret = []
  36. const domain = row.project_domain || row.domain
  37. if (domain) {
  38. ret.push(
  39. <list-body-cell-wrap hide-field copy field="domain" row={{ domain }}>
  40. <span>{ domain }</span>
  41. </list-body-cell-wrap>,
  42. )
  43. }
  44. return ret
  45. },
  46. },
  47. },
  48. getBrandTableColumn(),
  49. getAccountTableColumn({ vm: this }),
  50. ]
  51. },
  52. }