Files
websopy-taro/.workbuddy/memory/2026-08-11.md
T
gxwebsoft 2e80a49ca1 feat(official): 实现企业官网分包及内容展示
- 新增官方分包目录及页面(首页、资讯列表、详情、关于我们、留言、我的)
- 自定义实现底部导航组件 OfficialTabBar,解决微信 tabBar 不支持分包问题
- 统一接口调用走 shop-api 代理,无新增 CMS 域名,减少合法域名负担
- 新增 CMS 站点信息获取接口及留言咨询提交与查询接口
- 设计并完善官网富文本样式,品牌色统一为 #185FA5,并更新 tailwind 配置
- 首页新增企业官网入口卡片,方便用户访问官网内容
- 完成官网分包构建验证,解决 Taro 构建批量删除保护问题
- 规范 CMS 字段使用,适配字段名称及状态含义
- 后续计划对历史页面 NutUI 组件进行空壳化整改,及更新 UI 设计文档
2026-08-11 08:48:16 +08:00

4.0 KiB
Raw Blame History

2026-08-11 工作记录

小程序/产品矩阵规划讨论(仅探讨,未改代码)

  • 用户产品矩阵:①企业官网(website-admin 后台,Nuxt SaaS 建站)②小程序商城(websopy-taro 电商)③其他管理系统。
  • 结论建议(待用户确认):按受众+载体分层,而非按功能拆分。
    • C端消费者(看/买):官网展示 + 商城 → 合并为「一个品牌小程序」,用分包(官网/商城/用户中心)隔离,共享登录/购物车/会员。
    • B端管理(企业主/运营):官网后台 + 其他管理系统 → 统一 Web 管理门户(SSO,不做小程序。
    • B端移动(商家版):暂缓,验证需求后再建独立 AppID 小程序,不并入 C 端。
  • 已产出:规划文档 .workbuddy/miniprogram-ui-plan.md、官网展示型小程序原型(4屏 mockup)、产品矩阵分层架构图。
  • 待确认:落地路径(独立官网小程序 / websopy-taro 加分包 / 仅 CMS 展示层)及上述产品矩阵方向。

官网分包(official)落地实现 —— 已完成并构建通过

用户确认方向后,在 websopy-taro 内新增 official 分包实现企业官网展示端,并对接真实 CMS 内容。

目录与文件(新增 12 个)

  • 页面 src/official/index(首页:品牌栏+Banner轮播+栏目宫格+资讯动态+留言CTA)、article(资讯列表,滚动分页+categoryId筛选)、article-detailRichText 详情)、about(关于我们)、message(留言表单)、mine(我的)。
  • 组件 src/official/components/OfficialTabBar(自实现底部导航,redirectTo 切换)、ArticleCardSectionTitle
  • 数据层:src/api/official/index.ts(统一出口,re-export src/api/cms/*)、src/api/cms/cmsContactLead/{index.ts,model/index.ts}

修改(5 处)

  • src/api/cms/cmsWebsite/index.ts:新增 getCmsWebsiteSiteInfo() → GET /cms/cms-website/getSiteInfo
  • src/app.config.tssubpackages 增加 {root:'official', pages:[index,article,article-detail,about,message,mine]}
  • tailwind.config.js:新增 brand 色阶(600=#185FA5)。
  • src/app.scss:root--brand-color/--brand-light;新增 .official-rich 富文本样式(img/p/h1-h4/ul/blockquote/table 等,px 自动转 rpx,已验证打进 app-origin.wxss)。
  • src/pages/index/index.tsx:搜索栏下方新增「企业官网」入口卡片 → /official/index

关键技术决策

  • 请求链路复用默认 shop-api:原本打算给官网单配 CMS_API_BASE 直连 cms-api.websoft.top,但发现现有 listCmsAd/listCmsArticle 走默认 https://shop-api.websoft.top/api 且线上可用 → 说明 shop-api 已代理 /cms不新增域名(避免小程序 request 合法域名白名单问题)。租户靠 TenantId 请求头(config/app.ts 当前 TenantId='5')。
  • 微信 tabBar 不支持分包页 → 用 OfficialTabBar 自实现(redirectTo)。
  • 规避 NutUI weapp 空壳化:官网 6 页全部用 Taro 原生组件 + 自定义组件,构建产物 grep nut-cell|nut-price|nut-divider = 0。
  • CMS 字段陷阱(已按此实现):文章封面 image 非 cover、摘要 overview 非 summaryARTICLE_STATUS.PUBLISHED = 0;留言字段是 need 非 content,提交带 source:'miniapp'

构建验证

  • npm run build:weapp✔ Webpack Compiled successfully in 20.06sExit 0。
  • 产物 dist/official/ 6 页齐全,分包体积 80K。
  • ⚠️ 坑:Taro 构建前清空 dist/(641 文件)会触发批量删除保护而中断。解决:先 mv dist /tmp/xxx 再构建。

后续待办

  • 历史页面(order/booking 等 28 文件)仍引用 NutUI,需按同样模式去空壳化。
  • .workbuddy/miniprogram-ui-plan.md 需更新为"多分包品牌小程序"版本。
  • 真机联调需确认后端 TenantId 与 /cms/cms-website/getSiteInfo/cms/cms-contact-lead/submit 两个接口在 shop-api 侧确实已代理。