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 handleClose = () => { selectedItem.value = null }
const handleCreate = () => { const handleCreate = () => {
visible.value = false
emit('create') emit('create')
} }
defineExpose({ loadList })
</script> </script>
<style scoped> <style scoped>
+25 -23
View File
@@ -771,9 +771,9 @@
</template> </template>
</el-dialog> </el-dialog>
<!-- 编辑用网络选择器(外网 bridge --> <!-- 编辑用网络选择器(外网 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 --> <!-- 编辑用内网选择器(内网 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"> <el-dialog v-model="refactorDialogVisible" title="重构虚拟机" width="700px" destroy-on-close class="tk-dialog">
@@ -867,9 +867,9 @@
</el-dialog> </el-dialog>
<!-- 重构用网络选择器(外网 bridge --> <!-- 重构用网络选择器(外网 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 --> <!-- 重构用内网选择器(内网 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 连接弹窗 --> <!-- VNC 连接弹窗 -->
<el-dialog v-model="vncDialogVisible" title="获取 VNC 连接" width="560px" destroy-on-close class="tk-dialog"> <el-dialog v-model="vncDialogVisible" title="获取 VNC 连接" width="560px" destroy-on-close class="tk-dialog">
@@ -1073,9 +1073,9 @@
</el-dialog> </el-dialog>
<!-- 绑定外网选择器(bridge --> <!-- 绑定外网选择器(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 --> <!-- 绑定内网选择器(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"> <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 dataMigrateNetworkOptions = ref([])
const showDataMigrateNetworkSelector = ref(false) const showDataMigrateNetworkSelector = ref(false)
const dataMigrateNetSelectorRef = ref(null) 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 dataMigrateSelectedNetworks = ref([])
const handleDataMigrateNetworkConfirm = (items) => { const handleDataMigrateNetworkConfirm = (items) => {
@@ -2464,15 +2470,7 @@ const handleNetCreate = (source = '') => {
} }
const handleNetDialogCancel = () => { const handleNetDialogCancel = () => {
netDialogVisible.value = false netDialogVisible.value = false
const src = netDialogSource.value
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) => { const handleNetEdit = (row) => {
@@ -2506,16 +2504,20 @@ const submitNetForm = () => {
netDialogVisible.value = false netDialogVisible.value = false
const src = netDialogSource.value const src = netDialogSource.value
netDialogSource.value = '' netDialogSource.value = ''
if (src === 'dataMigrate') { nextTick(() => dataMigrateNetSelectorRef.value?.loadList()) } const refMap = {
else { dataMigrate: dataMigrateNetSelectorRef,
if (src === 'edit') showEditNetworkSelector.value = true edit: editNetSelectorRef,
else if (src === 'editInternal') showEditInternalNetworkSelector.value = true editInternal: editInternalNetSelectorRef,
else if (src === 'refactor') showRefactorNetworkSelector.value = true refactor: refactorNetSelectorRef,
else if (src === 'refactorInternal') showRefactorInternalNetworkSelector.value = true refactorInternal: refactorInternalNetSelectorRef,
else if (src === 'bindBridge') showNetBindBridgeSelector.value = true bindBridge: bindBridgeNetSelectorRef,
else if (src === 'bindNat') showNetBindNatSelector.value = true bindNat: bindNatNetSelectorRef,
loadDetail()
} }
const selectorRef = refMap[src]
if (selectorRef) {
nextTick(() => selectorRef.value?.loadList())
}
if (src !== 'dataMigrate') loadDetail()
} }
else ElMessage.error(extractApiError(res?.data, '操作失败')) else ElMessage.error(extractApiError(res?.data, '操作失败'))
} catch (e) { ElMessage.error(extractApiError(e?.response?.data, '操作失败')) } finally { actionLoading.value = false } } catch (e) { ElMessage.error(extractApiError(e?.response?.data, '操作失败')) } finally { actionLoading.value = false }