columns.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { getNameDescriptionTableColumn, getTimeTableColumn, getProjectDomainTableColumn, getPublicScopeTableColumn } from '@/utils/common/tableColumn'
  2. import i18n from '@/locales'
  3. export default {
  4. created () {
  5. this.columns = [
  6. getNameDescriptionTableColumn({
  7. onManager: this.onManager,
  8. hideField: true,
  9. edit: true,
  10. showDesc: false,
  11. slotCallback: row => {
  12. return (
  13. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{ row.name }</side-page-trigger>
  14. )
  15. },
  16. }),
  17. {
  18. field: 'type',
  19. title: i18n.t('helm.text_92'),
  20. minWidth: 80,
  21. formatter: ({ row }) => {
  22. if (row.type === 'internal') return i18n.t('helm.text_14')
  23. if (row.type === 'external') return i18n.t('helm.text_15')
  24. return '-'
  25. },
  26. },
  27. {
  28. field: 'release_count',
  29. minWidth: 80,
  30. title: i18n.t('helm.text_102'),
  31. formatter: ({ row }) => row.release_count || '0',
  32. },
  33. {
  34. field: 'url',
  35. title: i18n.t('helm.text_96'),
  36. minWidth: '200px',
  37. slots: {
  38. default: ({ row }, h) => {
  39. const formRules = [
  40. { required: true, message: i18n.t('helm.text_94'), trigger: 'blur' },
  41. { validator: this.$validate('url') },
  42. ]
  43. return [h('list-body-cell-wrap', {
  44. props: {
  45. copy: true,
  46. edit: true,
  47. row,
  48. onManager: this.onManager,
  49. field: 'url',
  50. formRules,
  51. },
  52. })]
  53. },
  54. },
  55. },
  56. getProjectDomainTableColumn(),
  57. getPublicScopeTableColumn({ vm: this, resource: 'repos' }),
  58. getTimeTableColumn({ field: 'created_at', fromNow: true, sortable: true }),
  59. ]
  60. },
  61. }