@atooyu/uxto-ui 1.1.38 → 1.1.40

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
@@ -2058,7 +2058,7 @@ to {
2058
2058
  color: #ffffff;
2059
2059
  line-height: 1.4;
2060
2060
  text-align: center;
2061
- }.u-popup[data-v-dc430e12] {
2061
+ }.u-popup[data-v-7b84ec59] {
2062
2062
  position: fixed;
2063
2063
  top: 0;
2064
2064
  left: 0;
@@ -2066,7 +2066,7 @@ to {
2066
2066
  bottom: 0;
2067
2067
  z-index: 1000;
2068
2068
  }
2069
- .u-popup__overlay[data-v-dc430e12] {
2069
+ .u-popup__overlay[data-v-7b84ec59] {
2070
2070
  position: absolute;
2071
2071
  top: 0;
2072
2072
  left: 0;
@@ -2074,43 +2074,43 @@ to {
2074
2074
  bottom: 0;
2075
2075
  background-color: rgba(0, 0, 0, 0.7);
2076
2076
  }
2077
- .u-popup__content[data-v-dc430e12] {
2077
+ .u-popup__content[data-v-7b84ec59] {
2078
2078
  position: absolute;
2079
2079
  background-color: #ffffff;
2080
2080
  overflow: hidden;
2081
2081
  }
2082
- .u-popup__content--top[data-v-dc430e12] {
2082
+ .u-popup__content--top[data-v-7b84ec59] {
2083
2083
  top: 0;
2084
2084
  left: 0;
2085
2085
  right: 0;
2086
2086
  }
2087
- .u-popup__content--bottom[data-v-dc430e12] {
2087
+ .u-popup__content--bottom[data-v-7b84ec59] {
2088
2088
  bottom: 0;
2089
2089
  left: 0;
2090
2090
  right: 0;
2091
2091
  }
2092
- .u-popup__content--left[data-v-dc430e12] {
2092
+ .u-popup__content--left[data-v-7b84ec59] {
2093
2093
  left: 0;
2094
2094
  top: 0;
2095
2095
  bottom: 0;
2096
2096
  width: 80%;
2097
2097
  }
2098
- .u-popup__content--right[data-v-dc430e12] {
2098
+ .u-popup__content--right[data-v-7b84ec59] {
2099
2099
  right: 0;
2100
2100
  top: 0;
2101
2101
  bottom: 0;
2102
2102
  width: 80%;
2103
2103
  }
2104
- .u-popup__content--center[data-v-dc430e12] {
2104
+ .u-popup__content--center[data-v-7b84ec59] {
2105
2105
  top: 50%;
2106
2106
  left: 50%;
2107
2107
  transform: translate(-50%, -50%);
2108
2108
  min-width: 280px;
2109
2109
  }
2110
- .u-popup__content--round[data-v-dc430e12] {
2110
+ .u-popup__content--round[data-v-7b84ec59] {
2111
2111
  border-radius: 12px;
2112
2112
  }
2113
- .u-popup__close[data-v-dc430e12] {
2113
+ .u-popup__close[data-v-7b84ec59] {
2114
2114
  position: absolute;
2115
2115
  top: 12px;
2116
2116
  right: 12px;
@@ -2121,7 +2121,7 @@ to {
2121
2121
  justify-content: center;
2122
2122
  z-index: 1;
2123
2123
  }
2124
- .u-popup__close-icon[data-v-dc430e12] {
2124
+ .u-popup__close-icon[data-v-7b84ec59] {
2125
2125
  font-size: 18px;
2126
2126
  color: #969799;
2127
2127
  }.u-code-input[data-v-9fffa23f] {
@@ -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-10cb84bc] {
2383
+ }.u-tabbar[data-v-a344a18d] {
2384
2384
  position: fixed;
2385
2385
  left: 0;
2386
2386
  right: 0;
@@ -2389,7 +2389,7 @@ to {
2389
2389
  width: 100%;
2390
2390
  pointer-events: none;
2391
2391
  }
2392
- .u-tabbar__nav-wrap[data-v-10cb84bc] {
2392
+ .u-tabbar__nav-wrap[data-v-a344a18d] {
2393
2393
  pointer-events: auto;
2394
2394
  position: absolute;
2395
2395
  left: 14px;
@@ -2406,7 +2406,7 @@ to {
2406
2406
  padding: 0 8px;
2407
2407
  box-sizing: border-box;
2408
2408
  }
2409
- .u-tabbar__tab-btn[data-v-10cb84bc] {
2409
+ .u-tabbar__tab-btn[data-v-a344a18d] {
2410
2410
  height: 40px;
2411
2411
  border-radius: 20px;
2412
2412
  background: transparent;
@@ -2421,23 +2421,23 @@ to {
2421
2421
  padding: 0 16px;
2422
2422
  margin: 0 20px;
2423
2423
  }
2424
- .u-tabbar__tab-btn--active[data-v-10cb84bc] {
2424
+ .u-tabbar__tab-btn--active[data-v-a344a18d] {
2425
2425
  background: #ffffff;
2426
2426
  box-shadow: inset 0 0 0 1px rgba(17, 135, 128, 0.14);
2427
2427
  }
2428
- .u-tabbar__tab-text[data-v-10cb84bc] {
2428
+ .u-tabbar__tab-text[data-v-a344a18d] {
2429
2429
  font-weight: 600;
2430
2430
  font-size: 14px;
2431
2431
  overflow: hidden;
2432
2432
  text-overflow: ellipsis;
2433
2433
  }
2434
- .u-tabbar__center[data-v-10cb84bc] {
2434
+ .u-tabbar__center[data-v-a344a18d] {
2435
2435
  position: relative;
2436
2436
  width: 72px;
2437
2437
  height: 56px;
2438
2438
  flex-shrink: 0;
2439
2439
  }
2440
- .u-tabbar__center-btn[data-v-10cb84bc] {
2440
+ .u-tabbar__center-btn[data-v-a344a18d] {
2441
2441
  position: absolute;
2442
2442
  left: 50%;
2443
2443
  top: -22px;
@@ -2455,29 +2455,29 @@ to {
2455
2455
  box-shadow: 0 8px 20px rgba(8, 112, 106, 0.25);
2456
2456
  transition: all 200ms ease;
2457
2457
  }
2458
- .u-tabbar__center-btn[data-v-10cb84bc]:active {
2458
+ .u-tabbar__center-btn[data-v-a344a18d]:active {
2459
2459
  transform: translateX(-50%) scale(0.95);
2460
2460
  }
2461
- .u-tabbar__center-btn--active[data-v-10cb84bc] {
2461
+ .u-tabbar__center-btn--active[data-v-a344a18d] {
2462
2462
  border-color: #12b6af;
2463
2463
  box-shadow: 0 8px 24px rgba(8, 112, 106, 0.35);
2464
2464
  }
2465
- .u-tabbar__center-btn--left-active[data-v-10cb84bc] {
2465
+ .u-tabbar__center-btn--side-active[data-v-a344a18d] {
2466
2466
  background: linear-gradient(135deg, #12b6af 0%, #65d8d1 100%);
2467
2467
  border-color: #9fe4dd;
2468
2468
  }
2469
- .u-tabbar__center-btn--left-active .u-tabbar__center-brand[data-v-10cb84bc],
2470
- .u-tabbar__center-btn--left-active .u-tabbar__center-text[data-v-10cb84bc] {
2469
+ .u-tabbar__center-btn--side-active .u-tabbar__center-brand[data-v-a344a18d],
2470
+ .u-tabbar__center-btn--side-active .u-tabbar__center-text[data-v-a344a18d] {
2471
2471
  color: #ffffff;
2472
2472
  }
2473
- .u-tabbar__center-brand[data-v-10cb84bc] {
2473
+ .u-tabbar__center-brand[data-v-a344a18d] {
2474
2474
  font-size: 22px;
2475
2475
  line-height: 1;
2476
2476
  font-weight: 700;
2477
2477
  color: #12b6af;
2478
2478
  letter-spacing: 1px;
2479
2479
  }
2480
- .u-tabbar__center-text[data-v-10cb84bc] {
2480
+ .u-tabbar__center-text[data-v-a344a18d] {
2481
2481
  font-size: 12px;
2482
2482
  letter-spacing: 0.5px;
2483
2483
  color: #12b6af;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atooyu/uxto-ui",
3
- "version": "1.1.38",
3
+ "version": "1.1.40",
4
4
  "description": "跨平台 UI 组件库 - 支持 Android、iOS、鸿蒙",
5
5
  "keywords": [
6
6
  "uxto-ui",
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view v-if="visible" class="u-popup">
2
+ <view v-if="show" class="u-popup">
3
3
  <view
4
4
  class="u-popup__overlay"
5
5
  @click="handleOverlayClick"
@@ -20,6 +20,7 @@
20
20
  type PopupPosition = 'top' | 'bottom' | 'left' | 'right' | 'center'
21
21
 
22
22
  interface Props {
23
+ show?: boolean
23
24
  visible?: boolean
24
25
  position?: PopupPosition
25
26
  closeable?: boolean
@@ -29,7 +30,8 @@ interface Props {
29
30
  }
30
31
 
31
32
  const props = withDefaults(defineProps<Props>(), {
32
- visible: false,
33
+ show: undefined,
34
+ visible: undefined,
33
35
  position: 'bottom',
34
36
  closeable: false,
35
37
  closeOnClickOverlay: true,
@@ -38,10 +40,18 @@ const props = withDefaults(defineProps<Props>(), {
38
40
  })
39
41
 
40
42
  const emit = defineEmits<{
43
+ 'update:show': [value: boolean]
41
44
  'update:visible': [value: boolean]
42
45
  close: []
43
46
  }>()
44
47
 
48
+ // 支持 show 和 visible 两种方式
49
+ const isOpen = computed(() => {
50
+ if (props.show !== undefined) return props.show
51
+ if (props.visible !== undefined) return props.visible
52
+ return false
53
+ })
54
+
45
55
  const handleOverlayClick = () => {
46
56
  if (props.closeOnClickOverlay) {
47
57
  handleClose()
@@ -49,12 +59,14 @@ const handleOverlayClick = () => {
49
59
  }
50
60
 
51
61
  const handleClose = () => {
62
+ emit('update:show', false)
52
63
  emit('update:visible', false)
53
64
  emit('close')
54
65
  }
55
66
  </script>
56
67
 
57
68
  <script lang="ts">
69
+ import { computed } from 'vue'
58
70
  export default {
59
71
  options: {
60
72
  virtualHost: true,
@@ -28,7 +28,7 @@
28
28
  class="u-tabbar__center-btn"
29
29
  :class="{
30
30
  'u-tabbar__center-btn--active': modelValue === centerTab.value,
31
- 'u-tabbar__center-btn--left-active': modelValue === leftTab.value
31
+ 'u-tabbar__center-btn--side-active': modelValue === leftTab.value || modelValue === rightTab.value
32
32
  }"
33
33
  @click="switchTab(centerTab.value)"
34
34
  >
@@ -230,8 +230,8 @@ $--paper: #ffffff;
230
230
  box-shadow: 0 8px 24px rgba(8, 112, 106, 0.35);
231
231
  }
232
232
 
233
- // 左侧tab选中时的样式(首页选中)
234
- &--left-active {
233
+ // 左侧或右侧tab选中时的样式
234
+ &--side-active {
235
235
  background: linear-gradient(135deg, $--mint-1 0%, $--mint-3 100%);
236
236
  border-color: $--mint-2;
237
237