fix: 虚拟化平台模块
Build and Deploy Vue3 / build (push) Successful in 2m40s
Build and Deploy Vue3 / deploy (push) Has been cancelled

This commit is contained in:
2026-04-15 16:41:06 +08:00
parent 7652b290b0
commit 5428f01cdf
+33 -9
View File
@@ -1029,7 +1029,12 @@
</template>
</el-dialog>
<!-- 数据迁移用网络选择器 -->
<NetworkSelectorPopup v-model="showDataMigrateNetworkSelector" :service-id="dataMigrateForm.target_service_id" :host-id="dataMigrateForm.target_host_id" @confirm="handleDataMigrateNetworkConfirm" />
<NetworkSelectorPopup ref="dataMigrateNetSelectorRef" v-model="showDataMigrateNetworkSelector"
:service-id="dataMigrateForm.target_service_id || 0"
:host-id="dataMigrateForm.target_host_id || 0"
filter-type="bridge" filter-used="false" :multiple="true"
@confirm="handleDataMigrateNetworkConfirm"
@create="() => handleNetCreate('dataMigrate')" />
<!-- 数据迁移进度弹窗 -->
<el-dialog v-model="dataMigrateProgressVisible" title="数据迁移进度" width="560px" destroy-on-close>
@@ -2142,13 +2147,14 @@ const dataMigrateTaskId = ref('')
const dataMigrateForm = reactive({ target_service_id: null, target_host_id: null, ipv4_num: 0, ipv6_num: 0, network_ids: [] })
const dataMigrateNetworkOptions = ref([])
const showDataMigrateNetworkSelector = ref(false)
const dataMigrateNetSelectorRef = ref(null)
const dataMigrateSelectedNetworks = ref([])
const handleDataMigrateNetworkConfirm = (network) => {
if (!dataMigrateSelectedNetworks.value.some(n => n.id === network.id)) {
dataMigrateSelectedNetworks.value.push({ id: network.id, name: network.name })
dataMigrateForm.network_ids = dataMigrateSelectedNetworks.value.map(n => n.id)
}
const handleDataMigrateNetworkConfirm = (items) => {
const arr = Array.isArray(items) ? items : [items]
const existIds = new Set(dataMigrateSelectedNetworks.value.map(n => n.id))
arr.forEach(n => { if (!existIds.has(n.id)) dataMigrateSelectedNetworks.value.push(n) })
dataMigrateForm.network_ids = dataMigrateSelectedNetworks.value.map(n => n.id)
}
const removeDataMigrateNetwork = (id) => {
dataMigrateSelectedNetworks.value = dataMigrateSelectedNetworks.value.filter(n => n.id !== id)
@@ -2452,7 +2458,8 @@ const netFormRules = {
const handleNetCreate = (source = '') => {
netDialogSource.value = source
netDialogType.value = 'add'
Object.assign(netForm, { id: 0, name: '', address: '', gateway: '', nameservers: '', type: 'bridge', mac_address: '', bridge_name: '', ls_bridge_name: '', ls_name: '', host_id: vmHostId.value })
const hostId = source === 'dataMigrate' ? (dataMigrateForm.target_host_id || vmHostId.value) : vmHostId.value
Object.assign(netForm, { id: 0, name: '', address: '', gateway: '', nameservers: '', type: 'bridge', mac_address: '', bridge_name: '', ls_bridge_name: '', ls_name: '', host_id: hostId })
netDialogVisible.value = true
}
const handleNetDialogCancel = () => {
@@ -2465,6 +2472,7 @@ const handleNetDialogCancel = () => {
else if (src === 'refactorInternal') showRefactorInternalNetworkSelector.value = true
else if (src === 'bindBridge') showNetBindBridgeSelector.value = true
else if (src === 'bindNat') showNetBindNatSelector.value = true
else if (src === 'dataMigrate') showDataMigrateNetworkSelector.value = true
}
const handleNetEdit = (row) => {
@@ -2478,7 +2486,8 @@ const submitNetForm = () => {
actionLoading.value = true
try {
const fd = new FormData()
fd.append('service_id', serviceId.value)
const sid = netDialogSource.value === 'dataMigrate' && dataMigrateForm.target_service_id ? dataMigrateForm.target_service_id : serviceId.value
fd.append('service_id', sid)
fd.append('name', netForm.name)
fd.append('address', netForm.address)
fd.append('gateway', netForm.gateway)
@@ -2492,7 +2501,22 @@ const submitNetForm = () => {
let res
if (netDialogType.value === 'add') { res = await createNetwork(fd) }
else { fd.append('id', netForm.id); res = await updateNetwork(fd) }
if (res?.data?.code === 200) { ElMessage.success(netDialogType.value === 'add' ? '创建成功' : '修改成功'); netDialogVisible.value = false; loadDetail() }
if (res?.data?.code === 200) {
ElMessage.success(netDialogType.value === 'add' ? '创建成功' : '修改成功')
netDialogVisible.value = false
const src = netDialogSource.value
netDialogSource.value = ''
if (src === 'dataMigrate') { nextTick(() => dataMigrateNetSelectorRef.value?.loadList()) }
else {
if (src === 'edit') showEditNetworkSelector.value = true
else if (src === 'editInternal') showEditInternalNetworkSelector.value = true
else if (src === 'refactor') showRefactorNetworkSelector.value = true
else if (src === 'refactorInternal') showRefactorInternalNetworkSelector.value = true
else if (src === 'bindBridge') showNetBindBridgeSelector.value = true
else if (src === 'bindNat') showNetBindNatSelector.value = true
loadDetail()
}
}
else ElMessage.error(extractApiError(res?.data, '操作失败'))
} catch (e) { ElMessage.error(extractApiError(e?.response?.data, '操作失败')) } finally { actionLoading.value = false }
})