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:
shiran
2026-05-13 16:27:52 +08:00
parent e38ea4cc32
commit ea571563e0
2 changed files with 22 additions and 10 deletions
@@ -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 }