dac27ca43b
Merge branch 'dev/1.0' of https://git.aigc-quickapp.com/Uniapp/lucky_shop into dev/1.0
2026-07-24 16:40:27 +08:00
f5f893b445
refactor(splash&diy): 重构启动页逻辑,优化白屏问题
...
1. 统一全平台启动页为strict模式,仅在12s兜底超时才强制关闭
2. 新增网络自适应超时策略,根据网络环境调整兜底时长
3. 补充diy加载失败时的启动页关闭逻辑,避免严格模式下无限等待
4. 优化代码格式与注释,修复部分代码细节问题
2026-07-24 16:11:41 +08:00
45c0c2afb1
refactor(鸿蒙元服务): 适配鸿蒙平台隐私托管与启动屏时序优化
...
1. 适配鸿蒙元服务平台隐私托管,由系统自动弹出隐私弹窗,应用层不再弹出自建弹窗
2. 新增启动屏strict模式,鸿蒙场景下严格等待首页DIY渲染完成再关闭启动屏,避免白屏
3. 新增splash-state单元测试覆盖新旧模式与鸿蒙场景
4. 清理隐私相关冗余代码与注释,统一平台逻辑分支
2026-07-24 15:10:49 +08:00
3debab7291
chore:VR有返回箭头了
2026-07-23 18:27:34 +08:00
ff0d26908c
fix(member): 修复账号注销/退出登录后无法正常跳转到微信原生授权登录的问题
...
修复背景:
账号注销成功后, 用户被重定向到 native 登录页 (手机号+验证码表单风格, 像 H5),
而不是微信小程序原生授权登录 (ns-login 弹窗 + getPhoneNumber 授权).
此外, 微信小程序下短时间内连发 reLaunch 会触发 native 错误:
appLaunch with non-empty page stack
以及历史遗留的 navigateTo push 登录页 + 旧页面在栈中导致的死循环问题.
主要修复:
1. util.js redirectTo reLaunch 分支 (4 平台兼容):
- H5 平台: window.location.replace (真正清空 history, 避免 history.back + router.replace 假清栈)
- 小程序平台 (mp-weixin/mp-harmony/...): 加 300ms 全局跳转锁 + setTimeout(0) 包裹
解决 appLaunch with non-empty page stack 错误
- APP/其他: 保留原生 uni.reLaunch
2. util.js redirectTo 入口智能默认 (跨平台兜底):
- 目标 == LOGIN_PAGE_URL && mode 是默认 navigateTo && 没传 back 参数
→ 自动改成 reLaunch (避免注销后死循环)
- 显式传 mode 或带 back 参数的场景保持原行为 (不影响登录后回原页面)
3. member-public.js mixin 增强:
- getLoginEntryUrl(): 跨平台登录入口智能分流
微信小程序/鸿蒙/其他小程序 → INDEX_PAGE_URL (首页, 走 ns-login 原生授权弹窗)
H5/快应用/APP → LOGIN_PAGE_URL (原生登录页)
- redirectToLoginOnce(): 统一封装 clearLoginState + 跳登录入口, 带 800ms 组件级防抖锁
- logout / getCancelStatus 兜底 / submitCancelApply 三个地方都改用 redirectToLoginOnce()
4. 5 个注销/退出流程页面改造:
- cancelsuccess.vue / cancelstatus.vue / cancellation.vue / cancelrefuse.vue
/ assets.vue: 跳登录入口全部用 redirectToLoginOnce (不再直接 redirectTo(LOGIN_PAGE_URL))
- cancellation.vue / cancelrefuse.vue: 加 memberPublic mixin (原本没有)
5. 取消了在 pages/index/public/js/index.js 中 onShow 自动弹登录弹窗的尝试
(因触发 Vue 框架的 dataset of null pre-existing 错误, 改由其他途径处理)
测试覆盖 (300+ 测试用例全部通过):
- tests/member-cancel-flow.test.js (28 个测试, 9 个用户故事场景)
- tests/redirectTo-relaunch-h5.test.js (11 个测试, 9 个跨平台场景)
- tests/redirectTo-real.test.js (12 个)
- tests/util.test.js (30 个)
- 其他 8 个测试文件全部通过
2026-07-23 17:26:00 +08:00
94142268a0
refactor(i18n): 完成全量硬编码中文文案替换为多语言方案
...
1. 替换所有页面/组件中的硬编码中文提示文案为$lang调用,包括支付、帮助中心、公告等页面
2. 重构diy.js加载失败文案处理逻辑,支持参数化替换
3. 新增多语言混入逻辑,实现导航标题随语种动态切换
4. 重构支付组件初始化逻辑,优化平台适配代码
5. 添加多语言单元测试和硬编码扫描脚本
6. 更新语言包,新增缺失的翻译词条
2026-07-23 09:46:16 +08:00
0bcb5e7f4a
fix(common/js/diy.js): 修正错误处理中使用的错误key函数
...
将diyErrorKey替换为httpErrorKey来适配HTTP状态码错误处理逻辑
2026-07-21 09:33:48 +08:00
73776841d8
fix: 修复鸿蒙元服务商品详情页空白及接口兼容问题
...
1. 移除view组件无效的scroll-y属性,避免鸿蒙JSVM静默不渲染导致页面空白
2. 删除冗余的商品分类页面路由配置
3. 为ref调用和接口请求添加try-catch与空值防御,避免极端场景下崩溃
4. 补充鸿蒙元服务接口调用的兼容性处理,确保请求正常发起
5. 调整loading隐藏时机和异常捕获逻辑,优化页面容错能力
2026-07-20 08:44:15 +08:00
2adb574dd5
refactor(util-navigate): 合并微信和鸿蒙平台的编码逻辑
...
将原有的mp-weixin和mp-harmony平台的编码判断合并,简化分支代码逻辑
2026-07-18 18:19:38 +08:00
5b7351dcd2
fix: 兼容鸿蒙元服务端小程序适配优化
...
1. 修复cart页面unload时调用不存在方法的报错
2. 适配鸿蒙themeColor绑定和$nextTick兼容问题
3. 给多处逻辑添加try/catch防止页面空白
4. 补全v-for循环的key属性
2026-07-18 17:54:05 +08:00
a6091f6b68
refactor(commodity-detail): optimize performance and fix UI flicker issues
...
1. add empty form tip for product message section
2. lazy load goods form to unblock initial page render
3. optimize category and tabbar rendering to fix flicker on WeChat mini-program
4. delay non-critical data processing to improve first-screen rendering speed
5. fix popup blank issue when opening product message form for the first time
2026-07-18 16:57:10 +08:00
9d6c3218fb
refactor(http, diy): 抽象通用网络错误处理逻辑
...
1. 抽离通用http错误分类器到单独模块,实现错误处理复用
2. 统一多语言文案,将diy专属错误合并到通用http命名空间
3. 简化diy页面的错误处理代码,降低维护成本
2026-07-18 16:18:35 +08:00
c8d92d8100
feat(diy): add in-page error prompt for diy data loading failure
...
1. add multi-language error copy for api request and network exceptions
2. add fixed top error banner component for index page
3. rewrite diy data request error handling: replace toast with reliable in-page prompt with retry button
4. add detailed error reason and request url display in error prompt
2026-07-18 15:58:40 +08:00
018616dd0e
fix(common/js/event-safety): 修复dataset访问可能的空指针问题
...
使用可选链操作符避免target为null/undefined时访问dataset报错
2026-07-18 11:58:09 +08:00
fdc0b54fbd
fix(common/js/goods_detail_base): add format parameter to goodsform api request
...
为商品表单接口请求添加format: 'object'参数,指定返回数据格式为对象类型
2026-07-18 11:27:21 +08:00
059630ba2c
refactor: 重构商品留言表单逻辑,替换为diy-form组件
...
1. 移除页面data中维护的留言表单数据,改为通过computed实时从商品详情数据构建diy-form所需格式
2. 替换ns-newform为diy-form组件,使用raw模式并接管表单提交逻辑
3. 完善平台别名映射,新增更多小程序平台兼容配置
4. 为diy-form新增占位符样式属性绑定
5. 重构商品表单接口处理逻辑,统一所有元数据字段的初始化和兼容处理
2026-07-18 10:55:39 +08:00
1ac0fb2484
refactor(goods-detail): 升级商品留言表单组件与接口适配
...
1. 将原有的同步调用改为异步处理handleGoodsSkuData和getGoodsForm方法
2. 重构getGoodsForm接口请求逻辑,兼容新旧版接口返回格式
3. 新增goods_form_config字段支持新表单组件样式配置
4. 替换旧版ns-form为ns-newform组件,完善空数据兜底处理
5. 优化商品留言初始化的可选链操作避免空指针报错
2026-07-18 10:34:37 +08:00
1143ef7b72
fix(util-navigate): 完善鸿蒙元服务编码逻辑注释与说明
...
更新了util-navigate和对应测试文件的注释,补充鸿蒙原生编码的细节,说明双重编码的问题以及&符号的处理逻辑,修正了注释里的重复表述
2026-07-18 09:24:10 +08:00
f3032a6004
fix(util-navigate): 修复多平台搜索关键词编码乱码问题
...
重构跨平台参数编码逻辑:
1. 微信小程序/鸿蒙元服务:仅处理编码边界符和decode roundtrip,不主动编码,交由平台原生处理
2. H5/华为快应用:保留主动编码逻辑,适配浏览器query解析规则
3. 新增专项测试用例覆盖搜索关键词跨端流转场景,修复商品分类页跳转列表页关键词显示乱码的bug
2026-07-18 08:34:43 +08:00
70c9c49b94
refactor(form): 抽离平台检测逻辑到共用mixin,统一多端表单配置处理
...
1. 新增form-platform-mixin.js集中管理平台判断、别名兼容和配置键获取逻辑
2. 移除ns-form和ns-newform组件内重复的平台相关代码
3. 统一替换rpx单位处理逻辑为$util.rpx,简化样式计算代码
4. 移除冗余的_resolveFontSize工具方法,复用现有工具能力
2026-07-17 15:44:40 +08:00
cbf91fa905
feat(util,navigate): add uniacid stale check for wap url
...
新增租户uniacid一致性校验逻辑,修复装修外链携带过期租户ID导致的跳转错误问题:
1. 新增pickCurrentUniacid和hasStaleUniacidInUrl工具函数
2. 在链接处理逻辑中校验wap_url内的uniacid与当前系统租户ID是否一致
3. 脏数据场景下强制走外链模式而非内部跳转
4. 补充完整的单元测试覆盖
2026-07-17 11:37:53 +08:00
61495b5e90
refactor(utils&form): 优化设备信息获取与表单组件样式配置
...
1. 为设备信息相关方法添加可选链操作符,避免空值报错
2. 重构getDeviceInfo和getWindowInfo的异常处理逻辑,简化代码
3. 重构ns-form表单组件,新增全局样式配置支持,兼容多端样式自定义
4. 优化表单布局样式、必填项和选中态颜色,修复鸿蒙元服务TextArea适配问题
5. 新增标签宽度自动计算功能,优化表单排版对齐效果
2026-07-17 10:43:49 +08:00
cf6d54e2bf
fix(util): 修复内部页面绝对URL被误判为外链的问题
...
新增extractInternalAppPath和resolveNavMode工具函数,在diyRedirectTo中增加内部页面绝对URL还原逻辑:
1. 支持通过open_mode配置三种导航模式:auto/online/internal
2. 严格校验域名避免误伤外部站点,支持强制内部跳转场景
3. 修复H5整页刷新丢失状态、MP被塞进web-view的问题
2026-07-16 16:32:10 +08:00
55a9ed5946
refactor: 重构底部导航高亮逻辑,新增跨平台兼容与工具脚本
...
1. 抽离底部导航归属逻辑为纯函数resolveEntryTab,优化分包页面高亮规则,对齐iOS HIG规范
2. 新增页面Tab通配符映射,简化PAGE_TAB_MAP维护
3. 修复鸿蒙平台webview返回按钮适配问题
4. 新增pages.json校验与导航标题自动注入脚本
5. 优化启动页动画性能,提升合成渲染效率
6. 修复diy-picture组件v-for缺少key的警告
7. 清理鸿蒙平台多余的分包构建配置
8. 更新统计数据与store注释说明
2026-07-16 11:47:29 +08:00
b20ab5bf5d
feat(H5/quickapp): add quick app pull refresh global mixin and utils
...
1. add quickapp-pull-refresh.js mixin to handle pull down refresh in quick app H5 environment
2. add notifyNativeHost and requestQuickAppReload util methods for cross-environment communication
3. conditionally register the mixin only for H5 platform
2026-07-15 17:55:27 +08:00
616fac0312
refactor(common,webview): remove redundant console logs and simplify api call
...
清理了两处页面和工具类中的调试日志,同时简化了uni.setNavigationBarTitle的调用代码,移除了不必要的success/fail回调,只保留核心调用逻辑
2026-07-15 16:24:35 +08:00
1c88bcf99b
style(common/css): 删除冗余的H5端全局样式代码
...
移除了原先针对H5端的根容器撑满和自定义TabBar固定的冗余注释与样式代码,这些样式逻辑目前可能已被框架内置处理或不再需要,清理样式文件减少冗余代码。
2026-07-15 15:17:23 +08:00
793b988376
fix(splash-screen): 修复启动屏拦截首页触摸事件的问题
...
针对H5端和普通启动场景,分别处理触摸事件拦截问题:
1. 给启动屏组件添加pointer-events:none,让首页在渐隐期也能正常交互
2. 修改uni.showLoading的mask参数为false,避免原生蒙层遮挡触摸
2026-07-15 15:12:59 +08:00
313c283d9b
fix: 适配华为快应用WebView场景并修复tabbar定位问题
...
1. 新增华为快应用WebView环境检测工具函数
2. 文章组件在快应用WebView中强制关闭滚动模式
3. 修复全局tabbar在H5/快应用中的定位漂移问题,加固fixed定位样式
4. 补全页面配置中的导航栏标题字段
2026-07-15 15:00:42 +08:00
b10bf472e3
feat(webview): add webview title auto update and debug logs
...
1. add @titleUpdate event listener for web-view component
2. decode uri component for title and enableSetTitle params
3. refactor updateNavbarTitle to accept dynamic new title
4. add debug console logs for tracking title update flow
5. add success/fail callbacks for navigation bar title setting
2026-07-15 11:55:52 +08:00
1814fffc12
refactor(util-navigate): simplify platform detection logic
...
1. remove redundant try-catch wrapper for compile-time macros
2. add quickapp runtime detection for H5 in quickapp webview
3. add optional chaining for uni.getSystemInfoSync call
4. add comment for default return case
2026-07-15 11:18:55 +08:00
13da4f1c9f
fix(util): 修正系统导航栏列表工具函数的导入别名
...
调整了systemTabBarList工具函数的导入别名写法,同时将adaptSubpackageUrl加入到导出列表中保持API一致性
2026-07-15 11:08:35 +08:00
c8fada4b9d
refactor(util): 拆分跳转工具集到独立文件
...
将原util.js中的跳转相关工具函数拆分为util-navigate.js和util-tabbar.js两个独立模块,重构原有代码以:
1. 避免循环依赖问题
2. 提升代码可维护性和复用性
3. 保留原有API兼容性,无需修改业务调用代码
4. 实现纯函数化设计,方便测试和tree-shaking
2026-07-15 11:00:49 +08:00
229c6aa969
feat(util): add URL sanitization utility and improve redirect handling
...
1. add cleanParamUrls recursive URL sanitization util
2. add URL cleanup to diyRedirectTo as final defense
3. refactor redirectTo to avoid duplicate cleanup
4. add comprehensive unit tests for all new functionality
2026-07-15 09:24:10 +08:00
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