serverListPropsForSetServer.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import _ from 'lodash'
  2. import {
  3. getNameDescriptionTableColumn,
  4. getIpsTableColumn,
  5. getProjectTableColumn,
  6. getStatusTableColumn,
  7. getRegionTableColumn,
  8. getBrandTableColumn,
  9. } from '@/utils/common/tableColumn'
  10. import {
  11. getNameFilter,
  12. getIpFilter,
  13. getBrandFilter,
  14. } from '@/utils/common/tableFilter'
  15. export default {
  16. data () {
  17. // const tenant_id = _.get(this.params, 'data[0].tenant_id')
  18. const brand = _.get(this.params, 'data[0].brand')
  19. const vpc_id = _.get(this.params, 'data[0].vpc_id')
  20. const hypervisor = _.get(this.params, 'hypervisor')
  21. const getParams = {
  22. filter: hypervisor === 'pod' ? 'hypervisor.in(pod)' : 'hypervisor.notin(container,baremetal,pod)',
  23. // project_id: tenant_id,
  24. scope: this.$store.getters.scope,
  25. }
  26. if (brand === 'Aws') {
  27. getParams.vpc_id = vpc_id
  28. }
  29. return {
  30. serverListProps: {
  31. list: this.$list.createList(this, {
  32. resource: 'servers',
  33. getParams,
  34. filterOptions: {
  35. name: getNameFilter(),
  36. ips: getIpFilter(),
  37. brand: getBrandFilter('compute_engine_brands'),
  38. },
  39. }),
  40. columns: [
  41. getNameDescriptionTableColumn({
  42. hideField: true,
  43. addLock: true,
  44. addBackup: true,
  45. edit: false,
  46. editDesc: false,
  47. minWidth: 120,
  48. slotCallback: row => {
  49. return [
  50. <list-body-cell-wrap field='name' row={row} />,
  51. ]
  52. },
  53. }),
  54. getIpsTableColumn({ field: 'ip', title: 'IP' }),
  55. getBrandTableColumn({ field: 'provider' }),
  56. getStatusTableColumn({ statusModule: 'server' }),
  57. getProjectTableColumn(),
  58. getRegionTableColumn(),
  59. ],
  60. },
  61. }
  62. },
  63. }