refactor(cms): 迁移CMS模块接口到独立cms-api服务

- 新增cmsRequest工具,基于request封装,默认baseURL为cms-api
- 改用cmsRequest替换所有cms相关请求,确保请求走独立域名
- 配置三环境新增CMS_API_BASE_URL及导出CmsBaseUrl常量
- 解决CMS接口走shop-api时返回404的问题,避免小程序域名白名单冲突
- 统一修改34个cms API模块的261处调用,保持接口行为一致
- 修复部分拼接全URL方式改为相对路径调用cmsRequest
- 更新注释说明并调整相关接口调用代码
- 兼容macOS sed替换问题,采用perl命令完成批量替换
This commit is contained in:
2026-08-11 11:05:22 +08:00
parent b4cd54e102
commit d085e02ecf
3 changed files with 30 additions and 66 deletions
+13 -53
View File
@@ -4,47 +4,7 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="feat(official): 实现企业官网分包及内容展示&#10;&#10;- 新增官方分包目录及页面(首页、资讯列表、详情、关于我们、留言、我的)&#10;- 自定义实现底部导航组件 OfficialTabBar,解决微信 tabBar 不支持分包问题&#10;- 统一接口调用走 shop-api 代理,无新增 CMS 域名,减少合法域名负担&#10;- 新增 CMS 站点信息获取接口及留言咨询提交与查询接口&#10;- 设计并完善官网富文本样式,品牌色统一为 #185FA5,并更新 tailwind 配置&#10;- 首页新增企业官网入口卡片,方便用户访问官网内容&#10;- 完成官网分包构建验证,解决 Taro 构建批量删除保护问题&#10;- 规范 CMS 字段使用,适配字段名称及状态含义&#10;- 后续计划对历史页面 NutUI 组件进行空壳化整改,及更新 UI 设计文档"> <list default="true" id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="refactor(cms): 迁移CMS模块接口到独立cms-api服务&#10;&#10;- 新增cmsRequest工具,基于request封装,默认baseURL为cms-api&#10;- 改用cmsRequest替换所有cms相关请求,确保请求走独立域名&#10;- 配置三环境新增CMS_API_BASE_URL及导出CmsBaseUrl常量&#10;- 解决CMS接口走shop-api时返回404的问题,避免小程序域名白名单冲突&#10;- 统一修改34个cms API模块的261处调用,保持接口行为一致&#10;- 修复部分拼接全URL方式改为相对路径调用cmsRequest&#10;- 更新注释说明并调整相关接口调用代码&#10;- 兼容macOS sed替换问题,采用perl命令完成批量替换" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/app.ts" beforeDir="false" afterPath="$PROJECT_DIR$/config/app.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/env.js" beforeDir="false" afterPath="$PROJECT_DIR$/config/env.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsAd/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsAd/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsAdRecord/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsAdRecord/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticle/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticle/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticleCategory/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticleCategory/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticleComment/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticleComment/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticleContent/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticleContent/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticleCount/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticleCount/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsArticleLike/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsArticleLike/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsComponents/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsComponents/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsContactLead/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsContactLead/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDesign/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDesign/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDesignRecord/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDesignRecord/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDocs/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDocs/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDocsBook/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDocsBook/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDocsContent/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDocsContent/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsDomain/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsDomain/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsForm/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsForm/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsFormRecord/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsFormRecord/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsLang/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsLang/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsLangLog/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsLangLog/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsLink/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsLink/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsModel/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsModel/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsMp/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsMp/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsMpAd/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsMpAd/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsMpField/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsMpField/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsMpMenu/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsMpMenu/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsMpPages/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsMpPages/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsNavigation/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsNavigation/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsOrder/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsOrder/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsSpec/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsSpec/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsSpecValue/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsSpecValue/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsWebsite/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsWebsite/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/cmsWebsiteField/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/cmsWebsiteField/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/link/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/link/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/cms/mpOfficialMenu/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/cms/mpOfficialMenu/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/api/layout/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/layout/index.ts" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -158,15 +118,7 @@
<workItem from="1784638429525" duration="16147000" /> <workItem from="1784638429525" duration="16147000" />
<workItem from="1784798575885" duration="4896000" /> <workItem from="1784798575885" duration="4896000" />
<workItem from="1784873955217" duration="3822000" /> <workItem from="1784873955217" duration="3822000" />
<workItem from="1786371937331" duration="10067000" /> <workItem from="1786371937331" duration="10089000" />
</task>
<task id="LOCAL-00030" summary="refactor(api): 规范前端API接口地址并统一路径前缀&#10;&#10;- 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀&#10;- 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致&#10;- 新增权限申请及消息通知相关API,并完善相关函数实现&#10;- 规范请求参数传递,移除多余包装,改用直接传递对象方式&#10;- 新增API Key重置、版本发布/回滚等接口支持&#10;&#10;feat(invite): 重构邀请登录流程支持未注册快速加入&#10;&#10;- 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互&#10;- 实现未注册用户微信手机号授权后自动注册登录及自动加入应用&#10;- 已注册用户直接确认加入应用,无需手机号授权弹窗&#10;- 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错&#10;- 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用&#10;&#10;fix(developer): 修复开发者中心应用加载问题&#10;&#10;- 修复只查询创建的应用导致邀请加入的应用不显示的问题&#10;- 同时请求创建应用和参与应用接口,合并并去重应用列表&#10;- 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
<option name="closed" value="true" />
<created>1782803958326</created>
<option name="number" value="00030" />
<option name="presentableId" value="LOCAL-00030" />
<option name="project" value="LOCAL" />
<updated>1782803958326</updated>
</task> </task>
<task id="LOCAL-00031" summary="refactor(api): 规范前端API接口地址并统一路径前缀&#10;&#10;- 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀&#10;- 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致&#10;- 新增权限申请及消息通知相关API,并完善相关函数实现&#10;- 规范请求参数传递,移除多余包装,改用直接传递对象方式&#10;- 新增API Key重置、版本发布/回滚等接口支持&#10;&#10;feat(invite): 重构邀请登录流程支持未注册快速加入&#10;&#10;- 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互&#10;- 实现未注册用户微信手机号授权后自动注册登录及自动加入应用&#10;- 已注册用户直接确认加入应用,无需手机号授权弹窗&#10;- 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错&#10;- 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用&#10;&#10;fix(developer): 修复开发者中心应用加载问题&#10;&#10;- 修复只查询创建的应用导致邀请加入的应用不显示的问题&#10;- 同时请求创建应用和参与应用接口,合并并去重应用列表&#10;- 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验"> <task id="LOCAL-00031" summary="refactor(api): 规范前端API接口地址并统一路径前缀&#10;&#10;- 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀&#10;- 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致&#10;- 新增权限申请及消息通知相关API,并完善相关函数实现&#10;- 规范请求参数传递,移除多余包装,改用直接传递对象方式&#10;- 新增API Key重置、版本发布/回滚等接口支持&#10;&#10;feat(invite): 重构邀请登录流程支持未注册快速加入&#10;&#10;- 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互&#10;- 实现未注册用户微信手机号授权后自动注册登录及自动加入应用&#10;- 已注册用户直接确认加入应用,无需手机号授权弹窗&#10;- 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错&#10;- 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用&#10;&#10;fix(developer): 修复开发者中心应用加载问题&#10;&#10;- 修复只查询创建的应用导致邀请加入的应用不显示的问题&#10;- 同时请求创建应用和参与应用接口,合并并去重应用列表&#10;- 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -552,7 +504,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1786409297653</updated> <updated>1786409297653</updated>
</task> </task>
<option name="localTasksCounter" value="79" /> <task id="LOCAL-00079" summary="refactor(cms): 迁移CMS模块接口到独立cms-api服务&#10;&#10;- 新增cmsRequest工具,基于request封装,默认baseURL为cms-api&#10;- 改用cmsRequest替换所有cms相关请求,确保请求走独立域名&#10;- 配置三环境新增CMS_API_BASE_URL及导出CmsBaseUrl常量&#10;- 解决CMS接口走shop-api时返回404的问题,避免小程序域名白名单冲突&#10;- 统一修改34个cms API模块的261处调用,保持接口行为一致&#10;- 修复部分拼接全URL方式改为相对路径调用cmsRequest&#10;- 更新注释说明并调整相关接口调用代码&#10;- 兼容macOS sed替换问题,采用perl命令完成批量替换">
<option name="closed" value="true" />
<created>1786417481138</created>
<option name="number" value="00079" />
<option name="presentableId" value="LOCAL-00079" />
<option name="project" value="LOCAL" />
<updated>1786417481138</updated>
</task>
<option name="localTasksCounter" value="80" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -572,7 +532,6 @@
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" /> <option name="CHECK_NEW_TODO" value="false" />
<MESSAGE value="docs(schedule): 添加2026年7月1日日程文件&#10;&#10;- 创建新的日程文档文件 2026-07-01.md&#10;- 文件内容待后续补充和更新" />
<MESSAGE value="feat(pay): 优化小程序支付流程并增强日志调试&#10;&#10;- 更新 wx-login 接口以返回完整 LoginResult,包括 access_token 和 user 对象&#10;- 支付页面新增大量日志,详尽打印参数、请求和响应信息&#10;- 优化获取订阅详情流程,支持 returnRaw 返回完整响应用于调试&#10;- 支付流程新增步骤,先通过 code 获取 openid 并缓存,再尝试用 openid 自动登录&#10;- 增加自动登录失败交互,提示未注册用户先登录&#10;- 支付相关请求均使用 returnRaw 方便错误排查&#10;- request 请求模块添加统一请求和响应日志,增强调试能力&#10;- request 认证错误和业务错误时加入详细日志输出" /> <MESSAGE value="feat(pay): 优化小程序支付流程并增强日志调试&#10;&#10;- 更新 wx-login 接口以返回完整 LoginResult,包括 access_token 和 user 对象&#10;- 支付页面新增大量日志,详尽打印参数、请求和响应信息&#10;- 优化获取订阅详情流程,支持 returnRaw 返回完整响应用于调试&#10;- 支付流程新增步骤,先通过 code 获取 openid 并缓存,再尝试用 openid 自动登录&#10;- 增加自动登录失败交互,提示未注册用户先登录&#10;- 支付相关请求均使用 returnRaw 方便错误排查&#10;- request 请求模块添加统一请求和响应日志,增强调试能力&#10;- request 认证错误和业务错误时加入详细日志输出" />
<MESSAGE value="feat(pay): 支付成功后自动跳转到已购产品页面&#10;&#10;- 支付成功后显示成功提示&#10;- 延迟1.5秒自动跳转到已购产品页面&#10;- 处理跳转失败时回退到用户首页&#10;- 优化用户支付完成后的使用体验" /> <MESSAGE value="feat(pay): 支付成功后自动跳转到已购产品页面&#10;&#10;- 支付成功后显示成功提示&#10;- 延迟1.5秒自动跳转到已购产品页面&#10;- 处理跳转失败时回退到用户首页&#10;- 优化用户支付完成后的使用体验" />
<MESSAGE value="feat(pay-bak): 新增小程序支付页面及相关配置&#10;&#10;- 新增确认支付页面配置,设置导航栏标题和样式&#10;- 实现小程序支付页完整组件逻辑,包括加载订单、发起JSAPI支付等&#10;- 支持通过 scene 或 subscriptionNo 获取订单参数&#10;- 完善支付流程接口请求及错误处理,支持自动登录和支付确认&#10;- 增加支付成功、支付中、支付失败、取消等状态页面展示&#10;- 支持支付成功后跳转已购产品页或用户页&#10;- 提供取消支付返回逻辑和界面展示&#10;- 细化支付金额显示和提示用户支付后可使用应用功能" /> <MESSAGE value="feat(pay-bak): 新增小程序支付页面及相关配置&#10;&#10;- 新增确认支付页面配置,设置导航栏标题和样式&#10;- 实现小程序支付页完整组件逻辑,包括加载订单、发起JSAPI支付等&#10;- 支持通过 scene 或 subscriptionNo 获取订单参数&#10;- 完善支付流程接口请求及错误处理,支持自动登录和支付确认&#10;- 增加支付成功、支付中、支付失败、取消等状态页面展示&#10;- 支持支付成功后跳转已购产品页或用户页&#10;- 提供取消支付返回逻辑和界面展示&#10;- 细化支付金额显示和提示用户支付后可使用应用功能" />
@@ -597,7 +556,8 @@
<MESSAGE value="feat(checkout): 优化微信支付和线下付款流程&#10;&#10;- 将默认支付方式调整为微信支付(payType=1),增加支付方式选择项&#10;- 微信支付成功后直接调用微信支付接口并处理支付结果反馈&#10;- 支付取消或失败时显示对应提示信息&#10;- 线下付款(payType=9)保留并显示相应提示,不触发在线支付&#10;- 提交订单时根据支付方式显示不同的按钮文本 (‘提交并支付’ 或 ‘提交订单’)&#10;- 针对微信支付配置缺失的错误,统一显示详细提示,便于定位问题&#10;- 优化支付方式选中时的提示样式与说明,提升用户体验" /> <MESSAGE value="feat(checkout): 优化微信支付和线下付款流程&#10;&#10;- 将默认支付方式调整为微信支付(payType=1),增加支付方式选择项&#10;- 微信支付成功后直接调用微信支付接口并处理支付结果反馈&#10;- 支付取消或失败时显示对应提示信息&#10;- 线下付款(payType=9)保留并显示相应提示,不触发在线支付&#10;- 提交订单时根据支付方式显示不同的按钮文本 (‘提交并支付’ 或 ‘提交订单’)&#10;- 针对微信支付配置缺失的错误,统一显示详细提示,便于定位问题&#10;- 优化支付方式选中时的提示样式与说明,提升用户体验" />
<MESSAGE value="feat(checkout): 优化微信支付和线下付款流程&#10;&#10;- 支付方式新增微信支付(payType=1),并设为默认,保留线下付款(payType=9)&#10;- 微信支付时调用 Taro.requestPayment 发起支付流程,取消或失败给出明确提示&#10;- 支付选项选中状态下微信支付显示绿色提示,线下付款显示橙色提示&#10;- 提交按钮文案区分微信支付(提交并支付)与线下付款(提交订单)&#10;- 后端支付配置缺失时提示“微信支付暂不可用:支付配置缺失”&#10;- 确保编译构建通过,未引入新类型错误" /> <MESSAGE value="feat(checkout): 优化微信支付和线下付款流程&#10;&#10;- 支付方式新增微信支付(payType=1),并设为默认,保留线下付款(payType=9)&#10;- 微信支付时调用 Taro.requestPayment 发起支付流程,取消或失败给出明确提示&#10;- 支付选项选中状态下微信支付显示绿色提示,线下付款显示橙色提示&#10;- 提交按钮文案区分微信支付(提交并支付)与线下付款(提交订单)&#10;- 后端支付配置缺失时提示“微信支付暂不可用:支付配置缺失”&#10;- 确保编译构建通过,未引入新类型错误" />
<MESSAGE value="feat(official): 实现企业官网分包及内容展示&#10;&#10;- 新增官方分包目录及页面(首页、资讯列表、详情、关于我们、留言、我的)&#10;- 自定义实现底部导航组件 OfficialTabBar,解决微信 tabBar 不支持分包问题&#10;- 统一接口调用走 shop-api 代理,无新增 CMS 域名,减少合法域名负担&#10;- 新增 CMS 站点信息获取接口及留言咨询提交与查询接口&#10;- 设计并完善官网富文本样式,品牌色统一为 #185FA5,并更新 tailwind 配置&#10;- 首页新增企业官网入口卡片,方便用户访问官网内容&#10;- 完成官网分包构建验证,解决 Taro 构建批量删除保护问题&#10;- 规范 CMS 字段使用,适配字段名称及状态含义&#10;- 后续计划对历史页面 NutUI 组件进行空壳化整改,及更新 UI 设计文档" /> <MESSAGE value="feat(official): 实现企业官网分包及内容展示&#10;&#10;- 新增官方分包目录及页面(首页、资讯列表、详情、关于我们、留言、我的)&#10;- 自定义实现底部导航组件 OfficialTabBar,解决微信 tabBar 不支持分包问题&#10;- 统一接口调用走 shop-api 代理,无新增 CMS 域名,减少合法域名负担&#10;- 新增 CMS 站点信息获取接口及留言咨询提交与查询接口&#10;- 设计并完善官网富文本样式,品牌色统一为 #185FA5,并更新 tailwind 配置&#10;- 首页新增企业官网入口卡片,方便用户访问官网内容&#10;- 完成官网分包构建验证,解决 Taro 构建批量删除保护问题&#10;- 规范 CMS 字段使用,适配字段名称及状态含义&#10;- 后续计划对历史页面 NutUI 组件进行空壳化整改,及更新 UI 设计文档" />
<option name="LAST_COMMIT_MESSAGE" value="feat(official): 实现企业官网分包及内容展示&#10;&#10;- 新增官方分包目录及页面(首页、资讯列表、详情、关于我们、留言、我的)&#10;- 自定义实现底部导航组件 OfficialTabBar,解决微信 tabBar 不支持分包问题&#10;- 统一接口调用走 shop-api 代理,无新增 CMS 域名,减少合法域名负担&#10;- 新增 CMS 站点信息获取接口及留言咨询提交与查询接口&#10;- 设计并完善官网富文本样式,品牌色统一为 #185FA5,并更新 tailwind 配置&#10;- 首页新增企业官网入口卡片,方便用户访问官网内容&#10;- 完成官网分包构建验证,解决 Taro 构建批量删除保护问题&#10;- 规范 CMS 字段使用,适配字段名称及状态含义&#10;- 后续计划对历史页面 NutUI 组件进行空壳化整改,及更新 UI 设计文档" /> <MESSAGE value="refactor(cms): 迁移CMS模块接口到独立cms-api服务&#10;&#10;- 新增cmsRequest工具,基于request封装,默认baseURL为cms-api&#10;- 改用cmsRequest替换所有cms相关请求,确保请求走独立域名&#10;- 配置三环境新增CMS_API_BASE_URL及导出CmsBaseUrl常量&#10;- 解决CMS接口走shop-api时返回404的问题,避免小程序域名白名单冲突&#10;- 统一修改34个cms API模块的261处调用,保持接口行为一致&#10;- 修复部分拼接全URL方式改为相对路径调用cmsRequest&#10;- 更新注释说明并调整相关接口调用代码&#10;- 兼容macOS sed替换问题,采用perl命令完成批量替换" />
<option name="LAST_COMMIT_MESSAGE" value="refactor(cms): 迁移CMS模块接口到独立cms-api服务&#10;&#10;- 新增cmsRequest工具,基于request封装,默认baseURL为cms-api&#10;- 改用cmsRequest替换所有cms相关请求,确保请求走独立域名&#10;- 配置三环境新增CMS_API_BASE_URL及导出CmsBaseUrl常量&#10;- 解决CMS接口走shop-api时返回404的问题,避免小程序域名白名单冲突&#10;- 统一修改34个cms API模块的261处调用,保持接口行为一致&#10;- 修复部分拼接全URL方式改为相对路径调用cmsRequest&#10;- 更新注释说明并调整相关接口调用代码&#10;- 兼容macOS sed替换问题,采用perl命令完成批量替换" />
<option name="NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS" value="false" /> <option name="NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS" value="false" />
</component> </component>
</project> </project>
+8 -5
View File
@@ -1,6 +1,5 @@
import React from 'react' import React from 'react'
import { View, Text } from '@tarojs/components' import { View, Text, Button } from '@tarojs/components'
import { Button } from '@nutui/nutui-react-taro'
interface EmptyStateProps { interface EmptyStateProps {
image?: string image?: string
@@ -33,9 +32,13 @@ const EmptyState: React.FC<EmptyStateProps> = ({
)} )}
{actionText && onAction && ( {actionText && onAction && (
<Button <Button
type='primary' size='mini'
size='small' className='mt-4 bg-red-500 text-white rounded-full border-0 text-xs'
className='mt-4 rounded-full px-6' style={{
paddingLeft: '24px',
paddingRight: '24px',
lineHeight: '30px',
}}
onClick={onAction} onClick={onAction}
> >
{actionText} {actionText}
+9 -8
View File
@@ -1,6 +1,5 @@
import React from 'react' import React from 'react'
import { View } from '@tarojs/components' import { View, Button } from '@tarojs/components'
import { Button } from '@nutui/nutui-react-taro'
interface FixedButtonProps { interface FixedButtonProps {
text?: string text?: string
@@ -24,15 +23,17 @@ const FixedButton: React.FC<FixedButtonProps> = ({ text, onClick, icon, disabled
style={{ paddingBottom: '12px', flexShrink: 0 }} style={{ paddingBottom: '12px', flexShrink: 0 }}
> >
<Button <Button
type="primary"
style={{ background }}
size="large"
block
icon={icon}
disabled={disabled} disabled={disabled}
className="px-6"
onClick={onClick} onClick={onClick}
style={{
background: background || '#ef4444',
height: '44px',
lineHeight: '44px',
opacity: disabled ? 0.5 : 1,
}}
className="w-full flex items-center justify-center text-white text-base font-medium rounded-full border-0 px-6"
> >
{icon ? <View className="mr-1 flex items-center">{icon}</View> : null}
{text || '确定'} {text || '确定'}
</Button> </Button>
</View> </View>