hy-app 0.4.13 → 0.5.0

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 (211) hide show
  1. package/components/hy-action-sheet/hy-action-sheet.vue +155 -238
  2. package/components/hy-action-sheet/props.ts +68 -15
  3. package/components/hy-action-sheet/typing.d.ts +115 -115
  4. package/components/hy-address-picker/hy-address-picker.vue +185 -289
  5. package/components/hy-address-picker/props.ts +97 -21
  6. package/components/hy-address-picker/typing.d.ts +90 -89
  7. package/components/hy-avatar/hy-avatar.vue +121 -204
  8. package/components/hy-avatar/props.ts +76 -18
  9. package/components/hy-avatar/typing.d.ts +63 -62
  10. package/components/hy-back-top/hy-back-top.vue +65 -120
  11. package/components/hy-back-top/props.ts +57 -16
  12. package/components/hy-back-top/typing.d.ts +43 -42
  13. package/components/hy-badge/hy-badge.vue +66 -138
  14. package/components/hy-badge/props.ts +73 -17
  15. package/components/hy-badge/typing.d.ts +59 -58
  16. package/components/hy-button/hy-button.vue +226 -375
  17. package/components/hy-button/props.ts +129 -158
  18. package/components/hy-calendar/header.vue +48 -64
  19. package/components/hy-calendar/hy-calendar.vue +274 -438
  20. package/components/hy-calendar/month.vue +508 -516
  21. package/components/hy-calendar/props.ts +157 -35
  22. package/components/hy-calendar/typing.d.ts +129 -128
  23. package/components/hy-card/hy-card.vue +118 -240
  24. package/components/hy-card/index.scss +1 -2
  25. package/components/hy-card/props.ts +122 -27
  26. package/components/hy-card/typing.d.ts +119 -118
  27. package/components/hy-cell/hy-cell.vue +176 -258
  28. package/components/hy-cell/props.ts +71 -17
  29. package/components/hy-cell/typing.d.ts +87 -86
  30. package/components/hy-check-button/hy-check-button.vue +69 -139
  31. package/components/hy-check-button/props.ts +72 -18
  32. package/components/hy-check-button/typing.d.ts +74 -73
  33. package/components/hy-checkbox/hy-checkbox.vue +170 -263
  34. package/components/hy-checkbox/props.ts +94 -24
  35. package/components/hy-checkbox/typing.d.ts +72 -72
  36. package/components/hy-checkbox-group/hy-checkbox-group.vue +25 -100
  37. package/components/hy-checkbox-group/props.ts +80 -0
  38. package/components/hy-checkbox-group/typing.d.ts +65 -65
  39. package/components/hy-checkbox-item/hy-checkbox-item.vue +140 -177
  40. package/components/hy-checkbox-item/props.ts +24 -0
  41. package/components/hy-checkbox-item/typing.d.ts +4 -3
  42. package/components/hy-code-input/hy-code-input.vue +179 -262
  43. package/components/hy-code-input/props.ts +84 -18
  44. package/components/hy-code-input/typing.d.ts +71 -71
  45. package/components/hy-config-provider/hy-config-provider.vue +28 -50
  46. package/components/hy-config-provider/props.ts +26 -11
  47. package/components/hy-config-provider/typing.d.ts +20 -20
  48. package/components/hy-count-down/hy-count-down.vue +103 -131
  49. package/components/hy-count-down/props.ts +30 -8
  50. package/components/hy-count-down/typing.d.ts +25 -25
  51. package/components/hy-count-to/hy-count-to.vue +148 -213
  52. package/components/hy-count-to/props.ts +60 -15
  53. package/components/hy-count-to/typing.d.ts +46 -46
  54. package/components/hy-coupon/README.md +133 -0
  55. package/components/hy-coupon/hy-coupon.vue +180 -0
  56. package/components/hy-coupon/index.scss +553 -0
  57. package/components/hy-coupon/props.ts +129 -0
  58. package/components/hy-coupon/typing.d.ts +146 -0
  59. package/components/hy-datetime-picker/hy-datetime-picker.vue +415 -580
  60. package/components/hy-datetime-picker/props.ts +142 -32
  61. package/components/hy-datetime-picker/typing.d.ts +132 -132
  62. package/components/hy-divider/hy-divider.vue +90 -169
  63. package/components/hy-divider/props.ts +78 -19
  64. package/components/hy-divider/typing.d.ts +60 -60
  65. package/components/hy-dropdown/hy-dropdown.vue +37 -71
  66. package/components/hy-dropdown/props.ts +38 -15
  67. package/components/hy-dropdown/typing.d.ts +44 -44
  68. package/components/hy-dropdown-item/hy-dropdown-item.vue +141 -173
  69. package/components/hy-dropdown-item/props.ts +19 -8
  70. package/components/hy-empty/hy-empty.vue +75 -129
  71. package/components/hy-empty/props.ts +57 -15
  72. package/components/hy-empty/typing.d.ts +84 -84
  73. package/components/hy-flex/hy-flex.vue +33 -88
  74. package/components/hy-flex/props.ts +58 -0
  75. package/components/hy-flex/typing.d.ts +14 -16
  76. package/components/hy-float-button/hy-float-button.vue +289 -406
  77. package/components/hy-float-button/props.ts +109 -25
  78. package/components/hy-folding-panel/hy-folding-panel.vue +86 -374
  79. package/components/hy-folding-panel/props.ts +40 -15
  80. package/components/hy-folding-panel/typing.d.ts +52 -63
  81. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +186 -228
  82. package/components/hy-folding-panel-item/index.scss +87 -0
  83. package/components/hy-folding-panel-item/props.ts +81 -0
  84. package/components/hy-folding-panel-item/typing.d.ts +23 -0
  85. package/components/hy-form/hy-form.vue +172 -212
  86. package/components/hy-form/props.ts +37 -0
  87. package/components/hy-form/typing.d.ts +68 -61
  88. package/components/hy-form-group/typing.d.ts +74 -74
  89. package/components/hy-form-item/hy-form-item.vue +100 -129
  90. package/components/hy-form-item/props.ts +25 -0
  91. package/components/hy-form-item/typing.d.ts +40 -37
  92. package/components/hy-grid/hy-grid.vue +76 -132
  93. package/components/hy-grid/props.ts +58 -16
  94. package/components/hy-grid/typing.d.ts +66 -66
  95. package/components/hy-icon/hy-icon.vue +84 -161
  96. package/components/hy-icon/props.ts +76 -22
  97. package/components/hy-icon/typing.d.ts +83 -82
  98. package/components/hy-image/hy-image.vue +142 -272
  99. package/components/hy-image/props.ts +105 -23
  100. package/components/hy-image/typing.d.ts +84 -87
  101. package/components/hy-input/hy-input.vue +230 -421
  102. package/components/hy-input/props.ts +183 -35
  103. package/components/hy-input/typing.d.ts +169 -169
  104. package/components/hy-line/hy-line.vue +34 -72
  105. package/components/hy-line/props.ts +41 -10
  106. package/components/hy-line/typing.d.ts +29 -29
  107. package/components/hy-line-progress/hy-line-progress.vue +66 -101
  108. package/components/hy-line-progress/props.ts +31 -10
  109. package/components/hy-line-progress/typing.d.ts +29 -29
  110. package/components/hy-list/hy-list.vue +151 -220
  111. package/components/hy-list/props.ts +67 -16
  112. package/components/hy-list/typing.d.ts +52 -52
  113. package/components/hy-loading/hy-loading.vue +63 -119
  114. package/components/hy-loading/props.ts +63 -15
  115. package/components/hy-loading/typing.d.ts +49 -49
  116. package/components/hy-menu/hy-menu.vue +124 -166
  117. package/components/hy-menu/props.ts +42 -10
  118. package/components/hy-menu/typing.d.ts +60 -60
  119. package/components/hy-modal/hy-modal.vue +127 -218
  120. package/components/hy-modal/props.ts +89 -24
  121. package/components/hy-navbar/hy-navbar.vue +104 -177
  122. package/components/hy-navbar/props.ts +76 -22
  123. package/components/hy-navbar/typing.d.ts +81 -81
  124. package/components/hy-notice-bar/hy-notice-bar.vue +67 -144
  125. package/components/hy-notice-bar/props.ts +80 -19
  126. package/components/hy-notice-bar/typing.d.ts +62 -62
  127. package/components/hy-notify/hy-notify.vue +128 -177
  128. package/components/hy-notify/props.ts +49 -12
  129. package/components/hy-notify/typing.d.ts +45 -41
  130. package/components/hy-number-step/hy-number-step.vue +281 -394
  131. package/components/hy-number-step/props.ts +110 -27
  132. package/components/hy-number-step/typing.d.ts +120 -120
  133. package/components/hy-overlay/hy-overlay.vue +39 -66
  134. package/components/hy-overlay/props.ts +31 -8
  135. package/components/hy-pagination/hy-pagination.vue +100 -155
  136. package/components/hy-pagination/props.ts +53 -13
  137. package/components/hy-picker/hy-picker.vue +309 -430
  138. package/components/hy-picker/index.scss +8 -12
  139. package/components/hy-picker/props.ts +110 -26
  140. package/components/hy-popover/hy-popover.vue +190 -252
  141. package/components/hy-popover/props.ts +48 -10
  142. package/components/hy-popup/hy-popup.vue +162 -248
  143. package/components/hy-popup/props.ts +82 -18
  144. package/components/hy-price/hy-price.vue +45 -104
  145. package/components/hy-price/props.ts +52 -12
  146. package/components/hy-price/typing.d.ts +41 -36
  147. package/components/hy-qrcode/hy-qrcode.vue +115 -185
  148. package/components/hy-qrcode/props.ts +68 -18
  149. package/components/hy-qrcode/typing.d.ts +67 -66
  150. package/components/hy-radio/hy-radio.vue +161 -259
  151. package/components/hy-radio/props.ts +95 -25
  152. package/components/hy-radio/typing.d.ts +85 -84
  153. package/components/hy-rate/hy-rate.vue +185 -270
  154. package/components/hy-rate/props.ts +76 -18
  155. package/components/hy-rate/typing.d.ts +61 -60
  156. package/components/hy-read-more/hy-read-more.vue +93 -136
  157. package/components/hy-read-more/props.ts +43 -13
  158. package/components/hy-scroll-list/hy-scroll-list.vue +81 -102
  159. package/components/hy-scroll-list/props.ts +22 -11
  160. package/components/hy-search/hy-search.vue +155 -284
  161. package/components/hy-search/props.ts +130 -25
  162. package/components/hy-signature/hy-signature.vue +491 -635
  163. package/components/hy-signature/props.ts +115 -26
  164. package/components/hy-signature/typing.d.ts +138 -138
  165. package/components/hy-slider/hy-slider.vue +388 -477
  166. package/components/hy-slider/props.ts +75 -19
  167. package/components/hy-steps/hy-steps.vue +212 -279
  168. package/components/hy-steps/props.ts +47 -13
  169. package/components/hy-submit-bar/hy-submit-bar.vue +137 -222
  170. package/components/hy-submit-bar/props.ts +89 -20
  171. package/components/hy-submit-bar/typing.d.ts +86 -85
  172. package/components/hy-subsection/hy-subsection.vue +132 -185
  173. package/components/hy-subsection/props.ts +50 -17
  174. package/components/hy-subsection/typing.d.ts +52 -52
  175. package/components/hy-swipe-action/hy-swipe-action.vue +228 -283
  176. package/components/hy-swipe-action/props.ts +43 -18
  177. package/components/hy-swipe-action/typing.d.ts +46 -46
  178. package/components/hy-swiper/hy-swiper.vue +159 -286
  179. package/components/hy-swiper/props.ts +126 -28
  180. package/components/hy-swiper/typing.d.ts +115 -115
  181. package/components/hy-switch/hy-switch.vue +112 -176
  182. package/components/hy-switch/props.ts +60 -15
  183. package/components/hy-switch/typing.d.ts +63 -63
  184. package/components/hy-tabBar/hy-tabBar.vue +64 -60
  185. package/components/hy-tabs/hy-tabs.vue +277 -380
  186. package/components/hy-tabs/props.ts +75 -18
  187. package/components/hy-tag/hy-tag.vue +111 -204
  188. package/components/hy-tag/props.ts +81 -19
  189. package/components/hy-text/hy-text.vue +200 -322
  190. package/components/hy-text/props.ts +107 -28
  191. package/components/hy-textarea/hy-textarea.vue +147 -256
  192. package/components/hy-textarea/props.ts +112 -25
  193. package/components/hy-textarea/typing.d.ts +42 -42
  194. package/components/hy-toast/hy-toast.vue +135 -143
  195. package/components/hy-tooltip/hy-tooltip.vue +220 -306
  196. package/components/hy-tooltip/props.ts +79 -15
  197. package/components/hy-transition/hy-transition.vue +111 -138
  198. package/components/hy-transition/props.ts +30 -8
  199. package/components/hy-upload/hy-upload.vue +320 -469
  200. package/components/hy-upload/props.ts +130 -27
  201. package/components/hy-warn/hy-warn.vue +80 -129
  202. package/components/hy-warn/props.ts +47 -12
  203. package/components/hy-waterfall/hy-waterfall.vue +139 -163
  204. package/components/hy-waterfall/props.ts +19 -7
  205. package/components/hy-watermark/hy-watermark.vue +762 -870
  206. package/components/hy-watermark/props.ts +103 -22
  207. package/global.d.ts +2 -0
  208. package/libs/css/theme.scss +3 -3
  209. package/package.json +2 -2
  210. package/web-types.json +1 -1
  211. package/components/hy-folding-panel/index.scss +0 -9
