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,29 +1,132 @@
1
- import type IProps from "./typing";
2
- import { IconConfig } from "../../libs";
1
+ import type { FileVo, ReadFunctionVo } from './typing'
2
+ import { IconConfig } from '../../libs'
3
+ import type { CSSProperties, PropType } from 'vue'
3
4
 
4
- const defaultProps: IProps = {
5
- accept: "image",
6
- extension: [],
7
- capture: ["album", "camera"],
8
- compressed: true,
9
- camera: "back",
10
- maxDuration: 60,
11
- uploadIcon: IconConfig.UPLOAD,
12
- uploadIconColor: "#D3D4D6",
13
- useBeforeRead: false,
14
- previewFullImage: true,
15
- maxCount: 52,
16
- disabled: false,
17
- imageMode: "aspectFill",
18
- name: "",
19
- sizeType: ["original", "compressed"],
20
- multiple: false,
21
- deletable: true,
22
- maxSize: Number.MAX_VALUE,
23
- fileList: [],
24
- uploadText: "",
25
- width: 80,
26
- height: 80,
27
- };
5
+ const uploadProps = {
6
+ /**
7
+ * 接受的文件类型
8
+ * @values all,media,image,file,video
9
+ * */
10
+ accept: {
11
+ type: String,
12
+ default: 'image'
13
+ },
14
+ /** 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。 */
15
+ extension: {
16
+ type: Array as PropType<string[]>,
17
+ default: () => []
18
+ },
19
+ /** 图片或视频拾取模式,当accept为image类型时设置capture可选额外camera可以直接调起摄像头 */
20
+ capture: {
21
+ type: Array as PropType<('album' | 'camera')[]>,
22
+ default: () => ['album', 'camera']
23
+ },
24
+ /** 当accept为video时生效,是否压缩视频 */
25
+ compressed: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ /** 当accept为video时生效,可选值为back或front */
30
+ camera: {
31
+ type: String,
32
+ default: 'back'
33
+ },
34
+ /** 当accept为video时生效,拍摄视频最长拍摄时间,单位秒 */
35
+ maxDuration: {
36
+ type: Number,
37
+ default: 60
38
+ },
39
+ /** 上传区域的图标,只能内置图标 */
40
+ uploadIcon: {
41
+ type: String,
42
+ default: IconConfig.UPLOAD
43
+ },
44
+ /** 上传区域的图标的字体颜色,只能内置图标 */
45
+ uploadIconColor: {
46
+ type: String,
47
+ default: '#D3D4D6'
48
+ },
49
+ /** 是否开启文件读取前事件 */
50
+ useBeforeRead: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+ /** 是否显示组件自带的图片预览功能 */
55
+ previewFullImage: {
56
+ type: Boolean,
57
+ default: true
58
+ },
59
+ /** 最大上传数量 */
60
+ maxCount: {
61
+ type: Number,
62
+ default: 52
63
+ },
64
+ /** 是否启用 */
65
+ disabled: {
66
+ type: Boolean,
67
+ default: false
68
+ },
69
+ /**
70
+ * 预览上传的图片时的裁剪模式,和image组件mode属性一致
71
+ * @values scaleToFill,aspectFit,aspectFill,widthFix,heightFix,top,bottom,center,left,right,top left,top right,bottom left,bottom right
72
+ * */
73
+ imageMode: {
74
+ type: String,
75
+ default: 'aspectFill'
76
+ },
77
+ /** 标识符,可以在回调函数的第二项参数中获取 */
78
+ name: {
79
+ type: String,
80
+ default: ''
81
+ },
82
+ /** 所选的图片的尺寸 */
83
+ sizeType: {
84
+ type: Array as PropType<('original' | 'compressed')[]>,
85
+ default: ['original', 'compressed']
86
+ },
87
+ /** 是否开启图片多选,部分安卓机型不支持 */
88
+ multiple: {
89
+ type: Boolean,
90
+ default: false
91
+ },
92
+ /** 是否展示删除按钮 */
93
+ deletable: {
94
+ type: Boolean,
95
+ default: true
96
+ },
97
+ /** 文件大小限制,单位为byte */
98
+ maxSize: {
99
+ type: Number,
100
+ default: Number.MAX_VALUE
101
+ },
102
+ /** 显示已上传的文件列表 */
103
+ fileList: {
104
+ type: Array as PropType<FileVo[]>,
105
+ default: () => []
106
+ },
107
+ /** 上传区域的提示文字 */
108
+ uploadText: {
109
+ type: String,
110
+ default: ''
111
+ },
112
+ /** 内部预览图片区域和选择图片按钮的区域宽度 */
113
+ width: {
114
+ type: [String, Number],
115
+ default: 80
116
+ },
117
+ /** 内部预览图片区域和选择图片按钮的区域高度 */
118
+ height: {
119
+ type: [String, Number],
120
+ default: 80
121
+ },
122
+ /** 读取前的处理函数 */
123
+ beforeRead: Function as PropType<ReadFunctionVo>,
124
+ /** 读取后的处理函数 */
125
+ afterRead: Function as PropType<ReadFunctionVo>,
126
+ /** 定义需要用到的外部样式 */
127
+ customStyle: {
128
+ type: Object as PropType<CSSProperties>
129
+ }
130
+ }
28
131
 
