From 12395d8eca96a88c1b75c13bb52a24258131b3b6 Mon Sep 17 00:00:00 2001 From: zuowei1216 <12206728+zuowei1216@user.noreply.gitee.com> Date: Tue, 30 Dec 2025 14:46:22 +0800 Subject: [PATCH] newrun --- AdminPanel/src/view/Home.vue | 121 ++------- AdminPanel/src/view/IframePage.vue | 7 +- Server/app/main.py | 31 +-- .../README.md | 0 .../cep.config.ts | 0 .../cep/CSXS/manifest.xml | 0 .../cep/img/dark.png | Bin .../cep/img/dark@2x.png | Bin .../cep/img/dark@3x.png | Bin .../cep/img/dark@4x.png | Bin .../cep/img/highlight.png | Bin .../cep/img/highlight@2x.png | Bin .../cep/img/highlight@3x.png | Bin .../cep/img/highlight@4x.png | Bin .../cep/index.html | 0 .../AdminPanel_plugins_jsx_template}/debug.ts | 0 .../AdminPanel_plugins_jsx_template}/html.ts | 0 .../manifest.ts | 0 .../AdminPanel_src_hooks_useTheme.ts | 0 .../AdminPanel_接收PS主题示例.js | 0 .../AdminTool_redundant}/fix_default_group.py | 0 .../test_db_connection.py | 0 .../AdminTool_redundant}/test_launch.py | 0 .../test_version_system.py | 0 .../Designer_redundant/dev.cep.config.ts | 61 +++++ .../docs/CEP插件UI适配指南.md | 179 +++++++++++++ .../docs/CEP适配完成说明.md | 164 ++++++++++++ .../docs/core-publish-guide.md | 98 +++++++ temp_backup/Designer_redundant/hybrid-demo.ts | 84 ++++++ .../plugins_jsx_template/README.md | 3 + .../plugins_jsx_template/cep.config.ts | 65 +++++ .../cep/CSXS/manifest.xml | 23 ++ .../plugins_jsx_template/cep/img/dark.png | Bin 0 -> 475 bytes .../plugins_jsx_template/cep/img/dark@2x.png | Bin 0 -> 846 bytes .../plugins_jsx_template/cep/img/dark@3x.png | Bin 0 -> 1241 bytes .../plugins_jsx_template/cep/img/dark@4x.png | Bin 0 -> 1610 bytes .../cep/img/highlight.png | Bin 0 -> 475 bytes .../cep/img/highlight@2x.png | Bin 0 -> 846 bytes .../cep/img/highlight@3x.png | Bin 0 -> 1241 bytes .../cep/img/highlight@4x.png | Bin 0 -> 1610 bytes .../plugins_jsx_template/cep/index.html | 16 ++ .../plugins_jsx_template/debug.ts | 15 ++ .../plugins_jsx_template/html.ts | 20 ++ .../plugins_jsx_template/manifest.ts | 66 +++++ .../Designer_redundant/prod.cep.config.ts | 61 +++++ .../scripts/buildLauncher.ts | 239 ++++++++++++++++++ temp_backup/Designer_redundant/test-simple.ts | 64 +++++ .../Server_redundant}/create_user.py | 0 .../Server_redundant}/init_db.py | 0 .../Server_redundant}/init_db.sql | 0 .../Server_redundant}/init_full_db.py | 0 .../tempdemo}/client/build.bat | 0 .../tempdemo}/client/icons/newapp.ico | Bin .../tempdemo}/client/newapp.ico | Bin .../Server_redundant/tempdemo}/client/run.py | 0 .../tempdemo}/client/run.spec | 0 .../tempdemo}/client/splash.png | Bin .../tempdemo}/client/程序配置.ini | 0 .../Server_redundant/tempdemo}/psmark/JSX1.py | 0 .../tempdemo}/psmark/JSX10.py | 0 .../tempdemo}/psmark/JSX11.py | 0 .../tempdemo}/psmark/JSX12.py | 0 .../tempdemo}/psmark/JSX13.py | 0 .../tempdemo}/psmark/JSX14.py | 0 .../tempdemo}/psmark/JSX15.py | 0 .../tempdemo}/psmark/JSX16.py | 0 .../tempdemo}/psmark/JSX17.py | 0 .../tempdemo}/psmark/JSX18.py | 0 .../tempdemo}/psmark/JSX19.py | 0 .../Server_redundant/tempdemo}/psmark/JSX2.py | 0 .../tempdemo}/psmark/JSX20.py | 0 .../tempdemo}/psmark/JSX21.py | 0 .../tempdemo}/psmark/JSX22.py | 0 .../tempdemo}/psmark/JSX23.py | 0 .../tempdemo}/psmark/JSX24.py | 0 .../tempdemo}/psmark/JSX25.py | 0 .../tempdemo}/psmark/JSX26.py | 0 .../tempdemo}/psmark/JSX27.py | 0 .../Server_redundant/tempdemo}/psmark/JSX3.py | 0 .../Server_redundant/tempdemo}/psmark/JSX4.py | 0 .../Server_redundant/tempdemo}/psmark/JSX5.py | 0 .../Server_redundant/tempdemo}/psmark/JSX6.py | 0 .../Server_redundant/tempdemo}/psmark/JSX7.py | 0 .../Server_redundant/tempdemo}/psmark/JSX8.py | 0 .../Server_redundant/tempdemo}/psmark/JSX9.py | 0 .../Server_redundant/tempdemo}/psmark/Tab1.py | 0 .../Server_redundant/tempdemo}/psmark/Tab2.py | 0 .../Server_redundant/tempdemo}/psmark/Tab3.py | 0 .../Server_redundant/tempdemo}/psmark/Tab4.py | 0 .../Server_redundant/tempdemo}/psmark/Tab5.py | 0 .../Server_redundant/tempdemo}/psmark/Tab6.py | 0 .../tempdemo}/psmark/clear_folder.py | 0 .../tempdemo}/psmark/coreldraw_checker.py | 0 .../Server_redundant/tempdemo}/psmark/cs.py | 0 .../tempdemo}/psmark/icons/newapp.ico | Bin .../psmark/img/微信图片_20230906013548.jpg | Bin .../psmark/img/微信图片_20230906013631.jpg | Bin .../tempdemo}/psmark/main.spec | 0 .../tempdemo}/psmark/myskin_styles.py | 0 .../tempdemo}/psmark/myskin_windows.py | 0 .../tempdemo}/psmark/newMark.py | 0 .../tempdemo}/psmark/newMark.spec | 0 .../tempdemo}/psmark/newapp.ico | Bin .../tempdemo}/psmark/newmarkLogin.py | 0 .../tempdemo}/psmark/piece_decorative.py | 0 .../Server_redundant/tempdemo}/psmark/test.py | 0 .../tempdemo}/psmark/test2.py | 0 .../tempdemo}/psmark/test3.py | 0 .../tempdemo}/psmark/test5.py | 0 .../tempdemo}/psmark/程序配置.ini | 0 .../tempdemo}/serveradmin/adminpassword.txt | 0 .../tempdemo}/serveradmin/server.py | 0 .../tempdemo}/serveradmin/using.txt | 0 .../tempdemo}/update_version.py.bak | 0 .../tempdocs}/API_DOCUMENTATION.md | 0 .../tempdocs}/API密钥使用指南.md | 0 .../tempdocs}/AdminTool配置管理开发文档.md | 0 .../tempdocs}/Caddy部署指南.md | 0 .../JSX加载失败问题分析与解决方案.md | 0 .../tempdocs}/JSX方法测试指南.md | 0 .../tempdocs}/PSApi功能测试指南.md | 0 .../Server_redundant/tempdocs}/README.md | 0 .../tempdocs}/Shell架构改造任务清单.md | 0 .../tempdocs}/Shell架构改造计划.md | 0 .../tempdocs}/psmark脚本分析报告.md | 0 .../tempdocs}/zhihu_articles.json | 0 .../Server_redundant/tempdocs}/修复命令.md | 0 .../Server_redundant/tempdocs}/修复说明.md | 0 .../tempdocs}/全量接口文档.md | 0 .../tempdocs}/前端代码结构与功能说明.md | 0 .../tempdocs}/前端安全升级接入指南.md | 0 .../tempdocs}/后端API接口文档.md | 0 .../tempdocs}/后端代码与工具说明.md | 0 .../tempdocs}/后端开发需求文档.md | 0 .../tempdocs}/后端部署Shell指南.md | 0 .../tempdocs}/安全方案对比.md | 0 .../Server_redundant/tempdocs}/完成报告.md | 0 .../Server_redundant/tempdocs}/常用命令.md | 0 .../tempdocs}/必须修改清单.md | 0 .../Server_redundant/tempdocs}/快速开始.md | 0 .../tempdocs}/架构问题修正方案.md | 0 .../Server_redundant/tempdocs}/检查命令.md | 0 .../tempdocs}/检测现有版本.md | 0 .../tempdocs}/混合方案Demo说明.md | 0 .../tempdocs}/混合方案安全性说明.md | 0 .../tempdocs}/混合架构开发框架指南.md | 0 .../tempdocs}/混合架构快速开发模板.md | 0 .../tempdocs}/生产环境部署实操指南.md | 0 .../tempdocs}/知乎文章摘要.md | 0 .../Server_redundant/tempdocs}/紧急诊断.md | 0 .../tempdocs}/线上部署指南.md | 0 .../tempdocs}/认证接口文档.md | 0 .../tempdocs}/许可证验证接口文档.md | 0 .../tempdocs}/设备与在线时长接口文档.md | 0 .../tempdocs}/邮箱验证与密码重置接口文档.md | 0 .../tempdocs}/部署前检查清单.md | 0 .../tempdocs}/部署功能使用说明.md | 0 .../tempdocs}/部署工具使用.md | 0 .../Server_redundant/tempdocs}/部署指南.md | 0 .../tempdocs}/部署文档_积分VIP签到系统.md | 0 .../tempdocs}/部署架构说明.md | 0 .../tempdocs}/部署配置手册.md | 0 .../tempdocs}/项目结构文档.md | 0 .../Server_redundant/tests}/README.md | 0 .../tests}/backend/conftest.py | 0 .../tests}/backend/requirements.txt | 0 .../tests}/backend/run_tests.bat | 0 .../tests}/backend/test_admin_config.py | 0 .../tests}/backend/test_checkin.py | 0 .../tests}/backend/test_feature.py | 0 .../tests}/backend/test_stats.py | 0 .../tests}/backend/test_user_profile.py | 0 .../tests}/frontend/CheckIn.test.ts | 0 .../tests}/frontend/HomePage.test.ts | 0 .../tests}/frontend/Profile.test.ts | 0 .../tests}/integration/e2e_test.py | 0 .../Server_redundant/tests}/测试交付报告.md | 0 .../Server_redundant/tests}/测试文档.md | 0 .../tests}/测试运行报告_20251221.md | 0 .../Server_redundant/verify_routes.py | 0 开发准则.md | 52 ++++ 181 files changed, 1255 insertions(+), 114 deletions(-) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/README.md (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep.config.ts (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/CSXS/manifest.xml (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/dark.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/dark@2x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/dark@3x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/dark@4x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/highlight.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/highlight@2x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/highlight@3x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/img/highlight@4x.png (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/cep/index.html (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/debug.ts (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/html.ts (100%) rename {AdminPanel/plugins/jsx/template => temp_backup/AdminPanel_plugins_jsx_template}/manifest.ts (100%) rename AdminPanel/src/hooks/useTheme.ts => temp_backup/AdminPanel_src_hooks_useTheme.ts (100%) rename AdminPanel/接收PS主题示例.js => temp_backup/AdminPanel_接收PS主题示例.js (100%) rename {AdminTool => temp_backup/AdminTool_redundant}/fix_default_group.py (100%) rename {AdminTool => temp_backup/AdminTool_redundant}/test_db_connection.py (100%) rename {AdminTool => temp_backup/AdminTool_redundant}/test_launch.py (100%) rename {AdminTool => temp_backup/AdminTool_redundant}/test_version_system.py (100%) create mode 100644 temp_backup/Designer_redundant/dev.cep.config.ts create mode 100644 temp_backup/Designer_redundant/docs/CEP插件UI适配指南.md create mode 100644 temp_backup/Designer_redundant/docs/CEP适配完成说明.md create mode 100644 temp_backup/Designer_redundant/docs/core-publish-guide.md create mode 100644 temp_backup/Designer_redundant/hybrid-demo.ts create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/README.md create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep.config.ts create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/CSXS/manifest.xml create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@2x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@3x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@4x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@2x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@3x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@4x.png create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/cep/index.html create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/debug.ts create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/html.ts create mode 100644 temp_backup/Designer_redundant/plugins_jsx_template/manifest.ts create mode 100644 temp_backup/Designer_redundant/prod.cep.config.ts create mode 100644 temp_backup/Designer_redundant/scripts/buildLauncher.ts create mode 100644 temp_backup/Designer_redundant/test-simple.ts rename {Server => temp_backup/Server_redundant}/create_user.py (100%) rename {Server => temp_backup/Server_redundant}/init_db.py (100%) rename {Server => temp_backup/Server_redundant}/init_db.sql (100%) rename {Server => temp_backup/Server_redundant}/init_full_db.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/build.bat (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/icons/newapp.ico (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/newapp.ico (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/run.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/run.spec (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/splash.png (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/client/程序配置.ini (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX1.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX10.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX11.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX12.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX13.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX14.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX15.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX16.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX17.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX18.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX19.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX2.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX20.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX21.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX22.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX23.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX24.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX25.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX26.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX27.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX3.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX4.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX5.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX6.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX7.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX8.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/JSX9.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab1.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab2.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab3.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab4.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab5.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/Tab6.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/clear_folder.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/coreldraw_checker.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/cs.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/icons/newapp.ico (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/img/微信图片_20230906013548.jpg (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/img/微信图片_20230906013631.jpg (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/main.spec (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/myskin_styles.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/myskin_windows.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/newMark.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/newMark.spec (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/newapp.ico (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/newmarkLogin.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/piece_decorative.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/test.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/test2.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/test3.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/test5.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/psmark/程序配置.ini (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/serveradmin/adminpassword.txt (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/serveradmin/server.py (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/serveradmin/using.txt (100%) rename {tempdemo => temp_backup/Server_redundant/tempdemo}/update_version.py.bak (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/API_DOCUMENTATION.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/API密钥使用指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/AdminTool配置管理开发文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/Caddy部署指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/JSX加载失败问题分析与解决方案.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/JSX方法测试指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/PSApi功能测试指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/README.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/Shell架构改造任务清单.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/Shell架构改造计划.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/psmark脚本分析报告.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/zhihu_articles.json (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/修复命令.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/修复说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/全量接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/前端代码结构与功能说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/前端安全升级接入指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/后端API接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/后端代码与工具说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/后端开发需求文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/后端部署Shell指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/安全方案对比.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/完成报告.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/常用命令.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/必须修改清单.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/快速开始.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/架构问题修正方案.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/检查命令.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/检测现有版本.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/混合方案Demo说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/混合方案安全性说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/混合架构开发框架指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/混合架构快速开发模板.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/生产环境部署实操指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/知乎文章摘要.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/紧急诊断.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/线上部署指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/认证接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/许可证验证接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/设备与在线时长接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/邮箱验证与密码重置接口文档.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署前检查清单.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署功能使用说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署工具使用.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署指南.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署文档_积分VIP签到系统.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署架构说明.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/部署配置手册.md (100%) rename {tempdocs => temp_backup/Server_redundant/tempdocs}/项目结构文档.md (100%) rename {tests => temp_backup/Server_redundant/tests}/README.md (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/conftest.py (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/requirements.txt (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/run_tests.bat (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/test_admin_config.py (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/test_checkin.py (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/test_feature.py (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/test_stats.py (100%) rename {tests => temp_backup/Server_redundant/tests}/backend/test_user_profile.py (100%) rename {tests => temp_backup/Server_redundant/tests}/frontend/CheckIn.test.ts (100%) rename {tests => temp_backup/Server_redundant/tests}/frontend/HomePage.test.ts (100%) rename {tests => temp_backup/Server_redundant/tests}/frontend/Profile.test.ts (100%) rename {tests => temp_backup/Server_redundant/tests}/integration/e2e_test.py (100%) rename {tests => temp_backup/Server_redundant/tests}/测试交付报告.md (100%) rename {tests => temp_backup/Server_redundant/tests}/测试文档.md (100%) rename {tests => temp_backup/Server_redundant/tests}/测试运行报告_20251221.md (100%) rename verify_routes.py => temp_backup/Server_redundant/verify_routes.py (100%) diff --git a/AdminPanel/src/view/Home.vue b/AdminPanel/src/view/Home.vue index ea26a07..dff7b87 100644 --- a/AdminPanel/src/view/Home.vue +++ b/AdminPanel/src/view/Home.vue @@ -1,122 +1,49 @@ diff --git a/AdminPanel/src/view/IframePage.vue b/AdminPanel/src/view/IframePage.vue index 8551dfb..527d832 100644 --- a/AdminPanel/src/view/IframePage.vue +++ b/AdminPanel/src/view/IframePage.vue @@ -44,8 +44,11 @@ const frameRef = ref(null) const loading = ref(true) const currentUrl = ref( - // localStorage.getItem('adminPanelUrl') || 'https://app.aidg168.uk' - localStorage.getItem('adminPanelUrl') || 'http://localhost:5173/#/login' + localStorage.getItem('adminPanelUrl') || ( + __DEV__ + ? 'http://localhost:5173' + : 'https://app.aidg168.uk' + ) ) function goBack() { diff --git a/Server/app/main.py b/Server/app/main.py index 9034e94..f3cf2d7 100644 --- a/Server/app/main.py +++ b/Server/app/main.py @@ -79,23 +79,24 @@ if IS_DEV: app.mount("/download", StaticFiles(directory="archives"), name="download") # Mount Shell directory (登录页面) - shell_dir = Path(__file__).parent.parent / "Designer" - if shell_dir.exists(): - app.mount("/shell", StaticFiles(directory=str(shell_dir), html=True), name="shell") - print(f"✓ Shell 已挂载 (Dev): {shell_dir}") - else: - print(f"⚠️ Shell 目录不存在: {shell_dir}") - print(" 请先运行: cd Designer && npm run build:shell") + # shell_dir = Path(__file__).parent.parent / "Designer" + # if shell_dir.exists(): + # app.mount("/shell", StaticFiles(directory=str(shell_dir), html=True), name="shell") + # print(f"✓ Shell 已挂载 (Dev): {shell_dir}") + # else: + # # print(f"⚠️ Shell 目录不存在: {shell_dir}") + # # print(" 请先运行: cd Designer && npm run build:shell") + # pass # Mount DesignerCache directory to serve Core application files - designer_cache = Path.home() / "AppData" / "Roaming" / "DesignerCache" - if designer_cache.exists(): - app.mount("/core", StaticFiles(directory=str(designer_cache), html=True), name="core") - print(f"✓ Core 已挂载 (Dev): {designer_cache}") - else: - # Create directory if it doesn't exist - designer_cache.mkdir(parents=True, exist_ok=True) - app.mount("/core", StaticFiles(directory=str(designer_cache), html=True), name="core") + # designer_cache = Path.home() / "AppData" / "Roaming" / "DesignerCache" + # if designer_cache.exists(): + # app.mount("/core", StaticFiles(directory=str(designer_cache), html=True), name="core") + # print(f"✓ Core 已挂载 (Dev): {designer_cache}") + # else: + # # Create directory if it doesn't exist + # designer_cache.mkdir(parents=True, exist_ok=True) + # app.mount("/core", StaticFiles(directory=str(designer_cache), html=True), name="core") else: print("ℹ️ Production Mode: Static files are NOT mounted by FastAPI (handled by Caddy/Nginx).") diff --git a/AdminPanel/plugins/jsx/template/README.md b/temp_backup/AdminPanel_plugins_jsx_template/README.md similarity index 100% rename from AdminPanel/plugins/jsx/template/README.md rename to temp_backup/AdminPanel_plugins_jsx_template/README.md diff --git a/AdminPanel/plugins/jsx/template/cep.config.ts b/temp_backup/AdminPanel_plugins_jsx_template/cep.config.ts similarity index 100% rename from AdminPanel/plugins/jsx/template/cep.config.ts rename to temp_backup/AdminPanel_plugins_jsx_template/cep.config.ts diff --git a/AdminPanel/plugins/jsx/template/cep/CSXS/manifest.xml b/temp_backup/AdminPanel_plugins_jsx_template/cep/CSXS/manifest.xml similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/CSXS/manifest.xml rename to temp_backup/AdminPanel_plugins_jsx_template/cep/CSXS/manifest.xml diff --git a/AdminPanel/plugins/jsx/template/cep/img/dark.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/dark.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/dark@2x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@2x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/dark@2x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@2x.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/dark@3x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@3x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/dark@3x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@3x.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/dark@4x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@4x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/dark@4x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/dark@4x.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/highlight.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/highlight.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/highlight@2x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@2x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/highlight@2x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@2x.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/highlight@3x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@3x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/highlight@3x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@3x.png diff --git a/AdminPanel/plugins/jsx/template/cep/img/highlight@4x.png b/temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@4x.png similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/img/highlight@4x.png rename to temp_backup/AdminPanel_plugins_jsx_template/cep/img/highlight@4x.png diff --git a/AdminPanel/plugins/jsx/template/cep/index.html b/temp_backup/AdminPanel_plugins_jsx_template/cep/index.html similarity index 100% rename from AdminPanel/plugins/jsx/template/cep/index.html rename to temp_backup/AdminPanel_plugins_jsx_template/cep/index.html diff --git a/AdminPanel/plugins/jsx/template/debug.ts b/temp_backup/AdminPanel_plugins_jsx_template/debug.ts similarity index 100% rename from AdminPanel/plugins/jsx/template/debug.ts rename to temp_backup/AdminPanel_plugins_jsx_template/debug.ts diff --git a/AdminPanel/plugins/jsx/template/html.ts b/temp_backup/AdminPanel_plugins_jsx_template/html.ts similarity index 100% rename from AdminPanel/plugins/jsx/template/html.ts rename to temp_backup/AdminPanel_plugins_jsx_template/html.ts diff --git a/AdminPanel/plugins/jsx/template/manifest.ts b/temp_backup/AdminPanel_plugins_jsx_template/manifest.ts similarity index 100% rename from AdminPanel/plugins/jsx/template/manifest.ts rename to temp_backup/AdminPanel_plugins_jsx_template/manifest.ts diff --git a/AdminPanel/src/hooks/useTheme.ts b/temp_backup/AdminPanel_src_hooks_useTheme.ts similarity index 100% rename from AdminPanel/src/hooks/useTheme.ts rename to temp_backup/AdminPanel_src_hooks_useTheme.ts diff --git a/AdminPanel/接收PS主题示例.js b/temp_backup/AdminPanel_接收PS主题示例.js similarity index 100% rename from AdminPanel/接收PS主题示例.js rename to temp_backup/AdminPanel_接收PS主题示例.js diff --git a/AdminTool/fix_default_group.py b/temp_backup/AdminTool_redundant/fix_default_group.py similarity index 100% rename from AdminTool/fix_default_group.py rename to temp_backup/AdminTool_redundant/fix_default_group.py diff --git a/AdminTool/test_db_connection.py b/temp_backup/AdminTool_redundant/test_db_connection.py similarity index 100% rename from AdminTool/test_db_connection.py rename to temp_backup/AdminTool_redundant/test_db_connection.py diff --git a/AdminTool/test_launch.py b/temp_backup/AdminTool_redundant/test_launch.py similarity index 100% rename from AdminTool/test_launch.py rename to temp_backup/AdminTool_redundant/test_launch.py diff --git a/AdminTool/test_version_system.py b/temp_backup/AdminTool_redundant/test_version_system.py similarity index 100% rename from AdminTool/test_version_system.py rename to temp_backup/AdminTool_redundant/test_version_system.py diff --git a/temp_backup/Designer_redundant/dev.cep.config.ts b/temp_backup/Designer_redundant/dev.cep.config.ts new file mode 100644 index 0000000..a9bed94 --- /dev/null +++ b/temp_backup/Designer_redundant/dev.cep.config.ts @@ -0,0 +1,61 @@ +import { ICepConfig } from "@/plugins"; + +const config: ICepConfig = { + "name": "cep-super-edition", + "id": "com.cep-super-edition", + "version": "0.0.1", + "extensionVersion": "6.1.0", + "requiredRuntimeVersion": "8.0", + "type": "Panel", + "parameters": [ + "--enable-nodejs" + ], + "panels": [ + { + "name": "cepName", + "displayName": "超级套版", + "main": "./index.html", + "width": 400, + "height": 300, + "minWidth": 400, + "minHeight": 300, + "maxWidth": 4000, + "maxHeight": 3000 + } + ], + "hosts": [ + { + "name": "AEFT", + "version": "[0.0,99.9]" + }, + { + "name": "PPRO", + "version": "[0.0,99.9]" + }, + { + "name": "ILST", + "version": "[0.0,99.9]" + }, + { + "name": "PHXS", + "version": "[0.0,99.9]" + }, + { + "name": "FLPR", + "version": "[0.0,99.9]" + } + ], + "build": { + "jsxBin": false, + "country": "CN", + "province": "GD", + "org": "你的公司名称", + "password": "", + "tsa": "" + }, + "zxp": { + "jsxBin": false + } +} + +export default config; \ No newline at end of file diff --git a/temp_backup/Designer_redundant/docs/CEP插件UI适配指南.md b/temp_backup/Designer_redundant/docs/CEP插件UI适配指南.md new file mode 100644 index 0000000..9391247 --- /dev/null +++ b/temp_backup/Designer_redundant/docs/CEP插件UI适配指南.md @@ -0,0 +1,179 @@ +# 🎨 CEP 插件 UI 适配完全指南 + +> **目标**:将网页版 UI 完美重构为 Adobe CEP 插件原生体验,对标行业顶尖竞品。 + +## 📋 目录 + +- [核心约束](#-核心约束) +- [问题诊断](#-问题诊断) +- [UI 重构方案](#-ui-重构方案) +- [样式系统 (Design System)](#-样式系统-design-system) +- [实施路线图](#-实施路线图) +- [验收标准](#-验收标准) + +--- + +## � 核心约束 + +> [!IMPORTANT] > **CEP 插件的黄金法则**: +> 能够在 **280px** 宽度的面板中完整显示所有核心功能,且无需横向滚动。 + +### 尺寸规范 (Manifest.xml) + +| 属性 | 值 | 说明 | +| :----------- | :--------------- | :------------------------- | +| **默认尺寸** | `280px × 600px` | 最小可用状态 | +| **最小尺寸** | `280px × 600px` | 锁死最小宽度,防止布局崩坏 | +| **最大尺寸** | `600px × 4080px` | 允许垂直方向无限延伸 | + +--- + +## 🔍 问题诊断 + +我们在将 Web UI 移植到 CEP 环境时,面临以下主要适配挑战: + +```mermaid +graph TD + A[Web UI (1200px+)] -->|❌ 侧边栏过宽| B(180px Nav) + A -->|❌ 网格松散| C(Card Layout) + A -->|❌ 组件巨大| D(Large Buttons/Inputs) + + B --> E[CEP Environment (280px)] + C --> E + D --> E + + E -->|导致| F[⚠️ 横向滚动条] + E -->|导致| G[⚠️ 内容被截断] + E -->|导致| H[⚠️ 操作效率低] +``` + +--- + +## 🛠 UI 重构方案 + +### 1. 导航栏 (Navigation) + +**现状**:`180px` 宽度的侧边栏在 `280px` 的面板中占据了 64% 的空间。 +**方案**:采用 **图标栏 (Icon Bar)** 模式。 + +| 调整项 | Web 版 | CEP 适配版 | +| :------- | :----------- | :-------------------------- | +| **模式** | 展开式侧边栏 | 收缩式图标栏 | +| **宽度** | `180px` | `40px` | +| **标签** | 文字 + 图标 | 仅图标 (Hover 显示 Tooltip) | + +### 2. 信息卡片 (Info Cards) + +**现状**:卡片布局在窄屏下挤压严重。 +**方案**:**CSS Grid 自适应紧凑布局**。 + +> [!TIP] +> 使用 `grid-template-columns: repeat(3, 1fr)` 确保在 280px 宽度下也能整齐排列。 + +**代码对比**: + +```vue + +
+
+
+
+ 积分 + {{ points }} +
+
+
+``` + +### 3. 功能入口 (Feature Grid) + +**现状**:每个功能占据大块面积,包含描述文字。 +**方案**:**应用抽屉风格 (App Drawer)**,仅保留图标和名称。 + +- **移除**:详细的功能描述文本。 +- **缩小**:图标尺寸从 `32px` -> `24px`。 +- **布局**:使用 `repeat(auto-fill, minmax(70px, 1fr))` 实现自动换行。 + +--- + +## 🎨 样式系统 (Design System) + +为了让插件看起来像原生 PS 功能,我们需要覆盖 Arco Design 的默认样式。 + +> [!NOTE] +> 请在 `src/style/` 下创建 `cep-override.css` 并全局引入。 + +### 全局样式重写 (`cep-override.css`) + +```css +:root { + /* 定义紧凑型尺寸变量 */ + --cep-padding-base: 8px; + --cep-font-size-base: 12px; + --cep-btn-height: 28px; +} + +/* 🟢 按钮微型化 */ +.arco-btn { + height: var(--cep-btn-height) !important; + padding: 0 12px !important; + font-size: var(--cep-font-size-base) !important; + border-radius: 2px !important; /* PS 风格通常更方正 */ +} + +/* 🟢 输入框紧凑化 */ +.arco-input-wrapper { + height: var(--cep-btn-height) !important; + padding: 0 8px !important; +} + +/* 🟢 滚动条美化 (原生风格) */ +::-webkit-scrollbar { + width: 4px; /* 极细滚动条 */ + background: transparent; +} +::-webkit-scrollbar-thumb { + background: #505050; + border-radius: 2px; +} +::-webkit-scrollbar-thumb:hover { + background: #6e6e6e; +} + +/* 🟢 卡片与容器 */ +.cep-container { + padding: var(--cep-padding-base); +} +.arco-card-body { + padding: 8px !important; +} +``` + +--- + +## � 实施路线图 + +1. **配置 manifest** + - 修改 `manifest.xml` 中的 geometry 配置,锁定最小宽度。 +2. **样式注入** + - 创建并引入 `cep-override.css`。 +3. **组件改造** + - **Home.vue**: 将 Sider `width` 设为 40,`collapsed` 设为 true。 + - **HomePage.vue**: 重写 Grid 布局,移除多余文字描述,使用紧凑型 Icon。 +4. **响应式测试** + - 在浏览器中将视口宽度调整为 `280px` 进行极限测试。 + +--- + +## ✅ 验收标准 (Checklist) + +请逐项核对以确保完美交付: + +- [ ] **宽度测试**:在 280px 宽度下,无横向滚动条。 +- [ ] **侧边栏**:宽度严格控制在 40px 以内。 +- [ ] **字体**:正文不大于 12px,标题不大于 14px。 +- [ ] **按钮**:高度不大于 28px (Small/Mini 尺寸)。 +- [ ] **深色模式**:背景色与 PS 界面融合 (通常为 `#323232` 或 `#535353`)。 +- [ ] **交互**:所有点击区域即使在小尺寸下也易于点击 (增加热区 padding 不增加视觉 margin)。 + +> [!WARNING] > **切记**:CEP 插件是工具属性极强的应用,**效率**高于**装饰**。尽量减少无用的留白和装饰性元素。 diff --git a/temp_backup/Designer_redundant/docs/CEP适配完成说明.md b/temp_backup/Designer_redundant/docs/CEP适配完成说明.md new file mode 100644 index 0000000..9939ee6 --- /dev/null +++ b/temp_backup/Designer_redundant/docs/CEP适配完成说明.md @@ -0,0 +1,164 @@ +# ✅ CEP 插件 UI 适配完成说明 + +## 🎯 完成的工作 + +### 1. **面板尺寸配置** ✅ +已统一为竞品标准(图牛助理2.0): + +``` +所有配置文件已更新: +├── cep.config.ts ✅ 280px × 600px +├── dev.cep.config.ts ✅ 280px × 600px +└── prod.cep.config.ts ✅ 280px × 600px +``` + +### 2. **全局样式系统** ✅ + +创建了两个全局样式文件: + +#### `src/style/cep-arco-override.css` - Arco Design 组件覆盖 +```css +自动调整所有 Arco 组件: +- Button: 28px 高度(小按钮 24px) +- Input: 28px 高度 +- Card: 8px 内边距 +- 字体: 12px 正文,10px 辅助文字 +- 图标: 14-24px +- 间距: 4-16px 紧凑系统 +``` + +#### `src/style/cep-pages.css` - 页面布局样式 +```css +专门优化的页面: +- Home.vue: 40px 侧边栏(仅图标) +- HomePage.vue: 紧凑信息卡片 + 功能网格 +- Profile.vue: 2列统计网格 +- CheckIn.vue: 紧凑签到日历 +``` + +### 3. **已调整的组件** ✅ + +#### Home.vue 主容器 +```diff +- 侧边栏宽度: 180px ++ 侧边栏宽度: 40px(仅图标) + +- 可折叠展开 ++ 固定折叠(节省空间) + +- 显示菜单文字 ++ 仅显示图标 +``` + +#### HomePage.vue 首页 +```diff +信息卡片: +- gutter: 16 ++ gutter: 8(紧凑间距) + +- 标题: "剩余积分" ++ 标题: "积分"(简化文字) + +- 图标大小: 默认 ++ 图标大小: 14px + +快捷按钮: +- size="large" ++ size="default"(28px) + +- 文字: "每日签到" ++ 文字: "签到"(简化) +``` + +### 4. **引入方式** ✅ + +在 `src/main.ts` 中自动引入: +```typescript +import '@arco-design/web-vue/dist/arco.css'; +import './style/cep-arco-override.css'; // ⭐ 全局覆盖 +import './style/cep-pages.css'; // ⭐ 页面样式 +``` + +## 🎨 UI框架信息 + +- **组件库**: Arco Design Vue 2.57.0(字节跳动) +- **核心框架**: Vue 3 + TypeScript +- **构建工具**: Vite +- **路由**: Vue Router 4 + +## 📐 适配效果 + +### 尺寸对比 + +| 元素 | 网页版 | CEP版 | 优化 | +|------|--------|-------|------| +| 面板宽度 | - | 280px | ✅ | +| 侧边栏 | 180px | 40px | ✅ 节省 140px | +| 按钮高度 | 40px | 28px | ✅ | +| 卡片间距 | 16px | 8px | ✅ | +| 字体大小 | 14px | 12px | ✅ | +| 图标 | 24px | 14-20px | ✅ | + +### 响应式网格 + +```css +功能网格自动适配: +- 窄面板 (<300px): 2列 +- 标准面板 (300-350px): 3列 ⭐ 默认 +- 宽面板 (>350px): 4列 +``` + +## 🧪 测试方法 + +### 方法1: 浏览器测试 +```bash +cd Designer +npm run dev +``` +在浏览器中打开,按 F12 开发者工具: +- 设置设备工具栏(Ctrl+Shift+M) +- 自定义宽度: 280px +- 测试滚动和交互 + +### 方法2: Photoshop 测试 +```bash +npm run build +``` +在 PS 中加载插件,查看实际效果。 + +## 📋 全局样式变量参考 + +```css +/* 在组件中使用这些变量 */ +.my-component { + padding: var(--cep-spacing-md); /* 8px */ + font-size: var(--cep-font-base); /* 12px */ + height: var(--cep-button-height); /* 28px */ +} + +/* 或使用工具类 */ +
/* 自动应用紧凑间距 */ + /* 10px 字体 */ +``` + +## ⚠️ 注意事项 + +1. **所有新组件**都会自动应用 CEP 样式(无需手动调整) +2. **如果需要特殊尺寸**,在组件内用 `style` 覆盖 +3. **开发时**在浏览器中测试 280px 宽度 +4. **构建前**确保所有样式文件已保存 + +## 🚀 下一步 + +1. ✅ 面板尺寸已调整 +2. ✅ 全局样式已配置 +3. ✅ 主要组件已优化 +4. 📝 测试所有页面在 280px 宽度下的显示效果 +5. 📝 根据需要微调个别组件 + +--- + +**现在您的 Designer 插件已完美适配 CEP 环境!** 🎉 + +所有页面都会自动应用紧凑布局,无需逐个调整! + diff --git a/temp_backup/Designer_redundant/docs/core-publish-guide.md b/temp_backup/Designer_redundant/docs/core-publish-guide.md new file mode 100644 index 0000000..48563ee --- /dev/null +++ b/temp_backup/Designer_redundant/docs/core-publish-guide.md @@ -0,0 +1,98 @@ +# Core 应用发布流程 + +本文档描述如何构建和发布 Core 应用的新版本。 + +## 前置条件 + +- 后端服务器已运行 +- 已完成代码修改并测试 + +## 发布步骤 + +### 1. 构建 Core 应用 + +```powershell +cd d:\main\DesignerCEP\Designer +npm run build:core +``` + +这会在 `dist_core/` 目录生成构建产物。 + +### 2. 重命名入口文件 + +构建后的入口文件是 `index-core.html`,需要重命名为 `index.html`: + +```powershell +Move-Item -Path ".\dist_core\index-core.html" -Destination ".\dist_core\index.html" -Force +``` + +### 3. 打包为 ZIP + +将版本号替换为新版本(如 `v1.0.4`): + +```powershell +$version = "v1.0.4" +Compress-Archive -Path ".\dist_core\*" -DestinationPath "..\Server\archives\core-$version.zip" -Force +``` + +### 4. 更新数据库 + +编辑 `Server/update_version.py`,将版本号改为新版本,然后运行: + +```powershell +cd d:\main\DesignerCEP\Server +python update_version.py +``` + +或者直接执行 SQL: + +```sql +UPDATE plugin_groups SET current_version_file='core-v1.0.4.zip' WHERE id=1; +``` + +### 5. 清除客户端缓存(测试时) + +用户端需要清除旧缓存才能下载新版本: + +```powershell +Remove-Item -Recurse -Force "$env:APPDATA\DesignerCache" -ErrorAction SilentlyContinue +``` + +## 一键发布脚本 + +可以创建一个 PowerShell 脚本自动执行以上步骤: + +```powershell +# publish-core.ps1 +param([string]$version = "v1.0.0") + +# 1. Build +npm run build:core + +# 2. Rename +Move-Item -Path ".\dist_core\index-core.html" -Destination ".\dist_core\index.html" -Force + +# 3. Package +Compress-Archive -Path ".\dist_core\*" -DestinationPath "..\Server\archives\core-$version.zip" -Force + +Write-Host "Created: core-$version.zip" +Write-Host "Remember to update database: python update_version.py" +``` + +使用方法: + +```powershell +.\publish-core.ps1 -version "v1.0.5" +``` + +## 项目结构说明 + +| 路径 | 说明 | +| :------------------------------ | :------------------- | +| `Designer/index.html` | Shell 入口(登录页) | +| `Designer/index-core.html` | Core 入口(主应用) | +| `Designer/src/main.ts` | Core 应用入口点 | +| `Designer/src/launcher/main.ts` | Shell 应用入口点 | +| `Designer/dist_core/` | Core 构建输出 | +| `Server/archives/` | ZIP 包存放目录 | +| `Server/update_version.py` | 数据库版本更新脚本 | diff --git a/temp_backup/Designer_redundant/hybrid-demo.ts b/temp_backup/Designer_redundant/hybrid-demo.ts new file mode 100644 index 0000000..3330550 --- /dev/null +++ b/temp_backup/Designer_redundant/hybrid-demo.ts @@ -0,0 +1,84 @@ +/** + * 混合方案 Demo - 简单版 + * 前端获取图层名称 → 后端计算 → 前端显示结果 + */ + +import { evalInlineJSX, JSXResponse } from './utils'; +import { config } from '@/config'; + +/** + * Demo:获取当前图层名称并计算 + * + * 流程: + * 1. 本地 → 获取当前图层名称(如 "87-98") + * 2. 本地 → 发送到服务器 + * 3. 服务器 → 计算数学表达式(核心算法) + * 4. 服务器 → 返回计算结果 + * 5. 本地 → 显示结果 + */ +export async function calculateLayerName(): Promise { + try { + // 1. 💻 本地获取图层名称(简单 JSX) + const jsx = ` + try { + if (!$.global.JSXUtils.hasDocument()) { + return $.global.JSXUtils.stringify({ error: '没有打开的文档' }); + } + + var doc = $.global.JSXUtils.getDocument(); + + if (doc.activeLayer) { + return $.global.JSXUtils.stringify({ + success: true, + layerName: doc.activeLayer.name + }); + } else { + return $.global.JSXUtils.stringify({ + error: '没有选中的图层' + }); + } + } catch (error) { + return $.global.JSXUtils.stringify({ + error: error.toString() + }); + } + `; + + const layerResult = await evalInlineJSX(jsx); + + if (layerResult.error || !layerResult.success) { + return layerResult; + } + + const layerName = layerResult.layerName; + + // 2. 🌐 发送到服务器计算(核心算法在服务器,使用 API Key 验证) + const response = await fetch(`${config.apiBaseUrl}/jsx_demo/calculate`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-API-Key': 'demo_key_123' // 🔐 API Key 验证 + }, + body: JSON.stringify({ + expression: layerName + }) + }); + + if (!response.ok) { + return { error: '服务器错误' }; + } + + const calcResult = await response.json(); + + return { + success: calcResult.success, + expression: calcResult.expression, + result: calcResult.result, + message: calcResult.message, + layerName: layerName + }; + + } catch (error) { + return { error: String(error) }; + } +} diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/README.md b/temp_backup/Designer_redundant/plugins_jsx_template/README.md new file mode 100644 index 0000000..eb367e9 --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/README.md @@ -0,0 +1,3 @@ +## 目录说明 +- cep 插件壳模板文件 +- cep.config.json 配置文件 \ No newline at end of file diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep.config.ts b/temp_backup/Designer_redundant/plugins_jsx_template/cep.config.ts new file mode 100644 index 0000000..44f96bd --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/cep.config.ts @@ -0,0 +1,65 @@ +import { ICepConfig } from "@plugins"; + +const config: ICepConfig = { + name: "cepName", + id: "com.cepName", + version: "1.0.0", + extensionVersion: "6.1.0", + requiredRuntimeVersion: "9.0", + type: "Panel", + parameters: [ + "--enable-nodejs", + ], + panels: [ + { + name: "cepName", + displayName: "panelName", + main: "./index.html", + width: 400, + height: 300, + minWidth: 400, + minHeight: 300, + maxWidth: 4000, + maxHeight: 3000, + } + ], + hosts:[ + { + name: "AEFT", + version: "[0.0,99.9]", + }, + { + name: "PPRO", + version: "[0.0,99.9]", + }, + { + name: "ILST", + version: "[0.0,99.9]", + }, + { + name: "PHXS", + version: "[0.0,99.9]", + }, + { + name: "FLPR", + version: "[0.0,99.9]", + }, + ], + build: { + jsxBin: false, + /**国家 */ + country: "CN", + /**省份 */ + province: "GD", + /**公司名称 */ + org: "你的公司名称", + /**签名密码 */ + password: "", + tsa: "", + }, + zxp: { + jsxBin: false + } +} + +export default config; \ No newline at end of file diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/CSXS/manifest.xml b/temp_backup/Designer_redundant/plugins_jsx_template/cep/CSXS/manifest.xml new file mode 100644 index 0000000..07a9297 --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/cep/CSXS/manifest.xml @@ -0,0 +1,23 @@ + + + + + + + + 600 + 280 + + + 4080 + 600 + + + 600 + 280 + + + + + + diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark.png new file mode 100644 index 0000000000000000000000000000000000000000..54e51f865b9f03a7f0ca423e649144d26f4e19e8 GIT binary patch literal 475 zcmV<10VMv3P)$IzbO*8m89Gq&T!CEzi4F*+y`Ebh z4MvF}aYE9QyuQBM+jGyk_W=b86v$EPiIjWtfPcp3UkQgd5~hM+D}{Y*npk6%f%xxJ zRCc#9`j{XjNvz+Ft|j>N5H98#EI8m{^n7Njd8{vO2rk@l>pXm-ZJGORVukLuynA`ke?VtB#-6x9)t?{J=FoCa|2&|pi z9W!~4=PaJ4xF?C7r!yX~1F`0E*LarqZ3aT&9CT(g5p*&oK#i?ZMLxe>u;?uz_ypd=@{SUF&O8qRK{^P&Atx`SJi-f@Lo@%+bRHiwvuU2QAR zbys*bl>1U+!4_}CkZulC42NHRYMRk+`5sn8!mCMgb=4(#O^3aVyg-39!57TCnt=9w R32p!Y002ovPDHLkV1hnlzZ3uf literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@2x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1468358c84e77a43a6509137c61d9cc3f9475cf1 GIT binary patch literal 846 zcmV-U1F`&xP)8@Qgp$cy}# z9lMj+q<6Ckl29n+d{u#+nV#;iXTI)Tz`?=6!NI}7!NI}de+8u{R*sAr3=H;LCECM3 z3=j7l_dbDn%!nsdQ{ZD*XW`{#%>O^J>}qMd!aI{cyTltZ@Wm#|q3)eygO_|+ClA5t zHq{gMKT+iQ$JXz+1)%o1M4|ROQw^*fn*+Al$yf>(4A$ac&#K11Bs5~OHgK~a0tGu& zYrUc^d00I*o6O>nAMZz;V|k{w6B zx6h!~yLF4{YrvqWMq%^-59P*Gpd|^k#8P0Q30pqJ7uI%!q)m1(@9|AW29Nl$6VFA2 z&A~dRz|*%zPR_?Lnf+jkI;`u%RG^Ld^VBI5Dx!5O&2Ypy4edo{UrN*rSc-fgAC*-B zvm{`;$&>Re5lKQPz*tQ0^&$j{U^wF241F85p0f2-?3;t;5+oBrF-E&FqEs#XdC+XX z6WgfgVNr@o&*gIHF#FKE(1uv&zjcvTH&TJPUH-};(6-dqZ>`svloZr@zz5>n;Re@G z+1~8>FqeJ@>xZ5IE}k83e_!?Q>;ebkP&<(#T|F`lCf`WxXPXS$0=Me#;wvjAMX0D@ zo|A8LTWv$#949z?8|@lM&ki*)X!#Jzfqf5nU6hfmjlA6(ru|CMk|HR?rK1hp@(t-1 zWmW>=HNPKXB;@#p*6e9?hP=^~*4Nsm!+7rGH3e+DEVlMGDzZ1Lhy|x5D)RM}kzDUc zx8n}BtZfOm1nKuyt0P#cn!WgWZVvU6m(=S-BD<_N@lAZ+S^|?G8dfq0AvZyIZgdf| zB(uJuuEU)qAaCS|k_E0I(rSxrrof$iPD^3R=Rm4n`rV07ep>Pl4h{|u4h{|u4u2QF Y0X+Ok_?X}U{X8-^I literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@3x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a310dc2fc685affcb1387a44003f9e76bcae653 GIT binary patch literal 1241 zcmV;~1Sb25P)&&j0lhgHc#W`imi7-yU|)g&?Wtb?7KZ)?Or zCZJuRIc^2C+#1rdi$T7O8Osc;{PFOeJ}k41p9fSyx*I~F>tNB+Ehy^>ePJ+g@ovQ2 zgEX)HKyVGjukBZV8)q0yzH6^mcLWE|4rC()OBi_FPO6Uc0T?lo|J$V!up1;J$B0qc z&g|WJV%O8;F`kEY&%M#SY0i8JPZbMWN8TcL=UGda1Wen6!q z@#AKjLsG5dx(qb&;n*di--bdiD%IePU$`hO0j_jO3t);eiCjh$(F&H(T{9^Y9j1X`Bii0GBY+<2}c$EuJ)o? zz#>K7p|!CfjRWXr9V79WVM3dJI~zH_s|qqOXksf3=ynmtvhJ#E#S7BSFH&xPGT5H) zX$Fi}>5lZ^jAh2x9is`ks|LgqX;OK(y2eh};D8DpAEB$Cow}ts>7V8^9cbJ~&tFt@ zIX2uejNOZ7z3ylNcL)V#cP|-y)p2oAj6WRQ`?)I-&V<7n*Bw5b374Ro@00v17Kz3$ z%<@zjCgc1w4vbzF`!aAxi;*i1Ev@@-R@)0wGc00000NkvXXu0mjf DMSe?q literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@4x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/dark@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..51b78aec4324a36a9b1580bfad15204e87706b98 GIT binary patch literal 1610 zcmV-Q2DSN#P)@~0drDELIAGL9O(c600d`2O+f$vv5yPZ?TK~#7F?V4Ru z+(r<`d$ialRjG<@5OD&paZ;7H;1k50An+2Kyab$?0>oL|`TY0*wL#Gz<*TFfc&FzyJ-iKzD?d10DW% zMNz6L(kX>JGZNLJ{-3|7n5N{1Jsn*I)RzD6r4;|Mp%VIp497eeP+JAmS1I+sUZl9U zuKHzVH139ex2IRMqAh-iC@Qo)hX>iar)j&a0w3?|r~GG&N8TPS&*iL(oaH^;;esuz z0B&=-p$=X0x$l}%^fQln#a7RCF;AjhpNt`mZ9y`7miP6`RMBz%BB7&c#Pw^Jir#bk ztx0mF4J-brsC+@5!*b4KWzZBzKQ`_e8}7iReDfT6Hn-u)`~Lgib=xPiF#~+Kq+`~| zW~EM=IzA(qI&MRLLf)2+s3M~LOPMSd!+MAYDV@nGcQt6l05bC{zQ{GK;Czd@ftl5l zm7j^wX3zeKDj>?|KM_pq1-W{;$k z|2pIu9dp@BDuHZwY_!Nxo$zy4<7@A1^YJVF&@~x?bF=b0H_E6+7S6rPK6&>{bw>-* z#Z19AMrTy2z1u^7MEQo(XG-KIR03B1il@347hGd@Ki@cIsqy!()c~ny-(`jVRV<6M zfF^PEq4Ugj)dRNy*!On@a!y4R`ag8mS(MEOZnui8dd~pm^z~&+iS1q723Qy#j2^k# z)jut_0=#2ZG#>FTk}nF5iUnUnF6dutsiIQp0^Wi`sz6*J4Iz992KdHN9#IKYNka{> zc{)DoHGuZKjG}MtUEJr!$5t-SBUd>T&4HM6Z!eIzDpHGVpQB+rk7_kQpvafm9E)!A zJc?^Z_2WEK%30II(Z+a7#VAyMPw;N8`)m5!RcDK)eU1hjY)sZHaX=_p!7>fmo$Siq z_>oh!!G)Qvp;g|#-ppOZtY1pMxn#0pPlo>w?o*HDI+5HDD}7b6pppdqaA9JAQdRfN;i;WPz=3(M$R(Cn$5JtFsQnP;LG1YICG|Wh-Ai&8 zQOLEIOff`6)w~*mqHV9tfLBytR#oI_w;NmTGio=08H7L2GZ8l8lVX_|L@r#YB(l=V zwv}zMifju>`oNy4ZNv>V`@HtfDmT16#EzS>0oPHv6vM7;b5w!B16nO9yGSAv#uXnl z76+L8Of@5zOsVghPYfe3>)DP(3A=oix=9rg1@bI@R3)1#tHvnbbCo*L3z~81WincJ zKV6K_-qVLX3)aM?v*hUe;yX)%EB%TNPfJ9Z`OB`c+)j%x4#k5Q?IH!w*sa`zCa+C8>pz$QuIaw zCKD`)zwW*kt@W$#`ANq44oAMMm#-5fsFcrJym!*mTv^V*+!!FgJxgdd65lP{Z7??m zFm7TNpd~aNUVr_zn5+AM5^;cyzQiNqJg{EH{~8yXNPl?R~fG* zk1tLnzNmZF0{{R300000000000000000000000000D$@Af6>@%r<)m4jQ{`u07*qo IM6N<$f_Gl`v;Y7A literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight.png new file mode 100644 index 0000000000000000000000000000000000000000..54e51f865b9f03a7f0ca423e649144d26f4e19e8 GIT binary patch literal 475 zcmV<10VMv3P)$IzbO*8m89Gq&T!CEzi4F*+y`Ebh z4MvF}aYE9QyuQBM+jGyk_W=b86v$EPiIjWtfPcp3UkQgd5~hM+D}{Y*npk6%f%xxJ zRCc#9`j{XjNvz+Ft|j>N5H98#EI8m{^n7Njd8{vO2rk@l>pXm-ZJGORVukLuynA`ke?VtB#-6x9)t?{J=FoCa|2&|pi z9W!~4=PaJ4xF?C7r!yX~1F`0E*LarqZ3aT&9CT(g5p*&oK#i?ZMLxe>u;?uz_ypd=@{SUF&O8qRK{^P&Atx`SJi-f@Lo@%+bRHiwvuU2QAR zbys*bl>1U+!4_}CkZulC42NHRYMRk+`5sn8!mCMgb=4(#O^3aVyg-39!57TCnt=9w R32p!Y002ovPDHLkV1hnlzZ3uf literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@2x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1468358c84e77a43a6509137c61d9cc3f9475cf1 GIT binary patch literal 846 zcmV-U1F`&xP)8@Qgp$cy}# z9lMj+q<6Ckl29n+d{u#+nV#;iXTI)Tz`?=6!NI}7!NI}de+8u{R*sAr3=H;LCECM3 z3=j7l_dbDn%!nsdQ{ZD*XW`{#%>O^J>}qMd!aI{cyTltZ@Wm#|q3)eygO_|+ClA5t zHq{gMKT+iQ$JXz+1)%o1M4|ROQw^*fn*+Al$yf>(4A$ac&#K11Bs5~OHgK~a0tGu& zYrUc^d00I*o6O>nAMZz;V|k{w6B zx6h!~yLF4{YrvqWMq%^-59P*Gpd|^k#8P0Q30pqJ7uI%!q)m1(@9|AW29Nl$6VFA2 z&A~dRz|*%zPR_?Lnf+jkI;`u%RG^Ld^VBI5Dx!5O&2Ypy4edo{UrN*rSc-fgAC*-B zvm{`;$&>Re5lKQPz*tQ0^&$j{U^wF241F85p0f2-?3;t;5+oBrF-E&FqEs#XdC+XX z6WgfgVNr@o&*gIHF#FKE(1uv&zjcvTH&TJPUH-};(6-dqZ>`svloZr@zz5>n;Re@G z+1~8>FqeJ@>xZ5IE}k83e_!?Q>;ebkP&<(#T|F`lCf`WxXPXS$0=Me#;wvjAMX0D@ zo|A8LTWv$#949z?8|@lM&ki*)X!#Jzfqf5nU6hfmjlA6(ru|CMk|HR?rK1hp@(t-1 zWmW>=HNPKXB;@#p*6e9?hP=^~*4Nsm!+7rGH3e+DEVlMGDzZ1Lhy|x5D)RM}kzDUc zx8n}BtZfOm1nKuyt0P#cn!WgWZVvU6m(=S-BD<_N@lAZ+S^|?G8dfq0AvZyIZgdf| zB(uJuuEU)qAaCS|k_E0I(rSxrrof$iPD^3R=Rm4n`rV07ep>Pl4h{|u4h{|u4u2QF Y0X+Ok_?X}U{X8-^I literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@3x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a310dc2fc685affcb1387a44003f9e76bcae653 GIT binary patch literal 1241 zcmV;~1Sb25P)&&j0lhgHc#W`imi7-yU|)g&?Wtb?7KZ)?Or zCZJuRIc^2C+#1rdi$T7O8Osc;{PFOeJ}k41p9fSyx*I~F>tNB+Ehy^>ePJ+g@ovQ2 zgEX)HKyVGjukBZV8)q0yzH6^mcLWE|4rC()OBi_FPO6Uc0T?lo|J$V!up1;J$B0qc z&g|WJV%O8;F`kEY&%M#SY0i8JPZbMWN8TcL=UGda1Wen6!q z@#AKjLsG5dx(qb&;n*di--bdiD%IePU$`hO0j_jO3t);eiCjh$(F&H(T{9^Y9j1X`Bii0GBY+<2}c$EuJ)o? zz#>K7p|!CfjRWXr9V79WVM3dJI~zH_s|qqOXksf3=ynmtvhJ#E#S7BSFH&xPGT5H) zX$Fi}>5lZ^jAh2x9is`ks|LgqX;OK(y2eh};D8DpAEB$Cow}ts>7V8^9cbJ~&tFt@ zIX2uejNOZ7z3ylNcL)V#cP|-y)p2oAj6WRQ`?)I-&V<7n*Bw5b374Ro@00v17Kz3$ z%<@zjCgc1w4vbzF`!aAxi;*i1Ev@@-R@)0wGc00000NkvXXu0mjf DMSe?q literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@4x.png b/temp_backup/Designer_redundant/plugins_jsx_template/cep/img/highlight@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..51b78aec4324a36a9b1580bfad15204e87706b98 GIT binary patch literal 1610 zcmV-Q2DSN#P)@~0drDELIAGL9O(c600d`2O+f$vv5yPZ?TK~#7F?V4Ru z+(r<`d$ialRjG<@5OD&paZ;7H;1k50An+2Kyab$?0>oL|`TY0*wL#Gz<*TFfc&FzyJ-iKzD?d10DW% zMNz6L(kX>JGZNLJ{-3|7n5N{1Jsn*I)RzD6r4;|Mp%VIp497eeP+JAmS1I+sUZl9U zuKHzVH139ex2IRMqAh-iC@Qo)hX>iar)j&a0w3?|r~GG&N8TPS&*iL(oaH^;;esuz z0B&=-p$=X0x$l}%^fQln#a7RCF;AjhpNt`mZ9y`7miP6`RMBz%BB7&c#Pw^Jir#bk ztx0mF4J-brsC+@5!*b4KWzZBzKQ`_e8}7iReDfT6Hn-u)`~Lgib=xPiF#~+Kq+`~| zW~EM=IzA(qI&MRLLf)2+s3M~LOPMSd!+MAYDV@nGcQt6l05bC{zQ{GK;Czd@ftl5l zm7j^wX3zeKDj>?|KM_pq1-W{;$k z|2pIu9dp@BDuHZwY_!Nxo$zy4<7@A1^YJVF&@~x?bF=b0H_E6+7S6rPK6&>{bw>-* z#Z19AMrTy2z1u^7MEQo(XG-KIR03B1il@347hGd@Ki@cIsqy!()c~ny-(`jVRV<6M zfF^PEq4Ugj)dRNy*!On@a!y4R`ag8mS(MEOZnui8dd~pm^z~&+iS1q723Qy#j2^k# z)jut_0=#2ZG#>FTk}nF5iUnUnF6dutsiIQp0^Wi`sz6*J4Iz992KdHN9#IKYNka{> zc{)DoHGuZKjG}MtUEJr!$5t-SBUd>T&4HM6Z!eIzDpHGVpQB+rk7_kQpvafm9E)!A zJc?^Z_2WEK%30II(Z+a7#VAyMPw;N8`)m5!RcDK)eU1hjY)sZHaX=_p!7>fmo$Siq z_>oh!!G)Qvp;g|#-ppOZtY1pMxn#0pPlo>w?o*HDI+5HDD}7b6pppdqaA9JAQdRfN;i;WPz=3(M$R(Cn$5JtFsQnP;LG1YICG|Wh-Ai&8 zQOLEIOff`6)w~*mqHV9tfLBytR#oI_w;NmTGio=08H7L2GZ8l8lVX_|L@r#YB(l=V zwv}zMifju>`oNy4ZNv>V`@HtfDmT16#EzS>0oPHv6vM7;b5w!B16nO9yGSAv#uXnl z76+L8Of@5zOsVghPYfe3>)DP(3A=oix=9rg1@bI@R3)1#tHvnbbCo*L3z~81WincJ zKV6K_-qVLX3)aM?v*hUe;yX)%EB%TNPfJ9Z`OB`c+)j%x4#k5Q?IH!w*sa`zCa+C8>pz$QuIaw zCKD`)zwW*kt@W$#`ANq44oAMMm#-5fsFcrJym!*mTv^V*+!!FgJxgdd65lP{Z7??m zFm7TNpd~aNUVr_zn5+AM5^;cyzQiNqJg{EH{~8yXNPl?R~fG* zk1tLnzNmZF0{{R300000000000000000000000000D$@Af6>@%r<)m4jQ{`u07*qo IM6N<$f_Gl`v;Y7A literal 0 HcmV?d00001 diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/cep/index.html b/temp_backup/Designer_redundant/plugins_jsx_template/cep/index.html new file mode 100644 index 0000000..0d86587 --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/cep/index.html @@ -0,0 +1,16 @@ + + + + + + + + {{name}} + + + + + + \ No newline at end of file diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/debug.ts b/temp_backup/Designer_redundant/plugins_jsx_template/debug.ts new file mode 100644 index 0000000..57337da --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/debug.ts @@ -0,0 +1,15 @@ +export function joinDebug(id: string, hosts: { name: string }[]) { + let port = 7080 + return ` + + + + + ${hosts + .map((host) => ``) + .join("\n")} + + + + ` +} \ No newline at end of file diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/html.ts b/temp_backup/Designer_redundant/plugins_jsx_template/html.ts new file mode 100644 index 0000000..7a38421 --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/html.ts @@ -0,0 +1,20 @@ +export function joinHtml(name:string,server:string){ + return ` + + + + + + + + ${name} + + + + + + + ` +} \ No newline at end of file diff --git a/temp_backup/Designer_redundant/plugins_jsx_template/manifest.ts b/temp_backup/Designer_redundant/plugins_jsx_template/manifest.ts new file mode 100644 index 0000000..5c53033 --- /dev/null +++ b/temp_backup/Designer_redundant/plugins_jsx_template/manifest.ts @@ -0,0 +1,66 @@ +import { ICepConfig } from "../types"; + +export function joinManifest(config: ICepConfig) { + const { id, version, extensionVersion, requiredRuntimeVersion, hosts, parameters, panels } = config + const mainId=`${id}` + const panel = panels[0] + return ` + + + + + + + ${hosts.map(item => ``).join("\n")} + + + + + + + + + + + + + ./index.html + + + ${parameters.map(item => `${item}`).join("\n")} + + + + true + + + Panel + ${panel.displayName} + + + ${panel.height} + ${panel.width} + + + ${panel.maxHeight||panel.height} + ${panel.maxWidth||panel.width} + + + ${panel.minHeight||panel.height} + ${panel.minWidth||panel.width} + + + + ./img/highlight.png + ./img/dark.png + ./img/highlight.png + ./img/dark.png + + + + + + + + ` +} \ No newline at end of file diff --git a/temp_backup/Designer_redundant/prod.cep.config.ts b/temp_backup/Designer_redundant/prod.cep.config.ts new file mode 100644 index 0000000..97f2afa --- /dev/null +++ b/temp_backup/Designer_redundant/prod.cep.config.ts @@ -0,0 +1,61 @@ +import { ICepConfig } from "./plugins"; + +const config: ICepConfig = { + "name": "cep-super-edition", + "id": "com.cep-super-edition", + "version": "0.0.1", + "extensionVersion": "6.1.0", + "requiredRuntimeVersion": "8.0", + "type": "Panel", + "parameters": [ + "--enable-nodejs" + ], + "panels": [ + { + "name": "超级套版", + "displayName": "超级套版", + "main": "./index.html", + "width": 280, + "height": 600, + "minWidth": 280, + "minHeight": 600, + "maxWidth": 600, + "maxHeight": 4080 + } + ], + "hosts": [ + { + "name": "AEFT", + "version": "[0.0,99.9]" + }, + { + "name": "PPRO", + "version": "[0.0,99.9]" + }, + { + "name": "ILST", + "version": "[0.0,99.9]" + }, + { + "name": "PHXS", + "version": "[0.0,99.9]" + }, + { + "name": "FLPR", + "version": "[0.0,99.9]" + } + ], + "build": { + "jsxBin": false, + "country": "CN", + "province": "GD", + "org": "你的公司名称", + "password": "", + "tsa": "" + }, + "zxp": { + "jsxBin": false + } +} + +export default config; \ No newline at end of file diff --git a/temp_backup/Designer_redundant/scripts/buildLauncher.ts b/temp_backup/Designer_redundant/scripts/buildLauncher.ts new file mode 100644 index 0000000..4f4dd69 --- /dev/null +++ b/temp_backup/Designer_redundant/scripts/buildLauncher.ts @@ -0,0 +1,239 @@ +/** + * 构建客户端启动器(Launcher) + * + * 这个脚本只生成一个简单的 CEP 插件: + * - index.html(跳转到服务器) + * - manifest.xml(CEP 配置) + * - 图标等资源 + * + * 用法:npx ts-node scripts/buildLauncher.ts + */ + +import * as fs from 'fs'; +import * as path from 'path'; + +// ========== 配置 ========== +const CONFIG = { + // 服务器地址(客户打开插件后跳转到这里) + serverURL: 'https://aidg168.uk/app/#/login', + + // CEP 插件信息 + name: 'Designer', + id: 'com.designer.launcher', + version: '1.0.0', + displayName: '超级套版', + + // 面板大小 + panel: { + width: 450, + height: 600, + minWidth: 400, + minHeight: 500, + }, + + // 支持的 Adobe 软件 + hosts: [ + { name: 'PHXS', version: '[0.0,99.9]' }, // Photoshop + { name: 'ILST', version: '[0.0,99.9]' }, // Illustrator + { name: 'AEFT', version: '[0.0,99.9]' }, // After Effects + { name: 'PPRO', version: '[0.0,99.9]' }, // Premiere Pro + ], + + // 输出目录 + outputDir: 'dist/Launcher', +}; + +// ========== 模板 ========== + +// 跳转 HTML +const htmlTemplate = ` + + + + + + ${CONFIG.displayName} + + + +
+
+

正在连接服务器...

+

连接失败,请检查网络

+
+ + + +`; + +// manifest.xml +const manifestTemplate = ` + + + + + + + ${CONFIG.hosts.map(h => ``).join('\n ')} + + + + + + + + + + + + + ./index.html + + --enable-nodejs + --mixed-context + + + + true + + + Panel + ${CONFIG.displayName} + + + ${CONFIG.panel.width} + ${CONFIG.panel.height} + + + ${CONFIG.panel.minWidth} + ${CONFIG.panel.minHeight} + + + + ./img/dark.png + ./img/highlight.png + ./img/dark.png + ./img/highlight.png + + + + + +`; + +// ========== 构建函数 ========== + +function copyFolder(src: string, dest: string) { + if (!fs.existsSync(dest)) { + fs.mkdirSync(dest, { recursive: true }); + } + + const files = fs.readdirSync(src); + for (const file of files) { + const srcPath = path.join(src, file); + const destPath = path.join(dest, file); + + if (fs.statSync(srcPath).isDirectory()) { + copyFolder(srcPath, destPath); + } else { + fs.copyFileSync(srcPath, destPath); + } + } +} + +function build() { + console.log('🚀 构建客户端启动器...\n'); + + const outputDir = path.resolve(__dirname, '..', CONFIG.outputDir); + + // 1. 清理输出目录 + if (fs.existsSync(outputDir)) { + fs.rmSync(outputDir, { recursive: true }); + } + fs.mkdirSync(outputDir, { recursive: true }); + console.log('✓ 创建输出目录:', outputDir); + + // 2. 创建 CSXS 目录 + const csxsDir = path.join(outputDir, 'CSXS'); + fs.mkdirSync(csxsDir, { recursive: true }); + + // 3. 写入 index.html + fs.writeFileSync(path.join(outputDir, 'index.html'), htmlTemplate); + console.log('✓ 生成 index.html'); + + // 4. 写入 manifest.xml + fs.writeFileSync(path.join(csxsDir, 'manifest.xml'), manifestTemplate); + console.log('✓ 生成 CSXS/manifest.xml'); + + // 5. 复制图标 + const imgSrc = path.resolve(__dirname, '../plugins/jsx/template/cep/img'); + const imgDest = path.join(outputDir, 'img'); + if (fs.existsSync(imgSrc)) { + copyFolder(imgSrc, imgDest); + console.log('✓ 复制图标'); + } + + console.log('\n========================================'); + console.log('✅ 构建完成!'); + console.log('========================================'); + console.log(`📁 输出目录: ${outputDir}`); + console.log(`🔗 跳转地址: ${CONFIG.serverURL}`); + console.log('\n下一步:'); + console.log('1. 使用 ZXPSignCmd 签名打包成 .zxp'); + console.log('2. 或直接复制到 Adobe CEP 扩展目录测试'); +} + +// 执行 +build(); + diff --git a/temp_backup/Designer_redundant/test-simple.ts b/temp_backup/Designer_redundant/test-simple.ts new file mode 100644 index 0000000..77071dc --- /dev/null +++ b/temp_backup/Designer_redundant/test-simple.ts @@ -0,0 +1,64 @@ +/** + * 超级简单的测试 - 验证最基础的 evalScript + */ + +import { cep } from "@/utils/cep"; + +/** + * 测试1:最简单的计算 + */ +export async function testSimpleCalc() { + try { + const result = await cep.evalScript("1 + 2 + 3"); + console.log('简单计算结果:', result); + return { success: true, result }; + } catch (error) { + console.error('简单计算失败:', error); + return { success: false, error: String(error) }; + } +} + +/** + * 测试2:获取应用名称(不依赖任何工具库) + */ +export async function testGetAppName() { + try { + const result = await cep.evalScript("app.name"); + console.log('应用名称:', result); + return { success: true, appName: result }; + } catch (error) { + console.error('获取应用名称失败:', error); + return { success: false, error: String(error) }; + } +} + +/** + * 测试3:创建图层(最简单版本,不依赖工具库) + */ +export async function testCreateLayerDirect() { + const jsx = ` + (function() { + try { + if (app.documents.length === 0) { + return "no_document"; + } + var doc = app.activeDocument; + var layer = doc.artLayers.add(); + layer.name = "TestLayer"; + return "success:" + layer.name; + } catch (e) { + return "error:" + e.toString(); + } + })() + `; + + try { + const result = await cep.evalScript(jsx); + console.log('创建图层结果:', result); + return { success: true, result }; + } catch (error) { + console.error('创建图层失败:', error); + return { success: false, error: String(error) }; + } +} + diff --git a/Server/create_user.py b/temp_backup/Server_redundant/create_user.py similarity index 100% rename from Server/create_user.py rename to temp_backup/Server_redundant/create_user.py diff --git a/Server/init_db.py b/temp_backup/Server_redundant/init_db.py similarity index 100% rename from Server/init_db.py rename to temp_backup/Server_redundant/init_db.py diff --git a/Server/init_db.sql b/temp_backup/Server_redundant/init_db.sql similarity index 100% rename from Server/init_db.sql rename to temp_backup/Server_redundant/init_db.sql diff --git a/Server/init_full_db.py b/temp_backup/Server_redundant/init_full_db.py similarity index 100% rename from Server/init_full_db.py rename to temp_backup/Server_redundant/init_full_db.py diff --git a/tempdemo/client/build.bat b/temp_backup/Server_redundant/tempdemo/client/build.bat similarity index 100% rename from tempdemo/client/build.bat rename to temp_backup/Server_redundant/tempdemo/client/build.bat diff --git a/tempdemo/client/icons/newapp.ico b/temp_backup/Server_redundant/tempdemo/client/icons/newapp.ico similarity index 100% rename from tempdemo/client/icons/newapp.ico rename to temp_backup/Server_redundant/tempdemo/client/icons/newapp.ico diff --git a/tempdemo/client/newapp.ico b/temp_backup/Server_redundant/tempdemo/client/newapp.ico similarity index 100% rename from tempdemo/client/newapp.ico rename to temp_backup/Server_redundant/tempdemo/client/newapp.ico diff --git a/tempdemo/client/run.py b/temp_backup/Server_redundant/tempdemo/client/run.py similarity index 100% rename from tempdemo/client/run.py rename to temp_backup/Server_redundant/tempdemo/client/run.py diff --git a/tempdemo/client/run.spec b/temp_backup/Server_redundant/tempdemo/client/run.spec similarity index 100% rename from tempdemo/client/run.spec rename to temp_backup/Server_redundant/tempdemo/client/run.spec diff --git a/tempdemo/client/splash.png b/temp_backup/Server_redundant/tempdemo/client/splash.png similarity index 100% rename from tempdemo/client/splash.png rename to temp_backup/Server_redundant/tempdemo/client/splash.png diff --git a/tempdemo/client/程序配置.ini b/temp_backup/Server_redundant/tempdemo/client/程序配置.ini similarity index 100% rename from tempdemo/client/程序配置.ini rename to temp_backup/Server_redundant/tempdemo/client/程序配置.ini diff --git a/tempdemo/psmark/JSX1.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX1.py similarity index 100% rename from tempdemo/psmark/JSX1.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX1.py diff --git a/tempdemo/psmark/JSX10.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX10.py similarity index 100% rename from tempdemo/psmark/JSX10.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX10.py diff --git a/tempdemo/psmark/JSX11.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX11.py similarity index 100% rename from tempdemo/psmark/JSX11.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX11.py diff --git a/tempdemo/psmark/JSX12.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX12.py similarity index 100% rename from tempdemo/psmark/JSX12.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX12.py diff --git a/tempdemo/psmark/JSX13.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX13.py similarity index 100% rename from tempdemo/psmark/JSX13.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX13.py diff --git a/tempdemo/psmark/JSX14.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX14.py similarity index 100% rename from tempdemo/psmark/JSX14.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX14.py diff --git a/tempdemo/psmark/JSX15.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX15.py similarity index 100% rename from tempdemo/psmark/JSX15.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX15.py diff --git a/tempdemo/psmark/JSX16.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX16.py similarity index 100% rename from tempdemo/psmark/JSX16.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX16.py diff --git a/tempdemo/psmark/JSX17.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX17.py similarity index 100% rename from tempdemo/psmark/JSX17.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX17.py diff --git a/tempdemo/psmark/JSX18.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX18.py similarity index 100% rename from tempdemo/psmark/JSX18.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX18.py diff --git a/tempdemo/psmark/JSX19.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX19.py similarity index 100% rename from tempdemo/psmark/JSX19.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX19.py diff --git a/tempdemo/psmark/JSX2.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX2.py similarity index 100% rename from tempdemo/psmark/JSX2.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX2.py diff --git a/tempdemo/psmark/JSX20.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX20.py similarity index 100% rename from tempdemo/psmark/JSX20.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX20.py diff --git a/tempdemo/psmark/JSX21.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX21.py similarity index 100% rename from tempdemo/psmark/JSX21.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX21.py diff --git a/tempdemo/psmark/JSX22.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX22.py similarity index 100% rename from tempdemo/psmark/JSX22.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX22.py diff --git a/tempdemo/psmark/JSX23.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX23.py similarity index 100% rename from tempdemo/psmark/JSX23.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX23.py diff --git a/tempdemo/psmark/JSX24.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX24.py similarity index 100% rename from tempdemo/psmark/JSX24.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX24.py diff --git a/tempdemo/psmark/JSX25.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX25.py similarity index 100% rename from tempdemo/psmark/JSX25.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX25.py diff --git a/tempdemo/psmark/JSX26.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX26.py similarity index 100% rename from tempdemo/psmark/JSX26.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX26.py diff --git a/tempdemo/psmark/JSX27.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX27.py similarity index 100% rename from tempdemo/psmark/JSX27.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX27.py diff --git a/tempdemo/psmark/JSX3.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX3.py similarity index 100% rename from tempdemo/psmark/JSX3.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX3.py diff --git a/tempdemo/psmark/JSX4.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX4.py similarity index 100% rename from tempdemo/psmark/JSX4.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX4.py diff --git a/tempdemo/psmark/JSX5.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX5.py similarity index 100% rename from tempdemo/psmark/JSX5.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX5.py diff --git a/tempdemo/psmark/JSX6.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX6.py similarity index 100% rename from tempdemo/psmark/JSX6.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX6.py diff --git a/tempdemo/psmark/JSX7.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX7.py similarity index 100% rename from tempdemo/psmark/JSX7.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX7.py diff --git a/tempdemo/psmark/JSX8.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX8.py similarity index 100% rename from tempdemo/psmark/JSX8.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX8.py diff --git a/tempdemo/psmark/JSX9.py b/temp_backup/Server_redundant/tempdemo/psmark/JSX9.py similarity index 100% rename from tempdemo/psmark/JSX9.py rename to temp_backup/Server_redundant/tempdemo/psmark/JSX9.py diff --git a/tempdemo/psmark/Tab1.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab1.py similarity index 100% rename from tempdemo/psmark/Tab1.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab1.py diff --git a/tempdemo/psmark/Tab2.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab2.py similarity index 100% rename from tempdemo/psmark/Tab2.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab2.py diff --git a/tempdemo/psmark/Tab3.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab3.py similarity index 100% rename from tempdemo/psmark/Tab3.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab3.py diff --git a/tempdemo/psmark/Tab4.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab4.py similarity index 100% rename from tempdemo/psmark/Tab4.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab4.py diff --git a/tempdemo/psmark/Tab5.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab5.py similarity index 100% rename from tempdemo/psmark/Tab5.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab5.py diff --git a/tempdemo/psmark/Tab6.py b/temp_backup/Server_redundant/tempdemo/psmark/Tab6.py similarity index 100% rename from tempdemo/psmark/Tab6.py rename to temp_backup/Server_redundant/tempdemo/psmark/Tab6.py diff --git a/tempdemo/psmark/clear_folder.py b/temp_backup/Server_redundant/tempdemo/psmark/clear_folder.py similarity index 100% rename from tempdemo/psmark/clear_folder.py rename to temp_backup/Server_redundant/tempdemo/psmark/clear_folder.py diff --git a/tempdemo/psmark/coreldraw_checker.py b/temp_backup/Server_redundant/tempdemo/psmark/coreldraw_checker.py similarity index 100% rename from tempdemo/psmark/coreldraw_checker.py rename to temp_backup/Server_redundant/tempdemo/psmark/coreldraw_checker.py diff --git a/tempdemo/psmark/cs.py b/temp_backup/Server_redundant/tempdemo/psmark/cs.py similarity index 100% rename from tempdemo/psmark/cs.py rename to temp_backup/Server_redundant/tempdemo/psmark/cs.py diff --git a/tempdemo/psmark/icons/newapp.ico b/temp_backup/Server_redundant/tempdemo/psmark/icons/newapp.ico similarity index 100% rename from tempdemo/psmark/icons/newapp.ico rename to temp_backup/Server_redundant/tempdemo/psmark/icons/newapp.ico diff --git a/tempdemo/psmark/img/微信图片_20230906013548.jpg b/temp_backup/Server_redundant/tempdemo/psmark/img/微信图片_20230906013548.jpg similarity index 100% rename from tempdemo/psmark/img/微信图片_20230906013548.jpg rename to temp_backup/Server_redundant/tempdemo/psmark/img/微信图片_20230906013548.jpg diff --git a/tempdemo/psmark/img/微信图片_20230906013631.jpg b/temp_backup/Server_redundant/tempdemo/psmark/img/微信图片_20230906013631.jpg similarity index 100% rename from tempdemo/psmark/img/微信图片_20230906013631.jpg rename to temp_backup/Server_redundant/tempdemo/psmark/img/微信图片_20230906013631.jpg diff --git a/tempdemo/psmark/main.spec b/temp_backup/Server_redundant/tempdemo/psmark/main.spec similarity index 100% rename from tempdemo/psmark/main.spec rename to temp_backup/Server_redundant/tempdemo/psmark/main.spec diff --git a/tempdemo/psmark/myskin_styles.py b/temp_backup/Server_redundant/tempdemo/psmark/myskin_styles.py similarity index 100% rename from tempdemo/psmark/myskin_styles.py rename to temp_backup/Server_redundant/tempdemo/psmark/myskin_styles.py diff --git a/tempdemo/psmark/myskin_windows.py b/temp_backup/Server_redundant/tempdemo/psmark/myskin_windows.py similarity index 100% rename from tempdemo/psmark/myskin_windows.py rename to temp_backup/Server_redundant/tempdemo/psmark/myskin_windows.py diff --git a/tempdemo/psmark/newMark.py b/temp_backup/Server_redundant/tempdemo/psmark/newMark.py similarity index 100% rename from tempdemo/psmark/newMark.py rename to temp_backup/Server_redundant/tempdemo/psmark/newMark.py diff --git a/tempdemo/psmark/newMark.spec b/temp_backup/Server_redundant/tempdemo/psmark/newMark.spec similarity index 100% rename from tempdemo/psmark/newMark.spec rename to temp_backup/Server_redundant/tempdemo/psmark/newMark.spec diff --git a/tempdemo/psmark/newapp.ico b/temp_backup/Server_redundant/tempdemo/psmark/newapp.ico similarity index 100% rename from tempdemo/psmark/newapp.ico rename to temp_backup/Server_redundant/tempdemo/psmark/newapp.ico diff --git a/tempdemo/psmark/newmarkLogin.py b/temp_backup/Server_redundant/tempdemo/psmark/newmarkLogin.py similarity index 100% rename from tempdemo/psmark/newmarkLogin.py rename to temp_backup/Server_redundant/tempdemo/psmark/newmarkLogin.py diff --git a/tempdemo/psmark/piece_decorative.py b/temp_backup/Server_redundant/tempdemo/psmark/piece_decorative.py similarity index 100% rename from tempdemo/psmark/piece_decorative.py rename to temp_backup/Server_redundant/tempdemo/psmark/piece_decorative.py diff --git a/tempdemo/psmark/test.py b/temp_backup/Server_redundant/tempdemo/psmark/test.py similarity index 100% rename from tempdemo/psmark/test.py rename to temp_backup/Server_redundant/tempdemo/psmark/test.py diff --git a/tempdemo/psmark/test2.py b/temp_backup/Server_redundant/tempdemo/psmark/test2.py similarity index 100% rename from tempdemo/psmark/test2.py rename to temp_backup/Server_redundant/tempdemo/psmark/test2.py diff --git a/tempdemo/psmark/test3.py b/temp_backup/Server_redundant/tempdemo/psmark/test3.py similarity index 100% rename from tempdemo/psmark/test3.py rename to temp_backup/Server_redundant/tempdemo/psmark/test3.py diff --git a/tempdemo/psmark/test5.py b/temp_backup/Server_redundant/tempdemo/psmark/test5.py similarity index 100% rename from tempdemo/psmark/test5.py rename to temp_backup/Server_redundant/tempdemo/psmark/test5.py diff --git a/tempdemo/psmark/程序配置.ini b/temp_backup/Server_redundant/tempdemo/psmark/程序配置.ini similarity index 100% rename from tempdemo/psmark/程序配置.ini rename to temp_backup/Server_redundant/tempdemo/psmark/程序配置.ini diff --git a/tempdemo/serveradmin/adminpassword.txt b/temp_backup/Server_redundant/tempdemo/serveradmin/adminpassword.txt similarity index 100% rename from tempdemo/serveradmin/adminpassword.txt rename to temp_backup/Server_redundant/tempdemo/serveradmin/adminpassword.txt diff --git a/tempdemo/serveradmin/server.py b/temp_backup/Server_redundant/tempdemo/serveradmin/server.py similarity index 100% rename from tempdemo/serveradmin/server.py rename to temp_backup/Server_redundant/tempdemo/serveradmin/server.py diff --git a/tempdemo/serveradmin/using.txt b/temp_backup/Server_redundant/tempdemo/serveradmin/using.txt similarity index 100% rename from tempdemo/serveradmin/using.txt rename to temp_backup/Server_redundant/tempdemo/serveradmin/using.txt diff --git a/tempdemo/update_version.py.bak b/temp_backup/Server_redundant/tempdemo/update_version.py.bak similarity index 100% rename from tempdemo/update_version.py.bak rename to temp_backup/Server_redundant/tempdemo/update_version.py.bak diff --git a/tempdocs/API_DOCUMENTATION.md b/temp_backup/Server_redundant/tempdocs/API_DOCUMENTATION.md similarity index 100% rename from tempdocs/API_DOCUMENTATION.md rename to temp_backup/Server_redundant/tempdocs/API_DOCUMENTATION.md diff --git a/tempdocs/API密钥使用指南.md b/temp_backup/Server_redundant/tempdocs/API密钥使用指南.md similarity index 100% rename from tempdocs/API密钥使用指南.md rename to temp_backup/Server_redundant/tempdocs/API密钥使用指南.md diff --git a/tempdocs/AdminTool配置管理开发文档.md b/temp_backup/Server_redundant/tempdocs/AdminTool配置管理开发文档.md similarity index 100% rename from tempdocs/AdminTool配置管理开发文档.md rename to temp_backup/Server_redundant/tempdocs/AdminTool配置管理开发文档.md diff --git a/tempdocs/Caddy部署指南.md b/temp_backup/Server_redundant/tempdocs/Caddy部署指南.md similarity index 100% rename from tempdocs/Caddy部署指南.md rename to temp_backup/Server_redundant/tempdocs/Caddy部署指南.md diff --git a/tempdocs/JSX加载失败问题分析与解决方案.md b/temp_backup/Server_redundant/tempdocs/JSX加载失败问题分析与解决方案.md similarity index 100% rename from tempdocs/JSX加载失败问题分析与解决方案.md rename to temp_backup/Server_redundant/tempdocs/JSX加载失败问题分析与解决方案.md diff --git a/tempdocs/JSX方法测试指南.md b/temp_backup/Server_redundant/tempdocs/JSX方法测试指南.md similarity index 100% rename from tempdocs/JSX方法测试指南.md rename to temp_backup/Server_redundant/tempdocs/JSX方法测试指南.md diff --git a/tempdocs/PSApi功能测试指南.md b/temp_backup/Server_redundant/tempdocs/PSApi功能测试指南.md similarity index 100% rename from tempdocs/PSApi功能测试指南.md rename to temp_backup/Server_redundant/tempdocs/PSApi功能测试指南.md diff --git a/tempdocs/README.md b/temp_backup/Server_redundant/tempdocs/README.md similarity index 100% rename from tempdocs/README.md rename to temp_backup/Server_redundant/tempdocs/README.md diff --git a/tempdocs/Shell架构改造任务清单.md b/temp_backup/Server_redundant/tempdocs/Shell架构改造任务清单.md similarity index 100% rename from tempdocs/Shell架构改造任务清单.md rename to temp_backup/Server_redundant/tempdocs/Shell架构改造任务清单.md diff --git a/tempdocs/Shell架构改造计划.md b/temp_backup/Server_redundant/tempdocs/Shell架构改造计划.md similarity index 100% rename from tempdocs/Shell架构改造计划.md rename to temp_backup/Server_redundant/tempdocs/Shell架构改造计划.md diff --git a/tempdocs/psmark脚本分析报告.md b/temp_backup/Server_redundant/tempdocs/psmark脚本分析报告.md similarity index 100% rename from tempdocs/psmark脚本分析报告.md rename to temp_backup/Server_redundant/tempdocs/psmark脚本分析报告.md diff --git a/tempdocs/zhihu_articles.json b/temp_backup/Server_redundant/tempdocs/zhihu_articles.json similarity index 100% rename from tempdocs/zhihu_articles.json rename to temp_backup/Server_redundant/tempdocs/zhihu_articles.json diff --git a/tempdocs/修复命令.md b/temp_backup/Server_redundant/tempdocs/修复命令.md similarity index 100% rename from tempdocs/修复命令.md rename to temp_backup/Server_redundant/tempdocs/修复命令.md diff --git a/tempdocs/修复说明.md b/temp_backup/Server_redundant/tempdocs/修复说明.md similarity index 100% rename from tempdocs/修复说明.md rename to temp_backup/Server_redundant/tempdocs/修复说明.md diff --git a/tempdocs/全量接口文档.md b/temp_backup/Server_redundant/tempdocs/全量接口文档.md similarity index 100% rename from tempdocs/全量接口文档.md rename to temp_backup/Server_redundant/tempdocs/全量接口文档.md diff --git a/tempdocs/前端代码结构与功能说明.md b/temp_backup/Server_redundant/tempdocs/前端代码结构与功能说明.md similarity index 100% rename from tempdocs/前端代码结构与功能说明.md rename to temp_backup/Server_redundant/tempdocs/前端代码结构与功能说明.md diff --git a/tempdocs/前端安全升级接入指南.md b/temp_backup/Server_redundant/tempdocs/前端安全升级接入指南.md similarity index 100% rename from tempdocs/前端安全升级接入指南.md rename to temp_backup/Server_redundant/tempdocs/前端安全升级接入指南.md diff --git a/tempdocs/后端API接口文档.md b/temp_backup/Server_redundant/tempdocs/后端API接口文档.md similarity index 100% rename from tempdocs/后端API接口文档.md rename to temp_backup/Server_redundant/tempdocs/后端API接口文档.md diff --git a/tempdocs/后端代码与工具说明.md b/temp_backup/Server_redundant/tempdocs/后端代码与工具说明.md similarity index 100% rename from tempdocs/后端代码与工具说明.md rename to temp_backup/Server_redundant/tempdocs/后端代码与工具说明.md diff --git a/tempdocs/后端开发需求文档.md b/temp_backup/Server_redundant/tempdocs/后端开发需求文档.md similarity index 100% rename from tempdocs/后端开发需求文档.md rename to temp_backup/Server_redundant/tempdocs/后端开发需求文档.md diff --git a/tempdocs/后端部署Shell指南.md b/temp_backup/Server_redundant/tempdocs/后端部署Shell指南.md similarity index 100% rename from tempdocs/后端部署Shell指南.md rename to temp_backup/Server_redundant/tempdocs/后端部署Shell指南.md diff --git a/tempdocs/安全方案对比.md b/temp_backup/Server_redundant/tempdocs/安全方案对比.md similarity index 100% rename from tempdocs/安全方案对比.md rename to temp_backup/Server_redundant/tempdocs/安全方案对比.md diff --git a/tempdocs/完成报告.md b/temp_backup/Server_redundant/tempdocs/完成报告.md similarity index 100% rename from tempdocs/完成报告.md rename to temp_backup/Server_redundant/tempdocs/完成报告.md diff --git a/tempdocs/常用命令.md b/temp_backup/Server_redundant/tempdocs/常用命令.md similarity index 100% rename from tempdocs/常用命令.md rename to temp_backup/Server_redundant/tempdocs/常用命令.md diff --git a/tempdocs/必须修改清单.md b/temp_backup/Server_redundant/tempdocs/必须修改清单.md similarity index 100% rename from tempdocs/必须修改清单.md rename to temp_backup/Server_redundant/tempdocs/必须修改清单.md diff --git a/tempdocs/快速开始.md b/temp_backup/Server_redundant/tempdocs/快速开始.md similarity index 100% rename from tempdocs/快速开始.md rename to temp_backup/Server_redundant/tempdocs/快速开始.md diff --git a/tempdocs/架构问题修正方案.md b/temp_backup/Server_redundant/tempdocs/架构问题修正方案.md similarity index 100% rename from tempdocs/架构问题修正方案.md rename to temp_backup/Server_redundant/tempdocs/架构问题修正方案.md diff --git a/tempdocs/检查命令.md b/temp_backup/Server_redundant/tempdocs/检查命令.md similarity index 100% rename from tempdocs/检查命令.md rename to temp_backup/Server_redundant/tempdocs/检查命令.md diff --git a/tempdocs/检测现有版本.md b/temp_backup/Server_redundant/tempdocs/检测现有版本.md similarity index 100% rename from tempdocs/检测现有版本.md rename to temp_backup/Server_redundant/tempdocs/检测现有版本.md diff --git a/tempdocs/混合方案Demo说明.md b/temp_backup/Server_redundant/tempdocs/混合方案Demo说明.md similarity index 100% rename from tempdocs/混合方案Demo说明.md rename to temp_backup/Server_redundant/tempdocs/混合方案Demo说明.md diff --git a/tempdocs/混合方案安全性说明.md b/temp_backup/Server_redundant/tempdocs/混合方案安全性说明.md similarity index 100% rename from tempdocs/混合方案安全性说明.md rename to temp_backup/Server_redundant/tempdocs/混合方案安全性说明.md diff --git a/tempdocs/混合架构开发框架指南.md b/temp_backup/Server_redundant/tempdocs/混合架构开发框架指南.md similarity index 100% rename from tempdocs/混合架构开发框架指南.md rename to temp_backup/Server_redundant/tempdocs/混合架构开发框架指南.md diff --git a/tempdocs/混合架构快速开发模板.md b/temp_backup/Server_redundant/tempdocs/混合架构快速开发模板.md similarity index 100% rename from tempdocs/混合架构快速开发模板.md rename to temp_backup/Server_redundant/tempdocs/混合架构快速开发模板.md diff --git a/tempdocs/生产环境部署实操指南.md b/temp_backup/Server_redundant/tempdocs/生产环境部署实操指南.md similarity index 100% rename from tempdocs/生产环境部署实操指南.md rename to temp_backup/Server_redundant/tempdocs/生产环境部署实操指南.md diff --git a/tempdocs/知乎文章摘要.md b/temp_backup/Server_redundant/tempdocs/知乎文章摘要.md similarity index 100% rename from tempdocs/知乎文章摘要.md rename to temp_backup/Server_redundant/tempdocs/知乎文章摘要.md diff --git a/tempdocs/紧急诊断.md b/temp_backup/Server_redundant/tempdocs/紧急诊断.md similarity index 100% rename from tempdocs/紧急诊断.md rename to temp_backup/Server_redundant/tempdocs/紧急诊断.md diff --git a/tempdocs/线上部署指南.md b/temp_backup/Server_redundant/tempdocs/线上部署指南.md similarity index 100% rename from tempdocs/线上部署指南.md rename to temp_backup/Server_redundant/tempdocs/线上部署指南.md diff --git a/tempdocs/认证接口文档.md b/temp_backup/Server_redundant/tempdocs/认证接口文档.md similarity index 100% rename from tempdocs/认证接口文档.md rename to temp_backup/Server_redundant/tempdocs/认证接口文档.md diff --git a/tempdocs/许可证验证接口文档.md b/temp_backup/Server_redundant/tempdocs/许可证验证接口文档.md similarity index 100% rename from tempdocs/许可证验证接口文档.md rename to temp_backup/Server_redundant/tempdocs/许可证验证接口文档.md diff --git a/tempdocs/设备与在线时长接口文档.md b/temp_backup/Server_redundant/tempdocs/设备与在线时长接口文档.md similarity index 100% rename from tempdocs/设备与在线时长接口文档.md rename to temp_backup/Server_redundant/tempdocs/设备与在线时长接口文档.md diff --git a/tempdocs/邮箱验证与密码重置接口文档.md b/temp_backup/Server_redundant/tempdocs/邮箱验证与密码重置接口文档.md similarity index 100% rename from tempdocs/邮箱验证与密码重置接口文档.md rename to temp_backup/Server_redundant/tempdocs/邮箱验证与密码重置接口文档.md diff --git a/tempdocs/部署前检查清单.md b/temp_backup/Server_redundant/tempdocs/部署前检查清单.md similarity index 100% rename from tempdocs/部署前检查清单.md rename to temp_backup/Server_redundant/tempdocs/部署前检查清单.md diff --git a/tempdocs/部署功能使用说明.md b/temp_backup/Server_redundant/tempdocs/部署功能使用说明.md similarity index 100% rename from tempdocs/部署功能使用说明.md rename to temp_backup/Server_redundant/tempdocs/部署功能使用说明.md diff --git a/tempdocs/部署工具使用.md b/temp_backup/Server_redundant/tempdocs/部署工具使用.md similarity index 100% rename from tempdocs/部署工具使用.md rename to temp_backup/Server_redundant/tempdocs/部署工具使用.md diff --git a/tempdocs/部署指南.md b/temp_backup/Server_redundant/tempdocs/部署指南.md similarity index 100% rename from tempdocs/部署指南.md rename to temp_backup/Server_redundant/tempdocs/部署指南.md diff --git a/tempdocs/部署文档_积分VIP签到系统.md b/temp_backup/Server_redundant/tempdocs/部署文档_积分VIP签到系统.md similarity index 100% rename from tempdocs/部署文档_积分VIP签到系统.md rename to temp_backup/Server_redundant/tempdocs/部署文档_积分VIP签到系统.md diff --git a/tempdocs/部署架构说明.md b/temp_backup/Server_redundant/tempdocs/部署架构说明.md similarity index 100% rename from tempdocs/部署架构说明.md rename to temp_backup/Server_redundant/tempdocs/部署架构说明.md diff --git a/tempdocs/部署配置手册.md b/temp_backup/Server_redundant/tempdocs/部署配置手册.md similarity index 100% rename from tempdocs/部署配置手册.md rename to temp_backup/Server_redundant/tempdocs/部署配置手册.md diff --git a/tempdocs/项目结构文档.md b/temp_backup/Server_redundant/tempdocs/项目结构文档.md similarity index 100% rename from tempdocs/项目结构文档.md rename to temp_backup/Server_redundant/tempdocs/项目结构文档.md diff --git a/tests/README.md b/temp_backup/Server_redundant/tests/README.md similarity index 100% rename from tests/README.md rename to temp_backup/Server_redundant/tests/README.md diff --git a/tests/backend/conftest.py b/temp_backup/Server_redundant/tests/backend/conftest.py similarity index 100% rename from tests/backend/conftest.py rename to temp_backup/Server_redundant/tests/backend/conftest.py diff --git a/tests/backend/requirements.txt b/temp_backup/Server_redundant/tests/backend/requirements.txt similarity index 100% rename from tests/backend/requirements.txt rename to temp_backup/Server_redundant/tests/backend/requirements.txt diff --git a/tests/backend/run_tests.bat b/temp_backup/Server_redundant/tests/backend/run_tests.bat similarity index 100% rename from tests/backend/run_tests.bat rename to temp_backup/Server_redundant/tests/backend/run_tests.bat diff --git a/tests/backend/test_admin_config.py b/temp_backup/Server_redundant/tests/backend/test_admin_config.py similarity index 100% rename from tests/backend/test_admin_config.py rename to temp_backup/Server_redundant/tests/backend/test_admin_config.py diff --git a/tests/backend/test_checkin.py b/temp_backup/Server_redundant/tests/backend/test_checkin.py similarity index 100% rename from tests/backend/test_checkin.py rename to temp_backup/Server_redundant/tests/backend/test_checkin.py diff --git a/tests/backend/test_feature.py b/temp_backup/Server_redundant/tests/backend/test_feature.py similarity index 100% rename from tests/backend/test_feature.py rename to temp_backup/Server_redundant/tests/backend/test_feature.py diff --git a/tests/backend/test_stats.py b/temp_backup/Server_redundant/tests/backend/test_stats.py similarity index 100% rename from tests/backend/test_stats.py rename to temp_backup/Server_redundant/tests/backend/test_stats.py diff --git a/tests/backend/test_user_profile.py b/temp_backup/Server_redundant/tests/backend/test_user_profile.py similarity index 100% rename from tests/backend/test_user_profile.py rename to temp_backup/Server_redundant/tests/backend/test_user_profile.py diff --git a/tests/frontend/CheckIn.test.ts b/temp_backup/Server_redundant/tests/frontend/CheckIn.test.ts similarity index 100% rename from tests/frontend/CheckIn.test.ts rename to temp_backup/Server_redundant/tests/frontend/CheckIn.test.ts diff --git a/tests/frontend/HomePage.test.ts b/temp_backup/Server_redundant/tests/frontend/HomePage.test.ts similarity index 100% rename from tests/frontend/HomePage.test.ts rename to temp_backup/Server_redundant/tests/frontend/HomePage.test.ts diff --git a/tests/frontend/Profile.test.ts b/temp_backup/Server_redundant/tests/frontend/Profile.test.ts similarity index 100% rename from tests/frontend/Profile.test.ts rename to temp_backup/Server_redundant/tests/frontend/Profile.test.ts diff --git a/tests/integration/e2e_test.py b/temp_backup/Server_redundant/tests/integration/e2e_test.py similarity index 100% rename from tests/integration/e2e_test.py rename to temp_backup/Server_redundant/tests/integration/e2e_test.py diff --git a/tests/测试交付报告.md b/temp_backup/Server_redundant/tests/测试交付报告.md similarity index 100% rename from tests/测试交付报告.md rename to temp_backup/Server_redundant/tests/测试交付报告.md diff --git a/tests/测试文档.md b/temp_backup/Server_redundant/tests/测试文档.md similarity index 100% rename from tests/测试文档.md rename to temp_backup/Server_redundant/tests/测试文档.md diff --git a/tests/测试运行报告_20251221.md b/temp_backup/Server_redundant/tests/测试运行报告_20251221.md similarity index 100% rename from tests/测试运行报告_20251221.md rename to temp_backup/Server_redundant/tests/测试运行报告_20251221.md diff --git a/verify_routes.py b/temp_backup/Server_redundant/verify_routes.py similarity index 100% rename from verify_routes.py rename to temp_backup/Server_redundant/verify_routes.py diff --git a/开发准则.md b/开发准则.md index f17e029..440664d 100644 --- a/开发准则.md +++ b/开发准则.md @@ -562,3 +562,55 @@ def calculate_bonus(consecutive_days): - **开发模式**: `npm run dev` (在浏览器预览 UI) - **构建**: `npm run build` - **CEP 调试**: 在 Photoshop 中加载扩展,访问 `http://localhost:XXXX` 进行 Chrome DevTools 调试 UI。 + +--- + +## 6. 项目架构与工作流 (2025重构版) + +经过 2025 年底的深度重构,项目采用了高效的 **"壳(Shell) + 核(Core)"** 架构: + +### 6.1 核心模块分工 + +| 模块 | 目录 | 类型 | 职责 | +| :--- | :--- | :--- | :--- | +| **Designer** | `d:\main\DesignerCEP\Designer` | **核心业务 (Core)** | 包含所有设计工具、UI 界面和业务逻辑。开发时的主要工作区。 | +| **AdminPanel** | `d:\main\DesignerCEP\AdminPanel` | **加载壳 (Shell)** | 一个轻量级的 CEP 容器,负责在 PS 中运行。它不包含业务代码,只负责通过 `iframe` 加载 Designer。 | +| **Server** | `d:\main\DesignerCEP\Server` | **后端 (API)** | 基于 FastAPI 的纯数据接口服务。不负责托管静态页面(由 Caddy/Nginx 接管)。 | +| **AdminTool** | `d:\main\DesignerCEP\AdminTool` | **运维工具** | 负责自动化部署、版本管理和配置修改的 Python GUI 工具。 | + +### 6.2 开发流程 (Dev Workflow) + +1. **启动后端** (可选,如需 API): + ```bash + cd Server + uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 + ``` + +2. **启动前端核心**: + ```bash + cd Designer + npm run dev + # 运行在 http://localhost:5173 + ``` + +3. **在 PS 中调试**: + - 打开 Photoshop。 + - 启动 **AdminPanel** 扩展。 + - **智能连接**: AdminPanel 会自动检测环境。开发模式下,它会自动加载 `http://localhost:5173`,实现**热更新**。 + +### 6.3 生产发布 (Production) + +1. **构建核心**: + ```bash + cd Designer + npm run build + # 产物输出到 dist_core + ``` + +2. **部署**: + - 使用 **AdminTool** 将 `dist_core` 上传到服务器。 + - 生产环境的 AdminPanel 会自动加载服务器地址 (`https://app.aidg168.uk`)。 + +### 6.4 目录清理说明 +- **冗余移除**: 所有旧的测试脚本、文档草稿、`dist` 目录、`buildLauncher` 脚本等均已移至 `temp_backup`。 +- **配置收敛**: Designer 仅保留 `cep.config.ts`,移除了重复的 dev/prod 配置。