@@ -1,194 +1,117 @@
1
1
  <template>
2
- <view
3
- :class="`hy-icon ${customClass} hy-icon--${labelPos}`"
4
- @tap="clickHandler"
5
- >
6
- <image
7
- class="hy-icon__img"
8
- v-if="isImg"
9
- :src="name"
10
- :mode="imgMode"
11
- :style="[imgStyle, customStyle]"
12
- ></image>
13
- <text
14
- v-else
15
- class="hy-icon__icon"
16
- :class="uClasses"
17
- :style="[iconStyle, customStyle]"
18
- ></text>
19
- <!-- 这里进行空字符串判断,如果仅仅是v-if="label",可能会出现传递0的时候,结果也无法显示 -->
20
- <text
21
- v-if="label"
22
- class="hy-icon__label"
23
- :style="{
24
- color: labelColor,
25
- fontSize: addUnit(labelSize),
26
- marginLeft: labelPos == 'right' ? addUnit(space) : 0,
27
- marginTop: labelPos == 'bottom' ? addUnit(space) : 0,
28
- }"
29
- >
30
- {{ label }}
31
- </text>
32
- </view>
2
+ <view :class="`hy-icon ${customClass} hy-icon--${labelPos}`" @tap="clickHandler">
3
+ <image
4
+ class="hy-icon__img"
5
+ v-if="isImg"
6
+ :src="name"
7
+ :mode="imgMode"
8
+ :style="[imgStyle, customStyle]"
9
+ ></image>
10
+ <text
11
+ v-else
12
+ class="hy-icon__icon"
13
+ :class="uClasses"
14
+ :style="[iconStyle, customStyle]"
15
+ ></text>
16
+ <!-- 这里进行空字符串判断,如果仅仅是v-if="label",可能会出现传递0的时候,结果也无法显示 -->
17
+ <text
18
+ v-if="label"
19
+ class="hy-icon__label"
20
+ :style="{
21
+ color: labelColor,
22
+ fontSize: addUnit(labelSize),
23
+ marginLeft: labelPos == 'right' ? addUnit(space) : 0,
24
+ marginTop: labelPos == 'bottom' ? addUnit(space) : 0
25
+ }"
26
+ >
27
+ {{ label }}
28
+ </text>
29
+ </view>
33
30
  </template>
