fix: 虚拟化平台模块
This commit is contained in:
@@ -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 })
|
||||
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 }
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user