00bf4bcfd6
feat(mp-share): add disabled share page list and hide share menu for specific pages
...
新增了禁用分享的页面配置列表,针对指定页面主动隐藏转发按钮,同时优化了分享逻辑的兜底和性能。
具体包括:
1. 增加_DISABLED_PAGES集合管理禁分享页面路由
2. 添加页面禁用检查和隐藏分享菜单工具方法
3. 在created和onLoad阶段自动隐藏对应页面的转发按钮
4. 优化onShow和分享钩子的禁用逻辑,避免无效请求和调用
2026-07-15 09:05:50 +08:00
d213c5a488
build(scripts): add test gate and npm test scripts
...
1. 新增测试门禁脚本test-gate.js,统一管理tests目录下的测试用例执行
2. 在package.json中添加test、test:util、prebuild、prestart脚本,将测试环节前置到构建和启动流程
3. 重构normalizeUrl函数,新增更严格的URL规范化逻辑并补充完整注释
4. 优化代码格式,修正多处对象字面量的空格排版
5. 新增util.js的单元测试文件,覆盖核心工具函数的测试场景
2026-07-15 08:57:52 +08:00
3ac8162d9c
fix(util): 修复子包URL连续斜杠过多的问题
...
新增逻辑将路径中3个及以上连续斜杠收敛为2个,避免破坏scheme部分,修正不规范的URL路径格式
2026-07-14 17:58:02 +08:00
873e1efe73
fix(util&scss): 修复快应用内嵌H5滚动问题并优化URL参数处理
...
1. 为body添加滚动样式适配快应用webview视口限制
2. 调整URL参数合并逻辑,确保page_params始终置于URL末尾
2026-07-14 17:22:57 +08:00
c1289cd6b1
fix(util): 优化跳转参数的空值处理逻辑
...
将原有的可选链空合并赋值改为条件式展开参数,避免传入无效的空值参数
2026-07-14 17:08:12 +08:00
b7cfa61a34
fix(util): 调整参数合并顺序并修复透传参数问题
...
1. 调整appendQueryParams的参数合并顺序,将page_params放在最后
2. 修复redirectTo调用时的参数透传问题,正确保留title和enable_set_title参数
3. 添加redirectTo跳转时的调试日志
2026-07-14 17:04:18 +08:00
52f952a6df
style(common/css): 修复快应用内嵌H5根容器不撑满问题
...
针对快应用内嵌H5场景下webview viewport高度不可控导致根容器无法铺满整屏的问题,添加H5端显式撑满容器的样式兜底,同时保留微信小程序/鸿蒙元服务的原有编译逻辑
2026-07-14 16:30:31 +08:00
2708ac55d1
fix(util): 修复小程序跳转时未拼接参数的问题
...
修复uni.navigateToMiniProgram调用时未将page_params参数拼接进跳转path的问题,正确处理了参数过滤和url拼接逻辑
2026-07-13 18:22:22 +08:00
3d822ed641
fix(util): 补全wap_url公共参数并透传page_params
...
将page_params合并到公共参数中,一并追加到跳转链接里
2026-07-13 18:20:51 +08:00
e88dc2b205
docs(mp-share-default): 修正注释里的预处理宏描述
...
将原来的具体代码注释调整为更通用的"MP-WEIXIN 预处理宏"表述,让注释更清晰易懂
2026-07-13 16:30:10 +08:00
30cda71749
refactor(http,lang): 重构请求逻辑并新增多语言错误提示
...
1. 新增网络相关错误的多语言翻译配置
2. 重写http请求层,添加自动重试机制与错误分类提示
3. 优化鸿蒙平台下的组件渲染兼容性与数据更新逻辑
4. 调整部分页面的模板结构与请求配置
2026-07-13 15:45:15 +08:00
88921e61d2
fix(splash-screen): 修复H5环境下启动屏关闭后页面空白问题
...
问题根源分析:
1. diy-group 的 mounted() 在组件挂载时就触发了,但此时 diyData 还没有数据
2.
otifyMounted() 在组件 mount 时立即关闭了 H5 的 uni.showLoading(),但页面内容还没就绪
3. 导致启动屏关闭后,首页内容还是空白的
修复方案:
1. 在 diy-group.vue 中,将 loaded 事件的触发时机改为 diyData watch 中,确保数据加载完成后再通知
2. 在 splash-state.js 中,
otifyMounted() 不再立即关闭 H5 原生 loading,等待页面就绪后由 _doHide() 统一关闭
3. 在 index.js 中,onDiyGroupLoaded() 延迟 500ms 再通知页面就绪,确保内容渲染完成
2026-07-13 10:54:17 +08:00
6b8b4acc96
fix(splash-state): 修复页面就绪后无法关闭启动屏的问题
...
问题根源: _flushPendingHide() 中过早清除了 _pendingHide,导致页面就绪后 notifyPageReady() 检测不到 pending hide 请求,启动屏无法关闭。
修复方案: 当页面未就绪时,保留 _pendingHide 直到页面真正就绪后再清除。
2026-07-13 10:43:47 +08:00
edea8c32de
fix(splash-screen): 启动屏等待首页内容就绪后再消失
...
问题描述: 首次启动时,启动屏已关闭但首页内容还是空白的,用户体验差。
解决方案:
1. 在 splash-state.js 中新增页面就绪等待机制 (_pageReady 标志、notifyPageReady 方法)
2. 修改软隐藏逻辑,必须同时满足组件已 mount 和页面已就绪才关闭启动屏
3. 在首页 onDiyGroupLoaded 回调中通知页面就绪
兜底保护:
- 组件 1s 未 mount → 强制关闭
- 页面 2s 未就绪 → 强制关闭
- 总超时 8s → 强制关闭
2026-07-13 10:36:04 +08:00
3f09dca054
refactor(splash-screen): 移除废弃的启动屏配置系统
...
简化启动屏组件代码,删除不再使用的splashConfig全局配置、相关工具方法和冗余的布局逻辑,统一进度条展示样式。
2026-07-13 10:22:45 +08:00
aa15518980
feat(splash-screen): add configurable splash screen display options
...
add splashConfig in config-external.js to control progress/label/percent display,
add runtime config api in splash-state.js,
refactor splash-screen.vue to support inline layout and prop override
2026-07-13 09:59:18 +08:00
a913961be5
feat: 实现隐私弹窗全链路功能,支持本地配置与远程patch融合
...
- 新增隐私管理器核心逻辑,支持URL路由规则匹配、远程patch签名校验与融合
- 实现启动期资源等待机制,确保弹窗在i18n、主题配置就绪后触发
- 新增启动进度条组件,展示启动阶段进度与状态
- 重构隐私弹窗组件生命周期,修复事件丢失问题并支持规则动态重评估
- 适配多端平台隐私检查逻辑,支持微信小程序、鸿蒙元服务与H5
- 支持uniacid租户隔离的持久化规则存储
2026-07-11 18:28:36 +08:00
a2066285cd
feat(mp-weixin): 新增全局兜底分享mixin与路径复制能力
...
为微信小程序端添加全局分享兜底支持,为所有未显式声明分享钩子的页面提供默认转发和朋友圈分享能力,同时新增小程序路径复制工具方法。
2026-07-11 15:19:26 +08:00
013eef46fb
refactor(common,components): 优化底部导航栏显隐逻辑
...
1. 新增isCurrentPageTabBarRoot工具方法封装页面判断逻辑
2. 调整弹窗打开时的导航栏隐藏时机,仅在非TabBar根页面执行
3. 移除弹窗open回调中的导航栏显示逻辑,改为在关闭弹窗时显式处理
4. 补充注释说明回调不可靠的问题和根页面不隐藏导航的原因
2026-07-10 15:46:48 +08:00
e3e63899d8
feat(privacy): add markSkipped method and H5 skip logic for privacy popup
...
add markSkipped method to synchronously skip privacy popup, and call it in App.vue created hook for H5 environment when current URL matches skip condition
2026-07-10 14:11:51 +08:00
9d2b76687c
feat(privacy): add url-based skip rule for H5 privacy popup
...
add ability to skip privacy popup when visiting specific H5 URLs directly,
update PrivacyManager.show to accept skip option,
add skip logic for specific form page to avoid blocking UI
2026-07-10 14:01:41 +08:00
679c53c501
refactor(util): 统一 URL 参数序列化与解析逻辑
...
1. 新增_toParamValueString处理复杂参数序列化
2. 新增parsePageParams作为page_params统一解析工具
3. 重构多处参数处理逻辑,避免重复代码和对象转字符串异常
4. 统一处理对象/数组参数的JSON序列化,避免出现[object Object]
2026-07-10 13:56:37 +08:00
a90245b201
fix: 适配多平台url编码规则,修复双重编码问题
...
针对H5和小程序/App平台分别处理url参数编码:
1. H5平台需要手动encodeURIComponent避免参数解析错误
2. 小程序/App平台由uni内部自动编码,避免双重编码导致参数解码异常
同时重构了工具类中的编码逻辑,统一多场景下的平台适配规则
2026-07-10 11:29:16 +08:00
897a8157e7
fix(util): 修复url参数编码逻辑
...
移除了冗余的try-catch编码逻辑,直接返回原始字符串
直接返回原始字符串,简化了url参数编码的处理流程,避免了不必要的编解码操作
2026-07-10 10:47:48 +08:00
d4794a7be4
fix(lang): 修复路径含连字符时无法匹配bundle的问题
...
新增尝试原始段名的匹配逻辑,同时支持camelCase、snake_case和原始段名三种命名方式,覆盖更多bundle命名场景
2026-07-09 16:26:02 +08:00
82fd3839a9
feat: 新增remote-only主题模式,优化首屏包体积
...
1. 新增theme-override.js实现主题远端拉取逻辑
2. 新增empty-style-stub.js作为主题包占位符,减少主包~75KB
3. 在vue.config.js中添加构建期主题stub替换逻辑
4. 重构config-external.js的主题配置,新增remote-only模式支持
5. 重构store的applyThemeWithRemote方法,适配远端主题拉取
6. 在bootstrap中新增主题初始化和异步拉取逻辑
2026-07-07 14:56:13 +08:00
b60ea984e5
fix: 修复分类商品项布局问题并添加窗口resize监听
...
1. 调整diy-category-item的price-wrap和name-wrap样式,修复布局偏移
2. 移除冗余的主题变量定义,修正flex布局参数为正确的1
3. 添加窗口尺寸变化监听,实现主题色动态重算
4. 更新语言审计报告的代码调用统计数值
2026-07-07 11:15:07 +08:00
3713cd2cf6
refactor(DIY分类页): 优化商品卡样式与H5主题适配
...
1. 修复H5端rpx单位CSS变量无法解析问题,添加rpx转px转换工具函数并更新缓存key
2. 给diy-category-item组件添加scoped样式,重构商品卡样式为CSS变量可配置形式
3. 补充多套预设的分类页商品卡样式token到style_color配置中
2026-07-07 10:56:59 +08:00
83a5f358e2
style(diy-category-item): 优化咨询按钮样式token支持度
...
扩展咨询按钮的可配置css属性,添加内边距、圆角、字重等独立token,便于后台全局调整按钮样式
2026-07-07 09:16:31 +08:00
bd1a9a67e0
style: 重构分类组件样式,支持主题化配置字号和按钮样式
...
1. 为分类树和分类项的文字样式替换为CSS变量,支持远端主题配置
2. 重命名AI咨询按钮的类名和样式变量,统一命名规范
3. 为每个主题预设添加分类页专属的样式token,包含字号、按钮背景和文字颜色
2026-07-07 09:12:06 +08:00
1c5cc62368
fix(util): 修复跳转链接参数合并与重复拼接问题
...
1. 重构resolveLinkUrl方法,合并wap_url自带query与page_params,且page_params优先级更高
2. 提取wap_url中的path部分,避免后续跳转重复附加query参数
3. 修复diyRedirectTo中重复解码wap_url和错误传递冗余参数的问题
2026-07-06 17:40:03 +08:00
aa7d967422
fix: 修复鸿蒙元服务TabBar跳转失效问题
...
1. 修复多处页面onTabItemTap事件,使用uni.reLaunch兜底鸿蒙下switchTab静默失败的问题
2. 全局混入onTabItemTap兜底未手动处理的页面
3. 优化路由跳转逻辑,针对鸿蒙环境增加switchTab失败兜底和超时强制跳转
4. 优化可选链调用和空值判断,提升代码健壮性
2026-07-06 16:48:38 +08:00
9dabcc2135
fix(privacy): 兼容鸿蒙元服务场景补全隐私弹窗逻辑
...
新增鸿蒙兜底逻辑,当PrivacyManager.show()未执行且用户未同意隐私权限时,触发补偿弹窗,避免用户无法看到隐私授权弹窗
2026-07-06 10:42:41 +08:00
6617a0b36c
fix(harmony): 修鸿蒙元服务 JSVM 兼容性
...
基于 .logs/harmony-debug.log 排查,修复 3 类 runtime 错误:
1. isWeChatMiniProgram / cashier autoPay / ai-chat 复制文本
- 鸿蒙 JSVM 没有 navigator 全局, navigator.userAgent 直接 ReferenceError
- 加 typeof navigator === 'undefined' 守卫,Harmony 上返回 false,
业务落到 isWeiXin()(已被 #ifdef H5 框住,Harmony 上也 false)→ 普通登录
2. diy-category getHeightArea
- onShow 在 mounted 前触发,query 还是 undefined
- query 重新尝试创建;createSelectorQuery 不存在则直接 return
- 防止首次进入崩溃
3. goods-detail-view 模板 indexOf
- goodsSkuDetail.support_trade_type 字段偶尔缺失
- 改 (support_trade_type || []).indexOf(...) 兜底
2026-07-04 11:26:47 +08:00
ea504d8434
refactor(lang): 优化远程页面树的命名匹配逻辑
...
修复多语言路径同时支持camelCase和snake_case的匹配问题,为每个层级同时维护两种命名格式的镜像键,增强路径兼容性
2026-07-04 09:32:56 +08:00
2d7d7f731c
fix(remote lang tree): 修复命名空间被基本类型值覆盖的bug
...
修复remote-only模式下语言包归一化的历史bug:当页面leaf顶层存在与命名空间同名的字符串键时,会覆盖整个namespace导致子key失效。通过对齐normalizePageLangPack的两层合并逻辑来修复:
1. 先将页面语言包按路径段转为命名空间结构再合并
2. 额外平铺leaf的基本类型键到根节点以兼容短key调用
2026-07-04 09:25:01 +08:00
783c10fc62
refactor: 统一项目内国际化key的命名空间格式
...
本次提交对全项目的国际化调用进行了规范化重构:
1. 为中文/英文语言包新增了avatar和gender的别名映射,兼容旧有headImg/sex写法
2. 修正了lang.js中的注释路径错误
3. 将所有页面和组件内的$lang调用从短路径改为带业务模块前缀的完整命名空间路径,例如将$lang('title')改为$lang('article.list.title')
4. 优化了i18n-lazy.js的注释说明,补充了正确的key命名格式示例
5. 统一了分销、订单、会员等模块的国际化key层级,确保所有语言调用路径一致
2026-07-04 09:24:35 +08:00
2a2161c9d9
refactor: 整理多页面语言包调用路径,统一翻译键层级
...
1. 调整品牌专区、商品评价、搜索、优惠券等页面的语言翻译引用,将零散翻译项归类到对应模块下
2. 优化auth.js中的语言包路径引用,修正模块命名空间
3. 清理zh-cn/en-us品牌语言包的冗余嵌套结构
2026-07-03 11:23:05 +08:00
0cdb956065
fix(http): 为请求失败提示添加错误信息参数
...
将原始的请求失败和域名不在白名单的提示中,新增传入err参数到多语言翻译中,展示更详细的错误信息
2026-07-02 16:56:28 +08:00
e1ce2ae268
feat(i18n): add fallback toast and cached bundle fallback logic
...
1. add global i18n fallback toast on lang:fallback event, only show once per process
2. add getCachedBundleAny to retrieve expired cache for boot fallback
3. add cache fallback logic when remote i18n bundle load fails
2026-07-02 16:33:22 +08:00
c86e688e47
refactor(privacy&lang): optimize privacy check and language bundle loading
...
1. add cache for privacy check result to reduce repeated calls
2. refactor lang bundle boot process with integrity checks
3. add timeout recovery for late fetch responses
4. improve error handling and fallback logic
5. add comments for better maintainability
2026-07-02 16:03:04 +08:00
2014d27834
chore(config): adjust boot and request timeout values
...
2026-07-02: 延长启动超时和请求超时时间,适配慢启动和远端冷启动场景,配合迟到数据补救机制确保获取到最终数据
2026-07-02 15:21:47 +08:00
de52406be8
refactor(common): 统一浮动按钮与侧边导航的尺寸变量与布局
...
1. 新增全局CSS变量管理浮动按钮和侧边导航的尺寸参数,实现多组件样式同步
2. 重构to-top.vue和hover-nav.vue,改用CSS变量驱动布局,修复多平台适配问题
3. 新增多语言切换弹窗与智能切换逻辑,优化多语言展示与配置能力
4. 修复原容器高度计算的硬编码适配问题,改用rpx单位实现全平台自适应
2026-07-02 11:45:33 +08:00
563ab9274f
build: add remote-only mode lang package stub and replacement logic
...
add empty-lang-stub.js to stub lang package files in remote-only mode,
add webpack plugin logic to replace lang files with stub to reduce bundle size
2026-07-01 16:50:01 +08:00
5ae4bbcbd3
feat: 新增统一启动屏组件,优化跨平台加载体验
...
1. 新增splash-screen全局启动屏组件,适配非APP平台的加载过渡
2. 新增splash-state状态管理模块,统一处理启动屏的显示隐藏、软隐藏时序、兜底超时逻辑
3. 重构App.vue和main.js的加载逻辑,替换原有uni.showLoading方案
4. 在首页和空页面挂载启动屏组件,适配不同页面场景
5. 兼容H5平台降级处理,解决main.js挂载前无法渲染组件的问题
2026-07-01 15:36:55 +08:00
c0220492a2
refactor(privacy-popup): 抽取通用延迟i18n混入并重构隐私弹窗
...
1. 新建通用的i18n延迟初始化混入,解决小程序/鸿蒙环境下i18n空串缓存问题
2. 将隐私弹窗原有的prepareI18n逻辑迁移到混入中,统一实现i18nPrepareFn
3. 简化弹窗组件内的i18n处理代码,优化可维护性
2026-07-01 14:04:42 +08:00
7045a05a73
feat: 添加全局隐私协议管理器并适配鸿蒙元服务
...
1. 新增common/js/privacy.js全局隐私协议管理器,统一处理多平台隐私弹窗逻辑
2. 替换APP-HARMONY为MP-HARMONY平台判断标识,适配鸿蒙元服务
3. 在mp-html组件中增加MP-HARMONY平台兼容
4. 在App.vue中集成隐私弹窗初始化逻辑
5. 重构privacy-popup.vue,接入全局隐私管理器,优化弹窗互斥逻辑
6. 全局挂载$privacy实例到Vue原型链
2026-07-01 09:39:04 +08:00
eef59211d3
refactor(i18n): 完善remote-only模式下的首屏渲染和请求门控
...
1. 补充getCachedBundle的注释说明TTL过期缓存返回null
2. 修复globalConfig中onShow的重复判断逻辑,增加boot完成检查
3. 给http请求增加remote-only模式下的boot门控,等待国际化就绪后再发送业务请求
4. 重构main.js的平台差异化处理逻辑,统一各端初始化流程
5. 优化App.vue的boot流程,为小程序/鸿蒙增加加载遮罩
6. 新增bootCompleted状态标志和并发去重机制,完善lang.js的remote-only适配逻辑
7. 补充lang()方法在boot未完成时返回空串的逻辑,避免首屏raw key
2026-06-30 15:29:45 +08:00
07c38c1b1b
fix: 适配多平台语言包加载逻辑,优化首屏渲染
...
调整语言包加载时机,区分H5和小程序/鸿蒙平台:
H5 remote-only模式下先await Lang.boot()再挂载Vue避免首屏raw key
小程序/鸿蒙平台同步注册App,Lang.boot()放到App.onLaunch异步执行不阻塞挂载
移除了无用的加载语言包错误日志注释
2026-06-30 14:30:22 +08:00
50a1c1c695
feat(i18n): 实现remote-only打包模式,优化首屏加载和产物体积
...
1. 新增remote-only模式下的空语言包stub
2. 新增缓存有效期配置并对齐后端Cache::set 600s
3. 重构语言包加载逻辑,适配remote-only模式
4. 添加webpack替换插件,排除本地lang目录减少产物体积
5. 优化Vue挂载时机,等待语言包就绪后再渲染首屏
6. 改进缓存策略,新增内存缓存TTL校验和语种缓存淘汰
7. 修复语言包缓存key生成逻辑,支持uniacid和appType隔离
2026-06-30 14:04:52 +08:00