uview-plus 3.8.86 → 3.8.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +150 -3
- package/components/u-action-sheet/u-action-sheet.vue +21 -2
- package/components/u-barcode/u-barcode.vue +0 -2
- package/components/u-button/u-button.vue +2 -5
- package/components/u-canvas/u-canvas.vue +368 -74
- package/components/u-cell/u-cell.vue +8 -0
- package/components/u-datetime-picker/u-datetime-picker.vue +53 -4
- package/components/u-dragsort/u-dragsort.vue +55 -31
- package/components/u-icon/u-icon.vue +12 -3
- package/components/u-icon/util.js +81 -10
- package/components/u-index-item/u-index-item.vue +1 -1
- package/components/u-index-list/u-index-list.vue +1 -1
- package/components/u-novel-reader/content-normalizer.js +80 -0
- package/components/u-novel-reader/layout-engine.js +225 -0
- package/components/u-novel-reader/measure-adapter.js +69 -0
- package/components/u-novel-reader/novelReader.js +35 -0
- package/components/u-novel-reader/persistence.js +144 -0
- package/components/u-novel-reader/props.js +100 -0
- package/components/u-novel-reader/reader-catalog.vue +234 -0
- package/components/u-novel-reader/reader-content.vue +226 -0
- package/components/u-novel-reader/reader-core.js +151 -0
- package/components/u-novel-reader/reader-settings.vue +325 -0
- package/components/u-novel-reader/reader-toolbar.vue +313 -0
- package/components/u-novel-reader/theme-vars.scss +49 -0
- package/components/u-novel-reader/u-novel-reader.vue +836 -0
- package/components/u-poster/u-poster.vue +236 -219
- package/components/u-qrcode/qrcode.js +56 -49
- package/components/u-qrcode/u-qrcode.vue +159 -88
- package/components/u-scroll-list/scrollWxs.wxs +1 -1
- package/components/u-slider/u-slider.vue +1 -1
- package/components/u-swipe-action-item/index.wxs +43 -25
- package/components/u-swipe-action-item/nvue.js +9 -0
- package/components/u-swipe-action-item/other.js +32 -21
- package/components/u-swipe-action-item/props.js +5 -0
- package/components/u-swipe-action-item/swipeActionItem.js +1 -0
- package/components/u-swipe-action-item/u-swipe-action-item.vue +28 -4
- package/components/u-switch/u-switch.vue +1 -1
- package/components/u-tabbar/u-tabbar.vue +2 -1
- package/components/u-tabbar-item/u-tabbar-item.vue +64 -21
- package/components/u-tabs/u-tabs.vue +11 -8
- package/components/u-tabs-pro/u-tabs-pro.vue +212 -0
- package/components/u-text/text.js +1 -1
- package/components/u-text/u-text.vue +18 -6
- package/components/u-upload/u-upload.vue +1 -1
- package/components/u-waterfall/u-waterfall.vue +118 -65
- package/libs/config/config.js +1 -1
- package/libs/config/props.js +1 -0
- package/libs/function/index.js +66 -0
- package/libs/mixin/mixin.js +4 -50
- package/libs/root/index.js +78 -5
- package/libs/root/page.js +7 -7
- package/libs/root/root.js +73 -3
- package/libs/util/app-nvue-webview-canvas.js +486 -0
- package/libs/util/gcanvas/bridge/bridge-weex.js +0 -2
- package/libs/util/gcanvas/context-2d/FillStyleLinearGradient.js +0 -0
- package/libs/util/gcanvas/context-2d/FillStylePattern.js +0 -0
- package/libs/util/gcanvas/context-2d/FillStyleRadialGradient.js +0 -0
- package/libs/util/gcanvas/context-2d/RenderingContext.js +0 -0
- package/libs/util/gcanvas/context-webgl/ActiveInfo.js +0 -0
- package/libs/util/gcanvas/context-webgl/Buffer.js +0 -0
- package/libs/util/gcanvas/context-webgl/Framebuffer.js +0 -0
- package/libs/util/gcanvas/context-webgl/GLenum.js +0 -0
- package/libs/util/gcanvas/context-webgl/GLmethod.js +0 -0
- package/libs/util/gcanvas/context-webgl/GLtype.js +0 -0
- package/libs/util/gcanvas/context-webgl/Program.js +0 -0
- package/libs/util/gcanvas/context-webgl/Renderbuffer.js +0 -0
- package/libs/util/gcanvas/context-webgl/RenderingContext.js +0 -0
- package/libs/util/gcanvas/context-webgl/Shader.js +0 -0
- package/libs/util/gcanvas/context-webgl/ShaderPrecisionFormat.js +0 -0
- package/libs/util/gcanvas/context-webgl/Texture.js +0 -0
- package/libs/util/gcanvas/context-webgl/UniformLocation.js +0 -0
- package/libs/util/gcanvas/context-webgl/classUtils.js +0 -0
- package/libs/util/gcanvas/env/canvas.js +0 -0
- package/libs/util/gcanvas/env/image.js +0 -0
- package/libs/util/gcanvas/env/tool.js +0 -0
- package/libs/util/gcanvas/index.js +3 -3
- package/package.json +1 -1
- package/types/comps/swipeActionItem.d.ts +13 -0
- package/types/comps/tabs.d.ts +2 -1
- package/types/comps/text.d.ts +1 -1
- package/types/func.d.ts +23 -0
- package/types/index.d.ts +1 -0
package/changelog.md
CHANGED
|
@@ -1,8 +1,155 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 3.8.106
|
|
2
|
+
feat: 让 App 原生 nvue 页面完整复用 App.up.vue 根容器
|
|
3
|
+
|
|
4
|
+
- 原生 App nvue 页面统一导入并包裹项目 App.up.vue,保留页面主题、导航栏和 Root 能力。
|
|
5
|
+
- App.up.vue 在 App Vue 和 App nvue 中分别显示 VUE、NVUE 渲染标识,并补充 nvue 根容器尺寸适配。
|
|
6
|
+
- Toast/Notify 根宿主改为本地注册,兼容 nvue 独立页面实例。
|
|
7
|
+
- 增加 Root、nvue 页面和 App.up.vue 的回归验证。
|
|
8
|
+
|
|
9
|
+
## 3.8.105
|
|
10
|
+
feat: 完善 APP-NVUE 海报与通用画布能力
|
|
11
|
+
|
|
12
|
+
- 修复 APP-NVUE 海报生成时图片、文字和二维码无法完整导出的问题
|
|
13
|
+
- 增加基于 WebView 的通用画布运行时,统一提供绘制、文本、图片、二维码和导出能力
|
|
14
|
+
- 完善 u-canvas 跨端接口,支持后续扩展自定义图形绘制与图表场景
|
|
15
|
+
- 修复 GCanvas 背景设置异常并移除发布版本中的调试日志
|
|
16
|
+
|
|
17
|
+
fix: 修复跨端字体图标与字体加载问题
|
|
18
|
+
|
|
19
|
+
- 修复 App Vue 模式下图标字体不显示的问题
|
|
20
|
+
- 修复微信小程序字体加载失败后无法再次加载的问题
|
|
21
|
+
- 支持 App nvue 页面按 Vue 模式编译,改善组件兼容性
|
|
22
|
+
|
|
23
|
+
fix: 完善 Tabs、二维码与小说阅读器示例
|
|
24
|
+
|
|
25
|
+
- 修复 Tabs 自定义样式颜色回退,并完善点击事件参数
|
|
26
|
+
- 修复二维码在 APP-NVUE 海报场景中的绘制与导出兼容性
|
|
27
|
+
- 统一小说阅读器示例的根容器、主题、工具栏、设置、目录和正文布局
|
|
28
|
+
- 将小说阅读器示例调整为全屏布局,改善不同设备下的显示效果
|
|
29
|
+
|
|
30
|
+
## 3.8.104
|
|
31
|
+
fix: 修复 DatetimePicker 动态修改 minMinute 等边界值导致已选值重置及重复触发 change
|
|
32
|
+
|
|
33
|
+
- 修复 mode=time/timesecond 下,切换时间时动态改变 minMinute(及其他 min/max 边界)会把已选值重置为初始值的问题:改为保留当前已选值并按新边界重新校正,未点确认前不再回退到 modelValue。
|
|
34
|
+
- 修复边界变化时程序化重建各列在部分原生端再次派发 change 的问题:新增 lastEmitValue 去重,值未变化不再上抛 change。
|
|
35
|
+
- 已选值低于新的 minMinute(或高于 maxMinute)时会被自动夹取到合法范围并补发一次 change。
|
|
36
|
+
- 示例页新增「只能选当前时间之后(动态 minMinute)」演示。
|
|
37
|
+
|
|
38
|
+
## 3.8.103
|
|
39
|
+
feat: 增加小说阅读器组件
|
|
40
|
+
|
|
41
|
+
- 新增 `up-novel-reader` 小说阅读组件,支持纵向滚动与横向分页两种阅读模式。
|
|
42
|
+
- 增加顶部工具栏、返回按钮、目录、书签、章节切换、阅读设置和五种内置主题。
|
|
43
|
+
- 增加字号、行高、段距、正文宽度、字体、粗体和翻页动画配置。
|
|
44
|
+
- 增加章节预加载、阅读进度、阅读时长、本地持久化和损坏状态恢复。
|
|
45
|
+
- 增加顶部状态栏与底部安全区适配,返回按钮仅随顶部工具栏显示。
|
|
46
|
+
- 增加组件示例页面、组件文档和小说阅读器静态校验脚本。
|
|
47
|
+
|
|
48
|
+
## 3.8.102
|
|
49
|
+
feat: 新增组合式 API 节点查询方法
|
|
50
|
+
|
|
51
|
+
- 将节点查询逻辑迁移到公共 upGetRect,并保留旧 $uGetRect 兼容入口
|
|
52
|
+
- 补充跨端空结果处理与类型声明,保持 Vue 与组合式 API 的查询能力一致
|
|
53
|
+
|
|
54
|
+
fix: 修复 u-text 设置无单位行高时文字不可见
|
|
55
|
+
|
|
56
|
+
- 修复 lineHeight=1.2 被转换为 1.2px 后与单行省略裁剪叠加导致文字显示为虚线的问题
|
|
57
|
+
- 保留 20 等尺寸值的像素语义,并支持 px、rpx、百分比等显式单位
|
|
58
|
+
- 同步补充 u-text 的 TypeScript 行高说明
|
|
59
|
+
|
|
60
|
+
## 3.8.101
|
|
61
|
+
fix: 修复 H5 overlay 内二维码重复 HiDPI 缩放导致绘制不完整
|
|
62
|
+
|
|
63
|
+
- H5 使用 uni-h5 内置 HiDPI 尺寸和绘制缩放,避免 up-canvas 再次设置画布尺寸与变换矩阵
|
|
64
|
+
- 保留小程序端 DPR 适配,避免影响已有跨端绘制行为
|
|
65
|
+
- 增加 DPR=2 初始化回归校验,并静态检查 H5 不再重复执行手动缩放
|
|
66
|
+
|
|
67
|
+
## 3.8.100
|
|
68
|
+
修复 H5 中 up-qrcode 嵌入 up-overlay 时二维码可能绘制不完整或空白的问题。
|
|
69
|
+
|
|
70
|
+
通过合并同一 up-canvas 实例的并发初始化,避免重复设置画布尺寸和清屏覆盖已绘制内容;新增 Overlay 二维码示例与初始化竞态回归验证。
|
|
71
|
+
|
|
72
|
+
## 3.8.99(2026-08-05)
|
|
73
|
+
feat: 增加up-tab-pro封装组件
|
|
74
|
+
|
|
75
|
+
## 3.8.98
|
|
76
|
+
fix: 修复 u-waterfall 快速更新时并发分配错乱
|
|
77
|
+
|
|
78
|
+
- 修复多批数据快速到达时异步分配循环并发交错,改为共享队列串行消费
|
|
79
|
+
- clear 或全量重排时取消过期分配任务,避免旧数据继续写回已清空的列
|
|
80
|
+
- 检测中间插入、重排和列表缩短等非纯追加变化并执行全量重排,避免数据错列、重复或丢失
|
|
81
|
+
- 增加并发、清空和中间插入回归校验,覆盖 issue #1047
|
|
82
|
+
|
|
83
|
+
## 3.8.97
|
|
84
|
+
fix: 修复 u-dragsort 微信小程序拖动排序兼容问题
|
|
85
|
+
|
|
86
|
+
- 修复拖动并松手后列表项覆盖,保持原生拖动节点身份稳定
|
|
87
|
+
- 修复自定义拖动句柄在微信小程序中不显示,补充作用域插槽示例
|
|
88
|
+
- 修复横向和多行多列模式右侧出现额外白色区域
|
|
89
|
+
- 增加拖动排序稳定身份与跨端句柄回归校验
|
|
90
|
+
|
|
91
|
+
## 3.8.96(2026-08-03)
|
|
92
|
+
fix: 更新示例工程
|
|
93
|
+
|
|
94
|
+
## 3.8.95(2026-08-03)
|
|
95
|
+
fix: 优化App端字体图标不显示先支持本地模式(依赖Root组件)和远程模式及IOS编译报错问题
|
|
96
|
+
|
|
97
|
+
- 修复启用 UniUpRoot 后 iOS App 下 `u-icon` 字体从 `/assets` 加载失败的问题,App 构建时自动复制 `upicon.ttf` 到 `static/app-plus/uview-plus/upicon.ttf`
|
|
98
|
+
- 未启用 UniUpRoot 的 App 项目继续保留远程 CSS 字体兼容;启用 UniUpRoot 后内置图标字体改用 `_www/static/app-plus/uview-plus/upicon.ttf` 并通过 `plus.io.convertLocalFileSystemURL` 转为平台路径
|
|
99
|
+
- 修复启用 UniUpRoot 后 App nvue 子构建页面 chunk 被 tree-shaking 移除默认导出,导致 `No matching export ... for import "default"` 的问题
|
|
100
|
+
|
|
101
|
+
## 3.8.94
|
|
102
|
+
fix: 修复 slider 设置 height 时初始化报错
|
|
103
|
+
|
|
104
|
+
- 修复非空 height 触发 `ReferenceError: val is not defined` 的问题
|
|
105
|
+
- 保留 height 优先、未设置时回退 size 的滑块厚度兼容行为
|
|
106
|
+
- 增加 slider height mounted 初始化回归校验,覆盖 issue #1046
|
|
107
|
+
|
|
108
|
+
## 3.8.93
|
|
109
|
+
fix: 修复自定义 action-sheet 插槽点击不关闭
|
|
110
|
+
|
|
111
|
+
- 修复 closeOnClickAction 在自定义 slot 内容中的关闭行为
|
|
112
|
+
- 兼容 up-cell 阻止事件冒泡时的 action-sheet 关闭场景
|
|
113
|
+
- 增加对应的 action-sheet 插槽关闭验证脚本
|
|
114
|
+
|
|
115
|
+
## 3.8.92
|
|
116
|
+
feat: swipe-action-item 新增 scrolling / v-model:scrolling,用于横向滑动时联动暂停页面或 scroll-view 容器滚动。
|
|
117
|
+
fix: 补充 touchcancel、关闭、禁用和卸载释放逻辑,避免外部滚动锁状态卡住。
|
|
118
|
+
docs: 更新防止页面或容器滚动示例,说明 page-meta 与 scroll-view 用法。
|
|
119
|
+
|
|
120
|
+
## 3.8.91
|
|
121
|
+
fix: 调整文本默认伸展与字体加载配置
|
|
122
|
+
|
|
123
|
+
- u-text 默认不再占满剩余空间,未显式开启 flex1 时避免影响父级布局
|
|
124
|
+
- 默认只加载一次字体资源,减少重复加载
|
|
125
|
+
- 补充 tabbar 示例 borderColor 展示,便于验证顶部边框颜色
|
|
126
|
+
|
|
127
|
+
## 3.8.90
|
|
128
|
+
fix: 修复 plain 按钮默认白底
|
|
129
|
+
|
|
130
|
+
- plain 镂空按钮默认背景改为透明,避免深色背景下出现白色或卡片色底块
|
|
131
|
+
- 保留显式背景变量覆盖能力,已有主动配置背景色的场景不受影响
|
|
132
|
+
- 补充验证脚本,覆盖 plain 按钮默认背景兜底
|
|
133
|
+
|
|
134
|
+
## 3.8.89
|
|
135
|
+
fix: 修复 tabbar 中间按钮圆弧边框颜色
|
|
136
|
+
|
|
137
|
+
- 中间按钮上半圆边框跟随 tabbar 的 `borderColor` 属性,避免圆弧与顶部边框颜色不一致
|
|
138
|
+
- `borderColor` 为空时继续使用主题边框色 fallback,保持默认表现不变
|
|
139
|
+
- uview-ultra 同步 Vue 与 uvue 实现,保证两个组件库样式一致
|
|
140
|
+
|
|
141
|
+
## 3.8.88
|
|
142
|
+
fix: 修复 tabbar 中间按钮上半圆边框
|
|
143
|
+
|
|
144
|
+
- 中间按钮改为 64px 圆形边框裁剪方案,透明或半透明 tabbar 背景下不再依赖纯色遮罩
|
|
145
|
+
- 根据 `midButtonOffsetY` 自动计算上半圆边框裁剪高度,兼容有文字和无文字布局
|
|
146
|
+
- 修复微信小程序中间按钮图标层级,避免被内层圆形背景遮住
|
|
147
|
+
|
|
148
|
+
## 3.8.87
|
|
2
149
|
feat: swiper 支持 vertical 纵向滑动(#936)
|
|
3
150
|
|
|
4
|
-
- 新增 `vertical` 属性并透传原生 swiper,默认 `false` 保持横向兼容
|
|
5
|
-
-
|
|
151
|
+
- up-swiper 新增 `vertical` 属性并透传原生 swiper,默认 `false` 保持横向兼容
|
|
152
|
+
- 补充 TypeScript 类型定义、纵向滑动示例与自动校验
|
|
6
153
|
|
|
7
154
|
## 3.8.86
|
|
8
155
|
fix: 为 .w-full 补充 box-sizing,并补充插件 tsconfig
|
|
@@ -36,7 +36,14 @@
|
|
|
36
36
|
}, descriptionDynamicStyle]"
|
|
37
37
|
v-if="description"
|
|
38
38
|
>{{description}}</text>
|
|
39
|
-
<
|
|
39
|
+
<view
|
|
40
|
+
class="u-action-sheet__slot"
|
|
41
|
+
v-if="$slots.default"
|
|
42
|
+
@tap="slotClickHandler"
|
|
43
|
+
>
|
|
44
|
+
<slot></slot>
|
|
45
|
+
</view>
|
|
46
|
+
<template v-else>
|
|
40
47
|
<!-- 分割线 -->
|
|
41
48
|
<u-line v-if="description" :color="dividerColor"></u-line>
|
|
42
49
|
<!-- 操作项列表 -->
|
|
@@ -96,7 +103,7 @@
|
|
|
96
103
|
<u-line v-if="index !== actions.length - 1" :color="dividerColor"></u-line>
|
|
97
104
|
</view>
|
|
98
105
|
</scroll-view>
|
|
99
|
-
</
|
|
106
|
+
</template>
|
|
100
107
|
<!-- 取消按钮前的分割区域 -->
|
|
101
108
|
<u-gap
|
|
102
109
|
:bgColor="cancelGapColor"
|
|
@@ -161,6 +168,11 @@
|
|
|
161
168
|
name: "u-action-sheet",
|
|
162
169
|
// 一些props参数和methods方法,通过mixin混入,因为其他文件也会用到
|
|
163
170
|
mixins: [openType, buttonMixin, mixin, props],
|
|
171
|
+
provide() {
|
|
172
|
+
return {
|
|
173
|
+
uActionSheet: this,
|
|
174
|
+
}
|
|
175
|
+
},
|
|
164
176
|
data() {
|
|
165
177
|
return {
|
|
166
178
|
|
|
@@ -227,6 +239,13 @@
|
|
|
227
239
|
this.$emit('update:show', false)
|
|
228
240
|
this.$emit('close')
|
|
229
241
|
},
|
|
242
|
+
// 点击自定义内容时,按菜单项点击配置关闭弹窗
|
|
243
|
+
slotClickHandler() {
|
|
244
|
+
if (this.closeOnClickAction) {
|
|
245
|
+
this.$emit('update:show', false)
|
|
246
|
+
this.$emit('close')
|
|
247
|
+
}
|
|
248
|
+
},
|
|
230
249
|
// 选择操作项处理
|
|
231
250
|
selectHandler(index) {
|
|
232
251
|
const item = this.actions[index]
|
|
@@ -341,8 +341,6 @@ export default {
|
|
|
341
341
|
canvas.toTempFilePath({
|
|
342
342
|
width: this.canvasWidth,
|
|
343
343
|
height: this.canvasHeight,
|
|
344
|
-
destWidth: this.canvasWidth,
|
|
345
|
-
destHeight: this.canvasHeight,
|
|
346
344
|
success: (res) => {
|
|
347
345
|
this.barcodeImage = res.tempFilePath
|
|
348
346
|
this.$emit('rendered', { type: 'image', value: this.value, path: res.tempFilePath })
|
|
@@ -227,10 +227,7 @@ export default {
|
|
|
227
227
|
nvuePlainBackgroundColor() {
|
|
228
228
|
return this.upThemeVar(
|
|
229
229
|
'--up-button-plain-background-color',
|
|
230
|
-
|
|
231
|
-
'--up-card-bg-color',
|
|
232
|
-
this.isDarkTheme ? '#1c1c1e' : '#ffffff'
|
|
233
|
-
)
|
|
230
|
+
'transparent'
|
|
234
231
|
);
|
|
235
232
|
},
|
|
236
233
|
loadingColor() {
|
|
@@ -441,7 +438,7 @@ $u-button-square-border-top-left-radius: 3px !default;
|
|
|
441
438
|
$u-button-square-border-bottom-left-radius: 3px !default;
|
|
442
439
|
$u-button-square-border-bottom-right-radius: 3px !default;
|
|
443
440
|
$u-button-icon-min-width: 1em !default;
|
|
444
|
-
$u-button-plain-background-color: var(--up-button-plain-background-color,
|
|
441
|
+
$u-button-plain-background-color: var(--up-button-plain-background-color, transparent) !default;
|
|
445
442
|
$u-button-hairline-border-width: 0.5px !default;
|
|
446
443
|
|
|
447
444
|
.u-button {
|