diff --git a/public/assets/addons/official/images/showcases/contact_headquarters.svg b/public/assets/addons/official/images/showcases/contact_headquarters.svg
new file mode 100644
index 0000000..6d20dcc
--- /dev/null
+++ b/public/assets/addons/official/images/showcases/contact_headquarters.svg
@@ -0,0 +1,94 @@
+
\ No newline at end of file
diff --git a/public/assets/addons/official/images/showcases/service_agent_hero.svg b/public/assets/addons/official/images/showcases/service_agent_hero.svg
new file mode 100644
index 0000000..5d44b41
--- /dev/null
+++ b/public/assets/addons/official/images/showcases/service_agent_hero.svg
@@ -0,0 +1,156 @@
+
\ No newline at end of file
diff --git a/public/assets/addons/official/images/showcases/service_app_hero.svg b/public/assets/addons/official/images/showcases/service_app_hero.svg
new file mode 100644
index 0000000..4c2a0db
--- /dev/null
+++ b/public/assets/addons/official/images/showcases/service_app_hero.svg
@@ -0,0 +1,145 @@
+
\ No newline at end of file
diff --git a/public/assets/addons/official/images/showcases/service_software_hero.svg b/public/assets/addons/official/images/showcases/service_software_hero.svg
new file mode 100644
index 0000000..96b70d1
--- /dev/null
+++ b/public/assets/addons/official/images/showcases/service_software_hero.svg
@@ -0,0 +1,133 @@
+
\ No newline at end of file
diff --git a/tests/generate_dedicated_page_showcases.py b/tests/generate_dedicated_page_showcases.py
new file mode 100644
index 0000000..3492433
--- /dev/null
+++ b/tests/generate_dedicated_page_showcases.py
@@ -0,0 +1,500 @@
+# -*- coding: utf-8 -*-
+"""
+生成全站独立页面专属精美现代中式科技矢量视窗插画
+规范:
+- 浅色专业风:背景 #FFFFFF / #F8FAFC,主色 #2563EB,辅助 #06B6D4 与 #7C3AED,文字 #0F172A / #475569
+- 严谨商务、现代中式、大留白、细线窗棂点阵、朱红宋体印章点缀、圆角 4~6px
+- 严禁 emoji、卡通、霓虹、赛博朋克
+"""
+import os
+
+OUTPUT_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'public/assets/addons/official/images/showcases')
+os.makedirs(OUTPUT_DIR, exist_ok=True)
+
+COMMON_DEFS = """
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+"""
+
+def generate_software_hero():
+ svg = f"""
"""
+ with open(os.path.join(OUTPUT_DIR, 'service_software_hero.svg'), 'w', encoding='utf-8') as f:
+ f.write(svg)
+ print("Generated: service_software_hero.svg")
+
+def generate_app_hero():
+ svg = f"""
"""
+ with open(os.path.join(OUTPUT_DIR, 'service_app_hero.svg'), 'w', encoding='utf-8') as f:
+ f.write(svg)
+ print("Generated: service_app_hero.svg")
+
+def generate_agent_hero():
+ svg = f"""
"""
+ with open(os.path.join(OUTPUT_DIR, 'service_agent_hero.svg'), 'w', encoding='utf-8') as f:
+ f.write(svg)
+ print("Generated: service_agent_hero.svg")
+
+def generate_contact_headquarters():
+ svg = f"""
"""
+ with open(os.path.join(OUTPUT_DIR, 'contact_headquarters.svg'), 'w', encoding='utf-8') as f:
+ f.write(svg)
+ print("Generated: contact_headquarters.svg")
+
+if __name__ == '__main__':
+ generate_software_hero()
+ generate_app_hero()
+ generate_agent_hero()
+ generate_contact_headquarters()
+ print("All dedicated page illustration showcases generated successfully!")
diff --git a/tests/run_tests.py b/tests/run_tests.py
index f610dc2..154e98e 100644
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
@@ -297,6 +297,15 @@ def test_plain_and_concise_copywriting_suite():
res.assert_true(test_result.wasSuccessful(), f"通俗易懂与去AI味去啰嗦断言全部通过 (共 {test_result.testsRun} 项)")
return res.summary()
+def test_dedicated_page_illustrations_suite():
+ res = TestResult("独立页面精美视觉配图专项测试 (DedicatedPageIllustrations)")
+ from tests.test_dedicated_page_illustrations import TestDedicatedPageIllustrations
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestDedicatedPageIllustrations)
+ runner = unittest.TextTestRunner(verbosity=0)
+ test_result = runner.run(suite)
+ res.assert_true(test_result.wasSuccessful(), f"独立页面精美视觉配图全部通过 (共 {test_result.testsRun} 项)")
+ return res.summary()
+
def main():
import unittest
results = [
@@ -314,10 +323,12 @@ def main():
test_journalism_and_articles_suite(),
test_dedicated_service_pages_suite(),
test_concise_showcase_images_suite(),
- test_plain_and_concise_copywriting_suite()
+ test_plain_and_concise_copywriting_suite(),
+ test_dedicated_page_illustrations_suite()
]
sys.exit(0 if all(results) else 1)
+
if __name__ == '__main__':
main()
diff --git a/tests/test_dedicated_page_illustrations.py b/tests/test_dedicated_page_illustrations.py
new file mode 100644
index 0000000..634039c
--- /dev/null
+++ b/tests/test_dedicated_page_illustrations.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+"""
+全站独立页面精美视觉配图规范专项测试 (Dedicated Page Illustrations Test)
+严格遵循 TDD 模式:
+1. 验证软件定制独立页、APP定制独立页、智能体独立页、联系我们页均配有专属高品质现代中式矢量视窗图;
+2. 验证所有图片文件真实存在于资源目录且尺寸有效;
+3. 验证图片符合浅色专业风规范(背景 #FFFFFF/#F8FAFC、主色 #2563EB、无 emoji、有印章点缀与细线窗棂)。
+"""
+import os
+import unittest
+
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+class TestDedicatedPageIllustrations(unittest.TestCase):
+
+ def setUp(self):
+ self.img_dir = os.path.join(ROOT_DIR, 'public/assets/addons/official/images/showcases')
+ self.template_dir = os.path.join(ROOT_DIR, 'addons/official/view/web')
+
+ def test_illustration_assets_exist(self):
+ """测试 4 张专属精美视觉插图文件存在且内容有效"""
+ required_images = [
+ 'service_software_hero.svg',
+ 'service_app_hero.svg',
+ 'service_agent_hero.svg',
+ 'contact_headquarters.svg',
+ ]
+ for img_name in required_images:
+ path = os.path.join(self.img_dir, img_name)
+ self.assertTrue(os.path.exists(path), f"缺少专属精美配图: {img_name}")
+ with open(path, 'r', encoding='utf-8') as f:
+ content = f.read()
+ self.assertIn('