uview-pro 0.2.4 → 0.3.1

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.
Files changed (249) hide show
  1. package/changelog.md +584 -545
  2. package/components/common/props.ts +22 -22
  3. package/components/u-action-sheet/types.ts +37 -35
  4. package/components/u-action-sheet/u-action-sheet.vue +178 -167
  5. package/components/u-alert-tips/types.ts +41 -39
  6. package/components/u-alert-tips/u-alert-tips.vue +238 -223
  7. package/components/u-avatar/types.ts +36 -34
  8. package/components/u-avatar/u-avatar.vue +217 -207
  9. package/components/u-avatar-cropper/types.ts +23 -23
  10. package/components/u-avatar-cropper/u-avatar-cropper.vue +297 -286
  11. package/components/u-avatar-cropper/weCropper.d.ts +62 -62
  12. package/components/u-avatar-cropper/weCropper.js +1281 -1281
  13. package/components/u-avatar-cropper/weCropper.ts +1276 -1276
  14. package/components/u-back-top/types.ts +36 -39
  15. package/components/u-back-top/u-back-top.vue +140 -128
  16. package/components/u-badge/types.ts +38 -36
  17. package/components/u-badge/u-badge.vue +183 -165
  18. package/components/u-button/types.ts +66 -66
  19. package/components/u-button/u-button.vue +579 -566
  20. package/components/u-calendar/types.ts +75 -75
  21. package/components/u-calendar/u-calendar.vue +793 -793
  22. package/components/u-car-keyboard/types.ts +14 -12
  23. package/components/u-car-keyboard/u-car-keyboard.vue +262 -253
  24. package/components/u-card/types.ts +61 -59
  25. package/components/u-card/u-card.vue +209 -194
  26. package/components/u-cell-group/types.ts +19 -17
  27. package/components/u-cell-group/u-cell-group.vue +60 -50
  28. package/components/u-cell-item/types.ts +56 -54
  29. package/components/u-cell-item/u-cell-item.vue +226 -213
  30. package/components/u-checkbox/types.ts +33 -31
  31. package/components/u-checkbox/u-checkbox.vue +282 -283
  32. package/components/u-checkbox-group/types.ts +34 -32
  33. package/components/u-checkbox-group/u-checkbox-group.vue +130 -130
  34. package/components/u-circle-progress/types.ts +54 -52
  35. package/components/u-circle-progress/u-circle-progress.vue +206 -191
  36. package/components/u-city-select/types.ts +22 -20
  37. package/components/u-city-select/u-city-select.vue +276 -264
  38. package/components/u-col/types.ts +32 -30
  39. package/components/u-col/u-col.vue +142 -123
  40. package/components/u-collapse/types.ts +33 -33
  41. package/components/u-collapse/u-collapse.vue +190 -186
  42. package/components/u-collapse-item/types.ts +27 -27
  43. package/components/u-collapse-item/u-collapse-item.vue +290 -285
  44. package/components/u-column-notice/types.ts +50 -48
  45. package/components/u-column-notice/u-column-notice.vue +222 -210
  46. package/components/u-count-down/types.ts +44 -42
  47. package/components/u-count-down/u-count-down.vue +286 -274
  48. package/components/u-count-to/types.ts +34 -32
  49. package/components/u-count-to/u-count-to.vue +266 -248
  50. package/components/u-divider/types.ts +33 -31
  51. package/components/u-divider/u-divider.vue +145 -129
  52. package/components/u-dropdown/types.ts +34 -32
  53. package/components/u-dropdown/u-dropdown.vue +330 -302
  54. package/components/u-dropdown-item/types.ts +29 -27
  55. package/components/u-dropdown-item/u-dropdown-item.vue +120 -128
  56. package/components/u-empty/types.ts +38 -36
  57. package/components/u-empty/u-empty.vue +103 -88
  58. package/components/u-field/types.ts +71 -69
  59. package/components/u-field/u-field.vue +388 -373
  60. package/components/u-form/types.ts +29 -27
  61. package/components/u-form/u-form.vue +130 -136
  62. package/components/u-form-item/types.ts +72 -70
  63. package/components/u-form-item/u-form-item.vue +447 -447
  64. package/components/u-full-screen/types.ts +16 -14
  65. package/components/u-full-screen/u-full-screen.vue +103 -89
  66. package/components/u-gap/types.ts +20 -18
  67. package/components/u-gap/u-gap.vue +50 -40
  68. package/components/u-grid/types.ts +21 -19
  69. package/components/u-grid/u-grid.vue +91 -93
  70. package/components/u-grid-item/types.ts +16 -16
  71. package/components/u-grid-item/u-grid-item.vue +130 -134
  72. package/components/u-icon/types.ts +61 -62
  73. package/components/u-icon/u-icon.vue +296 -294
  74. package/components/u-image/types.ts +51 -51
  75. package/components/u-image/u-image.vue +239 -230
  76. package/components/u-index-anchor/types.ts +16 -16
  77. package/components/u-index-anchor/u-index-anchor.vue +94 -86
  78. package/components/u-index-list/types.ts +43 -43
  79. package/components/u-index-list/u-index-list.vue +352 -355
  80. package/components/u-input/types.ts +137 -140
  81. package/components/u-input/u-input.vue +288 -279
  82. package/components/u-keyboard/types.ts +40 -40
  83. package/components/u-keyboard/u-keyboard.vue +178 -169
  84. package/components/u-lazy-load/types.ts +37 -37
  85. package/components/u-lazy-load/u-lazy-load.vue +246 -235
  86. package/components/u-line/types.ts +44 -44
  87. package/components/u-line/u-line.vue +68 -59
  88. package/components/u-line-progress/types.ts +58 -58
  89. package/components/u-line-progress/u-line-progress.vue +126 -117
  90. package/components/u-link/types.ts +43 -43
  91. package/components/u-link/u-link.vue +84 -75
  92. package/components/u-loading/types.ts +35 -35
  93. package/components/u-loading/u-loading.vue +105 -96
  94. package/components/u-loading-popup/types.ts +26 -26
  95. package/components/u-loading-popup/u-loading-popup.vue +253 -239
  96. package/components/u-loadmore/types.ts +79 -79
  97. package/components/u-loadmore/u-loadmore.vue +156 -145
  98. package/components/u-mask/types.ts +40 -43
  99. package/components/u-mask/u-mask.vue +113 -106
  100. package/components/u-message-input/types.ts +74 -74
  101. package/components/u-message-input/u-message-input.vue +281 -270
  102. package/components/u-modal/types.ts +118 -118
  103. package/components/u-modal/u-modal.vue +220 -211
  104. package/components/u-navbar/types.ts +103 -103
  105. package/components/u-navbar/u-navbar.vue +251 -240
  106. package/components/u-no-network/image.ts +2 -2
  107. package/components/u-no-network/types.ts +28 -28
  108. package/components/u-no-network/u-no-network.vue +303 -292
  109. package/components/u-notice-bar/types.ts +111 -111
  110. package/components/u-notice-bar/u-notice-bar.vue +189 -179
  111. package/components/u-number-box/types.ts +42 -42
  112. package/components/u-number-box/u-number-box.vue +321 -312
  113. package/components/u-number-keyboard/types.ts +26 -26
  114. package/components/u-number-keyboard/u-number-keyboard.vue +188 -179
  115. package/components/u-picker/types.ts +123 -123
  116. package/components/u-picker/u-picker.vue +685 -676
  117. package/components/u-popup/types.ts +59 -59
  118. package/components/u-popup/u-popup.vue +385 -375
  119. package/components/u-radio/types.ts +27 -25
  120. package/components/u-radio/u-radio.vue +279 -272
  121. package/components/u-radio-group/types.ts +31 -29
  122. package/components/u-radio-group/u-radio-group.vue +96 -108
  123. package/components/u-rate/types.ts +42 -40
  124. package/components/u-rate/u-rate.vue +249 -234
  125. package/components/u-read-more/types.ts +37 -35
  126. package/components/u-read-more/u-read-more.vue +172 -156
  127. package/components/u-root-portal/u-root-portal.vue +56 -54
  128. package/components/u-row/types.ts +22 -20
  129. package/components/u-row/u-row.vue +105 -87
  130. package/components/u-row-notice/types.ts +41 -39
  131. package/components/u-row-notice/u-row-notice.vue +256 -244
  132. package/components/u-safe-bottom/u-safe-bottom.vue +57 -46
  133. package/components/u-search/types.ts +55 -53
  134. package/components/u-search/u-search.vue +279 -268
  135. package/components/u-section/types.ts +34 -32
  136. package/components/u-section/u-section.vue +150 -131
  137. package/components/u-select/types.ts +45 -43
  138. package/components/u-select/u-select.vue +388 -378
  139. package/components/u-skeleton/types.ts +22 -20
  140. package/components/u-skeleton/u-skeleton.vue +231 -220
  141. package/components/u-slider/types.ts +34 -32
  142. package/components/u-slider/u-slider.vue +255 -247
  143. package/components/u-status-bar/u-status-bar.vue +74 -65
  144. package/components/u-steps/types.ts +30 -28
  145. package/components/u-steps/u-steps.vue +181 -169
  146. package/components/u-sticky/types.ts +24 -22
  147. package/components/u-sticky/u-sticky.vue +178 -162
  148. package/components/u-subsection/types.ts +38 -36
  149. package/components/u-subsection/u-subsection.vue +339 -328
  150. package/components/u-swipe-action/types.ts +52 -50
  151. package/components/u-swipe-action/u-swipe-action.vue +276 -260
  152. package/components/u-swiper/types.ts +49 -47
  153. package/components/u-swiper/u-swiper.vue +308 -291
  154. package/components/u-switch/types.ts +30 -28
  155. package/components/u-switch/u-switch.vue +150 -141
  156. package/components/u-tabbar/types.ts +38 -36
  157. package/components/u-tabbar/u-tabbar.vue +315 -298
  158. package/components/u-table/types.ts +27 -25
  159. package/components/u-table/u-table.vue +67 -55
  160. package/components/u-tabs/types.ts +53 -51
  161. package/components/u-tabs/u-tabs.vue +302 -291
  162. package/components/u-tabs-swiper/types.ts +55 -53
  163. package/components/u-tabs-swiper/u-tabs-swiper.vue +409 -397
  164. package/components/u-tag/types.ts +39 -37
  165. package/components/u-tag/u-tag.vue +268 -252
  166. package/components/u-td/types.ts +14 -12
  167. package/components/u-td/u-td.vue +98 -87
  168. package/components/u-text/types.ts +72 -72
  169. package/components/u-text/u-text.vue +343 -341
  170. package/components/u-th/types.ts +14 -12
  171. package/components/u-th/u-th.vue +92 -81
  172. package/components/u-time-line/u-time-line.vue +53 -39
  173. package/components/u-time-line-item/types.ts +16 -14
  174. package/components/u-time-line-item/u-time-line-item.vue +90 -78
  175. package/components/u-toast/types.ts +38 -36
  176. package/components/u-toast/u-toast.vue +240 -233
  177. package/components/u-top-tips/types.ts +16 -14
  178. package/components/u-top-tips/u-top-tips.vue +130 -113
  179. package/components/u-tr/types.ts +11 -8
  180. package/components/u-tr/u-tr.vue +39 -24
  181. package/components/u-upload/types.ts +82 -80
  182. package/components/u-upload/u-upload.vue +568 -559
  183. package/components/u-verification-code/types.ts +24 -22
  184. package/components/u-verification-code/u-verification-code.vue +176 -164
  185. package/components/u-waterfall/types.ts +18 -16
  186. package/components/u-waterfall/u-waterfall.vue +187 -175
  187. package/iconfont.css +913 -913
  188. package/index.scss +25 -25
  189. package/index.ts +38 -38
  190. package/libs/config/config.ts +26 -26
  191. package/libs/config/zIndex.ts +37 -37
  192. package/libs/css/color.scss +155 -155
  193. package/libs/css/common.scss +178 -178
  194. package/libs/css/style.components.scss +16 -16
  195. package/libs/css/style.h5.scss +8 -8
  196. package/libs/css/style.mp.scss +72 -72
  197. package/libs/css/style.nvue.scss +15 -15
  198. package/libs/css/style.vue.scss +188 -188
  199. package/libs/function/$parent.ts +24 -24
  200. package/libs/function/addUnit.ts +13 -13
  201. package/libs/function/color.ts +37 -37
  202. package/libs/function/colorGradient.ts +139 -139
  203. package/libs/function/debounce.ts +28 -28
  204. package/libs/function/deepClone.ts +39 -39
  205. package/libs/function/deepMerge.ts +35 -35
  206. package/libs/function/getParent.ts +63 -63
  207. package/libs/function/getRect.ts +26 -26
  208. package/libs/function/guid.ts +42 -42
  209. package/libs/function/md5.ts +403 -403
  210. package/libs/function/parent.ts +21 -21
  211. package/libs/function/queryParams.ts +64 -64
  212. package/libs/function/random.ts +16 -16
  213. package/libs/function/randomArray.ts +11 -11
  214. package/libs/function/route.ts +118 -118
  215. package/libs/function/styleUtils.ts +83 -83
  216. package/libs/function/sys.ts +15 -15
  217. package/libs/function/test.ts +289 -289
  218. package/libs/function/throttle.ts +31 -31
  219. package/libs/function/timeFormat.ts +55 -55
  220. package/libs/function/timeFrom.ts +48 -48
  221. package/libs/function/toast.ts +14 -14
  222. package/libs/function/trim.ts +21 -21
  223. package/libs/function/type2icon.ts +39 -39
  224. package/libs/hooks/index.ts +4 -3
  225. package/libs/hooks/useCompRelation.ts +364 -0
  226. package/libs/hooks/useComponent.ts +759 -759
  227. package/libs/hooks/useEmitter.ts +79 -79
  228. package/libs/hooks/useParent.ts +33 -33
  229. package/libs/hooks/useRect.ts +33 -33
  230. package/libs/index.ts +337 -320
  231. package/libs/request/auto-http.ts +76 -76
  232. package/libs/request/index.ts +242 -242
  233. package/libs/store/index.ts +88 -88
  234. package/libs/util/async-validator.d.ts +75 -75
  235. package/libs/util/async-validator.js +1 -1
  236. package/libs/util/calendar.d.ts +57 -57
  237. package/libs/util/emitter.ts +112 -112
  238. package/libs/util/eventBus.ts +86 -86
  239. package/libs/util/logger.ts +364 -364
  240. package/libs/util/mitt.ts +118 -118
  241. package/libs/util/parent.ts +20 -20
  242. package/package.json +4 -4
  243. package/readme.md +241 -241
  244. package/theme.scss +38 -38
  245. package/types/components.d.ts +97 -97
  246. package/types/global.d.ts +331 -331
  247. package/types/ignore-errors.d.ts +30 -30
  248. package/types/index.d.ts +19 -19
  249. package/types/uni-app.d.ts +63 -63
