uview-pro 0.5.2 → 0.5.3

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 CHANGED
@@ -1,3 +1,22 @@
1
+ ## 0.5.3(2026-01-26)
2
+
3
+ ### ♻️ Code Refactoring | 代码重构
4
+
5
+ - **demo-page:** 移除标签栏外层sticky组件 ([ed49275](https://github.com/anyup/uView-Pro/commit/ed49275bc2962426dc4f9185b4b35f6a994cf383))
6
+
7
+ ### 👷 Continuous Integration | CI 配置
8
+
9
+ - 添加 npm 包测试脚本 ([78c5524](https://github.com/anyup/uView-Pro/commit/78c5524abbbc368949ec58437361c995f5146234))
10
+
11
+ ### 🐛 Bug Fixes | Bug 修复
12
+
13
+ - **locale:** 修复本地运行时locale国际化字段未加载成功的问题 ([10c017a](https://github.com/anyup/uView-Pro/commit/10c017a401232224ca1642274d65f031f74f12f0))
14
+ - **u-picker:** 修复u-picker/u-select选择器在亮色/暗黑模式下背景色显示问题 ([072a6cc](https://github.com/anyup/uView-Pro/commit/072a6cc1095b5f17b0c15c3cd2a3d6a75d8a9f08))
15
+
16
+ ### 👥 Contributors
17
+
18
+ <a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a>
19
+
1
20
  ## 0.5.2(2026-01-23)
2
21
 
3
22
  ### ✨ Features | 新功能
@@ -38,10 +38,12 @@
38
38
  <picker-view
39
39
  v-if="mode == 'region'"
40
40
  :value="valueArr"
41
- @change="change"
42
41
  class="u-picker-view"
42
+ mask-class="u-picker-view-mask"
43
+ indicator-class="u-picker-view-indicator"
43
44
  @pickstart="pickstart"
44
45
  @pickend="pickend"
46
+ @change="change"
45
47
  >
46
48
  <picker-view-column v-if="params.province">
47
49
  <view class="u-column-item" v-for="(item, index) in provinces" :key="index">
@@ -62,10 +64,12 @@
62
64
  <picker-view
63
65
  v-else-if="mode == 'time'"
64
66
  :value="valueArr"
65
- @change="change"
66
67
  class="u-picker-view"
68
+ mask-class="u-picker-view-mask"
69
+ indicator-class="u-picker-view-indicator"
67
70
  @pickstart="pickstart"
68
71
  @pickend="pickend"
72
+ @change="change"
69
73
  >
70
74
  <picker-view-column v-if="params.year">
71
75
  <view class="u-column-item" v-for="(item, index) in years" :key="index">
@@ -107,10 +111,12 @@
107
111
  <picker-view
108
112
  v-else-if="mode == 'selector'"
109
113
  :value="valueArr"
110
- @change="change"
111
114
  class="u-picker-view"
115
+ mask-class="u-picker-view-mask"
116
+ indicator-class="u-picker-view-indicator"
112
117
  @pickstart="pickstart"
113
118
  @pickend="pickend"
119
+ @change="change"
114
120
  >
115
121
  <picker-view-column>
116
122
  <view class="u-column-item" v-for="(item, index) in range" :key="index">
@@ -121,10 +127,12 @@
121
127
  <picker-view
122
128
  v-else-if="mode == 'multiSelector'"
123
129
  :value="valueArr"
124
- @change="change"
125
130
  class="u-picker-view"
131
+ mask-class="u-picker-view-mask"
132
+ indicator-class="u-picker-view-indicator"
126
133
  @pickstart="pickstart"
127
134
  @pickend="pickend"
135
+ @change="change"
128
136
  >
129
137
  <picker-view-column v-for="(item, index) in range" :key="index">
130
138
  <view class="u-column-item" v-for="(item1, index1) in item" :key="index1">
@@ -782,7 +790,7 @@ onMounted(() => {
782
790
  .u-picker-header::after {
783
791
  content: '';
784
792
  position: absolute;
785
- border-bottom: 1rpx solid var(--u-bg-gray-light);
793
+ border-bottom: 1rpx solid var(--u-border-color);
786
794
  -webkit-transform: scaleY(0.5);
787
795
  transform: scaleY(0.5);
788
796
  bottom: 0;
@@ -44,12 +44,14 @@
44
44
  </view>
45
45
  <view class="u-select__body">
46
46
  <picker-view
47
- @change="columnChange"
48
- class="u-select__body__picker-view"
47
+ v-if="modelValue && readyToRender"
49
48
  :value="defaultSelector"
49
+ class="u-select__body__picker-view"
50
+ mask-class="u-picker-view-mask"
51
+ indicator-class="u-picker-view-indicator"
50
52
  @pickstart="pickstart"
51
53
  @pickend="pickend"
52
- v-if="modelValue && readyToRender"
54
+ @change="columnChange"
53
55
  >
54
56
  <picker-view-column v-for="(item, index) in columnData" :key="index">
55
57
  <view
@@ -391,6 +393,7 @@ function is2DList(list: SelectListItem[] | SelectListItem[][]): list is SelectLi
391
393
  align-items: center;
392
394
  justify-content: space-between;
393
395
  height: 80rpx;
396
+ position: relative;
394
397
 
395
398
  &__title {
396
399
  color: $u-content-color;
@@ -402,6 +405,17 @@ function is2DList(list: SelectListItem[] | SelectListItem[][]): list is SelectLi
402
405
  }
403
406
  }
404
407
 
408
+ &__header::after {
409
+ content: '';
410
+ position: absolute;
411
+ border-bottom: 1rpx solid var(--u-border-color);
412
+ -webkit-transform: scaleY(0.5);
413
+ transform: scaleY(0.5);
414
+ bottom: 0;
415
+ right: 0;
416
+ left: 0;
417
+ }
418
+
405
419
  &__body {
406
420
  width: 100%;
407
421
  height: 500rpx;
@@ -31,3 +31,26 @@ page.u-theme-dark,
31
31
  background-color: var(--u-bg-white, #0f1115);
32
32
  color: $u-main-color;
33
33
  }
34
+
35
+ // picker-view遮罩层背景色
36
+ .u-picker-view-mask,
37
+ .uni-picker-view-mask {
38
+ background-image:
39
+ linear-gradient(180deg, rgba(var(--u-bg-white-rgb), 0.95), rgba(var(--u-bg-white-rgb), 0.6)),
40
+ linear-gradient(0deg, rgba(var(--u-bg-white-rgb), 0.95), rgba(var(--u-bg-white-rgb), 0.6)) !important;
41
+ }
42
+
43
+ .u-picker-view-indicator {
44
+ border: rgba(var(--u-bg-white-rgb), 0.6) !important;
45
+ }
46
+
47
+ // picker-view指示器边框色
48
+ .u-picker-view-indicator::before,
49
+ .uni-picker-view-indicator::before {
50
+ border-top: 1px solid var(--u-border-color) !important;
51
+ }
52
+
53
+ .u-picker-view-indicator::after,
54
+ .uni-picker-view-indicator::after {
55
+ border-bottom: 1px solid var(--u-border-color) !important;
56
+ }
@@ -67,7 +67,7 @@ export class ConfigProvider {
67
67
  private debug: boolean = false;
68
68
  private systemDarkModeMediaQuery: MediaQueryList | null = null;
69
69
  private lastAppliedCssKeys: string[] = [];
70
- private interval = 0;
70
+ private interval: ReturnType<typeof setInterval> | number = 0;
71
71
 
72
72
  constructor() {
73
73
  // 默认不自动初始化,调用 init 以传入主题列表
@@ -334,6 +334,15 @@ export class ConfigProvider {
334
334
  * replacements 支持数组或对象替换占位符 {0} 或 {name}
335
335
  */
336
336
  t(key: string, replacements?: any, localeName?: string): string {
337
+ // 如果 locales 尚未初始化,尝试懒初始化,使用内置语言包作为回退
338
+ try {
339
+ if (!Array.isArray(this.localesRef.value) || this.localesRef.value.length === 0) {
340
+ this.initLocales();
341
+ }
342
+ } catch (e) {
343
+ if (this.debug) console.warn('[ConfigProvider] lazy initLocales failed', e);
344
+ }
345
+
337
346
  const localeObj =
338
347
  (localeName && this.localesRef.value.find(l => l.name === localeName)) || this.currentLocaleRef.value;
339
348
  if (!localeObj) return key;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "id": "uview-pro",
3
3
  "name": "uview-pro",
4
4
  "displayName": "【支持鸿蒙】uView Pro|基于Vue3+TS的高质量UI组件库,支持多主题、暗黑模式、多语言",
5
- "version": "0.5.2",
5
+ "version": "0.5.3",
6
6
  "description": "uView Pro是基于Vue3+TS的多平台UI框架,提供80+高质量组件、便捷工具和常用模板,支持多主题、暗黑模式、多语言,支持H5/APP/鸿蒙/小程序多端开发。已在鸿蒙应用商店上架,欢迎体验!",
7
7
  "main": "index.ts",
8
8
  "module": "index.ts",