index.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <base-side-page
  3. @cancel="cancelSidePage"
  4. :title="$t('cloudenv.text_580')"
  5. icon="res-projectmapping"
  6. :res-name="detailData.name"
  7. :current-tab="params.windowData.currentTab"
  8. :loaded="loaded"
  9. :tabs="detailTabs"
  10. @tab-change="handleTabChange">
  11. <template v-slot:actions>
  12. <actions
  13. :options="singleActions"
  14. :row="detailData"
  15. :before-show-menu="beforeShowMenu"
  16. button-type="link"
  17. button-size="small" />
  18. </template>
  19. <component :is="params.windowData.currentTab" :res-id="data.id" :id="listId" :data="detailData" :on-manager="onManager" :getParams="getParams" @tab-change="handleTabChange" />
  20. </base-side-page>
  21. </template>
  22. <script>
  23. import RuleList from '@Cloudenv/views/projectmapping/components/RuleList/index.vue'
  24. import Actions from '@/components/PageList/Actions'
  25. import SidePageMixin from '@/mixins/sidePage'
  26. import WindowsMixin from '@/mixins/windows'
  27. import ColumnsMixin from '../mixins/columns'
  28. import SingleActionsMixin from '../mixins/singleActions'
  29. import detail from './Detail'
  30. export default {
  31. name: 'ProjectMappingSidePage',
  32. components: {
  33. Actions,
  34. detail,
  35. RuleList,
  36. },
  37. mixins: [SidePageMixin, WindowsMixin, ColumnsMixin, SingleActionsMixin],
  38. data () {
  39. return {
  40. detailTabs: [
  41. { label: this.$t('cloudenv.text_237'), key: 'detail' },
  42. { label: this.$t('cloudenv.text_582'), key: 'rule-list' },
  43. { label: this.$t('cloudenv.text_15'), key: 'event-drawer' },
  44. ],
  45. }
  46. },
  47. computed: {
  48. getParams () {
  49. return {
  50. proxy_setting: this.detailData.id,
  51. }
  52. },
  53. listId () {
  54. switch (this.params.windowData.currentTab) {
  55. case 'event-drawer':
  56. return 'EventListForProjectMappingSidePage'
  57. case 'rule-list':
  58. return 'ProjectMappingRuleListForProjectMappingSidePage'
  59. default:
  60. return ''
  61. }
  62. },
  63. },
  64. methods: {
  65. openSidePageRuleList (row) {
  66. this.params.windowData.currentTab = 'rule-list'
  67. },
  68. },
  69. }
  70. </script>