hy-app 0.5.10 → 0.5.12

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 (293) hide show
  1. package/components/hy-action-sheet/hy-action-sheet.vue +200 -200
  2. package/components/hy-action-sheet/props.ts +71 -71
  3. package/components/hy-action-sheet/typing.d.ts +64 -64
  4. package/components/hy-address-picker/hy-address-picker.vue +1 -1
  5. package/components/hy-address-picker/props.ts +100 -100
  6. package/components/hy-address-picker/typing.d.ts +16 -16
  7. package/components/hy-avatar/hy-avatar.vue +163 -163
  8. package/components/hy-avatar/props.ts +78 -78
  9. package/components/hy-avatar/typing.d.ts +4 -4
  10. package/components/hy-back-top/hy-back-top.vue +90 -90
  11. package/components/hy-back-top/props.ts +60 -60
  12. package/components/hy-back-top/typing.d.ts +4 -4
  13. package/components/hy-badge/hy-badge.vue +97 -97
  14. package/components/hy-badge/props.ts +82 -82
  15. package/components/hy-badge/typing.d.ts +9 -9
  16. package/components/hy-button/hy-button.vue +17 -3
  17. package/components/hy-button/index.scss +24 -1
  18. package/components/hy-button/props.ts +9 -1
  19. package/components/hy-button/typing.d.ts +5 -0
  20. package/components/hy-calendar/header.vue +60 -60
  21. package/components/hy-calendar/hy-calendar.vue +362 -362
  22. package/components/hy-calendar/month.vue +537 -537
  23. package/components/hy-calendar/props.ts +159 -159
  24. package/components/hy-calendar/typing.d.ts +6 -6
  25. package/components/hy-card/hy-card.vue +161 -161
  26. package/components/hy-card/props.ts +122 -122
  27. package/components/hy-card/typing.d.ts +12 -12
  28. package/components/hy-cell/hy-cell.vue +33 -33
  29. package/components/hy-cell/props.ts +54 -54
  30. package/components/hy-cell/typing.d.ts +4 -4
  31. package/components/hy-cell-item/hy-cell-item.vue +161 -161
  32. package/components/hy-cell-item/props.ts +66 -66
  33. package/components/hy-cell-item/typing.d.ts +7 -7
  34. package/components/hy-check-button/hy-check-button.vue +96 -96
  35. package/components/hy-check-button/props.ts +74 -74
  36. package/components/hy-check-button/typing.d.ts +44 -44
  37. package/components/hy-checkbox/hy-checkbox.vue +227 -227
  38. package/components/hy-checkbox/props.ts +96 -96
  39. package/components/hy-checkbox/typing.d.ts +8 -8
  40. package/components/hy-checkbox-group/hy-checkbox-group.vue +45 -45
  41. package/components/hy-checkbox-group/props.ts +80 -80
  42. package/components/hy-checkbox-group/typing.d.ts +6 -6
  43. package/components/hy-checkbox-item/hy-checkbox-item.vue +199 -199
  44. package/components/hy-checkbox-item/props.ts +24 -24
  45. package/components/hy-checkbox-item/typing.d.ts +7 -7
  46. package/components/hy-code-input/hy-code-input.vue +231 -231
  47. package/components/hy-code-input/props.ts +88 -88
  48. package/components/hy-code-input/typing.d.ts +8 -8
  49. package/components/hy-config-provider/hy-config-provider.vue +53 -53
  50. package/components/hy-config-provider/props.ts +28 -28
  51. package/components/hy-count-down/hy-count-down.vue +170 -170
  52. package/components/hy-count-down/index.ts +52 -52
  53. package/components/hy-count-down/props.ts +32 -32
  54. package/components/hy-count-down/typing.d.ts +14 -14
  55. package/components/hy-count-to/hy-count-to.vue +218 -218
  56. package/components/hy-count-to/props.ts +62 -62
  57. package/components/hy-count-to/typing.d.ts +4 -4
  58. package/components/hy-coupon/hy-coupon.vue +12 -1
  59. package/components/hy-coupon/index.scss +167 -171
  60. package/components/hy-coupon/props.ts +6 -1
  61. package/components/hy-coupon/typing.d.ts +14 -14
  62. package/components/hy-datetime-picker/hy-datetime-picker.vue +521 -521
  63. package/components/hy-datetime-picker/props.ts +142 -142
  64. package/components/hy-datetime-picker/typing.d.ts +20 -20
  65. package/components/hy-divider/hy-divider.vue +132 -132
  66. package/components/hy-divider/props.ts +80 -80
  67. package/components/hy-dropdown/hy-dropdown.vue +60 -60
  68. package/components/hy-dropdown/props.ts +40 -40
  69. package/components/hy-dropdown-item/hy-dropdown-item.vue +206 -206
  70. package/components/hy-dropdown-item/props.ts +21 -21
  71. package/components/hy-dropdown-item/typing.d.ts +17 -17
  72. package/components/hy-empty/hy-empty.vue +116 -116
  73. package/components/hy-empty/icon.ts +72 -72
  74. package/components/hy-empty/props.ts +60 -60
  75. package/components/hy-empty/typing.d.ts +38 -38
  76. package/components/hy-flex/hy-flex.vue +53 -53
  77. package/components/hy-flex/index.scss +8 -8
  78. package/components/hy-flex/props.ts +58 -58
  79. package/components/hy-flex/typing.d.ts +21 -21
  80. package/components/hy-float-button/hy-float-button.vue +378 -378
  81. package/components/hy-float-button/props.ts +111 -111
  82. package/components/hy-float-button/typing.d.ts +35 -35
  83. package/components/hy-folding-panel/hy-folding-panel.vue +109 -109
  84. package/components/hy-folding-panel/props.ts +42 -42
  85. package/components/hy-folding-panel/typing.d.ts +19 -19
  86. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +183 -183
  87. package/components/hy-folding-panel-item/props.ts +81 -81
  88. package/components/hy-folding-panel-item/typing.d.ts +37 -37
  89. package/components/hy-form/props.ts +37 -37
  90. package/components/hy-form/typing.d.ts +41 -41
  91. package/components/hy-form-group/hy-form-group.vue +333 -333
  92. package/components/hy-form-group/props.ts +105 -105
  93. package/components/hy-form-item/hy-form-item.vue +176 -176
  94. package/components/hy-form-item/index.scss +0 -1
  95. package/components/hy-form-item/props.ts +25 -25
  96. package/components/hy-form-item/typing.d.ts +30 -30
  97. package/components/hy-grid/hy-grid.vue +109 -109
  98. package/components/hy-grid/props.ts +60 -60
  99. package/components/hy-grid/typing.d.ts +35 -35
  100. package/components/hy-icon/hy-icon.vue +112 -112
  101. package/components/hy-icon/index.scss +0 -3
  102. package/components/hy-icon/props.ts +79 -79
  103. package/components/hy-icon/typing.d.ts +9 -9
  104. package/components/hy-image/hy-image.vue +192 -192
  105. package/components/hy-image/props.ts +107 -107
  106. package/components/hy-image/typing.d.ts +10 -10
  107. package/components/hy-input/hy-input.vue +1 -1
  108. package/components/hy-input/index.scss +1 -2
  109. package/components/hy-input/props.ts +3 -3
  110. package/components/hy-input/typing.d.ts +31 -31
  111. package/components/hy-line/hy-line.vue +55 -55
  112. package/components/hy-line/props.ts +43 -43
  113. package/components/hy-line-progress/hy-line-progress.vue +102 -102
  114. package/components/hy-line-progress/props.ts +33 -33
  115. package/components/hy-list/hy-list.vue +226 -226
  116. package/components/hy-list/props.ts +69 -69
  117. package/components/hy-list/typing.d.ts +6 -6
  118. package/components/hy-loading/hy-loading.vue +107 -107
  119. package/components/hy-loading/props.ts +65 -65
  120. package/components/hy-menu/hy-menu.vue +159 -159
  121. package/components/hy-menu/props.ts +44 -44
  122. package/components/hy-menu/typing.d.ts +34 -34
  123. package/components/hy-modal/hy-modal.vue +173 -173
  124. package/components/hy-modal/props.ts +90 -90
  125. package/components/hy-modal/typing.d.ts +11 -11
  126. package/components/hy-navbar/hy-navbar.vue +144 -144
  127. package/components/hy-navbar/props.ts +78 -78
  128. package/components/hy-navbar/typing.d.ts +6 -6
  129. package/components/hy-notice-bar/hy-column-notice.vue +94 -94
  130. package/components/hy-notice-bar/hy-notice-bar.vue +96 -96
  131. package/components/hy-notice-bar/hy-row-notice.vue +1 -1
  132. package/components/hy-notice-bar/props.ts +85 -85
  133. package/components/hy-notice-bar/typing.d.ts +8 -8
  134. package/components/hy-notify/hy-notify.vue +174 -174
  135. package/components/hy-notify/props.ts +51 -51
  136. package/components/hy-number-step/hy-number-step.vue +367 -367
  137. package/components/hy-number-step/props.ts +112 -112
  138. package/components/hy-number-step/typing.d.ts +16 -16
  139. package/components/hy-overlay/hy-overlay.vue +60 -60
  140. package/components/hy-overlay/props.ts +33 -33
  141. package/components/hy-overlay/typing.d.ts +4 -4
  142. package/components/hy-pagination/hy-pagination.vue +135 -135
  143. package/components/hy-pagination/props.ts +55 -55
  144. package/components/hy-pagination/typing.d.ts +10 -10
  145. package/components/hy-parse/node/node.vue +619 -422
  146. package/components/hy-parse/parser.js +1253 -1060
  147. package/components/hy-picker/hy-picker.vue +7 -5
  148. package/components/hy-picker/props.ts +7 -2
  149. package/components/hy-picker/typing.d.ts +9 -5
  150. package/components/hy-popover/hy-popover.vue +251 -251
  151. package/components/hy-popover/props.ts +51 -51
  152. package/components/hy-popover/typing.d.ts +39 -39
  153. package/components/hy-popup/hy-popup.vue +197 -197
  154. package/components/hy-popup/props.ts +85 -85
  155. package/components/hy-popup/typing.d.ts +10 -10
  156. package/components/hy-price/hy-price.vue +79 -79
  157. package/components/hy-price/props.ts +54 -54
  158. package/components/hy-price/typing.d.ts +4 -4
  159. package/components/hy-qrcode/hy-qrcode.vue +216 -216
  160. package/components/hy-qrcode/props.ts +70 -70
  161. package/components/hy-qrcode/qrcode.js +1304 -1304
  162. package/components/hy-qrcode/typing.d.ts +8 -8
  163. package/components/hy-radio/hy-radio.vue +226 -226
  164. package/components/hy-radio/props.ts +1 -1
  165. package/components/hy-radio/typing.d.ts +8 -8
  166. package/components/hy-rate/hy-rate.vue +239 -239
  167. package/components/hy-rate/props.ts +77 -77
  168. package/components/hy-rate/typing.d.ts +6 -6
  169. package/components/hy-read-more/hy-read-more.vue +130 -130
  170. package/components/hy-read-more/props.ts +45 -45
  171. package/components/hy-read-more/typing.d.ts +6 -6
  172. package/components/hy-rolling-num/hy-rolling-num.vue +188 -188
  173. package/components/hy-rolling-num/props.ts +68 -68
  174. package/components/hy-scroll-list/hy-scroll-list.vue +123 -123
  175. package/components/hy-scroll-list/props.ts +22 -22
  176. package/components/hy-scroll-list/typing.d.ts +6 -6
  177. package/components/hy-search/hy-search.vue +221 -221
  178. package/components/hy-search/props.ts +131 -131
  179. package/components/hy-search/typing.d.ts +22 -22
  180. package/components/hy-signature/hy-signature.vue +640 -640
  181. package/components/hy-signature/props.ts +118 -118
  182. package/components/hy-signature/typing.d.ts +93 -93
  183. package/components/hy-slider/hy-slider.vue +444 -444
  184. package/components/hy-slider/props.ts +77 -77
  185. package/components/hy-slider/typing.d.ts +10 -10
  186. package/components/hy-status-bar/hy-status-bar.vue +41 -41
  187. package/components/hy-status-bar/props.ts +8 -8
  188. package/components/hy-status-bar/typing.d.ts +12 -12
  189. package/components/hy-steps/hy-steps.vue +267 -267
  190. package/components/hy-steps/props.ts +49 -49
  191. package/components/hy-steps/typing.d.ts +21 -21
  192. package/components/hy-sticky/hy-sticky.vue +226 -226
  193. package/components/hy-sticky/props.ts +24 -24
  194. package/components/hy-sticky/typing.d.ts +4 -4
  195. package/components/hy-submit-bar/hy-submit-bar.vue +189 -189
  196. package/components/hy-submit-bar/props.ts +91 -91
  197. package/components/hy-submit-bar/typing.d.ts +24 -24
  198. package/components/hy-subsection/hy-subsection.vue +207 -207
  199. package/components/hy-subsection/props.ts +52 -52
  200. package/components/hy-subsection/typing.d.ts +13 -13
  201. package/components/hy-swipe-action/hy-swipe-action.vue +323 -323
  202. package/components/hy-swipe-action/index.ts +25 -25
  203. package/components/hy-swipe-action/props.ts +47 -47
  204. package/components/hy-swipe-action/typing.d.ts +25 -25
  205. package/components/hy-swiper/hy-swiper-indicator.vue +75 -75
  206. package/components/hy-swiper/hy-swiper.vue +224 -224
  207. package/components/hy-swiper/props.ts +128 -128
  208. package/components/hy-swiper/typing.d.ts +26 -26
  209. package/components/hy-switch/hy-switch.vue +173 -173
  210. package/components/hy-switch/props.ts +61 -61
  211. package/components/hy-switch/typing.d.ts +8 -8
  212. package/components/hy-tabbar/hy-tabbar.vue +136 -136
  213. package/components/hy-tabbar/props.ts +59 -59
  214. package/components/hy-tabbar/typing.d.ts +21 -21
  215. package/components/hy-tabbar-group/hy-tabbar-group.vue +87 -87
  216. package/components/hy-tabbar-group/props.ts +78 -78
  217. package/components/hy-tabbar-group/typing.d.ts +16 -16
  218. package/components/hy-tabbar-item/hy-tabbar-item.vue +103 -103
  219. package/components/hy-tabbar-item/typing.d.ts +10 -10
  220. package/components/hy-table/hy-table.vue +492 -271
  221. package/components/hy-table/index.scss +134 -159
  222. package/components/hy-table/props.ts +22 -7
  223. package/components/hy-table/typing.d.ts +6 -11
  224. package/components/hy-tabs/hy-tabs.vue +1 -1
  225. package/components/hy-tabs/props.ts +77 -77
  226. package/components/hy-tabs/typing.d.ts +33 -33
  227. package/components/hy-tag/hy-tag.vue +174 -174
  228. package/components/hy-tag/props.ts +89 -89
  229. package/components/hy-tag/typing.d.ts +13 -13
  230. package/components/hy-text/hy-text.vue +3 -3
  231. package/components/hy-text/props.ts +1 -1
  232. package/components/hy-text/typing.d.ts +6 -6
  233. package/components/hy-textarea/hy-textarea.vue +3 -2
  234. package/components/hy-textarea/index.scss +2 -3
  235. package/components/hy-textarea/props.ts +116 -116
  236. package/components/hy-textarea/typing.d.ts +22 -22
  237. package/components/hy-toast/hy-toast.vue +1 -1
  238. package/components/hy-toast/typing.d.ts +38 -38
  239. package/components/hy-tooltip/hy-tooltip.vue +277 -277
  240. package/components/hy-tooltip/props.ts +78 -78
  241. package/components/hy-tooltip/typing.d.ts +4 -4
  242. package/components/hy-transition/hy-transition.vue +157 -157
  243. package/components/hy-transition/props.ts +32 -32
  244. package/components/hy-transition/typing.d.ts +16 -16
  245. package/components/hy-upload/hy-upload.vue +385 -385
  246. package/components/hy-upload/props.ts +132 -132
  247. package/components/hy-upload/typing.d.ts +65 -65
  248. package/components/hy-warn/hy-warn.vue +115 -115
  249. package/components/hy-warn/props.ts +49 -49
  250. package/components/hy-warn/typing.d.ts +6 -6
  251. package/components/hy-waterfall/hy-waterfall.vue +191 -191
  252. package/components/hy-waterfall/props.ts +21 -21
  253. package/components/hy-watermark/hy-watermark.vue +978 -978
  254. package/components/hy-watermark/props.ts +104 -104
  255. package/components/index.ts +183 -183
  256. package/global.d.ts +91 -91
  257. package/index.ts +1 -1
  258. package/libs/api/http.ts +140 -140
  259. package/libs/api/index.ts +1 -1
  260. package/libs/common/index.ts +2 -2
  261. package/libs/common/queue.ts +28 -28
  262. package/libs/composables/index.ts +6 -6
  263. package/libs/composables/usePopover.ts +241 -241
  264. package/libs/composables/useQueue.ts +53 -53
  265. package/libs/composables/useShakeService.ts +64 -64
  266. package/libs/composables/useShare.ts +42 -42
  267. package/libs/composables/useToast.ts +45 -45
  268. package/libs/composables/useTouch.ts +51 -51
  269. package/libs/config/color.ts +7 -7
  270. package/libs/config/icon.ts +430 -430
  271. package/libs/config/index.ts +2 -2
  272. package/libs/css/iconfont.css +443 -443
  273. package/libs/css/theme.scss +1 -0
  274. package/libs/css/vars.scss +2 -2
  275. package/libs/global/index.ts +6 -6
  276. package/libs/global/register-properties.ts +37 -37
  277. package/libs/index.ts +7 -7
  278. package/libs/typing/index.ts +4 -4
  279. package/libs/typing/modules/common.d.ts +136 -136
  280. package/libs/typing/modules/enum.ts +67 -67
  281. package/libs/typing/modules/form.ts +5 -1
  282. package/libs/typing/modules/http.ts +17 -17
  283. package/libs/typing/modules/icon.d.ts +366 -366
  284. package/libs/typing/modules/rect.ts +10 -10
  285. package/libs/utils/base64.ts +119 -119
  286. package/libs/utils/calendar.js +1021 -1021
  287. package/libs/utils/colorGradient.ts +112 -112
  288. package/libs/utils/index.ts +5 -5
  289. package/libs/utils/inside.ts +11 -25
  290. package/libs/utils/inspect.ts +171 -171
  291. package/libs/utils/utils.ts +521 -521
  292. package/package.json +18 -18
  293. package/web-types.json +1 -1
