fix(harmony): 首次加载延迟300ms确保scroll-view渲染就绪后再请求数据

根因分析(最终结论):
- H5/微信:API请求需200~500ms,此时scroll-view已完成首次渲染,数据正常显示
- 鸿蒙元服务:API响应极快(<50ms),抢在scroll-view首次渲染完成前返回数据
- mescroll在slot内容未渲染时测得高度为0 → 列表不可见
- 点击排序之所以能显示,是因为第二次load时DOM已完全稳定

修复方案:
- 将getGoodsList拆分为getGoodsList(入口) + _doGetGoodsList(实际逻辑)
- MP-HARMONY环境下首次加载延迟300ms,确保scroll-view DOM就绪
- 后续翻页/刷新/排序操作不延迟,保持原有体验
- 配合scrollTo(0,0)作为双重保险强制重新测量内容高度
This commit is contained in:
2026-06-05 11:57:01 +08:00
parent 51ae3b1308
commit e604a41e14

View File

@@ -206,6 +206,20 @@ export default {
});
},
getGoodsList(mescroll) {
// #ifdef MP-HARMONY
// 鸿蒙元服务API响应极快,可能抢在scroll-view首次渲染完成之前返回数据
// 导致mescroll测得内容高度为0,列表不可见。首次加载延迟300ms确保DOM就绪。
if (!this._harmonyFirstLoadDone) {
this._harmonyFirstLoadDone = true;
setTimeout(() => {
this._doGetGoodsList(mescroll);
}, 300);
return;
}
// #endif
this._doGetGoodsList(mescroll);
},
_doGetGoodsList(mescroll) {
this.$api.sendRequest({
url: '/api/goodssku/page',
data: {