fix(admin): 安全组选择器新增成功未关弹框 + 概览vCPU/带宽合并布局
缘由:
1) UserVmSecurityGroupSelector 中新增安全组成功后,若后端返回码非严格 200
则 showCreate 不会置 false、列表不会刷新、无成功反馈。
2) /user-goods/vm-detail 概览第一行 vCPU、内存、下行带宽、上行带宽 各占一格,
需求要求 vCPU+内存 合并为一格、上行+下行带宽 合并为一格并加编辑按钮。
修改:
- UserVmSecurityGroupSelector.vue submitCreate:响应码判断放宽为 200/201/2xx;
catch 块提取 e.response.data.message 作更精确的错误信息。
- UserVmDetail.vue config-row 第一行:vCPU/内存 合并为「vCPU / 内存」单格;
带宽合并为「带宽 ↓ / ↑」单格并内嵌修改按钮(handleMoreCmd('updateTraffic'));
原第二行重复的用户名/远程端口 cell 移至第一行,外网IP/内网IP 独占第二行。
预期:
- 安全组选择器中新增安全组后弹框关闭、列表刷新、显示成功消息。
- 概览第一行信息密度提升,带宽格可一键触发修改带宽弹框。
测试:admin_dashboard_pc 本地 HMR 通过,无编译/lint 报错。
安全组新增接口联调需在有后端环境下验证实际 response code。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -124,13 +124,19 @@ const submitCreate = async () => {
|
||||
lock: createForm.lock,
|
||||
drop_all: createForm.drop_all
|
||||
})
|
||||
if (res?.data?.code === 200) {
|
||||
const code = res?.data?.code
|
||||
if (code === 200 || code === 201 || (code >= 200 && code < 300)) {
|
||||
ElMessage.success('创建成功')
|
||||
showCreate.value = false
|
||||
Object.assign(createForm, { name: '', direction: 'in', lock: false, drop_all: false })
|
||||
loadList()
|
||||
} else ElMessage.error(res?.data?.message || '创建失败')
|
||||
} catch { ElMessage.error('创建失败') } finally { createLoading.value = false }
|
||||
await loadList()
|
||||
} else {
|
||||
ElMessage.error(res?.data?.message || res?.data?.error || '创建失败')
|
||||
}
|
||||
} catch (e) {
|
||||
const msg = e?.response?.data?.message || e?.response?.data?.error || e?.message || '创建失败'
|
||||
ElMessage.error(msg)
|
||||
} finally { createLoading.value = false }
|
||||
}
|
||||
|
||||
const handleClose = () => { visible.value = false }
|
||||
|
||||
@@ -63,14 +63,20 @@
|
||||
<!-- VM 配置信息 -->
|
||||
<div class="vm-config-grid" v-if="vm">
|
||||
<div class="config-row">
|
||||
<div class="config-cell"><span class="config-label">vCPU</span><span class="config-value">{{ vm.vcpu || '-' }} 核</span></div>
|
||||
<div class="config-cell"><span class="config-label">内存</span><span class="config-value">{{ formatMemory(vm.memory) }}</span></div>
|
||||
<div class="config-cell"><span class="config-label">下行带宽</span><span class="config-value">{{ vm.rx_bandwidth || 0 }} Mbps</span></div>
|
||||
<div class="config-cell"><span class="config-label">上行带宽</span><span class="config-value">{{ vm.tx_bandwidth || 0 }} Mbps</span></div>
|
||||
<div class="config-cell"><span class="config-label">vCPU / 内存</span><span class="config-value">{{ vm.vcpu || '-' }} 核 / {{ formatMemory(vm.memory) }}</span></div>
|
||||
<div class="config-cell">
|
||||
<span class="config-label">带宽 ↓ / ↑</span>
|
||||
<span class="config-value">
|
||||
{{ vm.rx_bandwidth || 0 }} / {{ vm.tx_bandwidth || 0 }} Mbps
|
||||
<el-button link type="primary" size="small" class="cfg-edit-btn" @click="handleMoreCmd('updateTraffic')">
|
||||
<el-icon :size="14"><Edit /></el-icon>修改
|
||||
</el-button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<div class="config-cell"><span class="config-label">用户名</span><span class="config-value" style="font-weight:500">{{ isWindows ? 'Administrator' : 'root' }}</span></div>
|
||||
<div class="config-cell"><span class="config-label">远程端口</span><span class="config-value">{{ isWindows ? (vm.ssh_port && vm.ssh_port !== 22 ? vm.ssh_port : 3389) : (vm.ssh_port || 22) }}</span></div>
|
||||
</div>
|
||||
<div class="config-row">
|
||||
<div class="config-cell">
|
||||
<span class="config-label">外网IP</span>
|
||||
<span class="config-value ip-value" v-if="vmPublicIpList.length">
|
||||
|
||||
Reference in New Issue
Block a user