index.vue 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <base-side-page
  3. @cancel="cancelSidePage"
  4. title="RDS"
  5. icon="res-rds"
  6. :res-name="detailData.name"
  7. :tabs="detailTabs"
  8. :current-tab="params.windowData.currentTab"
  9. :loaded="loaded"
  10. @tab-change="handleTabChange">
  11. <template v-slot:actions v-if="showActions">
  12. <actions :options="singleActions" :row="detailData" button-type="link" button-size="small" />
  13. </template>
  14. <component
  15. :is="params.windowData.currentTab"
  16. :data="detailData"
  17. :on-manager="onManager"
  18. :params="getParams"
  19. :getParams="getParams"
  20. :show-create-action="false"
  21. :res-id="getParams.dbinstance"
  22. :id="listId"
  23. :columns="columns"
  24. taskResource="compute-tasks" />
  25. </base-side-page>
  26. </template>
  27. <script>
  28. import BackupList from '@DB/views/rds-backup/components/List'
  29. import AccountList from '@DB/views/rds-account/components/List'
  30. import DatabaseList from '@DB/views/rds-database/components/List'
  31. import SidePageMixin from '@/mixins/sidePage'
  32. import WindowsMixin from '@/mixins/windows'
  33. import Actions from '@/components/PageList/Actions'
  34. import SecgroupList from '@Compute/views/secgroup/components/List'
  35. import Monitor from './Monitor'
  36. import Detail from './Detail'
  37. import ColumnsMixin from '../mixins/columns'
  38. import SingleActionsMixin from '../mixins/singleActions'
  39. export default {
  40. name: 'RDSSidePage',
  41. components: {
  42. Actions,
  43. AccountList,
  44. Detail,
  45. SecgroupList,
  46. DatabaseList,
  47. BackupList,
  48. Monitor,
  49. },
  50. mixins: [SidePageMixin, WindowsMixin, ColumnsMixin, SingleActionsMixin],
  51. data () {
  52. return {
  53. detailTabs: [
  54. { label: this.$t('db.text_187'), key: 'detail' },
  55. { label: this.$t('db.text_188'), key: 'account-list' },
  56. { label: this.$t('db.text_189'), key: 'database-list' },
  57. { label: this.$t('db.text_190'), key: 'backup-list' },
  58. { label: this.$t('db.text_191'), key: 'monitor' },
  59. { label: this.$t('table.title.task'), key: 'task-drawer' },
  60. { label: this.$t('db.text_192'), key: 'event-drawer' },
  61. ],
  62. }
  63. },
  64. computed: {
  65. getParams () {
  66. return {
  67. dbinstance: this.detailData.id,
  68. details: true,
  69. }
  70. },
  71. showActions () {
  72. return !this.$isScopedPolicyMenuHidden('rds_hidden_columns.perform_action')
  73. },
  74. listId () {
  75. switch (this.params.windowData.currentTab) {
  76. case 'event-drawer':
  77. return 'EventListForRDSSidePage'
  78. case 'account-list':
  79. return 'AccountListForRDSSidePage'
  80. case 'database-list':
  81. return 'DatabaseListForRDSSidePage'
  82. case 'backup-list':
  83. return 'BackupListForRDSSidePage'
  84. default:
  85. return ''
  86. }
  87. },
  88. },
  89. }
  90. </script>