fix: 网络模块
Build and Deploy Vue3 / build (push) Successful in 1m59s
Build and Deploy Vue3 / deploy (push) Successful in 1m21s

This commit is contained in:
2026-04-15 16:46:28 +08:00
parent 5428f01cdf
commit cae1f847e4
2 changed files with 27 additions and 24 deletions
@@ -144,9 +144,10 @@ const handleConfirm = () => {
}
const handleClose = () => { selectedItem.value = null }
const handleCreate = () => {
visible.value = false
emit('create')
}
defineExpose({ loadList })
</script>
<style scoped>
+25 -23
View File
@@ -771,9 +771,9 @@
</template>
</el-dialog>
<!-- 编辑用网络选择器(外网 bridge -->
<NetworkSelectorPopup v-model="showEditNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleEditNetworkConfirm" @create="() => handleNetCreate('edit')" />
<NetworkSelectorPopup ref="editNetSelectorRef" v-model="showEditNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleEditNetworkConfirm" @create="() => handleNetCreate('edit')" />
<!-- 编辑用内网选择器(内网 nat -->
<NetworkSelectorPopup v-model="showEditInternalNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleEditInternalNetworkConfirm" @create="() => handleNetCreate('editInternal')" />
<NetworkSelectorPopup ref="editInternalNetSelectorRef" v-model="showEditInternalNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleEditInternalNetworkConfirm" @create="() => handleNetCreate('editInternal')" />
<!-- 重构虚拟机弹窗 -->
<el-dialog v-model="refactorDialogVisible" title="重构虚拟机" width="700px" destroy-on-close class="tk-dialog">
@@ -867,9 +867,9 @@
</el-dialog>
<!-- 重构用网络选择器(外网 bridge -->
<NetworkSelectorPopup v-model="showRefactorNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleRefactorNetworkConfirm" @create="() => handleNetCreate('refactor')" />
<NetworkSelectorPopup ref="refactorNetSelectorRef" v-model="showRefactorNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleRefactorNetworkConfirm" @create="() => handleNetCreate('refactor')" />
<!-- 重构用内网选择器(内网 nat -->
<NetworkSelectorPopup v-model="showRefactorInternalNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleRefactorInternalNetworkConfirm" @create="() => handleNetCreate('refactorInternal')" />
<NetworkSelectorPopup ref="refactorInternalNetSelectorRef" v-model="showRefactorInternalNetworkSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleRefactorInternalNetworkConfirm" @create="() => handleNetCreate('refactorInternal')" />
<!-- VNC 连接弹窗 -->
<el-dialog v-model="vncDialogVisible" title="获取 VNC 连接" width="560px" destroy-on-close class="tk-dialog">
@@ -1073,9 +1073,9 @@
</el-dialog>
<!-- 绑定外网选择器(bridge -->
<NetworkSelectorPopup v-model="showNetBindBridgeSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleNetBindBridgeConfirm" @create="() => handleNetCreate('bindBridge')" />
<NetworkSelectorPopup ref="bindBridgeNetSelectorRef" v-model="showNetBindBridgeSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="bridge" filter-used="false" @confirm="handleNetBindBridgeConfirm" @create="() => handleNetCreate('bindBridge')" />
<!-- 绑定内网选择器(nat -->
<NetworkSelectorPopup v-model="showNetBindNatSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleNetBindNatConfirm" @create="() => handleNetCreate('bindNat')" />
<NetworkSelectorPopup ref="bindNatNetSelectorRef" v-model="showNetBindNatSelector" :service-id="serviceId" :host-id="vmHostId" filter-type="nat" filter-used="false" @confirm="handleNetBindNatConfirm" @create="() => handleNetCreate('bindNat')" />
<!-- 创建/编辑网络弹窗 -->
<el-dialog v-model="netDialogVisible" :title="netDialogType === 'add' ? '创建网络' : '编辑网络'" width="600px" destroy-on-close class="tk-dialog">
@@ -2148,6 +2148,12 @@ const dataMigrateForm = reactive({ target_service_id: null, target_host_id: null
const dataMigrateNetworkOptions = ref([])
const showDataMigrateNetworkSelector = ref(false)
const dataMigrateNetSelectorRef = ref(null)
const editNetSelectorRef = ref(null)
const editInternalNetSelectorRef = ref(null)
const refactorNetSelectorRef = ref(null)
const refactorInternalNetSelectorRef = ref(null)
const bindBridgeNetSelectorRef = ref(null)
const bindNatNetSelectorRef = ref(null)
const dataMigrateSelectedNetworks = ref([])
const handleDataMigrateNetworkConfirm = (items) => {
@@ -2464,15 +2470,7 @@ const handleNetCreate = (source = '') => {
}
const handleNetDialogCancel = () => {
netDialogVisible.value = false
const src = netDialogSource.value
netDialogSource.value = ''
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
else if (src === 'dataMigrate') showDataMigrateNetworkSelector.value = true
}
const handleNetEdit = (row) => {
@@ -2506,16 +2504,20 @@ const submitNetForm = () => {
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()
const refMap = {
dataMigrate: dataMigrateNetSelectorRef,
edit: editNetSelectorRef,
editInternal: editInternalNetSelectorRef,
refactor: refactorNetSelectorRef,
refactorInternal: refactorInternalNetSelectorRef,
bindBridge: bindBridgeNetSelectorRef,
bindNat: bindNatNetSelectorRef,
}
const selectorRef = refMap[src]
if (selectorRef) {
nextTick(() => selectorRef.value?.loadList())
}
if (src !== 'dataMigrate') loadDetail()
}
else ElMessage.error(extractApiError(res?.data, '操作失败'))
} catch (e) { ElMessage.error(extractApiError(e?.response?.data, '操作失败')) } finally { actionLoading.value = false }