@atooyu/uxto-ui 1.1.42 → 1.1.44

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
@@ -1676,90 +1676,90 @@ to {
1676
1676
  }
1677
1677
  .u-count-down__text[data-v-da70e500] {
1678
1678
  font-variant-numeric: tabular-nums;
1679
- }.u-tooltip[data-v-dd1bff02] {
1679
+ }.u-tooltip[data-v-0985db7a] {
1680
1680
  position: relative;
1681
1681
  display: inline-block;
1682
1682
  }
1683
- .u-tooltip--active[data-v-dd1bff02] {
1683
+ .u-tooltip--active[data-v-0985db7a] {
1684
1684
  z-index: 999;
1685
1685
  }
1686
- .u-tooltip__trigger[data-v-dd1bff02] {
1686
+ .u-tooltip__trigger[data-v-0985db7a] {
1687
1687
  display: inline;
1688
1688
  transition: background-color 0.15s;
1689
1689
  }
1690
- .u-tooltip__trigger--highlight[data-v-dd1bff02] {
1690
+ .u-tooltip__trigger--highlight[data-v-0985db7a] {
1691
1691
  border-radius: 2px;
1692
1692
  }
1693
- .u-tooltip__popup[data-v-dd1bff02] {
1693
+ .u-tooltip__popup[data-v-0985db7a] {
1694
1694
  position: absolute;
1695
1695
  z-index: 1000;
1696
1696
  padding: 8px 12px;
1697
1697
  background: #323233;
1698
1698
  border-radius: 8px;
1699
1699
  white-space: nowrap;
1700
- animation: u-tooltip-fade-in-dd1bff02 0.15s ease-out;
1700
+ animation: u-tooltip-fade-in-0985db7a 0.15s ease-out;
1701
1701
  }
1702
- .u-tooltip__popup--top[data-v-dd1bff02] {
1702
+ .u-tooltip__popup--top[data-v-0985db7a] {
1703
1703
  bottom: 100%;
1704
1704
  left: 50%;
1705
1705
  transform: translateX(-50%);
1706
1706
  margin-bottom: 8px;
1707
1707
  }
1708
- .u-tooltip__popup--bottom[data-v-dd1bff02] {
1708
+ .u-tooltip__popup--bottom[data-v-0985db7a] {
1709
1709
  top: 100%;
1710
1710
  left: 50%;
1711
1711
  transform: translateX(-50%);
1712
1712
  margin-top: 8px;
1713
1713
  }
1714
- .u-tooltip__arrow[data-v-dd1bff02] {
1714
+ .u-tooltip__arrow[data-v-0985db7a] {
1715
1715
  position: absolute;
1716
1716
  width: 0;
1717
1717
  height: 0;
1718
1718
  border: 6px solid transparent;
1719
1719
  }
1720
- .u-tooltip__arrow--top[data-v-dd1bff02] {
1720
+ .u-tooltip__arrow--top[data-v-0985db7a] {
1721
1721
  bottom: -12px;
1722
1722
  left: 50%;
1723
1723
  transform: translateX(-50%);
1724
1724
  border-top-color: #323233;
1725
1725
  border-bottom: none;
1726
1726
  }
1727
- .u-tooltip__arrow--bottom[data-v-dd1bff02] {
1727
+ .u-tooltip__arrow--bottom[data-v-0985db7a] {
1728
1728
  top: -12px;
1729
1729
  left: 50%;
1730
1730
  transform: translateX(-50%);
1731
1731
  border-bottom-color: #323233;
1732
1732
  border-top: none;
1733
1733
  }
1734
- .u-tooltip__content[data-v-dd1bff02] {
1734
+ .u-tooltip__content[data-v-0985db7a] {
1735
1735
  display: flex;
1736
1736
  align-items: center;
1737
1737
  }
1738
- .u-tooltip__text[data-v-dd1bff02] {
1738
+ .u-tooltip__text[data-v-0985db7a] {
1739
1739
  font-size: 14px;
1740
1740
  color: #fff;
1741
1741
  line-height: 1.4;
1742
1742
  }
1743
- .u-tooltip__actions[data-v-dd1bff02] {
1743
+ .u-tooltip__actions[data-v-0985db7a] {
1744
1744
  display: flex;
1745
1745
  gap: 16px;
1746
1746
  }
1747
- .u-tooltip__action[data-v-dd1bff02] {
1747
+ .u-tooltip__action[data-v-0985db7a] {
1748
1748
  display: flex;
1749
1749
  align-items: center;
1750
1750
  padding: 4px 0;
1751
1751
  }
1752
- .u-tooltip__action--disabled[data-v-dd1bff02] {
1752
+ .u-tooltip__action--disabled[data-v-0985db7a] {
1753
1753
  opacity: 0.5;
1754
1754
  }
1755
- .u-tooltip__action[data-v-dd1bff02]:not(.u-tooltip__action--disabled):active {
1755
+ .u-tooltip__action[data-v-0985db7a]:not(.u-tooltip__action--disabled):active {
1756
1756
  opacity: 0.7;
1757
1757
  }
1758
- .u-tooltip__action-text[data-v-dd1bff02] {
1758
+ .u-tooltip__action-text[data-v-0985db7a] {
1759
1759
  font-size: 14px;
1760
1760
  color: #fff;
1761
1761
  }
1762
- @keyframes u-tooltip-fade-in-dd1bff02 {
1762
+ @keyframes u-tooltip-fade-in-0985db7a {
1763
1763
  from {
1764
1764
  opacity: 0;
1765
1765
  transform: translateX(-50%) scale(0.9);
@@ -2332,31 +2332,31 @@ to {
2332
2332
  .u-transition--zoom-fade-leave[data-v-13f0f85c] {
2333
2333
  opacity: 0;
2334
2334
  transform: scale(0.5);
2335
- }.u-link[data-v-f60d6c27] {
2335
+ }.u-link[data-v-30210bda] {
2336
2336
  display: inline;
2337
2337
  color: #646566;
2338
2338
  font-size: inherit;
2339
2339
  word-break: break-all;
2340
2340
  }
2341
- .u-link--default[data-v-f60d6c27] {
2341
+ .u-link--default[data-v-30210bda] {
2342
2342
  color: #646566;
2343
2343
  }
2344
- .u-link--primary[data-v-f60d6c27] {
2344
+ .u-link--primary[data-v-30210bda] {
2345
2345
  color: #00a29a;
2346
2346
  }
2347
- .u-link--success[data-v-f60d6c27] {
2347
+ .u-link--success[data-v-30210bda] {
2348
2348
  color: #07c160;
2349
2349
  }
2350
- .u-link--warning[data-v-f60d6c27] {
2350
+ .u-link--warning[data-v-30210bda] {
2351
2351
  color: #ff976a;
2352
2352
  }
2353
- .u-link--danger[data-v-f60d6c27] {
2353
+ .u-link--danger[data-v-30210bda] {
2354
2354
  color: #ee0a24;
2355
2355
  }
2356
- .u-link--underline[data-v-f60d6c27] {
2356
+ .u-link--underline[data-v-30210bda] {
2357
2357
  text-decoration: underline;
2358
2358
  }
2359
- .u-link--disabled[data-v-f60d6c27] {
2359
+ .u-link--disabled[data-v-30210bda] {
2360
2360
  color: #969799;
2361
2361
  opacity: 0.5;
2362
2362
  }.u-read-more__content[data-v-b31720eb] {
@@ -2380,19 +2380,17 @@ to {
2380
2380
  }
2381
2381
  .u-read-more__toggle-icon[data-v-b31720eb] {
2382
2382
  font-size: 12px;
2383
- }.u-tabbar[data-v-9b76f6cf] {
2383
+ }.u-tabbar[data-v-be1becb2] {
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
- pointer-events: none;
2391
2390
  padding-bottom: constant(safe-area-inset-bottom);
2392
2391
  padding-bottom: env(safe-area-inset-bottom);
2393
2392
  }
2394
- .u-tabbar__nav-wrap[data-v-9b76f6cf] {
2395
- pointer-events: auto;
2393
+ .u-tabbar__nav-wrap[data-v-be1becb2] {
2396
2394
  position: absolute;
2397
2395
  left: 14px;
2398
2396
  right: 14px;
@@ -2408,7 +2406,7 @@ to {
2408
2406
  padding: 0 8px;
2409
2407
  box-sizing: border-box;
2410
2408
  }
2411
- .u-tabbar__tab-btn[data-v-9b76f6cf] {
2409
+ .u-tabbar__tab-btn[data-v-be1becb2] {
2412
2410
  height: 40px;
2413
2411
  border-radius: 20px;
2414
2412
  background: transparent;
@@ -2423,23 +2421,23 @@ to {
2423
2421
  padding: 0 16px;
2424
2422
  margin: 0 20px;
2425
2423
  }
2426
- .u-tabbar__tab-btn--active[data-v-9b76f6cf] {
2424
+ .u-tabbar__tab-btn--active[data-v-be1becb2] {
2427
2425
  background: #ffffff;
2428
2426
  box-shadow: inset 0 0 0 1px rgba(17, 135, 128, 0.14);
2429
2427
  }
2430
- .u-tabbar__tab-text[data-v-9b76f6cf] {
2428
+ .u-tabbar__tab-text[data-v-be1becb2] {
2431
2429
  font-weight: 600;
2432
2430
  font-size: 14px;
2433
2431
  overflow: hidden;
2434
2432
  text-overflow: ellipsis;
2435
2433
  }
2436
- .u-tabbar__center[data-v-9b76f6cf] {
2434
+ .u-tabbar__center[data-v-be1becb2] {
2437
2435
  position: relative;
2438
2436
  width: 72px;
2439
2437
  height: 56px;
2440
2438
  flex-shrink: 0;
2441
2439
  }
2442
- .u-tabbar__center-btn[data-v-9b76f6cf] {
2440
+ .u-tabbar__center-btn[data-v-be1becb2] {
2443
2441
  position: absolute;
2444
2442
  left: 50%;
2445
2443
  top: -22px;
@@ -2457,29 +2455,29 @@ to {
2457
2455
  box-shadow: 0 8px 20px rgba(8, 112, 106, 0.25);
2458
2456
  transition: all 200ms ease;
2459
2457
  }
2460
- .u-tabbar__center-btn[data-v-9b76f6cf]:active {
2458
+ .u-tabbar__center-btn[data-v-be1becb2]:active {
2461
2459
  transform: translateX(-50%) scale(0.95);
2462
2460
  }
2463
- .u-tabbar__center-btn--active[data-v-9b76f6cf] {
2461
+ .u-tabbar__center-btn--active[data-v-be1becb2] {
2464
2462
  border-color: #12b6af;
2465
2463
  box-shadow: 0 8px 24px rgba(8, 112, 106, 0.35);
2466
2464
  }
2467
- .u-tabbar__center-btn--side-active[data-v-9b76f6cf] {
2465
+ .u-tabbar__center-btn--side-active[data-v-be1becb2] {
2468
2466
  background: linear-gradient(135deg, #12b6af 0%, #65d8d1 100%);
2469
2467
  border-color: #9fe4dd;
2470
2468
  }
2471
- .u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-9b76f6cf],
2472
- .u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-9b76f6cf] {
2469
+ .u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-be1becb2],
2470
+ .u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-be1becb2] {
2473
2471
  color: #ffffff;
2474
2472
  }
2475
- .u-tabbar__center-brand[data-v-9b76f6cf] {
2473
+ .u-tabbar__center-brand[data-v-be1becb2] {
2476
2474
  font-size: 22px;
2477
2475
  line-height: 1;
2478
2476
  font-weight: 700;
2479
2477
  color: #12b6af;
2480
2478
  letter-spacing: 1px;
2481
2479
  }
2482
- .u-tabbar__center-text[data-v-9b76f6cf] {
2480
+ .u-tabbar__center-text[data-v-be1becb2] {
2483
2481
  font-size: 12px;
2484
2482
  letter-spacing: 0.5px;
2485
2483
  color: #12b6af;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atooyu/uxto-ui",
3
- "version": "1.1.42",
3
+ "version": "1.1.44",
4
4
  "description": "跨平台 UI 组件库 - 支持 Android、iOS、鸿蒙",
5
5
  "keywords": [
6
6
  "uxto-ui",
@@ -55,10 +55,13 @@ const handleClick = () => {
55
55
 
56
56
  if (props.href) {
57
57
  // 在新窗口打开链接
58
- // uni-app 环境下使用特定方法
59
58
  // #ifdef H5
60
59
  window.open(props.href, '_blank')
61
60
  // #endif
61
+ // #ifndef H5
62
+ // 非 H5 平台使用 webview 打开外部链接
63
+ uni.navigateTo({ url: `/pages/webview/index?url=${encodeURIComponent(props.href)}` })
64
+ // #endif
62
65
  }
63
66
 
64
67
  emit('click')
@@ -145,13 +145,11 @@ $--paper: #ffffff;
145
145
  bottom: 0;
146
146
  z-index: 999;
147
147
  width: 100%;
148
- pointer-events: none;
149
148
  // 底部安全区域适配
150
149
  padding-bottom: constant(safe-area-inset-bottom);
151
150
  padding-bottom: env(safe-area-inset-bottom);
152
151
 
153
152
  &__nav-wrap {
154
- pointer-events: auto;
155
153
  position: absolute;
156
154
  left: 14px;
157
155
  right: 14px;
@@ -172,33 +172,18 @@ const hide = () => {
172
172
  }
173
173
 
174
174
  const adjustPlacement = () => {
175
- // 简化的位置调整逻辑
176
- if (isUniApp) {
177
- // uni-app 中使用系统信息获取窗口高度
178
- const systemInfo = uni.getSystemInfoSync()
179
- const windowHeight = systemInfo.windowHeight
180
- const spaceAbove = triggerRect.top
181
- const spaceBelow = windowHeight - triggerRect.bottom
182
-
183
- if (props.placement === 'top' && spaceAbove < 50) {
184
- actualPlacement.value = 'bottom'
185
- } else if (props.placement === 'bottom' && spaceBelow < 50) {
186
- actualPlacement.value = 'top'
187
- } else {
188
- actualPlacement.value = props.placement
189
- }
175
+ // 使用 uni-app API 获取窗口高度(跨平台兼容)
176
+ const systemInfo = uni.getSystemInfoSync()
177
+ const windowHeight = systemInfo.windowHeight
178
+ const spaceAbove = triggerRect.top
179
+ const spaceBelow = windowHeight - triggerRect.bottom
180
+
181
+ if (props.placement === 'top' && spaceAbove < 50) {
182
+ actualPlacement.value = 'bottom'
183
+ } else if (props.placement === 'bottom' && spaceBelow < 50) {
184
+ actualPlacement.value = 'top'
190
185
  } else {
191
- const windowHeight = window.innerHeight
192
- const spaceAbove = triggerRect.top
193
- const spaceBelow = windowHeight - triggerRect.bottom
194
-
195
- if (props.placement === 'top' && spaceAbove < 50) {
196
- actualPlacement.value = 'bottom'
197
- } else if (props.placement === 'bottom' && spaceBelow < 50) {
198
- actualPlacement.value = 'top'
199
- } else {
200
- actualPlacement.value = props.placement
201
- }
186
+ actualPlacement.value = props.placement
202
187
  }
203
188
  }
204
189
 
@@ -215,21 +200,10 @@ const handleClickOutside = (event: TouchEvent | MouseEvent) => {
215
200
  }
216
201
 
217
202
  onMounted(() => {
218
- if (isUniApp) {
219
- // uni-app 中使用页面生命周期事件处理
220
- } else {
221
- document.addEventListener('click', handleClickOutside)
222
- document.addEventListener('touchstart', handleClickOutside)
223
- }
203
+ // uni-app 中不需要手动添加点击外部监听,使用页面事件处理
224
204
  })
225
205
 
226
206
  onUnmounted(() => {
227
- if (isUniApp) {
228
- // uni-app 清理
229
- } else {
230
- document.removeEventListener('click', handleClickOutside)
231
- document.removeEventListener('touchstart', handleClickOutside)
232
- }
233
207
  if (hideTimer) {
234
208
  clearTimeout(hideTimer)
235
209
  }