@@ -1,174 +1,174 @@
1
- <template>
2
- <hy-transition mode="fade" :show="show" :custom-style="{ display: 'inline-block' }">
3
- <view class="hy-tag__wrapper cursor-pointer">
4
- <view :class="tagClass" @tap.stop="clickHandler" :style="tagStyle">
5
- <slot name="icon">
6
- <hy-icon
7
- v-if="icon?.name"
8
- :name="icon?.name"
9
- :color="hyIconColor"
10
- :size="hyIconSize"
11
- :bold="icon?.bold"
12
- :customPrefix="icon?.customPrefix"
13
- :imgMode="icon?.imgMode"
14
- :width="icon?.width"
15
- :height="icon?.height"
16
- :top="icon?.top"
17
- :stop="icon?.stop"
18
- :round="icon?.round"
19
- :customStyle="Object.assign({ marginRight: '3px' }, icon?.customStyle)"
20
- ></hy-icon>
21
- </slot>
22
- <text :class="textClass" :style="textStyle">
23
- <slot>
24
- {{ text }}
25
- </slot>
26
- </text>
27
- </view>
28
- <view
29
- :class="['hy-tag__close', `hy-tag__close--${size}`]"
30
- v-if="closable"
31
- @tap.stop="closeHandler"
32
- :style="{ backgroundColor: closeColor }"
33
- >
34
- <hy-icon :name="IconConfig.CLOSE" :size="closeSize" color="#ffffff"></hy-icon>
35
- </view>
36
- </view>
37
- </hy-transition>
38
- </template>
39
-
40
- <script lang="ts">
41
- export default {
42
- name: 'hy-tag',
43
- options: {
44
- addGlobalClass: true,
45
- virtualHost: true,
46
- styleIsolation: 'shared'
47
- }
48
- }
49
- </script>
50
-
51
- <script setup lang="ts">
52
- import { computed } from 'vue'
53
- import type { CSSProperties } from 'vue'
54
- import type { ITagEmits } from './typing'
55
- import { IconConfig, colorGradient } from '../../libs'
56
- import tagProps from './props'
57
-
58
- // 组件
59
- import HyTransition from '../hy-transition/hy-transition.vue'
60
- import HyIcon from '../hy-icon/hy-icon.vue'
61
-
62
- /**
63
- * tag组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
64
- * @displayName hy-tag
65
- */
66
- defineOptions({})
67
-
68
- const props = defineProps(tagProps)
69
- const emit = defineEmits<ITagEmits>()
70
-
71
- /**
72
- * @description tag类名
73
- * */
74
- const tagClass = computed((): string[] => {
75
- let classes = ['hy-tag', `hy-tag--${props.shape}`, `hy-tag--${props.size}`, props.customClass]
76
- if (props.disabled) {
77
- classes.push('hy-tag--disabled')
78
- } else {
79
- const arr = [
80
- props.plain ? `hy-tag--${props.type}--plain` : `hy-tag--${props.type}`,
81
- props.plain && props.plainFill && `hy-tag--${props.type}--plain__fill`
82
- ].filter(Boolean)
83
- classes = classes.concat(arr as string[])
84
- }
85
- return classes
86
- })
87
- /**
88
- * @description tag样式
89
- * */
90
- const tagStyle = computed<CSSProperties>(() => {
91
- const style: CSSProperties = {
92
- marginRight: props.closable ? '10px' : 0,
93
- marginTop: props.closable ? '10px' : 0,
94
- background: props.bgColor,
95
- borderColor: props.borderColor
96
- }
97
-
98
- if (props.color) {
99
- if (props.plain) {
100
- style.borderColor = props.color
101
- if (props.plainFill) {
102
- style.background = colorGradient(props.color, '#FFFFFF', 100)[90]
103
- }
104
- } else {
105
- style.background = props.color
106
- style.borderColor = props.color
107
- }
108
- }
109
-
110
- return Object.assign(style, props.customStyle)
111
- })
112
-
113
- /**
114
- * @description 文本样式
115
- * */
116
- const textStyle = computed(() => {
117
- const style: CSSProperties = {}
118
- if (props.color && props.plain) style.color = props.color
119
- return style
120
- })
121
- /**
122
- * @description 文本类名
123
- * */
124
- const textClass = computed((): string[] => {
125
- return [`hy-tag__text`, `hy-tag__text--${props.size}`]
126
- })
127
-
128
- /**
129
- * @description 关闭图标icon大小
130
- */
131
- const closeSize = computed(() => {
132
- return props.size === 'large' ? 15 : props.size === 'medium' ? 13 : 11
133
- })
134
- /**
135
- * @description 图标大小
136
- * */
137
- const hyIconSize = computed(() => {
138
- if (props.icon?.size) {
139
- return props.icon.size
140
- } else {
141
- return props.size === 'large' ? 18 : props.size === 'medium' ? 14 : 10
142
- }
143
- })
144
- /**
145
- * @description 图标颜色
146
- * */
147
- const hyIconColor = computed(() => {
148
- return props.icon?.color ? props.icon.color : props.plain ? props.type : '#ffffff'
149
- })
150
-
151
- /**
152
- * @description 点击关闭按钮
153
- * */
154
- const closeHandler = () => {
155
- if (!props.disabled) {
156
- emit('close', props.text)
157
- }
158
- }
159
- /**
160
- * @description 点击标签
161
- * */
162
- const clickHandler = () => {
163
- if (!props.disabled) {
164
- emit('click', {
165
- value: props.text,
166
- name: props.name
167
- })
168
- }
169
- }
170
- </script>
171
-
172
- <style lang="scss" scoped>
173
- @import './index.scss';
174
- </style>
1
+ <template>
2
+ <hy-transition mode="fade" :show="show" :custom-style="{ display: 'inline-block' }">
3
+ <view class="hy-tag__wrapper cursor-pointer">
4
+ <view :class="tagClass" @tap.stop="clickHandler" :style="tagStyle">
5
+ <slot name="icon">
6
+ <hy-icon
7
+ v-if="icon?.name"
8
+ :name="icon?.name"
9
+ :color="hyIconColor"
10
+ :size="hyIconSize"
11
+ :bold="icon?.bold"
12
+ :customPrefix="icon?.customPrefix"
13
+ :imgMode="icon?.imgMode"
14
+ :width="icon?.width"
15
+ :height="icon?.height"
16
+ :top="icon?.top"
17
+ :stop="icon?.stop"
18
+ :round="icon?.round"
19
+ :customStyle="Object.assign({ marginRight: '3px' }, icon?.customStyle)"
20
+ ></hy-icon>
21
+ </slot>
22
+ <text :class="textClass" :style="textStyle">
23
+ <slot>
24
+ {{ text }}
25
+ </slot>
26
+ </text>
27
+ </view>
28
+ <view
29
+ :class="['hy-tag__close', `hy-tag__close--${size}`]"
30
+ v-if="closable"
31
+ @tap.stop="closeHandler"
32
+ :style="{ backgroundColor: closeColor }"
33
+ >
34
+ <hy-icon :name="IconConfig.CLOSE" :size="closeSize" color="#ffffff"></hy-icon>
35
+ </view>
36
+ </view>
37
+ </hy-transition>
38
+ </template>
39
+
40
+ <script lang="ts">
41
+ export default {
42
+ name: 'hy-tag',
43
+ options: {
44
+ addGlobalClass: true,
45
+ virtualHost: true,
46
+ styleIsolation: 'shared'
47
+ }
48
+ }
49
+ </script>
50
+
51
+ <script setup lang="ts">
52
+ import { computed } from 'vue'
53
+ import type { CSSProperties } from 'vue'
54
+ import type { ITagEmits } from './typing'
55
+ import { IconConfig, colorGradient } from '../../libs'
56
+ import tagProps from './props'
57
+
58
+ // 组件
59
+ import HyTransition from '../hy-transition/hy-transition.vue'
60
+ import HyIcon from '../hy-icon/hy-icon.vue'
61
+
62
+ /**
63
+ * tag组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
64
+ * @displayName hy-tag
65
+ */
66
+ defineOptions({})
67
+
68
+ const props = defineProps(tagProps)
69
+ const emit = defineEmits<ITagEmits>()
70
+
71
+ /**
72
+ * @description tag类名
73
+ * */
74
+ const tagClass = computed((): string[] => {
75
+ let classes = ['hy-tag', `hy-tag--${props.shape}`, `hy-tag--${props.size}`, props.customClass]
76
+ if (props.disabled) {
77
+ classes.push('hy-tag--disabled')
78
+ } else {
79
+ const arr = [
80
+ props.plain ? `hy-tag--${props.type}--plain` : `hy-tag--${props.type}`,
81
+ props.plain && props.plainFill && `hy-tag--${props.type}--plain__fill`
82
+ ].filter(Boolean)
83
+ classes = classes.concat(arr as string[])
84
+ }
85
+ return classes
86
+ })
87
+ /**
88
+ * @description tag样式
89
+ * */
90
+ const tagStyle = computed<CSSProperties>(() => {
91
+ const style: CSSProperties = {
92
+ marginRight: props.closable ? '10px' : 0,
93
+ marginTop: props.closable ? '10px' : 0,
94
+ background: props.bgColor,
95
+ borderColor: props.borderColor
96
+ }
97
+
98
+ if (props.color) {
99
+ if (props.plain) {
100
+ style.borderColor = props.color
101
+ if (props.plainFill) {
102
+ style.background = colorGradient(props.color, '#FFFFFF', 100)[90]
103
+ }
104
+ } else {
105
+ style.background = props.color
106
+ style.borderColor = props.color
107
+ }
108
+ }
109
+
110
+ return Object.assign(style, props.customStyle)
111
+ })
112
+
113
+ /**
114
+ * @description 文本样式
115
+ * */
116
+ const textStyle = computed(() => {
117
+ const style: CSSProperties = {}
118
+ if (props.color && props.plain) style.color = props.color
119
+ return style
120
+ })
121
+ /**
122
+ * @description 文本类名
123
+ * */
124
+ const textClass = computed((): string[] => {
125
+ return [`hy-tag__text`, `hy-tag__text--${props.size}`]
126
+ })
127
+
128
+ /**
129
+ * @description 关闭图标icon大小
130
+ */
131
+ const closeSize = computed(() => {
132
+ return props.size === 'large' ? 15 : props.size === 'medium' ? 13 : 11
133
+ })
134
+ /**
135
+ * @description 图标大小
136
+ * */
137
+ const hyIconSize = computed(() => {
138
+ if (props.icon?.size) {
139
+ return props.icon.size
140
+ } else {
141
+ return props.size === 'large' ? 18 : props.size === 'medium' ? 14 : 10
142
+ }
143
+ })
144
+ /**
145
+ * @description 图标颜色
146
+ * */
147
+ const hyIconColor = computed(() => {
148
+ return props.icon?.color ? props.icon.color : props.plain ? props.type : '#ffffff'
149
+ })
150
+
151
+ /**
152
+ * @description 点击关闭按钮
153
+ * */
154
+ const closeHandler = () => {
155
+ if (!props.disabled) {
156
+ emit('close', props.text)
157
+ }
158
+ }
159
+ /**
160
+ * @description 点击标签
161
+ * */
162
+ const clickHandler = () => {
163
+ if (!props.disabled) {
164
+ emit('click', {
165
+ value: props.text,
166
+ name: props.name
167
+ })
168
+ }
169
+ }
170
+ </script>
171
+
172
+ <style lang="scss" scoped>
173
+ @import './index.scss';
174
+ </style>
@@ -1,89 +1,89 @@
1
- import type { CSSProperties, PropType } from 'vue'
2
- import type { HyIconProps } from '../hy-icon/typing'
3
-
4
- const tagProps = {
5
- /** 标签的文字内容 */
6
- text: {
7
- type: String,
8
- default: ''
9
- },
10
- /** 点击需要传得值 */
11
- name: {
12
- type: [String, Number],
13
- default: ''
14
- },
15
- /**
16
- * 标签类型
17
- * @values info,primary,success,error,warning
18
- * */
19
- type: {
20
- type: String,
21
- default: 'primary'
22
- },
23
- /** 禁用点击标签 */
24
- disabled: {
25
- type: Boolean,
26
- default: false
27
- },
28
- /**
29
- * 标签的大小
30
- * @values large,medium,small,mini
31
- * */
32
- size: {
33
- type: String,
34
- default: 'medium'
35
- },
36
- /**
37
- * tag的形状
38
- * @values circle,square,opposite
39
- * */
40
- shape: {
41
- type: String,
42
- default: 'square'
43
- },
44
- /** 背景颜色,默认为空字符串,即不处理 */
45
- bgColor: String,
46
- /** 标签字体颜色,默认为空字符串,即不处理 */
47
- color: String,
48
- /** 镂空形式标签的边框颜色 */
49
- borderColor: String,
50
- /** 关闭按钮图标的颜色 */
51
- closeColor: {
52
- type: String,
53
- default: '#C6C7CB'
54
- },
55
- /** 镂空时是否填充背景色 */
56
- plainFill: {
57
- type: Boolean,
58
- default: false
59
- },
60
- /** 是否镂空 */
61
- plain: {
62
- type: Boolean,
63
- default: false
64
- },
65
- /** 是否可关闭,设置为true,文字右边会出现一个关闭图标 */
66
- closable: {
67
- type: Boolean,
68
- default: false
69
- },
70
- /** 标签显示与否 */
71
- show: {
72
- type: Boolean,
73
- default: true
74
- },
75
- /** 组件内置图标,或绝对路径的图片 */
76
- icon: Object as PropType<HyIconProps>,
77
- /** 定义需要用到的外部样式 */
78
- customStyle: {
79
- type: Object as PropType<CSSProperties>,
80
- default: () => {}
81
- },
82
- /** 自定义外部类名 */
83
- customClass: {
84
- type: String,
85
- default: ''
86
- }
87
- }
88
-
89
- export default tagProps
1
+ import type { CSSProperties, PropType } from 'vue'
2
+ import type { HyIconProps } from '../hy-icon/typing'
3
+
4
+ const tagProps = {
5
+ /** 标签的文字内容 */
6
+ text: {
7
+ type: String,
8
+ default: ''
9
+ },
10
+ /** 点击需要传得值 */
11
+ name: {
12
+ type: [String, Number],
13
+ default: ''
14
+ },
15
+ /**
16
+ * 标签类型
17
+ * @values info,primary,success,error,warning
18
+ * */
19
+ type: {
20
+ type: String,
21
+ default: 'primary'
22
+ },
23
+ /** 禁用点击标签 */
24
+ disabled: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ /**
29
+ * 标签的大小
30
+ * @values large,medium,small,mini
31
+ * */
32
+ size: {
33
+ type: String,
34
+ default: 'medium'
35
+ },
36
+ /**
37
+ * tag的形状
38
+ * @values circle,square,opposite
39
+ * */
40
+ shape: {
41
+ type: String,
42
+ default: 'square'
43
+ },
44
+ /** 背景颜色,默认为空字符串,即不处理 */
45
+ bgColor: String,
46
+ /** 标签字体颜色,默认为空字符串,即不处理 */
47
+ color: String,
48
+ /** 镂空形式标签的边框颜色 */
49
+ borderColor: String,
50
+ /** 关闭按钮图标的颜色 */
51
+ closeColor: {
52
+ type: String,
53
+ default: '#C6C7CB'
54
+ },
55
+ /** 镂空时是否填充背景色 */
56
+ plainFill: {
57
+ type: Boolean,
58
+ default: false
59
+ },
60
+ /** 是否镂空 */
61
+ plain: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ /** 是否可关闭,设置为true,文字右边会出现一个关闭图标 */
66
+ closable: {
67
+ type: Boolean,
68
+ default: false
69
+ },
70
+ /** 标签显示与否 */
71
+ show: {
72
+ type: Boolean,
73
+ default: true
74
+ },
75
+ /** 组件内置图标,或绝对路径的图片 */
76
+ icon: Object as PropType<HyIconProps>,
77
+ /** 定义需要用到的外部样式 */
78
+ customStyle: {
79
+ type: Object as PropType<CSSProperties>,
80
+ default: () => {}
81
+ },
82
+ /** 自定义外部类名 */
83
+ customClass: {
84
+ type: String,
85
+ default: ''
86
+ }
87
+ }
88
+
89
+ export default tagProps
@@ -1,13 +1,13 @@
1
- export type TagParamsVo = {
2
- /** 值 */
3
- value?: string
4
- /** 名称 */
5
- name?: string | number
6
- }
7
-
8
- export interface ITagEmits {
9
- /** 点击标签触发 */
10
- (e: 'click', params: TagParamsVo): void
11
- /** 关闭标签触发 */
12
- (e: 'close', value?: string): void
13
- }
1
+ export type TagParamsVo = {
2
+ /** 值 */
3
+ value?: string
4
+ /** 名称 */
5
+ name?: string | number
6
+ }
7
+
8
+ export interface ITagEmits {
9
+ /** 点击标签触发 */
10
+ (e: 'click', params: TagParamsVo): void
11
+ /** 关闭标签触发 */
12
+ (e: 'close', value?: string): void
13
+ }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view :class="['hy-text', customClass]" v-if="show" :style="wrapStyle" @tap="clickHandler">
2
+ <view :class="['hy-test', customClass]" v-if="show" :style="wrapStyle" @tap="clickHandler">
3
3
  <text