29
- export default defaultProps;
132
+ export default uploadProps
@@ -1,164 +1,115 @@
1
1
  <template>
2
- <HyTransition mode="fade" :show="show">
3
- <view
4
- :class="['hy-warn', `hy-warn__${type}--${theme}`, customClass]"
5
- @tap.stop="clickHandler"
6
- :style="customStyle"
7
- >
8
- <view class="hy-warn__icon--left tips" v-if="showIcon">
9
- <HyIcon :name="iconName(type)" size="21" :color="iconColor"></HyIcon>
10
- </view>
11
- <view
12
- class="hy-warn__content"
13
- :style="[
14
- {
15
- paddingRight: closable ? '20px' : 0,
16
- },
17
- ]"
18
- >
19
- <text
20
- class="hy-warn__content--title"
21
- v-if="title"
22
- :style="[
23
- {
24
- fontSize: addUnit(fontSize),
25
- textAlign: center ? 'center' : 'left',
26
- },
27
- ]"
28
- :class="[
29
- theme === 'dark'
30
- ? 'hy-warn__text--dark'
31
- : `hy-warn__text--${type}__light`,
32
- ]"
2
+ <HyTransition mode="fade" :show="show">
3
+ <view
4
+ :class="['hy-warn', `hy-warn__${type}--${theme}`, customClass]"
5
+ @tap.stop="clickHandler"
6
+ :style="customStyle"
33
7
  >
34
- {{ title }}
35
- </text>
36
- <text
37
- v-if="description"
38
- :style="[
39
- {
40
- fontSize: addUnit(fontSize),
41
- textAlign: center ? 'center' : 'left',
42
- },
43
- ]"
44
- :class="[
45
- 'hy-warn__content--desc',
46
- theme === 'dark'
47
- ? 'hy-warn__text--dark'
48
- : `hy-warn__text--${type}__light`,
49
- ]"
50
- >
51
- {{ description }}
52
- </text>
53
- </view>
54
- <view class="hy-warn__right" v-if="$slots.right">
55
- <slot name="right"></slot>
56
- </view>
57
- <view class="hy-warn__close" v-if="closable" @tap.stop="closeHandler">
58
- <HyIcon :name="IconConfig.CLOSE" :color="iconColor" size="15"></HyIcon>
59
- </view>
60
- </view>
61
- </HyTransition>
8
+ <view class="hy-warn__icon--left tips" v-if="showIcon">
9
+ <HyIcon :name="iconName(type)" size="21" :color="iconColor"></HyIcon>
10
+ </view>
11
+ <view
12
+ class="hy-warn__content"
13
+ :style="[
14
+ {
15
+ paddingRight: closable ? '20px' : 0
16
+ }
17
+ ]"
18
+ >
19
+ <text
20
+ class="hy-warn__content--title"
21
+ v-if="title"
22
+ :style="[
23
+ {
24
+ fontSize: addUnit(fontSize),
25
+ textAlign: center ? 'center' : 'left'
26
+ }
27
+ ]"
28
+ :class="[
29
+ theme === 'dark' ? 'hy-warn__text--dark' : `hy-warn__text--${type}__light`
30
+ ]"
31
+ >
32
+ {{ title }}
33
+ </text>
34
+ <text
35
+ v-if="description"
36
+ :style="[
37
+ {
38
+ fontSize: addUnit(fontSize),
39
+ textAlign: center ? 'center' : 'left'
40
+ }
41
+ ]"
42
+ :class="[
43
+ 'hy-warn__content--desc',
44
+ theme === 'dark' ? 'hy-warn__text--dark' : `hy-warn__text--${type}__light`
45
+ ]"
46
+ >
47
+ {{ description }}
48
+ </text>
49
+ </view>
50
+ <view class="hy-warn__right" v-if="$slots.right">
51
+ <slot name="right"></slot>
52
+ </view>
53
+ <view class="hy-warn__close" v-if="closable" @tap.stop="closeHandler">
54
+ <HyIcon :name="IconConfig.CLOSE" :color="iconColor" size="15"></HyIcon>
55
+ </view>
56
+ </view>
57
+ </HyTransition>
62
58
  </template>
63
59
 
64
60
  <script lang="ts">
65
61
  export default {
66
- name: "hy-warn",
67
- options: {
68
- addGlobalClass: true,
69
- virtualHost: true,
70
- styleIsolation: "shared",
71
- },
72
- };
62
+ name: 'hy-warn',
63
+ options: {
64
+ addGlobalClass: true,
65
+ virtualHost: true,
66
+ styleIsolation: 'shared'
67
+ }
68
+ }
73
69
  </script>
74
70
 
75
71
  <script setup lang="ts">
