List.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <template>
  2. <page-list
  3. :list="list"
  4. :columns="columns"
  5. :group-actions="groupActions"
  6. :single-actions="singleActions" />
  7. </template>
  8. <script>
  9. import ColumnsMixin from '../mixins/columns'
  10. import SingleActionsMixin from '../mixins/singleActions'
  11. import expectStatus from '@/constants/expectStatus'
  12. import WindowsMixin from '@/mixins/windows'
  13. import ListMixin from '@/mixins/list'
  14. import { getCreatedAtFilter } from '@/utils/common/tableFilter'
  15. export default {
  16. name: 'VmReleaseList',
  17. mixins: [WindowsMixin, ListMixin, ColumnsMixin, SingleActionsMixin],
  18. props: {
  19. id: String,
  20. getParams: {
  21. type: Object,
  22. default: () => ({ type: 'internal' }),
  23. },
  24. },
  25. data () {
  26. return {
  27. list: this.$list.createList(this, {
  28. id: this.id,
  29. resource: 'releases',
  30. apiVersion: 'v1',
  31. getParams: this.getParams,
  32. filterOptions: {
  33. name: {
  34. label: this.$t('helm.text_16'),
  35. },
  36. created_at: getCreatedAtFilter(),
  37. },
  38. steadyStatus: {
  39. status: Object.values(expectStatus.release).flat(),
  40. },
  41. itemGetParams: {
  42. cluster: '',
  43. namespace: '',
  44. },
  45. }),
  46. groupActions: [
  47. {
  48. label: this.$t('helm.text_68'),
  49. permission: 'k8s_releases_create',
  50. action: () => {
  51. this.$router.push({
  52. path: '/k8s-chart',
  53. query: {
  54. type: 'internal',
  55. },
  56. })
  57. },
  58. meta: () => ({
  59. buttonType: 'primary',
  60. }),
  61. },
  62. {
  63. label: this.$t('helm.text_69'),
  64. permission: 'k8s_releases_delete',
  65. action: () => {
  66. const data = this.list.selectedItems
  67. this.createDialog('DeleteResDialog', {
  68. vm: this,
  69. data,
  70. columns: this.columns,
  71. title: this.$t('helm.text_69'),
  72. name: this.$t('helm.text_3'),
  73. onManager: this.onManager,
  74. })
  75. },
  76. meta: () => this.$getDeleteResult(this.list.selectedItems),
  77. },
  78. ],
  79. }
  80. },
  81. created () {
  82. this.list.fetchData()
  83. },
  84. methods: {
  85. handleOpenSidepage (row) {
  86. this.sidePageTriggerHandle(this, 'VmReleaseSidePage', {
  87. id: row.id,
  88. resource: 'releases',
  89. apiVersion: 'v1',
  90. steadyStatus: {
  91. status: Object.values(expectStatus.k8s_resource).flat(),
  92. },
  93. }, {
  94. list: this.list,
  95. })
  96. },
  97. },
  98. }
  99. </script>