4
4
  :class="['hy-text__price', type && `hy-text__value--${type}`]"
5
5
  v-if="mode === 'price'"
@@ -85,7 +85,7 @@ import HyIcon from '../hy-icon/hy-icon.vue'
85
85
 
86
86
  /**
87
87
  * 此组件集成了文本类在项目中的常用功能,包括状态,拨打电话,格式化日期,*替换,超链接...等功能。 您大可不必在使用特殊文本时自己定义,text组件几乎涵盖您能使用的大部分场景。
88
- * @displayName hy-text
88
+ * @displayName hy-test
89
89
  */
90
90
  defineOptions({})
91
91
 
@@ -152,7 +152,7 @@ const value = computed(() => {
152
152
  return formatTime(props.text, 'yyyy-MM-dd')
153
153
  case 'phone':
154
154
  // 判断是否合法的手机号
155
- // !test.mobile(text) && error('手机号模式下,text参数需要为手机号码格式')
155
+ // !test.mobile(test) && error('手机号模式下,text参数需要为手机号码格式')
156
156
  if (typeof props.format === 'function') {
157
157
  // 如果用户传入的是函数,使用函数格式化
158
158
  return props.format(props.text)
@@ -23,7 +23,7 @@ const textProps = {
23
23
  suffixIcon: String,
24
24
  /**
25
25
  * 文本处理的匹配模式
26
- * @values text,price,phone,name,date,link
26
+ * @values test,price,phone,name,date,link
27
27
  * */
28
28
  mode: {
29
29
  type: String,
@@ -1,6 +1,6 @@
1
- export type TextMode = 'text' | 'price' | 'phone' | 'name' | 'date' | 'link'
2
-
3
- export interface ITextEmits {
4
- /** 点击触发 */
5
- (e: 'click', event: any): void
6
- }
1
+ export type TextMode = 'text' | 'price' | 'phone' | 'name' | 'date' | 'link'
2
+
3
+ export interface ITextEmits {
4
+ /** 点击触发 */
5
+ (e: 'click', event: any): void
6
+ }
@@ -4,7 +4,7 @@
4
4
  :style="[textareaStyle, borderStyle(isFocus)]"
5
5
  >
6
6
  <textarea
7
- :class="['hy-textarea__field', disabled && 'hy-textarea__disabled-text']"
7
+ :class="['hy-textarea__field', disabled && 'hy-textarea__disabled-test']"
8
8
  :value="innerValue"
9
9
  :style="`height: ${autoHeight ? 'auto' : addUnit(height)}`"
10
10
  :placeholder="placeholder || ''"
@@ -111,7 +111,8 @@ watch(
111
111
  // 组件的类名
112
112
  const textareaClass = computed(() => {
113
113
  let classes: string[] = []
114
- props.border === 'surround' && (classes = classes.concat(['hy-textarea__border', 'hy-textarea__radius']))
114
+ props.border === 'surround' &&
115
+ (classes = classes.concat(['hy-textarea__border', 'hy-textarea__radius']))
115
116
  props.border === 'bottom' &&
116
117
  (classes = classes.concat(['hy-border__bottom', 'hy-textarea__no-radius']))
117
118
  props.disabled && classes.push('hy-textarea__disabled')
@@ -7,10 +7,9 @@
7
7
  @include flex;
8
8
  flex: 1;
9
9
  padding: $hy-border-margin-padding-sm;
10
-
10
+
11
11
  @include e(border) {
12
- /* TODO: 先这样写,因为在某些pda中写$hy-border-line,边框不显示,后续排除问题 */
13
- border: 1px solid #e8e8e8;
12
+ border: $hy-border-line;
14
13
  }
15
14
 
16
15
  @include e(radius) {