调整部分前端布局和后端增删改逻辑

This commit is contained in:
焦龙言
2026-09-20 10:38:10 +08:00
parent acddc8a237
commit 3edba99d2d
227 changed files with 122871 additions and 839 deletions
@@ -0,0 +1,86 @@
import typer
from cli.metadata import ENVIRONMENT_OPTION_SERVICE
class WizardPromptService:
"""
向导交互输入服务。
该对象集中封装向导中稳定复用的环境选择、枚举选择、
文本采集和确认交互逻辑,避免继续扩散模块级散函数入口。
"""
def prompt_env(self, default_env: str = 'dev') -> str:
"""
交互采集运行环境名称。
:param default_env: 默认环境名称
:return: 用户选择的环境名称
"""
env_names = ENVIRONMENT_OPTION_SERVICE.discover_env_names()
prompt_message = f'运行环境(可选值: {", ".join(env_names)})'
while True:
env_value = typer.prompt(prompt_message, default=default_env).strip()
if env_value in env_names:
return env_value
typer.echo(f'不支持的环境名称:{env_value},请重新输入。')
@staticmethod
def prompt_choice(prompt_text: str, choices: list[str], default_value: str) -> str:
"""
交互采集枚举型文本输入。
:param prompt_text: 提示文案
:param choices: 可选值列表
:param default_value: 默认值
:return: 用户选择的枚举值
"""
while True:
value = typer.prompt(
f'{prompt_text}(可选值: {", ".join(choices)})',
default=default_value,
).strip()
if value in choices:
return value
typer.echo(f'不支持的选项:{value},请重新输入。')
@staticmethod
def prompt_required_text(prompt_text: str, default_value: str = '') -> str:
"""
交互采集必填文本输入。
:param prompt_text: 提示文案
:param default_value: 默认值
:return: 用户输入文本
"""
while True:
value = typer.prompt(prompt_text, default=default_value).strip()
if value:
return value
typer.echo('该字段不能为空,请重新输入。')
@staticmethod
def prompt_optional_text(prompt_text: str, default_value: str = '') -> str:
"""
交互采集可选文本输入。
:param prompt_text: 提示文案
:param default_value: 默认值
:return: 用户输入文本
"""
return typer.prompt(prompt_text, default=default_value).strip()
@staticmethod
def prompt_confirm(prompt_text: str, default_value: bool = False) -> bool:
"""
交互采集确认型输入。
:param prompt_text: 提示文案
:param default_value: 默认值
:return: 用户确认结果
"""
return typer.confirm(prompt_text, default=default_value)
WIZARD_PROMPT_SERVICE = WizardPromptService()