columns.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import {
  2. getEnabledTableColumn,
  3. getProjectDomainTableColumn,
  4. getNameDescriptionTableColumn,
  5. getPublicScopeTableColumn,
  6. getTimeTableColumn,
  7. } from '@/utils/common/tableColumn'
  8. import i18n from '@/locales'
  9. export default {
  10. created () {
  11. this.columns = [
  12. getNameDescriptionTableColumn({
  13. onManager: this.onManager,
  14. field: 'name',
  15. title: i18n.t('system.text_101'),
  16. minWidth: 100,
  17. edit: row => !row.is_system,
  18. editDesc: row => !row.is_system,
  19. hideField: true,
  20. formRules: [
  21. { required: true, message: i18n.t('system.text_168') },
  22. ],
  23. slotCallback: (row, h) => {
  24. return this.$createElement(
  25. 'side-page-trigger',
  26. {
  27. on: {
  28. trigger: () => this.handleOpenSidepage(row),
  29. },
  30. },
  31. row.name,
  32. )
  33. },
  34. }),
  35. getEnabledTableColumn(),
  36. {
  37. field: 'scope',
  38. title: i18n.t('system.text_430', [i18n.t('dictionary.policy')]),
  39. width: 100,
  40. formatter: ({ row }) => {
  41. return this.$t(`policyScopeLabel.${row.scope}`)
  42. },
  43. },
  44. getPublicScopeTableColumn({ vm: this, resource: 'policies' }),
  45. getProjectDomainTableColumn(),
  46. getTimeTableColumn(),
  47. ]
  48. },
  49. methods: {
  50. getTag (tag) {
  51. const { tags = [] } = tag
  52. const ret = tags.map(item => {
  53. const { key, value } = item
  54. if (value) {
  55. return `${key.replace('org:', '')}:${value}`
  56. } else {
  57. return key.replace('org:', '')
  58. }
  59. })
  60. return ret.join(' - ')
  61. },
  62. isOwnerPublic (obj) {
  63. // fix by http://bug.yunion.io/zentao/bug-view-2958.html 共享的权限在其他域下时应该不能做任何操作
  64. if (obj.is_public) {
  65. if (this.isAdminMode) return true
  66. if (obj.domain_id !== this.userInfo.domain.id) return false
  67. }
  68. return true
  69. },
  70. },
  71. }