SubBackupDetail.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <vxe-grid class="mb-2" :data="data.disk_backups" :columns="columns" :resizable="true" />
  3. </template>
  4. <script>
  5. import {
  6. getNameDescriptionTableColumn,
  7. getStatusTableColumn,
  8. getTimeTableColumn,
  9. } from '@/utils/common/tableColumn'
  10. import {
  11. getDiskSizeTableColumn,
  12. getDiskTypeTableColumn,
  13. getSizeMbTableColumn,
  14. } from '../../disk-backup/utils/columns'
  15. import WindowsMixin from '@/mixins/windows'
  16. import expectStatus from '@/constants/expectStatus'
  17. export default {
  18. name: 'SubBackupDetail',
  19. mixins: [WindowsMixin],
  20. props: {
  21. resId: String,
  22. data: {
  23. type: Object,
  24. required: true,
  25. },
  26. },
  27. data () {
  28. return {
  29. columns: [
  30. getNameDescriptionTableColumn({
  31. onManager: this.onManager,
  32. hideField: true,
  33. addEncrypt: true,
  34. slotCallback: row => {
  35. return (
  36. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
  37. )
  38. },
  39. }),
  40. getStatusTableColumn({ statusModule: 'diskBackup' }),
  41. getDiskTypeTableColumn(),
  42. getDiskSizeTableColumn(),
  43. getSizeMbTableColumn(),
  44. getTimeTableColumn(),
  45. ],
  46. }
  47. },
  48. methods: {
  49. handleOpenSidepage (row) {
  50. this.sidePageTriggerHandle(this, 'DiskBackupSidePage', {
  51. id: row.id,
  52. resource: 'diskbackups',
  53. getParams: this.getParam,
  54. steadyStatus: Object.values(expectStatus.diskBackup).flat(),
  55. }, {
  56. list: this.list,
  57. })
  58. },
  59. },
  60. }
  61. </script>