34
31
 
35
32
  <script lang="ts">
36
33
  export default {
37
- name: "hy-icon",
38
- options: {
39
- addGlobalClass: true,
40
- virtualHost: true,
41
- styleIsolation: "shared",
42
- },
43
- };
34
+ name: 'hy-icon',
35
+ options: {
36
+ addGlobalClass: true,
37
+ virtualHost: true,
38
+ styleIsolation: 'shared'
39
+ }
40
+ }
44
41
  </script>
45
42
 
46
43
  <script setup lang="ts">
47
- import { computed } from "vue";
48
- import type { PropType, CSSProperties } from "vue";
49
- import { addUnit } from "../../libs";
50
- import type { IIconEmits } from "./typing";
44
+ import { computed } from 'vue'
45
+ import type { CSSProperties } from 'vue'
46
+ import { addUnit } from '../../libs'
47
+ import type { IIconEmits } from './typing'
48
+ import iconProps from './props'
51
49
 
52
50
  /**
53
51
  * 基于字体的图标集,包含了大多数常见场景的图标,使用简单,开箱即用,无需自己再写每个图标的样式,直接简单配置即可。支持自定义图标。
54
52
  * @displayName hy-icon
55
53
  */
56
- defineOptions({});
54
+ defineOptions({})
57
55
 
