diff --git a/src/router/index.js b/src/router/index.js
index 241e24b..656d932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -556,14 +556,6 @@ const routes = [
title: 'VNC指令管理'
}
},
- {
- path: 'migration-record',
- name: 'VmMigrationRecord',
- component: () => import('../views/virtualization/VmMigrationRecord.vue'),
- meta: {
- title: '虚拟机迁移记录'
- }
- },
{
path: 'host-detail',
name: 'VirtHostDetail',
diff --git a/src/views/user-vm/UserVmDetail.vue b/src/views/user-vm/UserVmDetail.vue
index 86d986f..b060993 100644
--- a/src/views/user-vm/UserVmDetail.vue
+++ b/src/views/user-vm/UserVmDetail.vue
@@ -6,10 +6,7 @@
用户虚拟机详情
-
- 迁移记录
- 刷新
-
+ 刷新
diff --git a/src/views/virtualization/KvmServiceDetail.vue b/src/views/virtualization/KvmServiceDetail.vue
index 5cfdfd4..2ba1f2e 100644
--- a/src/views/virtualization/KvmServiceDetail.vue
+++ b/src/views/virtualization/KvmServiceDetail.vue
@@ -107,6 +107,9 @@
+
+
+
@@ -161,6 +164,7 @@ const VncNodeManage = defineAsyncComponent(() => import('./VncNodeManage.vue'))
const SnapshotManage = defineAsyncComponent(() => import('./SnapshotManage.vue'))
const BackupManage = defineAsyncComponent(() => import('./BackupManage.vue'))
const UserNetworkingManage = defineAsyncComponent(() => import('./UserNetworkingManage.vue'))
+const VmMigrationRecord = defineAsyncComponent(() => import('./VmMigrationRecord.vue'))
// 引入tagsViewStore
import { useTagsViewStore } from '@/store/tagsViewStore'
@@ -193,7 +197,8 @@ const tabLoaded = reactive({
'vnc': false,
'snapshot': false,
'backup': false,
- 'networking': false
+ 'networking': false,
+ 'migration': false
})
@@ -347,8 +352,11 @@ const initPage = () => {
// 重置所有 tab 加载状态,使子组件在切换后重新拉取数据
Object.keys(tabLoaded).forEach(k => { tabLoaded[k] = false })
+ const queryTab = route.query.tab
const savedTab = localStorage.getItem('kvmDetailActiveTab')
- if (savedTab && tabLoaded.hasOwnProperty(savedTab)) {
+ if (queryTab && tabLoaded.hasOwnProperty(queryTab)) {
+ activeTab.value = queryTab
+ } else if (savedTab && tabLoaded.hasOwnProperty(savedTab)) {
activeTab.value = savedTab
} else {
activeTab.value = 'host'
@@ -583,4 +591,8 @@ onMounted(() => {
padding: 0;
}
+.custom-tabs :deep(.migration-record-page) {
+ padding: 0;
+}
+
diff --git a/src/views/virtualization/VmDetail.vue b/src/views/virtualization/VmDetail.vue
index aabae1d..5e39a45 100644
--- a/src/views/virtualization/VmDetail.vue
+++ b/src/views/virtualization/VmDetail.vue
@@ -1769,7 +1769,10 @@ const tagsViewStore = useTagsViewStore()
const serviceId = computed(() => parseInt(route.query.service_id) || 0)
const serviceName = computed(() => route.query.service_name || '')
const vmId = computed(() => parseInt(route.query.vm_id) || 0)
-const goMigrationRecords = (query = {}) => router.push({ path: '/virtualization/migration-record', query })
+const goMigrationRecords = (query = {}) => router.push({
+ path: '/virtualization/kvm-service-detail',
+ query: { service_id: serviceId.value, service_name: serviceName.value, tab: 'migration', ...query }
+})
const goVmById = (targetServiceId, targetVmId) => router.push({ path: '/virtualization/vm-detail', query: { service_id: targetServiceId, vm_id: targetVmId } })
const loading = ref(false)
diff --git a/src/views/virtualization/VmMigrationRecord.vue b/src/views/virtualization/VmMigrationRecord.vue
index 628cc04..82ae8d7 100644
--- a/src/views/virtualization/VmMigrationRecord.vue
+++ b/src/views/virtualization/VmMigrationRecord.vue
@@ -10,6 +10,9 @@
+
+
+
@@ -88,7 +91,7 @@