columns.js 1.7 KB

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