fix: 提交修改
Build and Deploy Vue3 / build (push) Successful in 1m31s
Build and Deploy Vue3 / deploy (push) Successful in 1m9s

This commit is contained in:
2026-04-15 16:02:36 +08:00
parent 2f06aa9f5f
commit b3ed406f84
61 changed files with 7476 additions and 7226 deletions
+90 -85
View File
@@ -71,48 +71,55 @@
</div>
<!-- 新建/编辑弹窗 -->
<el-dialog v-model="dialogVisible" :title="dialogType === 'add' ? '创建网络' : '编辑网络'" width="600px" destroy-on-close>
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="网络名称" />
</el-form-item>
<el-form-item label="宿主机" prop="host_id">
<el-select v-model="formData.host_id" placeholder="选择宿主机" filterable style="width: 100%">
<el-option v-for="h in hostOptions" :key="h.id" :label="`${h.name} (${h.ip || h.id})`" :value="h.id" />
</el-select>
</el-form-item>
<el-form-item label="网络类型" prop="type">
<el-select v-model="formData.type" style="width: 100%">
<el-option label="(Bridge/外网)" value="bridge" />
<el-option label="内网(NAT)" value="nat" />
</el-select>
</el-form-item>
<el-form-item label="IP 地址(CIDR)" prop="address">
<el-input v-model="formData.address" placeholder="例如 192.168.1.0/24" />
</el-form-item>
<el-form-item label="网关地址" prop="gateway">
<el-input v-model="formData.gateway" placeholder="例如 192.168.1.1" />
</el-form-item>
<el-form-item label="DNS 服务器">
<el-input v-model="formData.nameservers" placeholder="默认 114.114.114.114,8.8.8.8" />
</el-form-item>
<el-divider content-position="left">高级配置(可选)</el-divider>
<el-form-item label="MAC 地址">
<el-input v-model="formData.mac_address" placeholder="不填则随机" />
</el-form-item>
<el-form-item label="虚拟网桥名">
<el-input v-model="formData.bridge_name" placeholder="不填使用默认" />
</el-form-item>
<el-form-item label="逻辑网桥名">
<el-input v-model="formData.ls_bridge_name" placeholder="不填使用默认" />
</el-form-item>
<el-form-item label="逻辑端口名">
<el-input v-model="formData.ls_name" placeholder="不填使用默认" />
</el-form-item>
<el-dialog v-model="dialogVisible" :title="dialogType === 'add' ? '创建网络' : '编辑网络'" width="600px" destroy-on-close class="tk-dialog">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px">
<div class="tk-section">
<div class="tk-section-title">基本信息</div>
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="网络名称" />
</el-form-item>
<el-form-item label="宿主机" prop="host_id">
<el-select v-model="formData.host_id" placeholder="选择宿主机" filterable style="width: 100%">
<el-option v-for="h in hostOptions" :key="h.id" :label="`${h.name} (${h.ip || h.id})`" :value="h.id" />
</el-select>
</el-form-item>
<el-form-item label="络类型" prop="type">
<el-select v-model="formData.type" style="width: 100%">
<el-option label="网桥(Bridge/外网)" value="bridge" />
<el-option label="内网(NAT)" value="nat" />
</el-select>
</el-form-item>
<el-form-item label="IP(CIDR)" prop="address">
<el-input v-model="formData.address" placeholder="例如 192.168.1.0/24" />
</el-form-item>
<el-form-item label="网关地址" prop="gateway">
<el-input v-model="formData.gateway" placeholder="例如 192.168.1.1" />
</el-form-item>
<el-form-item label="DNS 服务器">
<el-input v-model="formData.nameservers" placeholder="默认 114.114.114.114,8.8.8.8" />
</el-form-item>
</div>
<div class="tk-section">
<div class="tk-section-title">高级配置</div>
<el-form-item label="MAC 地址">
<el-input v-model="formData.mac_address" placeholder="不填则随机" />
</el-form-item>
<el-form-item label="虚拟网桥名">
<el-input v-model="formData.bridge_name" placeholder="不填使用默认" />
</el-form-item>
<el-form-item label="逻辑网桥名">
<el-input v-model="formData.ls_bridge_name" placeholder="不填使用默认" />
</el-form-item>
<el-form-item label="逻辑端口名">
<el-input v-model="formData.ls_name" placeholder="不填使用默认" />
</el-form-item>
</div>
</el-form>
<template #footer>
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" :loading="submitLoading" @click="handleSubmit">确定</el-button>
<div class="tk-dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" :loading="submitLoading" @click="handleSubmit">确定</el-button>
</div>
</template>
</el-dialog>
@@ -140,42 +147,50 @@
</el-dialog>
<!-- 批量创建弹窗 -->
<el-dialog v-model="batchDialogVisible" title="批量创建网络" width="560px" destroy-on-close>
<el-alert type="info" :closable="false" style="margin-bottom: 16px">通过指定 IP 范围(start_ip ~ end_ip)批量创建网络条目</el-alert>
<el-form ref="batchFormRef" :model="batchForm" :rules="batchFormRules" label-width="120px">
<el-form-item label="宿主机" prop="host_id">
<el-select v-model="batchForm.host_id" placeholder="选择宿主机" filterable style="width: 100%">
<el-option v-for="h in hostOptions" :key="h.id" :label="`${h.name} (${h.ip || h.id})`" :value="h.id" />
</el-select>
</el-form-item>
<el-form-item label="起始IP" prop="start_ip">
<el-input v-model="batchForm.start_ip" placeholder=" 192.168.1.10" />
</el-form-item>
<el-form-item label="结束IP" prop="end_ip">
<el-input v-model="batchForm.end_ip" placeholder=" 192.168.1.50" />
</el-form-item>
<el-form-item label="网关">
<el-input v-model="batchForm.gateway" placeholder="可选 192.168.1.1" />
</el-form-item>
<el-form-item label="子网掩码">
<el-input v-model="batchForm.mask" placeholder="可选 24" />
</el-form-item>
<el-form-item label="DNS">
<el-input v-model="batchForm.nameservers" placeholder="可选 114.114.114.114,8.8.8.8" />
</el-form-item>
<el-form-item label="网桥名称">
<el-input v-model="batchForm.bridge_name" placeholder="可选" />
</el-form-item>
<el-form-item label="网络类型">
<el-select v-model="batchForm.type" style="width: 100%">
<el-option label="网桥(Bridge)" value="bridge" />
<el-option label="内网(NAT)" value="nat" />
</el-select>
</el-form-item>
<el-dialog v-model="batchDialogVisible" title="批量创建网络" width="560px" destroy-on-close class="tk-dialog">
<el-form ref="batchFormRef" :model="batchForm" :rules="batchFormRules" label-width="100px">
<el-alert type="info" :closable="false" show-icon style="margin-bottom: 16px">通过指定 IP 范围(start_ip ~ end_ip)批量创建网络条目</el-alert>
<div class="tk-section">
<div class="tk-section-title">IP 范围</div>
<el-form-item label="宿主机" prop="host_id">
<el-select v-model="batchForm.host_id" placeholder="选择宿主机" filterable style="width: 100%">
<el-option v-for="h in hostOptions" :key="h.id" :label="`${h.name} (${h.ip || h.id})`" :value="h.id" />
</el-select>
</el-form-item>
<el-form-item label="起始IP" prop="start_ip">
<el-input v-model="batchForm.start_ip" placeholder=" 192.168.1.10" />
</el-form-item>
<el-form-item label="结束IP" prop="end_ip">
<el-input v-model="batchForm.end_ip" placeholder=" 192.168.1.50" />
</el-form-item>
</div>
<div class="tk-section">
<div class="tk-section-title">网络配置</div>
<el-form-item label="网关">
<el-input v-model="batchForm.gateway" placeholder="可选 192.168.1.1" />
</el-form-item>
<el-form-item label="子网掩码">
<el-input v-model="batchForm.mask" placeholder="可选 24" />
</el-form-item>
<el-form-item label="DNS">
<el-input v-model="batchForm.nameservers" placeholder="可选 114.114.114.114,8.8.8.8" />
</el-form-item>
<el-form-item label="网桥名称">
<el-input v-model="batchForm.bridge_name" placeholder="可选" />
</el-form-item>
<el-form-item label="网络类型">
<el-select v-model="batchForm.type" style="width: 100%">
<el-option label="网桥(Bridge)" value="bridge" />
<el-option label="内网(NAT)" value="nat" />
</el-select>
</el-form-item>
</div>
</el-form>
<template #footer>
<el-button @click="batchDialogVisible = false">取消</el-button>
<el-button type="primary" :loading="submitLoading" @click="handleBatchSubmit">确定创建</el-button>
<div class="tk-dialog-footer">
<el-button @click="batchDialogVisible = false">取消</el-button>
<el-button type="primary" :loading="submitLoading" @click="handleBatchSubmit">确定创建</el-button>
</div>
</template>
</el-dialog>
</div>
@@ -256,7 +271,7 @@ const loadList = async () => {
if (!hid) { ElMessage.warning('请先选择宿主机'); return }
loading.value = true
try {
const params = { service_id: serviceId.value, host_id: hid, page: queryParams.page, page_size: queryParams.page_size }
const params = { service_id: serviceId.value, host_id: hid, page: queryParams.page, count: queryParams.page_size }
if (keyword.value) params.key = keyword.value
if (filterType.value) params.type = filterType.value
if (filterIpVersion.value) params.ip_version = filterIpVersion.value
@@ -426,14 +441,4 @@ defineExpose({ loadList })
<style scoped>
.network-manage-container { padding: 20px; }
.page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #ebeef5; }
.header-left { display: flex; align-items: center; gap: 16px; }
.header-info h3 { margin: 0; font-size: 18px; color: #303133; }
.sub-info { font-size: 13px; color: #909399; }
.header-right { display: flex; gap: 8px; }
.embedded-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.filter-bar { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.pagination-wrapper { display: flex; justify-content: flex-end; margin-top: 16px; }
:deep(.el-table) { --el-table-header-bg-color: #fafafa; }
:deep(.el-table th) { font-weight: 600; color: #303133; font-size: 13px; }
</style>