76
- import { computed, ref } from "vue";
77
- import type { CSSProperties, PropType } from "vue";
78
- import type { IWarnEmits } from "./typing";
79
- import { addUnit, IconConfig, iconName } from "../../libs";
72
+ import { computed, ref } from 'vue'
73
+ import type { IWarnEmits } from './typing'
74
+ import { addUnit, IconConfig, iconName } from '../../libs'
75
+ import warnProps from './props'
80
76
  // 组件
81
- import HyTransition from "../hy-transition/hy-transition.vue";
82
- import HyIcon from "../hy-icon/hy-icon.vue";
77
+ import HyTransition from '../hy-transition/hy-transition.vue'
78
+ import HyIcon from '../hy-icon/hy-icon.vue'
83
79
 
84
80
  /**
85
81
  * 警告提示,展现需要关注的信息
86
82
  * @displayName hy-warn
87
83
  */
88
- defineOptions({});
84
+ defineOptions({})
89
85
 
90
- // const props = withDefaults(defineProps<IProps>(), defaultProps);
91
- const props = defineProps({
92
- /** 显示的文字 */
93
- title: String,
94
- /**
95
- * 使用预设的颜色
96
- * @values primary,success,warning,error,info
97
- * */
98
- type: {
99
- type: String,
100
- default: "warning",
101
- },
102
- /** 辅助性文字,颜色比title浅一点,字号也小一点 */
103
- description: String,
104
- /** 显示关闭按钮 */
105
- closable: {
106
- type: Boolean,
107
- default: false,
108
- },
109
- /** 是否显示左边的辅助图标 */
110
- showIcon: {
111
- type: Boolean,
112
- default: false,
113
- },
114
- /** 显示的暗色或者亮色 */
115
- theme: {
116
- type: String as PropType<HyApp.DarkModeType>,
117
- default: "dark",
118
- },
119
- /** 文字是否居中 */
120
- center: {
121
- type: Boolean,
122
- default: false,
123
- },
124
- /** 字体大小 */
125
- fontSize: {
126
- type: [String, Number],
127
- default: 14,
128
- },
129
- /** 定义需要用到的外部样式 */
130
- customStyle: {
131
- type: Object as PropType<CSSProperties>,
132
- },
133
- /** 自定义外部类名 */
134
- customClass: String,
135
- });
136
- const emit = defineEmits<IWarnEmits>();
86
+ const props = defineProps(warnProps)
87
+ const emit = defineEmits<IWarnEmits>()
137
88
 
138
- const show = ref<boolean>(true);
89
+ const show = ref<boolean>(true)
139
90
 
140
91
  /**
141
92
  * @description icon颜色
142
93
  * */
143
94
  const iconColor = computed(() => {
144
- return props.theme === "light" ? props.type : "#fff";
145
- });
95
+ return props.theme === 'light' ? props.type : '#fff'
96
+ })
146
97
 
147
98
  /**
148
99
  * @description 点击内容
149
100
  * */
150
101
  const clickHandler = () => {
151
- emit("click");
152
- };
102
+ emit('click')
103
+ }
153
104
  /**
154
105
  * @description 点击关闭按钮
155
106
  * */
156
107
  const closeHandler = () => {
157
- show.value = false;
158
- emit("close");
159
- };
108
+ show.value = false
109
+ emit('close')
110
+ }
160
111
  </script>
161
112
 
162
113
  <style lang="scss" scoped>
163
- @import "./index.scss";
114
+ @import './index.scss';
164
115
  </style>
@@ -1,14 +1,49 @@
1
- import type IProps from "./typing";
1
+ import type { CSSProperties, PropType } from 'vue'
2
2
 
3
- const defaultProps: IProps = {
4
- title: "",
5
- type: "warning",
6
- description: "",
7
- closable: false,
8
- showIcon: false,
9
- theme: "light",
10
- center: false,
11
- fontSize: 14,
12
- };
3
+ const warnProps = {
4
+ /** 显示的文字 */
5
+ title: String,
6
+ /**
7
+ * 使用预设的颜色
8
+ * @values primary,success,warning,error,info
9
+ * */
10
+ type: {
11
+ type: String,
12
+ default: 'warning'
13
+ },
14
+ /** 辅助性文字,颜色比title浅一点,字号也小一点 */
15
+ description: String,
16
+ /** 显示关闭按钮 */
17
+ closable: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ /** 是否显示左边的辅助图标 */
22
+ showIcon: {
23
+ type: Boolean,
24
+ default: false
25
+ },
26
+ /** 显示的暗色或者亮色 */
27
+ theme: {
28
+ type: String as PropType<HyApp.DarkModeType>,
29
+ default: 'dark'
30
+ },
31
+ /** 文字是否居中 */
32
+ center: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ /** 字体大小 */
37
+ fontSize: {
38
+ type: [String, Number],
39
+ default: 14
40
+ },
41
+ /** 定义需要用到的外部样式 */
42
+ customStyle: {
43
+ type: Object as PropType<CSSProperties>
44
+ },
45
+ /** 自定义外部类名 */
46
+ customClass: String
47
+ }
13
48
 
14
- export default defaultProps;
49
+ export default warnProps