58
- // const props = withDefaults(defineProps<IProps>(), defaultProps)
59
- const props = defineProps({
60
- /** 图标名称 */
61
- name: String,
62
- /** 图标颜色 */
63
- color: String,
64
- /** 图标字体大小,单位px */
65
- size: {
66
- type: [Number, String],
67
- default: "20px",
68
- },
69
- /** 是否显示粗体 */
70
- bold: {
71
- type: Boolean,
72
- default: false,
73
- },
74
- /** 点击图标的时候传递事件出去的index(用于区分点击了哪一个) */
75
- index: {
76
- type: String,
77
- default: "",
78
- },
79
- /** 自定义扩展前缀,方便用户扩展自己的图标库 */
80
- customPrefix: {
81
- type: String,
82
- default: "hy-icon",
83
- },
84
- /** 图标右侧的label文字 */
85
- label: String,
86
- /**
87
- * label相对于图标的位置,只能right或bottom
88
- * @values right,bottom
89
- * */
90
- labelPos: {
91
- type: String,
92
- default: "right",
93
- },
94
- /** label字体大小,单位px */
95
- labelSize: String,
96
- /** 图标右侧的label文字颜色 */
97
- labelColor: String,
98
- /** label与图标的距离,单位px */
99
- space: {
100
- type: [Number, String],
101
- default: "2px",
102
- },
103
- /** 图片的mode */
104
- imgMode: String,
105
- /** 显示图片小图标时的宽度 */
106
- width: [String, Number],
107
- /** 显示图片小图标时的高度 */
108
- height: [String, Number],
109
- /** 图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 */
110
- top: {
111
- type: [String, Number],
112
- default: 0,
113
- },
114
- /** 是否阻止事件传播 */
115
- stop: {
116
- type: Boolean,
117
- default: false,
118
- },
119
- /** 是否旋转 */
120
- isRotate: {
121
- type: Boolean,
122
- default: false,
123
- },
124
- /** 图标圆角 */
125
- round: {
126
- type: [String, Number],
127
- default: 0,
128
- },
129
- /** 定义需要用到的外部样式 */
130
- customStyle: Object as PropType<CSSProperties>,
131
- /** 自定义外部类名 */
132
- customClass: String,
133
- });
134
- const emit = defineEmits<IIconEmits>();
56
+ const props = defineProps(iconProps)
57
+ const emit = defineEmits<IIconEmits>()
135
58
 
