List.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <page-list
  3. :list="list"
  4. :columns="columns"
  5. :export-data-options="exportDataOptions" />
  6. </template>
  7. <script>
  8. import ColumnsMixin from '../mixins/columns'
  9. import { getNameFilter, getEnabledFilter, getDescriptionFilter } from '@/utils/common/tableFilter'
  10. import WindowsMixin from '@/mixins/windows'
  11. import ListMixin from '@/mixins/list'
  12. export default {
  13. name: 'CloudregionList',
  14. mixins: [WindowsMixin, ListMixin, ColumnsMixin],
  15. props: {
  16. id: String,
  17. },
  18. data () {
  19. return {
  20. list: this.$list.createList(this, {
  21. id: this.id,
  22. resource: 'cloudregions',
  23. getParams: { cloud_env: 'private_or_onpremise' },
  24. filterOptions: {
  25. name: getNameFilter(),
  26. description: getDescriptionFilter(),
  27. enabled: getEnabledFilter({ label: this.$t('cloudenv.text_98') }),
  28. },
  29. }),
  30. exportDataOptions: {
  31. items: [
  32. { label: 'ID', key: 'id' },
  33. { label: this.$t('cloudenv.text_95'), key: 'name' },
  34. { label: this.$t('cloudenv.text_98'), key: 'status' },
  35. { label: this.$t('cloudenv.text_369'), key: 'guest_count' },
  36. { label: 'VPC', key: 'vpc_count' },
  37. { label: this.$t('cloudenv.text_11'), key: 'zone_count' },
  38. { label: this.$t('cloudenv.text_102'), key: 'provider' },
  39. ],
  40. getParams: {
  41. cloud_env: 'private_or_onpremise',
  42. show_fail_reason: true,
  43. },
  44. },
  45. }
  46. },
  47. created () {
  48. this.initSidePageTab('cloudregion-detail')
  49. this.list.fetchData()
  50. },
  51. methods: {
  52. handleOpenSidepage (row) {
  53. this.sidePageTriggerHandle(this, 'CloudregionSidePage', {
  54. id: row.id,
  55. resource: 'cloudregions',
  56. }, {
  57. list: this.list,
  58. })
  59. },
  60. },
  61. }
  62. </script>