serverProps.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import {
  2. getNameDescriptionTableColumn,
  3. getStatusTableColumn,
  4. getBrandTableColumn,
  5. } from '@/utils/common/tableColumn'
  6. import {
  7. getNameFilter,
  8. } from '@/utils/common/tableFilter'
  9. export default {
  10. data () {
  11. return {
  12. serverProps: {
  13. list: this.$list.createList(this, {
  14. resource: 'servers',
  15. getParams: () => {
  16. const params = {
  17. filter: 'status.in(\'ready\',\'running\')',
  18. cloud_env: 'onpremise',
  19. binding_snapshotpolicy: false,
  20. }
  21. if (this.params.data[0]?.cloudregion_id) {
  22. params.cloudregion_id = this.params.data[0].cloudregion_id
  23. }
  24. return params
  25. },
  26. filterOptions: {
  27. name: getNameFilter(),
  28. },
  29. }),
  30. columns: [
  31. getNameDescriptionTableColumn({
  32. onManager: this.onManager,
  33. hideField: true,
  34. formRules: [
  35. { required: true, message: this.$t('compute.text_210') },
  36. { validator: this.$validate('resourceCreateName') },
  37. ],
  38. slotCallback: row => {
  39. return (
  40. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
  41. )
  42. },
  43. }),
  44. getStatusTableColumn({ statusModule: 'server' }),
  45. getBrandTableColumn(),
  46. {
  47. field: 'disks_snapshotpolicy_count',
  48. title: this.$t('compute.disks_snapshotpolicy_count'),
  49. formatter: ({ row }) => {
  50. return row.disks_snapshotpolicy_count || 0
  51. },
  52. },
  53. ],
  54. },
  55. }
  56. },
  57. }