136
59
  const uClasses = computed(() => {
137
- let classes: string | string[] = [
138
- "iconfont",
139
- `${props.customPrefix}-${props.name}`,
140
- props.customPrefix,
141
- ];
142
- if (props.isRotate) classes.push("hy-rotate");
143
- if (props.color)
144
- // 主题色,通过类配置
145
- classes.push("hy-icon__icon--" + props.color);
146
- // 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
147
- // 故需将其拆成一个字符串的形式,通过空格隔开各个类名
148
- //#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
149
- classes = classes.join(" ");
150
- //#endif
151
- return classes;
152
- });
60
+ let classes: string | string[] = [
61
+ 'iconfont',
62
+ `${props.customPrefix}-${props.name}`,
63
+ props.customPrefix
64
+ ]
65
+ if (props.isRotate) classes.push('hy-rotate')
66
+ if (props.color)
67
+ // 主题色,通过类配置
68
+ classes.push('hy-icon__icon--' + props.color)
69
+ // 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
70
+ // 故需将其拆成一个字符串的形式,通过空格隔开各个类名
71
+ //#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
72
+ classes = classes.join(' ')
73
+ //#endif
74
+ return classes
75
+ })
153
76
  const iconStyle = computed<CSSProperties>(() => {
154
- const style: CSSProperties = {
155
- fontSize: addUnit(props.size),
156
- lineHeight: addUnit(props.size),
157
- fontWeight: props.bold ? "bold" : "normal",
158
- // 某些特殊情况需要设置一个到顶部的距离,才能更好地垂直居中
159
- top: addUnit(props.top),
160
- borderRadius: addUnit(props.round),
161
- color: props.color,
162
- };
77
+ const style: CSSProperties = {
78
+ fontSize: addUnit(props.size),
79
+ lineHeight: addUnit(props.size),
80
+ fontWeight: props.bold ? 'bold' : 'normal',
81
+ // 某些特殊情况需要设置一个到顶部的距离,才能更好地垂直居中
82
+ top: addUnit(props.top),
83
+ borderRadius: addUnit(props.round),
84
+ color: props.color
85
+ }
163
86
 
164
- return style;
165
- });
87
+ return style
88
+ })
166
89
 
