accountProps.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { getAccessUrlTableColumn } from '../utils/columns'
  2. import {
  3. getNameDescriptionTableColumn,
  4. getProjectDomainTableColumn,
  5. getBrandTableColumn,
  6. } from '@/utils/common/tableColumn'
  7. import {
  8. getNameFilter,
  9. getBrandFilter,
  10. } from '@/utils/common/tableFilter'
  11. export default {
  12. data () {
  13. return {}
  14. },
  15. computed: {
  16. accountsProps () {
  17. return {
  18. list: this.$list.createList(this, {
  19. resource: 'cloudaccounts',
  20. getParams: this.params,
  21. filterOptions: {
  22. name: getNameFilter(),
  23. brand: getBrandFilter(),
  24. },
  25. }),
  26. columns: [
  27. getNameDescriptionTableColumn({
  28. onManager: this.onManager,
  29. hideField: true,
  30. slotCallback: row => {
  31. return (
  32. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{ row.name }</side-page-trigger>
  33. )
  34. },
  35. }),
  36. getAccessUrlTableColumn(),
  37. getBrandTableColumn(),
  38. getProjectDomainTableColumn(),
  39. {
  40. field: 'tenant',
  41. title: this.$t('scope.text_573', [this.$t('dictionary.project')]),
  42. minWidth: 120,
  43. showOverflow: 'title',
  44. slots: {
  45. default: ({ row }) => {
  46. const ret = []
  47. if (row.auto_create_project) {
  48. ret.push(<span class='mr-2'>{this.$t('cloudenv.text_493')}</span>)
  49. ret.push(<help-tooltip name='cloudaccountAutoCreateProject' />)
  50. } else {
  51. ret.push(<list-body-cell-wrap copy field='tenant' row={row} />)
  52. }
  53. if (row.project_mapping) {
  54. ret.push(<list-body-cell-wrap copy field='project_mapping' row={row} hideField>{this.$t('cloudenv.text_580')}:{row.project_mapping}</list-body-cell-wrap>)
  55. }
  56. return ret
  57. },
  58. },
  59. },
  60. ],
  61. }
  62. },
  63. },
  64. }