index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <base-side-page
  3. @cancel="cancelSidePage"
  4. :title="$t('dictionary.cloudgroup')"
  5. icon="res-cloudgroup"
  6. :res-name="detailData.name"
  7. :actions="params.actions"
  8. :current-tab="params.windowData.currentTab"
  9. :tabs="detailTabs"
  10. :loaded="loaded"
  11. @tab-change="handleTabChange">
  12. <template v-slot:actions>
  13. <actions :options="singleActions" :row="detailData" button-type="link" button-size="small" />
  14. </template>
  15. <component
  16. :is="params.windowData.currentTab"
  17. :data="detailData"
  18. :on-manager="onManager"
  19. :res-id="data.id"
  20. :id="listId"
  21. :getParams="getParams"
  22. @tab-change="handleTabChange" />
  23. </base-side-page>
  24. </template>
  25. <script>
  26. import SidePageMixin from '@/mixins/sidePage'
  27. import WindowsMixin from '@/mixins/windows'
  28. import Actions from '@/components/PageList/Actions'
  29. import ColumnsMixin from '../mixins/columns'
  30. import SingleActionsMixin from '../mixins/singleActions'
  31. import CloudgroupDetail from './Detail'
  32. import ClouduserListForCloudgroupSidepage from './ClouduserList'
  33. import CloudpolicyListForCloudgroupSidepage from './CloudpolicyList'
  34. export default {
  35. name: 'CloudgroupSidePage',
  36. components: {
  37. Actions,
  38. CloudgroupDetail,
  39. ClouduserListForCloudgroupSidepage,
  40. CloudpolicyListForCloudgroupSidepage,
  41. },
  42. mixins: [SidePageMixin, WindowsMixin, ColumnsMixin, SingleActionsMixin],
  43. data () {
  44. return {
  45. detailTabs: [
  46. { label: this.$t('sidepage.tab.label.detail'), key: 'cloudgroup-detail' },
  47. { label: this.$t('dictionary.clouduser'), key: 'clouduser-list-for-cloudgroup-sidepage' },
  48. { label: this.$t('dictionary.policy'), key: 'cloudpolicy-list-for-cloudgroup-sidepage' },
  49. { label: this.$t('dictionary.actions'), key: 'event-drawer' },
  50. ],
  51. }
  52. },
  53. computed: {
  54. getParams () {
  55. if (
  56. this.params.windowData.currentTab === 'clouduser-list-for-cloudgroup-sidepage' ||
  57. this.params.windowData.currentTab === 'cloudpolicy-list-for-cloudgroup-sidepage'
  58. ) {
  59. return {
  60. cloudgroup_id: this.data.id,
  61. }
  62. }
  63. return null
  64. },
  65. listId () {
  66. switch (this.params.windowData.currentTab) {
  67. case 'event-drawer':
  68. return 'EventListForCloudgroupSidePage'
  69. case 'clouduser-list-for-cloudgroup-sidepage':
  70. return 'ClouduserListForCloudgroupSidePage'
  71. case 'cloudpolicy-list-for-cloudgroup-sidepage':
  72. return 'CloudpolicyListForCloudgroupSidePage'
  73. default:
  74. return ''
  75. }
  76. },
  77. },
  78. }
  79. </script>