更新编辑器功能和微信页面

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
王鹏
2026-04-10 19:59:18 +08:00
parent ef8237d8d1
commit 272a88ca3f
3 changed files with 99 additions and 8 deletions

52
gui.py
View File

@@ -803,13 +803,9 @@ class YidaimaGUI:
ps_code_target_entry = ttk.Entry(path_frame, textvariable=self.ps_code_target_var, width=60)
ps_code_target_entry.grid(row=3, column=1, sticky=(tk.W, tk.E), padx=(10, 0), pady=(10, 0))
# 是否有前台前端
self.ps_has_front_var = tk.BooleanVar(value=ps_config.get("has_front", True))
ttk.Checkbutton(path_frame, text="有前台前端", variable=self.ps_has_front_var).grid(row=4, column=1, sticky=tk.W, padx=(10, 0), pady=(10, 0))
# 是否显示 CMD 窗口
self.ps_show_cmd_var = tk.BooleanVar(value=ps_config.get("show_cmd_window", True))
ttk.Checkbutton(path_frame, text="显示CMD窗口", variable=self.ps_show_cmd_var).grid(row=5, column=1, sticky=tk.W, padx=(10, 0), pady=(10, 0))
ttk.Checkbutton(path_frame, text="显示CMD窗口", variable=self.ps_show_cmd_var).grid(row=4, column=1, sticky=tk.W, padx=(10, 0), pady=(10, 0))
# === 操作按钮区域 ===
button_frame = ttk.LabelFrame(self.tab_screenshot, text="操作按钮", padding="10")
@@ -892,10 +888,15 @@ class YidaimaGUI:
def _get_ps_config(self) -> ProjectConfig:
"""获取项目截图配置"""
ps_config = self.config.get("project_screenshot", {})
# 自动检测是否有前台前端
has_front = self._check_has_front(self.ps_project_path_var.get())
self._ps_log(f"自动检测前台前端: {'' if has_front else ''}")
return ProjectConfig(
project_path=self.ps_project_path_var.get(),
desktop_path=self.ps_desktop_path_var.get(),
has_front=self.ps_has_front_var.get(),
has_front=has_front,
install_server=ps_config.get("scripts", {}).get("install_server", "run_install_server.bat"),
install_front=ps_config.get("scripts", {}).get("install_front", "run_install_front.bat"),
install_admin=ps_config.get("scripts", {}).get("install_admin", "run_install_admin.bat"),
@@ -932,6 +933,45 @@ class YidaimaGUI:
show_cmd_window=self.ps_show_cmd_var.get()
)
def _check_has_front(self, project_path: str) -> bool:
"""
自动检测是否有前台前端
检查项目路径下的源码文件夹中是否包含 client_code 目录
Args:
project_path: 项目路径
Returns:
是否有前台前端
"""
try:
code_dir = os.path.join(project_path, "源码")
if not os.path.exists(code_dir):
return False
# 获取 code 文件夹下的第一个子目录
first_subdir = None
for item in os.listdir(code_dir):
item_path = os.path.join(code_dir, item)
if os.path.isdir(item_path):
first_subdir = item_path
break
if not first_subdir:
return False
# 遍历查找 client_code 目录
for root, dirs, files in os.walk(first_subdir):
if 'client_code' in dirs:
return True
return False
except Exception as e:
print(f"检测前台前端失败: {str(e)}")
return False
def _ps_set_running(self, running: bool):
"""设置项目截图运行状态"""
if running: