Skip to content

vui-uniapp v1.4.2

Choose a tag to compare

@virtualman333 virtualman333 released this 19 Sep 17:44
· 5 commits to main since this release

修复

vui-upload 预览打开的不是用户点的那一张

onPreview(index) 原先把「全量列表」和「过滤掉空 url 之后的列表」当作两个数组各按下标取值:

const urls = this.list.map((f) => this.fileUrl(f)).filter((u) => !!u);
uni.previewImage({ urls, current: urls[index] || urls[0] });

只要列表里有一个条目拿不到 url(fileUrl 是 url || path || ''),.filter() 就会把后面的下标整体前移——urls[index] 指向的已经不是被点击的那一张;越界时还会静默退回 urls[0]。表现是「点第 3 张,打开的是别的图」,且不报错。

现在改为逐项配对({ url, at })再筛空,按原始下标找回目标位置;仅当被点的那一张自身也拿不到 url 时才退回第一张。

内部

  • check:logic 的真跑面从 3 个组件扩到 4 个(新增 vui-upload),断言 35 → 36 条。
  • 修掉该检查自己的一处假锁:组件枚举原先手抄成数组,「少抄一个组件」只会让循环少跑一圈、静默通过。现在组件路径是唯一登记处,并新增反向对账(文件里每声明一条 uni_modules/... 路径常量,都必须登记进枚举)。

自测

  • npm run check:all 15 条全绿
  • npm run check:h5:真构建 + 真浏览器渲染 5 个页面 + 探针页,全部留下组件痕迹
  • 负向验证:6 处单缺陷注入全部命中,源码 sha256 逐字节还原