调整部分前端布局和后端增删改逻辑
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
from typing import Any
|
||||
|
||||
from cli.exit_codes import GUARD_REJECTED
|
||||
from cli.output import CommandResult
|
||||
from cli.utils import SHELL_TEXT_FORMATTER
|
||||
|
||||
|
||||
class WizardPreviewRenderer:
|
||||
"""
|
||||
向导预览渲染器。
|
||||
|
||||
该对象负责统一构建向导预览文本和取消结果,
|
||||
为各个 flow 提供稳定的类式渲染入口。
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def render_preview(
|
||||
title: str,
|
||||
*,
|
||||
summary: dict[str, Any],
|
||||
command: list[str],
|
||||
notes: list[str] | None = None,
|
||||
) -> str:
|
||||
"""
|
||||
渲染向导执行预览文本。
|
||||
|
||||
:param title: 预览标题
|
||||
:param summary: 关键参数摘要
|
||||
:param command: 用户视角命令参数列表
|
||||
:param notes: 额外提示列表
|
||||
:return: 可直接输出的预览文本
|
||||
"""
|
||||
lines = [title, 'summary:']
|
||||
for key, value in summary.items():
|
||||
lines.append(f' {key}: {value}')
|
||||
lines.extend(
|
||||
[
|
||||
'command:',
|
||||
f' {SHELL_TEXT_FORMATTER.format_shell_command(command)}',
|
||||
]
|
||||
)
|
||||
if notes:
|
||||
lines.append('notes:')
|
||||
lines.extend(f' - {note}' for note in notes if note)
|
||||
return '\n'.join(lines)
|
||||
|
||||
@staticmethod
|
||||
def build_cancel_result(wizard_name: str) -> CommandResult:
|
||||
"""
|
||||
构建向导取消结果。
|
||||
|
||||
:param wizard_name: 向导名称
|
||||
:return: 命令结果对象
|
||||
"""
|
||||
return CommandResult(
|
||||
data={
|
||||
'ok': False,
|
||||
'message': f'已取消向导执行:{wizard_name}',
|
||||
'hint': '可重新运行向导并调整参数后再次执行',
|
||||
},
|
||||
exit_code=GUARD_REJECTED,
|
||||
)
|
||||
|
||||
|
||||
WIZARD_PREVIEW_RENDERER = WizardPreviewRenderer()
|
||||
Reference in New Issue
Block a user