columns.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import i18n from '@/locales'
  2. export const getResourceMatchProjectTableColumn = () => {
  3. return {
  4. field: 'resource_tenant',
  5. title: i18n.t('cloudenv.text_356', [i18n.t('dictionary.project')]),
  6. minWidth: 120,
  7. showOverflow: 'title',
  8. slots: {
  9. default: ({ row }, h) => {
  10. const ret = []
  11. ret.push(<list-body-cell-wrap copy field='tenant' row={row} />)
  12. if (row.project_mapping) {
  13. let label = ''
  14. if (row.enable_resource_sync) {
  15. label = i18n.t('cloudenv.resource_project_mapping')
  16. } else if (row.enable_project_sync) {
  17. label = i18n.t('cloudenv.project_project_mapping')
  18. }
  19. ret.push(<list-body-cell-wrap copy field='project_mapping' row={row} hideField><span class="text-color-secondary">{label || i18n.t('cloudenv.text_580')}:{row.project_mapping}</span></list-body-cell-wrap>)
  20. }
  21. return ret
  22. },
  23. },
  24. formatter: ({ row }) => {
  25. const ret = []
  26. ret.push(row.tenant)
  27. if (row.project_mapping) {
  28. let label = ''
  29. if (row.enable_resource_sync) {
  30. label = i18n.t('cloudenv.resource_project_mapping')
  31. } else if (row.enable_project_sync) {
  32. label = i18n.t('cloudenv.project_project_mapping')
  33. }
  34. ret.push(`${label || i18n.t('cloudenv.text_580')}:${row.project_mapping}`)
  35. }
  36. return ret
  37. },
  38. }
  39. }