columns.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {
  2. getNameDescriptionTableColumn,
  3. getTimeTableColumn,
  4. getEnabledTableColumn,
  5. getCopyWithContentTableColumn,
  6. } from '@/utils/common/tableColumn'
  7. import i18n from '@/locales'
  8. import validateForm from '@/utils/validate'
  9. export default {
  10. created () {
  11. this.columns = [
  12. getNameDescriptionTableColumn({
  13. onManager: this.onManager,
  14. hideField: true,
  15. formRules: [
  16. { required: true, message: i18n.t('compute.text_210') },
  17. { validator: validateForm('serverCreateName') },
  18. ],
  19. slotCallback: row => {
  20. return (
  21. <side-page-trigger onTrigger={() => this.handleOpenSidepage(row)}>{row.name}</side-page-trigger>
  22. )
  23. },
  24. }),
  25. getEnabledTableColumn(),
  26. {
  27. title: i18n.t('compute.text_175'),
  28. field: 'type',
  29. formatter: ({ row }) => {
  30. if (row.type === 'host') {
  31. return i18n.t('compute.host_port')
  32. }
  33. if (row.type === 'guest') {
  34. return i18n.t('compute.guest_port')
  35. }
  36. return '-'
  37. },
  38. },
  39. {
  40. title: i18n.t('compute.target_name'),
  41. field: 'target',
  42. },
  43. {
  44. title: i18n.t('compute.target_ip'),
  45. field: 'target_ips',
  46. slots: {
  47. default: ({ row }) => {
  48. const { target_ips = '' } = row
  49. const ips = target_ips.split(',')
  50. return ips.map(ip => {
  51. return <list-body-cell-wrap copy field='ip' row={{ ip }} title={ip} />
  52. })
  53. },
  54. },
  55. },
  56. getCopyWithContentTableColumn({
  57. field: 'mac_addr',
  58. title: i18n.t('compute.target_mac'),
  59. hideField: true,
  60. message: (row) => {
  61. return row.mac_addr
  62. },
  63. slotCallback: (row) => {
  64. return row.mac_addr
  65. },
  66. }),
  67. {
  68. title: i18n.t('compute.flow_count'),
  69. field: 'flow_count',
  70. },
  71. getTimeTableColumn(),
  72. ]
  73. },
  74. }