@atooyu/uxto-ui 1.1.45 → 1.1.47

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/dist/style.css CHANGED
@@ -2380,17 +2380,18 @@ to {
2380
2380
  }
2381
2381
  .u-read-more__toggle-icon[data-v-b31720eb] {
2382
2382
  font-size: 12px;
2383
- }.u-tabbar[data-v-229e6a86] {
2383
+ }.u-tabbar[data-v-4e37a87c] {
2384
2384
  position: fixed;
2385
2385
  left: 0;
2386
2386
  right: 0;
2387
2387
  bottom: 0;
2388
2388
  z-index: 999;
2389
2389
  width: 100%;
2390
+ height: 70px;
2390
2391
  padding-bottom: constant(safe-area-inset-bottom);
2391
2392
  padding-bottom: env(safe-area-inset-bottom);
2392
2393
  }
2393
- .u-tabbar__nav-wrap[data-v-229e6a86] {
2394
+ .u-tabbar__nav-wrap[data-v-4e37a87c] {
2394
2395
  position: absolute;
2395
2396
  left: 14px;
2396
2397
  right: 14px;
@@ -2406,7 +2407,7 @@ to {
2406
2407
  padding: 0 8px;
2407
2408
  box-sizing: border-box;
2408
2409
  }
2409
- .u-tabbar__tab-btn[data-v-229e6a86] {
2410
+ .u-tabbar__tab-btn[data-v-4e37a87c] {
2410
2411
  height: 40px;
2411
2412
  border-radius: 20px;
2412
2413
  background: transparent;
@@ -2421,23 +2422,30 @@ to {
2421
2422
  padding: 0 16px;
2422
2423
  margin: 0 20px;
2423
2424
  }
2424
- .u-tabbar__tab-btn--active[data-v-229e6a86] {
2425
+ .u-tabbar__tab-btn--active[data-v-4e37a87c] {
2425
2426
  background: #ffffff;
2426
2427
  box-shadow: inset 0 0 0 1px rgba(17, 135, 128, 0.14);
2427
2428
  }
2428
- .u-tabbar__tab-text[data-v-229e6a86] {
2429
+ .u-tabbar__tab-content[data-v-4e37a87c] {
2430
+ display: flex;
2431
+ align-items: center;
2432
+ justify-content: center;
2433
+ gap: 4px;
2434
+ pointer-events: none;
2435
+ }
2436
+ .u-tabbar__tab-text[data-v-4e37a87c] {
2429
2437
  font-weight: 600;
2430
2438
  font-size: 14px;
2431
2439
  overflow: hidden;
2432
2440
  text-overflow: ellipsis;
2433
2441
  }
2434
- .u-tabbar__center[data-v-229e6a86] {
2442
+ .u-tabbar__center[data-v-4e37a87c] {
2435
2443
  position: relative;
2436
2444
  width: 72px;
2437
2445
  height: 56px;
2438
2446
  flex-shrink: 0;
2439
2447
  }
2440
- .u-tabbar__center-btn[data-v-229e6a86] {
2448
+ .u-tabbar__center-btn[data-v-4e37a87c] {
2441
2449
  position: absolute;
2442
2450
  left: 50%;
2443
2451
  top: -22px;
@@ -2455,29 +2463,29 @@ to {
2455
2463
  box-shadow: 0 8px 20px rgba(8, 112, 106, 0.25);
2456
2464
  transition: all 200ms ease;
2457
2465
  }
2458
- .u-tabbar__center-btn[data-v-229e6a86]:active {
2466
+ .u-tabbar__center-btn[data-v-4e37a87c]:active {
2459
2467
  transform: translateX(-50%) scale(0.95);
2460
2468
  }
2461
- .u-tabbar__center-btn--active[data-v-229e6a86] {
2469
+ .u-tabbar__center-btn--active[data-v-4e37a87c] {
2462
2470
  border-color: #12b6af;
2463
2471
  box-shadow: 0 8px 24px rgba(8, 112, 106, 0.35);
2464
2472
  }
2465
- .u-tabbar__center-btn--side-active[data-v-229e6a86] {
2473
+ .u-tabbar__center-btn--side-active[data-v-4e37a87c] {
2466
2474
  background: linear-gradient(135deg, #12b6af 0%, #65d8d1 100%);
2467
2475
  border-color: #9fe4dd;
2468
2476
  }
2469
- .u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-229e6a86],
2470
- .u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-229e6a86] {
2477
+ .u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-4e37a87c],
2478
+ .u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-4e37a87c] {
2471
2479
  color: #ffffff;
2472
2480
  }
2473
- .u-tabbar__center-brand[data-v-229e6a86] {
2481
+ .u-tabbar__center-brand[data-v-4e37a87c] {
2474
2482
  font-size: 22px;
2475
2483
  line-height: 1;
2476
2484
  font-weight: 700;
2477
2485
  color: #12b6af;
2478
2486
  letter-spacing: 1px;
2479
2487
  }
2480
- .u-tabbar__center-text[data-v-229e6a86] {
2488
+ .u-tabbar__center-text[data-v-4e37a87c] {
2481
2489
  font-size: 12px;
2482
2490
  letter-spacing: 0.5px;
2483
2491
  color: #12b6af;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atooyu/uxto-ui",
3
- "version": "1.1.45",
3
+ "version": "1.1.47",
4
4
  "description": "跨平台 UI 组件库 - 支持 Android、iOS、鸿蒙",
5
5
  "keywords": [
6
6
  "uxto-ui",
@@ -6,20 +6,22 @@
6
6
  <view
7
7
  class="u-tabbar__tab-btn"
8
8
  :class="{ 'u-tabbar__tab-btn--active': modelValue === leftTab.value }"
9
- @tap="switchTab(leftTab.value)"
9
+ @tap.stop="switchTab(leftTab.value)"
10
10
  >
11
- <u-icon
12
- v-if="leftTab.icon"
13
- :name="leftTab.icon"
14
- :size="16"
15
- :color="modelValue === leftTab.value ? activeColor : inactiveColor"
16
- />
17
- <text
18
- class="u-tabbar__tab-text"
19
- :style="{ color: modelValue === leftTab.value ? activeColor : inactiveColor }"
20
- >
21
- {{ leftTab.label }}
22
- </text>
11
+ <view class="u-tabbar__tab-content">
12
+ <u-icon
13
+ v-if="leftTab.icon"
14
+ :name="leftTab.icon"
15
+ :size="16"
16
+ :color="modelValue === leftTab.value ? activeColor : inactiveColor"
17
+ />
18
+ <text
19
+ class="u-tabbar__tab-text"
20
+ :style="{ color: modelValue === leftTab.value ? activeColor : inactiveColor }"
21
+ >
22
+ {{ leftTab.label }}
23
+ </text>
24
+ </view>
23
25
  </view>
24
26
 
25
27
  <!-- 中间占位 + 凸起按钮 -->
@@ -30,7 +32,7 @@
30
32
  'u-tabbar__center-btn--active': modelValue === centerTab.value,
31
33
  'u-tabbar__center-btn--side-active': modelValue === leftTab.value || modelValue === rightTab.value
32
34
  }"
33
- @tap="switchTab(centerTab.value)"
35
+ @tap.stop="switchTab(centerTab.value)"
34
36
  >
35
37
  <text class="u-tabbar__center-brand">
36
38
  {{ centerBrand }}
@@ -45,20 +47,22 @@
45
47
  <view
46
48
  class="u-tabbar__tab-btn"
47
49
  :class="{ 'u-tabbar__tab-btn--active': modelValue === rightTab.value }"
48
- @tap="switchTab(rightTab.value)"
50
+ @tap.stop="switchTab(rightTab.value)"
49
51
  >
50
- <u-icon
51
- v-if="rightTab.icon"
52
- :name="rightTab.icon"
53
- :size="16"
54
- :color="modelValue === rightTab.value ? activeColor : inactiveColor"
55
- />
56
- <text
57
- class="u-tabbar__tab-text"
58
- :style="{ color: modelValue === rightTab.value ? activeColor : inactiveColor }"
59
- >
60
- {{ rightTab.label }}
61
- </text>
52
+ <view class="u-tabbar__tab-content">
53
+ <u-icon
54
+ v-if="rightTab.icon"
55
+ :name="rightTab.icon"
56
+ :size="16"
57
+ :color="modelValue === rightTab.value ? activeColor : inactiveColor"
58
+ />
59
+ <text
60
+ class="u-tabbar__tab-text"
61
+ :style="{ color: modelValue === rightTab.value ? activeColor : inactiveColor }"
62
+ >
63
+ {{ rightTab.label }}
64
+ </text>
65
+ </view>
62
66
  </view>
63
67
  </view>
64
68
  </view>
@@ -124,7 +128,7 @@ const switchTab = (tab: string) => {
124
128
  <script lang="ts">
125
129
  export default {
126
130
  options: {
127
- virtualHost: true,
131
+ virtualHost: false,
128
132
  styleIsolation: 'shared'
129
133
  }
130
134
  }
@@ -145,6 +149,8 @@ $--paper: #ffffff;
145
149
  bottom: 0;
146
150
  z-index: 999;
147
151
  width: 100%;
152
+ // 设置高度,确保触摸区域正确
153
+ height: 70px;
148
154
  // 底部安全区域适配
149
155
  padding-bottom: constant(safe-area-inset-bottom);
150
156
  padding-bottom: env(safe-area-inset-bottom);
@@ -188,6 +194,15 @@ $--paper: #ffffff;
188
194
  }
189
195
  }
190
196
 
197
+ // Tab内容容器 - 防止子元素拦截点击
198
+ &__tab-content {
199
+ display: flex;
200
+ align-items: center;
201
+ justify-content: center;
202
+ gap: 4px;
203
+ pointer-events: none;
204
+ }
205
+
191
206
  &__tab-text {
192
207
  font-weight: 600;
193
208
  font-size: 14px;