167
90
  /**
168
91
  * @description 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
169
92
  * */
170
93
  const isImg = computed(() => {
171
- return props.name?.indexOf("/") !== -1;
172
- });
94
+ return props.name?.indexOf('/') !== -1
95
+ })
173
96
  const imgStyle = computed((): CSSProperties => {
174
- let style: CSSProperties = {};
175
- // 如果设置width和height属性,则优先使用,否则使用size属性
176
- style.width = props.width ? addUnit(props.width) : addUnit(props.size);
177
- style.height = props.height ? addUnit(props.height) : addUnit(props.size);
178
- style.borderRadius = addUnit(props.round);
179
- return style;
180
- });
97
+ let style: CSSProperties = {}
98
+ // 如果设置width和height属性,则优先使用,否则使用size属性
99
+ style.width = props.width ? addUnit(props.width) : addUnit(props.size)
100
+ style.height = props.height ? addUnit(props.height) : addUnit(props.size)
101
+ style.borderRadius = addUnit(props.round)
102
+ return style
103
+ })
181
104
 
182
105
  /**
183
106
  * @description 点击
184
107
  * */
185
108
  const clickHandler = (e: Event) => {
186
- emit("click", props.index, e);
187
- // 是否阻止事件冒泡
188
- props.stop && e.stopPropagation();
189
- };
109
+ emit('click', props.index, e)
110
+ // 是否阻止事件冒泡
111
+ props.stop && e.stopPropagation()
112
+ }
190
113
  </script>
191
114
 
192
115
  <style lang="scss" scoped>
193
- @import "./index.scss";
116
+ @import './index.scss';
194
117
  </style>
@@ -1,25 +1,79 @@
1
- import type IProps from './typing'
1
+ import type { CSSProperties, PropType } from 'vue'
2
2
 