@@ -1,223 +1,238 @@
1
- <template>
2
- <view
3
- class="u-alert-tips"
4
- v-if="show"
5
- :class="[
6
- !show ? 'u-close-alert-tips' : '',
7
- type ? 'u-alert-tips--bg--' + type + '-light' : '',
8
- type ? 'u-alert-tips--border--' + type + '-disabled' : ''
9
- ]"
10
- :style="{
11
- backgroundColor: bgColor,
12
- borderColor: borderColor
13
- }"
14
- >
15
- <view class="u-icon-wrap">
16
- <u-icon
17
- v-if="showIcon"
18
- :name="uIconName"
19
- :size="description ? 40 : 32"
20
- class="u-icon"
21
- :color="uIconType"
22
- :custom-style="iconStyle"
23
- ></u-icon>
24
- </view>
25
- <view class="u-alert-content" @tap.stop="onClick">
26
- <view class="u-alert-title" :style="uTitleStyle">
27
- {{ title }}
28
- </view>
29
- <view v-if="description" class="u-alert-desc" :style="descStyle">
30
- {{ description }}
31
- </view>
32
- </view>
33
- <view class="u-icon-wrap">
34
- <u-icon
35
- @click="onClose"
36
- v-if="closeAble && !closeText"
37
- hoverClass="u-type-error-hover-color"
38
- name="close"
39
- color="#c0c4cc"
40
- :size="22"
41
- class="u-close-icon"
42
- :style="{
43
- top: description ? '18rpx' : '24rpx'
44
- }"
45
- ></u-icon>
46
- </view>
47
- <text
48
- v-if="closeAble && closeText"
49
- class="u-close-text"
50
- :style="{
51
- top: description ? '18rpx' : '24rpx'
52
- }"
53
- >{{ closeText }}</text
54
- >
55
- </view>
56
- </template>
57
-
58
- <script setup lang="ts">
59
- import uIcon from '../u-icon/u-icon.vue';
60
- import { computed } from 'vue';
61
- import { $u } from '../..';
62
- import { AlertTipsProps } from './types';
63
-
64
- defineOptions({
65
- name: 'u-alert-tips'
66
- });
67
-
68
- /**
69
- * alertTips 警告提示
70
- * @description 警告提示,展现需要关注的信息
71
- * @tutorial https://uviewpro.cn/zh/components/alertTips.html
72
- * @property {String} title 显示的标题文字
73
- * @property {String} description 辅助性文字,颜色比title浅一点,字号也小一点,可选
74
- * @property {String} type 关闭按钮(默认为叉号icon图标)
75
- * @property {String} icon 图标名称
76
- * @property {Object} icon-style 图标的样式,对象形式
77
- * @property {Object} title-style 标题的样式,对象形式
78
- * @property {Object} desc-style 描述的样式,对象形式
79
- * @property {String} close-able 用文字替代关闭图标,close-able为true时有效
80
- * @property {Boolean} show-icon 是否显示左边的辅助图标
81
- * @property {Boolean} show 显示或隐藏组件
82
- * @event {Function} click 点击组件时触发
83
- * @event {Function} close 点击关闭按钮时触发
84
- */
85
-
86
- const props = defineProps(AlertTipsProps);
87
-
88
- const emit = defineEmits(['click', 'close']);
89
-
90
- /**
91
- * 标题样式,合并加粗和用户自定义样式
92
- */
93
- const uTitleStyle = computed(() => {
94
- let style: Record<string, any> = {};
95
- // 如果有描述文字的话,标题进行加粗
96
- style.fontWeight = props.description ? 500 : 'normal';
97
- // 将用户传入样式对象和style合并,传入的优先级比style高,同属性会被覆盖
98
- return $u.deepMerge(style, props.titleStyle);
99
- });
100
-
101
- /**
102
- * 图标名称,优先使用用户传入,否则根据type主题推定默认图标
103
- */
104
- const uIconName = computed(() => {
105
- // 如果有设置icon名称就使用,否则根据type主题,推定一个默认的图标
106
- return props.icon ? props.icon : $u.type2icon(props.type);
107
- });
108
-
109
- /**
110
- * 图标类型,优先使用iconStyle,否则用type
111
- */
112
- const uIconType = computed(() => {
113
- // 如果有设置图标的样式,优先使用,没有的话,则用type的样式
114
- return Object.keys(props.iconStyle).length ? '' : props.type;
115
- });
116
-
117
- /**
118
- * 点击内容
119
- */
120
- function onClick() {
121
- emit('click');
122
- }
123
-
124
- /**
125
- * 点击关闭按钮
126
- */
127
- function onClose() {
128
- emit('close');
129
- }
130
- </script>
131
-
132
- <style lang="scss" scoped>
133
- @import '../../libs/css/style.components.scss';
134
-
135
- .u-alert-tips {
136
- @include vue-flex;
137
- align-items: center;
138
- padding: 16rpx 30rpx;
139
- border-radius: 8rpx;
140
- position: relative;
141
- transition: all 0.3s linear;
142
- border: 1px solid #fff;
143
-
144
- &--bg--primary-light {
145
- background-color: $u-type-primary-light;
146
- }
147
-
148
- &--bg--info-light {
149
- background-color: $u-type-info-light;
150
- }
151
-
152
- &--bg--success-light {
153
- background-color: $u-type-success-light;
154
- }
155
-
156
- &--bg--warning-light {
157
- background-color: $u-type-warning-light;
158
- }
159
-
160
- &--bg--error-light {
161
- background-color: $u-type-error-light;
162
- }
163
-
164
- &--border--primary-disabled {
165
- border-color: $u-type-primary-disabled;
166
- }
167
-
168
- &--border--success-disabled {
169
- border-color: $u-type-success-disabled;
170
- }
171
-
172
- &--border--error-disabled {
173
- border-color: $u-type-error-disabled;
174
- }
175
-
176
- &--border--warning-disabled {
177
- border-color: $u-type-warning-disabled;
178
- }
179
-
180
- &--border--info-disabled {
181
- border-color: $u-type-info-disabled;
182
- }
183
- }
184
-
185
- .u-close-alert-tips {
186
- opacity: 0;
187
- visibility: hidden;
188
- }
189
-
190
- .u-icon {
191
- margin-right: 16rpx;
192
- }
193
-
194
- .u-alert-title {
195
- font-size: 28rpx;
196
- color: $u-main-color;
197
- }
198
-
199
- .u-alert-desc {
200
- font-size: 26rpx;
201
- text-align: left;
202
- color: $u-content-color;
203
- }
204
-
205
- .u-close-icon {
206
- position: absolute;
207
- top: 20rpx;
208
- right: 20rpx;
209
- }
210
-
211
- .u-close-hover {
212
- color: red;
213
- }
214
-
215
- .u-close-text {
216
- font-size: 24rpx;
217
- color: $u-tips-color;
218
- position: absolute;
219
- top: 20rpx;
220
- right: 20rpx;
221
- line-height: 1;
222
- }
223
- </style>
1
+ <template>
2
+ <view
3
+ class="u-alert-tips"
4
+ v-if="show"
5
+ :class="[
6
+ !show ? 'u-close-alert-tips' : '',
7
+ type ? 'u-alert-tips--bg--' + type + '-light' : '',
8
+ type ? 'u-alert-tips--border--' + type + '-disabled' : '',
9
+ customClass
10
+ ]"
11
+ :style="
12
+ $u.toStyle(
13
+ {
14
+ backgroundColor: bgColor,
15
+ borderColor: borderColor
16
+ },
17
+ customStyle
18
+ )
19
+ "
20
+ >
21
+ <view class="u-icon-wrap">
22
+ <u-icon
23
+ v-if="showIcon"
24
+ :name="uIconName"
25
+ :size="description ? 40 : 32"
26
+ class="u-icon"
27
+ :color="uIconType"
28
+ :custom-style="iconStyle"
29
+ ></u-icon>
30
+ </view>
31
+ <view class="u-alert-content" @tap.stop="onClick">
32
+ <view class="u-alert-title" :style="uTitleStyle">
33
+ {{ title }}
34
+ </view>
35
+ <view v-if="description" class="u-alert-desc" :style="descStyle">
36
+ {{ description }}
37
+ </view>
38
+ </view>
39
+ <view class="u-icon-wrap">
40
+ <u-icon
41
+ @click="onClose"
42
+ v-if="closeAble && !closeText"
43
+ hoverClass="u-type-error-hover-color"
44
+ name="close"
45
+ color="#c0c4cc"
46
+ :size="22"
47
+ class="u-close-icon"
48
+ :style="{
49
+ top: description ? '18rpx' : '24rpx'
50
+ }"
51
+ ></u-icon>
52
+ </view>
53
+ <text
54
+ v-if="closeAble && closeText"
55
+ class="u-close-text"
56
+ :style="{
57
+ top: description ? '18rpx' : '24rpx'
58
+ }"
59
+ >{{ closeText }}</text
60
+ >
61
+ </view>
62
+ </template>
63
+
64
+ <script lang="ts">
65
+ export default {
66
+ name: 'u-alert-tips',
67
+ options: {
68
+ addGlobalClass: true,
69
+ // #ifndef MP-TOUTIAO
70
+ virtualHost: true,
71
+ // #endif
72
+ styleIsolation: 'shared'
73
+ }
74
+ };
75
+ </script>
76
+
77
+ <script setup lang="ts">
78
+ import uIcon from '../u-icon/u-icon.vue';
79
+ import { computed } from 'vue';
80
+ import { $u } from '../..';
81
+ import { AlertTipsProps } from './types';
82
+
83
+ /**
84
+ * alertTips 警告提示
85
+ * @description 警告提示,展现需要关注的信息
86
+ * @tutorial https://uviewpro.cn/zh/components/alertTips.html
87
+ * @property {String} title 显示的标题文字
88
+ * @property {String} description 辅助性文字,颜色比title浅一点,字号也小一点,可选
89
+ * @property {String} type 关闭按钮(默认为叉号icon图标)
90
+ * @property {String} icon 图标名称
91
+ * @property {Object} icon-style 图标的样式,对象形式
92
+ * @property {Object} title-style 标题的样式,对象形式
93
+ * @property {Object} desc-style 描述的样式,对象形式
94
+ * @property {String} close-able 用文字替代关闭图标,close-able为true时有效
95
+ * @property {Boolean} show-icon 是否显示左边的辅助图标
96
+ * @property {Boolean} show 显示或隐藏组件
97
+ * @event {Function} click 点击组件时触发
98
+ * @event {Function} close 点击关闭按钮时触发
99
+ */
100
+
101
+ const props = defineProps(AlertTipsProps);
102
+
103
+ const emit = defineEmits(['click', 'close']);
104
+
105
+ /**
106
+ * 标题样式,合并加粗和用户自定义样式
107
+ */
108
+ const uTitleStyle = computed(() => {
109
+ let style: Record<string, any> = {};
110
+ // 如果有描述文字的话,标题进行加粗
111
+ style.fontWeight = props.description ? 500 : 'normal';
112
+ // 将用户传入样式对象和style合并,传入的优先级比style高,同属性会被覆盖
113
+ return $u.deepMerge(style, props.titleStyle);
114
+ });
115
+
116
+ /**
117
+ * 图标名称,优先使用用户传入,否则根据type主题推定默认图标
118
+ */
119
+ const uIconName = computed(() => {
120
+ // 如果有设置icon名称就使用,否则根据type主题,推定一个默认的图标
121
+ return props.icon ? props.icon : $u.type2icon(props.type);
122
+ });
123
+
124
+ /**
125
+ * 图标类型,优先使用iconStyle,否则用type
126
+ */
127
+ const uIconType = computed(() => {
128
+ // 如果有设置图标的样式,优先使用,没有的话,则用type的样式
129
+ return Object.keys(props.iconStyle).length ? '' : props.type;
130
+ });
131
+
132
+ /**
133
+ * 点击内容
134
+ */
135
+ function onClick() {
136
+ emit('click');
137
+ }
138
+
139
+ /**
140
+ * 点击关闭按钮
141
+ */
142
+ function onClose() {
143
+ emit('close');
144
+ }
145
+ </script>
146
+
147
+ <style lang="scss" scoped>
148
+ @import '../../libs/css/style.components.scss';
149
+
150
+ .u-alert-tips {
151
+ @include vue-flex;
152
+ align-items: center;
153
+ padding: 16rpx 30rpx;
154
+ border-radius: 8rpx;
155
+ position: relative;
156
+ transition: all 0.3s linear;
157
+ border: 1px solid #fff;
158
+
159
+ &--bg--primary-light {
160
+ background-color: $u-type-primary-light;
161
+ }
162
+
163
+ &--bg--info-light {
164
+ background-color: $u-type-info-light;
165
+ }
166
+
167
+ &--bg--success-light {
168
+ background-color: $u-type-success-light;
169
+ }
170
+
171
+ &--bg--warning-light {
172
+ background-color: $u-type-warning-light;
173
+ }
174
+
175
+ &--bg--error-light {
176
+ background-color: $u-type-error-light;
177
+ }
178
+
179
+ &--border--primary-disabled {
180
+ border-color: $u-type-primary-disabled;
181
+ }
182
+
183
+ &--border--success-disabled {
184
+ border-color: $u-type-success-disabled;
185
+ }
186
+
187
+ &--border--error-disabled {
188
+ border-color: $u-type-error-disabled;
189
+ }
190
+
191
+ &--border--warning-disabled {
192
+ border-color: $u-type-warning-disabled;
193
+ }
194
+
195
+ &--border--info-disabled {
196
+ border-color: $u-type-info-disabled;
197
+ }
198
+ }
199
+
200
+ .u-close-alert-tips {
201
+ opacity: 0;
202
+ visibility: hidden;
203
+ }
204
+
205
+ .u-icon {
206
+ margin-right: 16rpx;
207
+ }
208
+
209
+ .u-alert-title {
210
+ font-size: 28rpx;
211
+ color: $u-main-color;
212
+ }
213
+
214
+ .u-alert-desc {
215
+ font-size: 26rpx;
216
+ text-align: left;
217
+ color: $u-content-color;
218
+ }
219
+
220
+ .u-close-icon {
221
+ position: absolute;
222
+ top: 20rpx;
223
+ right: 20rpx;
224
+ }
225
+
226
+ .u-close-hover {
227
+ color: red;
228
+ }
229
+
230
+ .u-close-text {
231
+ font-size: 24rpx;
232
+ color: $u-tips-color;
233
+ position: absolute;
234
+ top: 20rpx;
235
+ right: 20rpx;
236
+ line-height: 1;
237
+ }
238
+ </style>
@@ -1,34 +1,36 @@
1
- import { type ExtractPropTypes, type PropType } from 'vue';
2
- import type { ImgMode } from '../../types/global';
3
-
4
- // u-avatar 组件 props
5
- export const AvatarProps = {
6
- /** 背景颜色 */
7
- bgColor: { type: String, default: 'transparent' },
8
- /** 头像路径 */
9
- src: { type: String, default: '' },
10
- /** 尺寸,large-大,default-中等,mini-小,如果为数值,则单位为rpx,宽度等于高度 */
11
- size: { type: [String, Number], default: 'default' },
12
- /** 头像模型,square-带圆角方形,circle-圆形 */
13
- mode: { type: String, default: 'circle' },
14
- /** 文字内容 */
15
- text: { type: String, default: '' },
16
- /** 图片的裁剪模型 */
17
- imgMode: { type: String as PropType<ImgMode>, default: 'aspectFill' },
18
- /** 标识符 */
19
- index: { type: [String, Number], default: '' },
20
- /** 右上角性别角标,man-男,woman-女 */
21
- sexIcon: { type: String as PropType<'man' | 'woman'>, default: 'man' },
22
- /** 右下角的等级图标 */
23
- levelIcon: { type: String, default: 'level' },
24
- /** 右下角等级图标背景颜色 */
25
- levelBgColor: { type: String, default: '' },
26
- /** 右上角性别图标的背景颜色 */
27
- sexBgColor: { type: String, default: '' },
28
- /** 是否显示性别图标 */
29
- showSex: { type: Boolean, default: false },
30
- /** 是否显示等级图标 */
31
- showLevel: { type: Boolean, default: false }
32
- };
33
-
34
- export type AvatarProps = ExtractPropTypes<typeof AvatarProps>;
1
+ import { type ExtractPropTypes, type PropType } from 'vue';
2
+ import type { ImgMode } from '../../types/global';
3
+ import { baseProps } from '../common/props';
4
+
5
+ // u-avatar 组件 props
6
+ export const AvatarProps = {
7
+ ...baseProps,
8
+ /** 背景颜色 */
9
+ bgColor: { type: String, default: 'transparent' },
10
+ /** 头像路径 */
11
+ src: { type: String, default: '' },
12
+ /** 尺寸,large-大,default-中等,mini-小,如果为数值,则单位为rpx,宽度等于高度 */
13
+ size: { type: [String, Number], default: 'default' },
14
+ /** 头像模型,square-带圆角方形,circle-圆形 */
15
+ mode: { type: String, default: 'circle' },
16
+ /** 文字内容 */
17
+ text: { type: String, default: '' },
18
+ /** 图片的裁剪模型 */
19
+ imgMode: { type: String as PropType<ImgMode>, default: 'aspectFill' },
20
+ /** 标识符 */
21
+ index: { type: [String, Number], default: '' },
22
+ /** 右上角性别角标,man-男,woman-女 */
23
+ sexIcon: { type: String as PropType<'man' | 'woman'>, default: 'man' },
24
+ /** 右下角的等级图标 */
25
+ levelIcon: { type: String, default: 'level' },
26
+ /** 右下角等级图标背景颜色 */
27
+ levelBgColor: { type: String, default: '' },
28
+ /** 右上角性别图标的背景颜色 */
29
+ sexBgColor: { type: String, default: '' },
30
+ /** 是否显示性别图标 */
31
+ showSex: { type: Boolean, default: false },
32
+ /** 是否显示等级图标 */
33
+ showLevel: { type: Boolean, default: false }
34
+ };
35
+
36
+ export type AvatarProps = ExtractPropTypes<typeof AvatarProps>;