@atooyu/uxto-ui 1.1.46 → 1.1.48
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/index.js +64 -58
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -58
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +21 -14
- package/package.json +1 -1
- package/src/components/u-tabbar/u-tabbar.vue +40 -27
package/dist/style.css
CHANGED
|
@@ -2380,7 +2380,7 @@ to {
|
|
|
2380
2380
|
}
|
|
2381
2381
|
.u-read-more__toggle-icon[data-v-b31720eb] {
|
|
2382
2382
|
font-size: 12px;
|
|
2383
|
-
}.u-tabbar[data-v-
|
|
2383
|
+
}.u-tabbar[data-v-eb2ab9a2] {
|
|
2384
2384
|
position: fixed;
|
|
2385
2385
|
left: 0;
|
|
2386
2386
|
right: 0;
|
|
@@ -2391,7 +2391,7 @@ to {
|
|
|
2391
2391
|
padding-bottom: constant(safe-area-inset-bottom);
|
|
2392
2392
|
padding-bottom: env(safe-area-inset-bottom);
|
|
2393
2393
|
}
|
|
2394
|
-
.u-tabbar__nav-wrap[data-v-
|
|
2394
|
+
.u-tabbar__nav-wrap[data-v-eb2ab9a2] {
|
|
2395
2395
|
position: absolute;
|
|
2396
2396
|
left: 14px;
|
|
2397
2397
|
right: 14px;
|
|
@@ -2407,7 +2407,7 @@ to {
|
|
|
2407
2407
|
padding: 0 8px;
|
|
2408
2408
|
box-sizing: border-box;
|
|
2409
2409
|
}
|
|
2410
|
-
.u-tabbar__tab-btn[data-v-
|
|
2410
|
+
.u-tabbar__tab-btn[data-v-eb2ab9a2] {
|
|
2411
2411
|
height: 40px;
|
|
2412
2412
|
border-radius: 20px;
|
|
2413
2413
|
background: transparent;
|
|
@@ -2422,23 +2422,30 @@ to {
|
|
|
2422
2422
|
padding: 0 16px;
|
|
2423
2423
|
margin: 0 20px;
|
|
2424
2424
|
}
|
|
2425
|
-
.u-tabbar__tab-btn--active[data-v-
|
|
2425
|
+
.u-tabbar__tab-btn--active[data-v-eb2ab9a2] {
|
|
2426
2426
|
background: #ffffff;
|
|
2427
2427
|
box-shadow: inset 0 0 0 1px rgba(17, 135, 128, 0.14);
|
|
2428
2428
|
}
|
|
2429
|
-
.u-tabbar__tab-
|
|
2429
|
+
.u-tabbar__tab-content[data-v-eb2ab9a2] {
|
|
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-eb2ab9a2] {
|
|
2430
2437
|
font-weight: 600;
|
|
2431
2438
|
font-size: 14px;
|
|
2432
2439
|
overflow: hidden;
|
|
2433
2440
|
text-overflow: ellipsis;
|
|
2434
2441
|
}
|
|
2435
|
-
.u-tabbar__center[data-v-
|
|
2442
|
+
.u-tabbar__center[data-v-eb2ab9a2] {
|
|
2436
2443
|
position: relative;
|
|
2437
2444
|
width: 72px;
|
|
2438
2445
|
height: 56px;
|
|
2439
2446
|
flex-shrink: 0;
|
|
2440
2447
|
}
|
|
2441
|
-
.u-tabbar__center-btn[data-v-
|
|
2448
|
+
.u-tabbar__center-btn[data-v-eb2ab9a2] {
|
|
2442
2449
|
position: absolute;
|
|
2443
2450
|
left: 50%;
|
|
2444
2451
|
top: -22px;
|
|
@@ -2456,29 +2463,29 @@ to {
|
|
|
2456
2463
|
box-shadow: 0 8px 20px rgba(8, 112, 106, 0.25);
|
|
2457
2464
|
transition: all 200ms ease;
|
|
2458
2465
|
}
|
|
2459
|
-
.u-tabbar__center-btn[data-v-
|
|
2466
|
+
.u-tabbar__center-btn[data-v-eb2ab9a2]:active {
|
|
2460
2467
|
transform: translateX(-50%) scale(0.95);
|
|
2461
2468
|
}
|
|
2462
|
-
.u-tabbar__center-btn--active[data-v-
|
|
2469
|
+
.u-tabbar__center-btn--active[data-v-eb2ab9a2] {
|
|
2463
2470
|
border-color: #12b6af;
|
|
2464
2471
|
box-shadow: 0 8px 24px rgba(8, 112, 106, 0.35);
|
|
2465
2472
|
}
|
|
2466
|
-
.u-tabbar__center-btn--side-active[data-v-
|
|
2473
|
+
.u-tabbar__center-btn--side-active[data-v-eb2ab9a2] {
|
|
2467
2474
|
background: linear-gradient(135deg, #12b6af 0%, #65d8d1 100%);
|
|
2468
2475
|
border-color: #9fe4dd;
|
|
2469
2476
|
}
|
|
2470
|
-
.u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-
|
|
2471
|
-
.u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-
|
|
2477
|
+
.u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-eb2ab9a2],
|
|
2478
|
+
.u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-eb2ab9a2] {
|
|
2472
2479
|
color: #ffffff;
|
|
2473
2480
|
}
|
|
2474
|
-
.u-tabbar__center-brand[data-v-
|
|
2481
|
+
.u-tabbar__center-brand[data-v-eb2ab9a2] {
|
|
2475
2482
|
font-size: 22px;
|
|
2476
2483
|
line-height: 1;
|
|
2477
2484
|
font-weight: 700;
|
|
2478
2485
|
color: #12b6af;
|
|
2479
2486
|
letter-spacing: 1px;
|
|
2480
2487
|
}
|
|
2481
|
-
.u-tabbar__center-text[data-v-
|
|
2488
|
+
.u-tabbar__center-text[data-v-eb2ab9a2] {
|
|
2482
2489
|
font-size: 12px;
|
|
2483
2490
|
letter-spacing: 0.5px;
|
|
2484
2491
|
color: #12b6af;
|
package/package.json
CHANGED
|
@@ -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.prevent="switchTab(leftTab.value)"
|
|
10
10
|
>
|
|
11
|
-
<u-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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.prevent="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.prevent="switchTab(rightTab.value)"
|
|
49
51
|
>
|
|
50
|
-
<u-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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>
|
|
@@ -190,6 +194,15 @@ $--paper: #ffffff;
|
|
|
190
194
|
}
|
|
191
195
|
}
|
|
192
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
|
+
|
|
193
206
|
&__tab-text {
|
|
194
207
|
font-weight: 600;
|
|
195
208
|
font-size: 14px;
|