feat: port cms product detail layout into trade-pro (gallery/specs/inquiry)
Rewrite pages/product.html from the 3-row skeleton to the cms [slug].astro design: breadcrumb -> gallery (main + scrolling thumbs, reusing the platform pro.js data-gallery-image hooks, zero new JS) + summary column (eyebrow/h1/lead/brand+model/actions) -> flattened Product details panel -> Specifications table from fields (hidden when empty) -> related products on the home card grid -> inquiry section (left contact info, right external form only when form_endpoint is configured, CTA to /contact/ otherwise). Component CSS lands in pro.css under .sf-theme-trade-pro with 900/620 breakpoints; stale .pro-specs tint rules removed (other themes keep their pro-base skeleton); cross-theme skeleton assertion in test_theme_pro_v3.py now excludes trade-pro; new test_trade_pro_product_layout_structure covers the build output. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,10 @@ def test_complete_theme_families_have_distinct_markup(factory):
|
||||
assert soup.find('footer',class_='pro-footer')
|
||||
assert len(soup.find_all('h1'))==1,(theme,page_type,len(soup.find_all('h1')))
|
||||
assert 'pro-base.css' in r.text and 'pro.js' in r.text
|
||||
if page_type=='product':assert soup.select_one('.pro-product-layout .pro-specs')
|
||||
# trade-pro 的产品详情自 Task 10b 起为 cms 移植布局(sf-tp-product-*),
|
||||
# 骨架断言只覆盖其余沿用 pro-base 骨架的主题(test_theme_registry.py
|
||||
# 的 test_trade_pro_product_layout_structure 覆盖 trade-pro 侧)。
|
||||
if page_type=='product' and theme!='trade-pro':assert soup.select_one('.pro-product-layout .pro-specs')
|
||||
if page_type=='listing':assert soup.select_one('[data-pro-filter-search]')
|
||||
if page_type=='article':assert soup.select_one('.pro-article-hero')
|
||||
main.append(factory.get(f'/api/factory/themes/{theme}/preview?page_type=home').text)
|
||||
|
||||
Reference in New Issue
Block a user