3
- const defaultProps: IProps = {
4
- name: '',
5
- color: '',
6
- size: '20px',
7
- bold: false,
8
- index: '',
9
- customPrefix: 'hy-icon',
10
- label: '',
11
- labelPos: 'right',
12
- labelSize: '',
13
- labelColor: '',
14
- space: '2px',
15
- imgMode: '',
16
- width: '',
17
- height: '',
18
- top: 0,
19
- stop: false,
20
- isRotate: false,
21
- round: 0,
22
- customClass: '',
3
+ const iconProps = {
4
+ /** 图标名称 */
5
+ name: String,
6
+ /** 图标颜色 */
7
+ color: String,
8
+ /** 图标字体大小,单位px */
9
+ size: {
10
+ type: [Number, String],
11
+ default: '20px'
12
+ },
13
+ /** 是否显示粗体 */
14
+ bold: {
15
+ type: Boolean,
16
+ default: false
17
+ },
18
+ /** 点击图标的时候传递事件出去的index(用于区分点击了哪一个) */
19
+ index: {
20
+ type: String,
21
+ default: ''
22
+ },
23
+ /** 自定义扩展前缀,方便用户扩展自己的图标库 */
24
+ customPrefix: {
25
+ type: String,
26
+ default: 'hy-icon'
27
+ },
28
+ /** 图标右侧的label文字 */
29
+ label: String,
30
+ /**
31
+ * label相对于图标的位置,只能right或bottom
32
+ * @values right,bottom
33
+ * */
34
+ labelPos: {
35
+ type: String,
36
+ default: 'right'
37
+ },
38
+ /** label字体大小,单位px */
39
+ labelSize: String,
40
+ /** 图标右侧的label文字颜色 */
41
+ labelColor: String,
42
+ /** label与图标的距离,单位px */
43
+ space: {
44
+ type: [Number, String],
45
+ default: '2px'
46
+ },
47
+ /** 图片的mode */
48
+ imgMode: String,
49
+ /** 显示图片小图标时的宽度 */
50
+ width: [String, Number],
51
+ /** 显示图片小图标时的高度 */
52
+ height: [String, Number],
53
+ /** 图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 */
54
+ top: {
55
+ type: [String, Number],
56
+ default: 0
57
+ },
58
+ /** 是否阻止事件传播 */
59
+ stop: {
60
+ type: Boolean,
61
+ default: false
62
+ },
63
+ /** 是否旋转 */
64
+ isRotate: {
65
+ type: Boolean,
66
+ default: false
67
+ },
68
+ /** 图标圆角 */
69
+ round: {
70
+ type: [String, Number],
71
+ default: 0
72
+ },
73
+ /** 定义需要用到的外部样式 */
74
+ customStyle: Object as PropType<CSSProperties>,
75
+ /** 自定义外部类名 */
76
+ customClass: String
23
77
  }
24
78
 
25
- export default defaultProps
79
+ export default iconProps
@@ -1,89 +1,90 @@
1
1
  import { CSSProperties } from 'vue'
2
2
 
3
3
  export default interface HyIconProps {
4
- /**
5
- * @description 图标名称,见示例图标集
6
- * */
7
- name: string | HyIconConfig
8
- /**
9
- * @description 图标颜色
10
- * */
11
- color?: string
12
- /**
13
- * @description 图标字体大小,单位px (默认 '16px' )
14
- * */
15
- size?: string | number
16
- /**
17
- * @description 是否显示粗体 (默认 false )
18
- * */
19
- bold?: boolean
20
- /**
21
- * @description 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
22
- * */
23
- index?: string | number
24
- /**
25
- * @description 自定义扩展前缀,方便用户扩展自己的图标库 (默认 'hy-icon' )
26
- * */
27
- customPrefix?: string
28
- /**
29
- * @description 图标右侧的label文字
30
- * */
31
- label?: string
32
- /**
33
- * @description label相对于图标的位置,只能right或bottom (默认 'right' )
34
- * */
35
- labelPos?: 'right' | 'bottom'
36
- /**
37
- * @description label字体大小,单位px (默认 '15px' )
38
- * */
39
- labelSize?: string | number
40
- /**
41
- * @description 图标右侧的label文字颜色
42
- * */
43
- labelColor?: string
44
- /**
45
- * @description label与图标的距离,单位px (默认 '3px' )
46
- * */
47
- space?: string | number
48
- /**
49
- * @description 图片的mode
50
- * */
51
- imgMode?: string
52
- /**
53
- * @description 显示图片小图标时的宽度
54
- * */
55
- width?: string | number
56
- /**
57
- * @description 显示图片小图标时的高度
58
- * */
59
- height?: string | number
60
- /**
61
- * @description 图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 (默认 0 )
62
- * */
63
- top?: number | string
64
- /**
65
- * @description 是否阻止事件传播 (默认 false )
66
- * */
67
- stop?: boolean
68
- /**
69
- * @description 是否旋转 (默认 false )
70
- * */
71
- isRotate?: boolean
72
- /**
73
- * @description 图标圆角
74
- * */
75
- round?: string | number
76
- /**
77
- * @description 自定义样式
78
- * */
79
- customStyle?: CSSProperties
80
- /**
81
- * @description 自定义类名
82
- * */
83
- customClass?: string
4
+ /**
5
+ * @description 图标名称,见示例图标集
6
+ * */
7
+ name: string | HyIconConfig
8
+ /**
9
+ * @description 图标颜色
10
+ * */
11
+ color?: string
12
+ /**
13
+ * @description 图标字体大小,单位px (默认 '16px' )
14
+ * */
15
+ size?: string | number
16
+
17
+ /**
18
+ * @description 是否显示粗体 (默认 false )
19
+ * */
20
+ bold?: boolean
21
+ /**
22
+ * @description 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
23
+ * */
24
+ index?: string | number
25
+ /**
26
+ * @description 自定义扩展前缀,方便用户扩展自己的图标库 (默认 'hy-icon' )
27
+ * */
28
+ customPrefix?: string
29
+ /**
30
+ * @description 图标右侧的label文字
31
+ * */
32
+ label?: string
33
+ /**
34
+ * @description label相对于图标的位置,只能right或bottom (默认 'right' )
35
+ * */
36
+ labelPos?: 'right' | 'bottom'
37
+ /**
38
+ * @description label字体大小,单位px (默认 '15px' )
39
+ * */
40
+ labelSize?: string | number
41
+ /**
42
+ * @description 图标右侧的label文字颜色
43
+ * */
44
+ labelColor?: string
45
+ /**
46
+ * @description label与图标的距离,单位px (默认 '3px' )
47
+ * */
48
+ space?: string | number
49
+ /**
50
+ * @description 图片的mode
51
+ * */
52
+ imgMode?: string
53
+ /**
54
+ * @description 显示图片小图标时的宽度
55
+ * */
56
+ width?: string | number
57
+ /**
58
+ * @description 显示图片小图标时的高度
59
+ * */
60
+ height?: string | number
61
+ /**
62
+ * @description 图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 (默认 0 )
63
+ * */
64
+ top?: number | string
65
+ /**
66
+ * @description 是否阻止事件传播 (默认 false )
67
+ * */
68
+ stop?: boolean
69
+ /**
70
+ * @description 是否旋转 (默认 false )
71
+ * */
72
+ isRotate?: boolean
73
+ /**
74
+ * @description 图标圆角
75
+ * */
76
+ round?: string | number
77
+ /**
78
+ * @description 自定义样式
79
+ * */
80
+ customStyle?: CSSProperties
81
+ /**
82
+ * @description 自定义类名
83
+ * */
84
+ customClass?: string
84
85
  }
85
86
 
86
87
  export interface IIconEmits {
87
- /** 点击图标触发 */
88
- (e: 'click', index: string, e: Event): void
88
+ /** 点击图标触发 */
89
+ (e: 'click', index: string, e: Event): void
89
90
  }