columns.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { getNameDescriptionTableColumn, getProjectTableColumn, getBrandTableColumn, getAccountTableColumn } from '@/utils/common/tableColumn'
  2. export default {
  3. created () {
  4. this.columns = [
  5. getNameDescriptionTableColumn({
  6. hideField: true,
  7. edit: false,
  8. onManager: this.onManager,
  9. slotCallback: row => {
  10. return (
  11. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row, '')}>{ row.name }</side-page-trigger>
  12. )
  13. },
  14. }),
  15. {
  16. field: 'ips',
  17. title: 'IP',
  18. formatter: ({ row }) => {
  19. if (row.access_ip) {
  20. return row.access_ip
  21. } else if (row.ips) {
  22. return row.ips
  23. }
  24. return '-'
  25. },
  26. },
  27. {
  28. field: 'alert_state',
  29. title: this.$t('monitor.monitorresources.alert_state'),
  30. sortable: true,
  31. slots: {
  32. default: ({ row }, h) => {
  33. return [
  34. <div class='text-truncate'>
  35. <status status={row.alert_state} statusModule="monitorresources" />
  36. </div>,
  37. ]
  38. },
  39. },
  40. },
  41. {
  42. field: 'status',
  43. title: this.$t('common.status'),
  44. sortable: true,
  45. slots: {
  46. default: ({ row }, h) => {
  47. let m = 'server'
  48. if (row.res_type) {
  49. if (row.res_type === 'guest') {
  50. m = 'server'
  51. } else if (row.res_type === 'storage') {
  52. m = 'blockstorage'
  53. } else {
  54. m = row.res_type
  55. }
  56. }
  57. return [
  58. <div class='text-truncate'>
  59. <status status={row.status} statusModule={m} />
  60. </div>,
  61. ]
  62. },
  63. },
  64. },
  65. getBrandTableColumn(),
  66. getAccountTableColumn({ vm: this }),
  67. getProjectTableColumn({ vm: this, title: this.$t('common_547', ['']) }),
  68. ]
  69. this.extandData = {}
  70. },
  71. }