columns.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import {
  2. getNameDescriptionTableColumn,
  3. getStatusTableColumn,
  4. getEnabledTableColumn,
  5. getCopyWithContentTableColumn,
  6. getTimeTableColumn,
  7. } from '@/utils/common/tableColumn'
  8. import i18n from '@/locales'
  9. export default {
  10. created () {
  11. const driverOptions = Object.keys(this.$t('idpDrivers')).reduce((prev, current) => {
  12. prev[current.toLowerCase()] = current
  13. return prev
  14. }, {})
  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: 'idp' }),
  26. getEnabledTableColumn(),
  27. getStatusTableColumn({ title: i18n.t('system.text_203'), field: 'sync_status', statusModule: 'sync', minWidth: 120 }),
  28. getEnabledTableColumn({
  29. title: i18n.t('common_501'),
  30. field: 'auto_create_user',
  31. minWidth: 130,
  32. }),
  33. {
  34. field: 'driver',
  35. title: i18n.t('system.text_204'),
  36. minWidth: 80,
  37. showOverflow: 'ellipsis',
  38. formatter: ({ cellValue }) => {
  39. return driverOptions[cellValue] || cellValue
  40. },
  41. },
  42. getCopyWithContentTableColumn({
  43. field: 'template',
  44. title: i18n.t('common_550'),
  45. hideField: true,
  46. message: (row) => {
  47. const v = row.template || row.driver
  48. return this.$t('idpTmplTitles')[v] ? this.$t(`idpTmplTitles.${v}`) : v || '-'
  49. },
  50. slotCallback: (row) => {
  51. const v = row.template || row.driver
  52. return this.$t('idpTmplTitles')[v] ? this.$t(`idpTmplTitles.${v}`) : v || '-'
  53. },
  54. }),
  55. {
  56. minWidth: 120,
  57. field: 'project_domain',
  58. title: this.$t('common_548'),
  59. slots: {
  60. default: ({ row }, h) => {
  61. if (!row.project_domain) return this.$t('system.text_15')
  62. return [
  63. <list-body-cell-wrap copy field={'project_domain'} row={row} hideField={true} message={row.project_domain}>
  64. {row.project_domain}
  65. </list-body-cell-wrap>,
  66. ]
  67. },
  68. },
  69. },
  70. getTimeTableColumn(),
  71. ]
  72. },
  73. }