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,170 +1,116 @@
1
1
  <template>
2
- <view :class="['hy-empty', customClass]" v-if="show" :style="emptyStyle">
3
- <view class="hy-empty__img" :style="imgStyle">
4
- <HyImage
5
- :src="imageUrl || emptyIcon[mode].icon"
6
- :width="width"
7
- :height="height"
8
- img-mode="widthFix"
9
- ></HyImage>
2
+ <view :class="['hy-empty', customClass]" v-if="show" :style="emptyStyle">
3
+ <view class="hy-empty__img" :style="imgStyle">
4
+ <hy-image
5
+ :src="imageUrl || emptyIcon[mode].icon"
6
+ :width="width"
7
+ :height="height"
8
+ img-mode="widthFix"
9
+ ></hy-image>
10
+ </view>
11
+ <view v-if="$slots.default">
12
+ <slot></slot>
13
+ </view>
14
+ <view class="hy-empty--description" v-else>
15
+ <!-- 详情描述 -->
16
+ <slot v-if="$slots.description" name="description"></slot>
17
+ <text v-else :style="descriptionStyle">{{
18
+ emptyDescription || emptyIcon[mode].desc
19
+ }}</text>
20
+ <view class="hy-empty--button" v-if="button?.text">
21
+ <hy-button
22
+ :text="button?.text"
23
+ :size="button?.size"
24
+ :type="button?.type"
25
+ :shape="button?.shape"
26
+ :plain="button?.plain"
27
+ :custom-style="button?.customStyle"
28
+ @click="handleClick"
29
+ ></hy-button>
30
+ </view>
31
+ </view>
10
32
  </view>
11
- <view v-if="$slots.default">
12
- <slot></slot>
13
- </view>
14
- <view class="hy-empty--description" v-else>
15
- <slot v-if="$slots.description" name="description"></slot>
16
- <text v-else :style="descriptionStyle">{{
17
- emptyDescription || emptyIcon[mode].desc
18
- }}</text>
19
- <view class="hy-empty--button" v-if="button?.text">
20
- <HyButton
21
- :text="button?.text"
22
- :size="button?.size"
23
- :type="button?.type"
24
- :shape="button?.shape"
25
- :plain="button?.plain"
26
- :custom-style="button?.customStyle"
27
- @click="handleClick"
28
- ></HyButton>
29
- </view>
30
- </view>
31
- </view>
32
33
  </template>
33
34
 
34
35
  <script lang="ts">
35
36
  export default {
36
- name: "hy-empty",
37
- options: {
38
- addGlobalClass: true,
39
- virtualHost: true,
40
- styleIsolation: "shared",
41
- },
42
- };
37
+ name: 'hy-empty',
38
+ options: {
39
+ addGlobalClass: true,
40
+ virtualHost: true,
41
+ styleIsolation: 'shared'
42
+ }
43
+ }
43
44
  </script>
44
45
 
45
46
  <script setup lang="ts">
46
- import { computed } from "vue";
47
- import type { CSSProperties, PropType } from "vue";
48
- import { addUnit } from "../../libs";
49
- import emptyIcon from "./icon";
50
- import type { HyButtonProps } from "../hy-button/typing";
51
- import type { IEmptyEmits } from "./typing";
47
+ import { computed } from 'vue'
48
+ import type { CSSProperties } from 'vue'
49
+ import { addUnit } from '../../libs'
50
+ import emptyIcon from './icon'
51
+ import type { IEmptyEmits } from './typing'
52
+ import emptyProps from './props'
52
53
  // 组件
53
- import HyButton from "../hy-button/hy-button.vue";
54
- import HyImage from "../hy-image/hy-image.vue";
54
+ import HyButton from '../hy-button/hy-button.vue'
55
+ import HyImage from '../hy-image/hy-image.vue'
55
56
 
56
57
  /**
57
58
  * 加载的第一页数据就为空
58
59
  * @displayName hy-empty
59
60
  */
60
- defineOptions({});
61
+ defineOptions({})
61
62
 
62
- // const props = withDefaults(defineProps<IProps>(), defaultProps)
63
- const props = defineProps({
64
- /** 是否显示空状态 */
65
- show: {
66
- type: Boolean,
67
- default: true,
68
- },
69
- /**
70
- * 缺省页内容
71
- * @values content,search,address,network,order,coupon,favor,history,message,comment,integral
72
- * */
73
- mode: {
74
- type: String,
75
- default: "content",
76
- },
77
- /** 空状态图片 */
78
- imageUrl: String,
79
- /** 组件层级 */
80
- zIndex: {
81
- type: Number,
82
- default: 889,
83
- },
84
- /** 组件层级 */
85
- width: {
86
- type: [String, Number],
87
- default: "240px",
88
- },
89
- /** icon高度 */
90
- height: {
91
- type: [String, Number],
92
- default: "240px",
93
- },
94
- /** 提示信息 */
95
- description: String,
96
- /** 提示信息大小 */
97
- desSize: {
98
- type: Number,
99
- default: 15,
100
- },
101
- /** 提示信息颜色 */
102
- desColor: String,
103
- /** 图片margin */
104
- imgMargin: String,
105
- /** 按钮属性值 */
106
- button: {
107
- type: Object as unknown as PropType<HyButtonProps>,
108
- },
109
- navigateUrl: String,
110
- /** 定义需要用到的外部样式 */
111
- customStyle: {
112
- type: Object as PropType<CSSProperties>,
113
- default: () => {},
114
- },
115
- /** 自定义外部类名 */
116
- customClass: String,
117
- });
118
- const emit = defineEmits<IEmptyEmits>();
63
+ const props = defineProps(emptyProps)
64
+ const emit = defineEmits<IEmptyEmits>()
119
65
 
120
66
  const emptyDescription = computed(() => {
121
- return props.description;
122
- });
67
+ return props.description
68
+ })
123
69
 
124
70
  /**
125
71
  * @description 整体样式
126
72
  * */
127
73
  const emptyStyle = computed<CSSProperties>(() => {
128
- const style: CSSProperties = {
129
- zIndex: props.zIndex,
130
- };
131
- return Object.assign(style, props.customStyle);
132
- });
74
+ const style: CSSProperties = {
75
+ zIndex: props.zIndex
76
+ }
77
+ return Object.assign(style, props.customStyle)
78
+ })
133
79
 
134
80
  /**
135
81
  * @description 提示信息样式
136
82
  * */
137
83
  const descriptionStyle = computed<CSSProperties>(() => {
138
- const style: CSSProperties = {
139
- fontSize: addUnit(props.desSize),
140
- color: props.desColor,
141
- };
142
- return style;
143
- });
84
+ const style: CSSProperties = {
85
+ fontSize: addUnit(props.desSize),
86
+ color: props.desColor
87
+ }
88
+ return style
89
+ })
144
90
 
145
91
  /**
146
92
  * @description 图片样式
147
93
  * */
148
94
  const imgStyle = computed<CSSProperties>(() => {
149
- return {
150
- width: addUnit(props.width),
151
- height: addUnit(props.height),
152
- margin: props.imgMargin,
153
- };
154
- });
95
+ return {
96
+ width: addUnit(props.width),
97
+ height: addUnit(props.height),
98
+ margin: props.imgMargin
99
+ }
100
+ })
155
101
 
156
102
  /**
157
103
  * @description 点击按钮,跳转页面
158
104
  * */
159
105
  const handleClick = () => {
160
- emit("click");
161
- if (props.navigateUrl) {
162
- uni.navigateTo({
163
- url: props.navigateUrl,
164
- });
165
- }
166
- };
106
+ emit('click')
107
+ if (props.navigateUrl) {
108
+ uni.navigateTo({
109
+ url: props.navigateUrl
110
+ })
111
+ }
112
+ }
167
113
  </script>
168
114
  <style scoped lang="scss">
169
- @import "./index.scss";
115
+ @import './index.scss';
170
116
  </style>
@@ -1,18 +1,60 @@
1
- import type IProps from './typing'
1
+ import type { CSSProperties, PropType } from 'vue'
2
+ import type { HyButtonProps } from '../hy-button/typing'
2
3
 
3
- const defaultProps: IProps = {
4
- show: true,
5
- mode: 'car',
6
- imageUrl: '',
7
- zIndex: 889,
8
- width: 350,
9
- height: 'auto',
10
- description: '',
11
- desSize: 15,
12
- desColor: '',
13
- imgMargin: '',
14
- button: {},
15
- navigateUrl: '',
4
+ const emptyProps = {
5
+ /** 是否显示空状态 */
6
+ show: {
7
+ type: Boolean,
8
+ default: true
9
+ },
10
+ /**
11
+ * 缺省页内容
12
+ * @values content,search,address,network,order,coupon,favor,history,message,comment,integral
13
+ * */
14
+ mode: {
15
+ type: String,
16
+ default: 'content'
17
+ },
18
+ /** 空状态图片 */
19
+ imageUrl: String,
20
+ /** 组件层级 */
21
+ zIndex: {
22
+ type: Number,
23
+ default: 889
24
+ },
25
+ /** 组件层级 */
26
+ width: {
27
+ type: [String, Number],
28
+ default: '240px'
29
+ },
30
+ /** icon高度 */
31
+ height: {
32
+ type: [String, Number],
33
+ default: '240px'
34
+ },
35
+ /** 提示信息 */
36
+ description: String,
37
+ /** 提示信息大小 */
38
+ desSize: {
39
+ type: Number,
40
+ default: 15
41
+ },
42
+ /** 提示信息颜色 */
43
+ desColor: String,
44
+ /** 图片margin */
45
+ imgMargin: String,
46
+ /** 按钮属性值 */
47
+ button: {
48
+ type: Object as PropType<HyButtonProps>
49
+ },
50
+ navigateUrl: String,
51
+ /** 定义需要用到的外部样式 */
52
+ customStyle: {
53
+ type: Object as PropType<CSSProperties>,
54
+ default: () => {}
55
+ },
56
+ /** 自定义外部类名 */
57
+ customClass: String
16
58
  }
17
59
 
18
- export default defaultProps
60
+ export default emptyProps
@@ -1,96 +1,96 @@
1
- import type { CSSProperties } from "vue";
2
- import type HyButtonProps from "../hy-button/typing";
1
+ import type { CSSProperties } from 'vue'
2
+ import type HyButtonProps from '../hy-button/typing'
3
3
 
4
4
  type EmptyModeType =
5
- | "car"
6
- | "page"
7
- | "search"
8
- | "address"
9
- | "wifi"
10
- | "order"
11
- | "coupon"
12
- | "favor"
13
- | "permission"
14
- | "history"
15
- | "message"
16
- | "image"
17
- | "video"
18
- | "comment"
19
- | "integral"
20
- | "subscribe"
21
- | "earnings"
22
- | "announcement"
23
- | "signIn";
5
+ | 'car'
6
+ | 'page'
7
+ | 'search'
8
+ | 'address'
9
+ | 'wifi'
10
+ | 'order'
11
+ | 'coupon'
12
+ | 'favor'
13
+ | 'permission'
14
+ | 'history'
15
+ | 'message'
16
+ | 'image'
17
+ | 'video'
18
+ | 'comment'
19
+ | 'integral'
20
+ | 'subscribe'
21
+ | 'earnings'
22
+ | 'announcement'
23
+ | 'signIn'
24
24
 
25
25
  export type IEmptyIcon = {
26
- [key: string]: {
26
+ [key: string]: {
27
+ /**
28
+ * 提示信息
29
+ * */
30
+ desc: string
31
+ /**
32
+ * 空状态图片地址
33
+ * */
34
+ icon: string
35
+ }
36
+ }
37
+
38
+ export default interface HyEmptyProps {
27
39
  /**
28
- * 提示信息
40
+ * @description 是否显示空状态
29
41
  * */
30
- desc: string;
42
+ show?: boolean
31
43
  /**
32
- * 空状态图片地址
44
+ * @description 缺省页内容
33
45
  * */
34
- icon: string;
35
- };
36
- };
37
-
38
- export default interface HyEmptyProps {
39
- /**
40
- * @description 是否显示空状态
41
- * */
42
- show?: boolean;
43
- /**
44
- * @description 缺省页内容
45
- * */
46
- mode?: EmptyModeType;
47
- /**
48
- * @description 空状态图片
49
- * */
50
- imageUrl?: string;
51
- /**
52
- * @description 组件层级
53
- * */
54
- zIndex?: number;
55
- /**
56
- * @description icon宽度
57
- * */
58
- width?: number | string;
59
- /**
60
- * @description icon高度
61
- * */
62
- height?: number | string;
63
- /**
64
- * @description 提示信息
65
- * */
66
- description?: string;
67
- /**
68
- * @description 提示信息大小
69
- * */
70
- desSize?: string | number;
71
- /**
72
- * @description 提示信息颜色
73
- * */
74
- desColor?: string;
75
- /**
76
- * @description 图片margin
77
- * */
78
- imgMargin?: string;
79
- /**
80
- * @description 按钮属性只
81
- * */
82
- button?: HyButtonProps;
83
- /**
84
- * @description 跳转地址
85
- * */
86
- navigateUrl?: string;
87
- /**
88
- * @description 自定义输入框外部样式
89
- * */
90
- customStyle?: CSSProperties;
46
+ mode?: EmptyModeType
47
+ /**
48
+ * @description 空状态图片
49
+ * */
50
+ imageUrl?: string
51
+ /**
52
+ * @description 组件层级
53
+ * */
54
+ zIndex?: number
55
+ /**
56
+ * @description icon宽度
57
+ * */
58
+ width?: number | string
59
+ /**
60
+ * @description icon高度
61
+ * */
62
+ height?: number | string
63
+ /**
64
+ * @description 提示信息
65
+ * */
66
+ description?: string
67
+ /**
68
+ * @description 提示信息大小
69
+ * */
70
+ desSize?: string | number
71
+ /**
72
+ * @description 提示信息颜色
73
+ * */
74
+ desColor?: string
75
+ /**
76
+ * @description 图片margin
77
+ * */
78
+ imgMargin?: string
79
+ /**
80
+ * @description 按钮属性只
81
+ * */
82
+ button?: HyButtonProps
83
+ /**
84
+ * @description 跳转地址
85
+ * */
86
+ navigateUrl?: string
87
+ /**
88
+ * @description 自定义输入框外部样式
89
+ * */
90
+ customStyle?: CSSProperties
91
91
  }
92
92
 
93
93
  export interface IEmptyEmits {
94
- /** 点击按钮触发 */
95
- (e: "click"): void;
94
+ /** 点击按钮触发 */
95
+ (e: 'click'): void
96
96
  }
@@ -1,108 +1,53 @@
1
1
  <template>
2
- <view :class="flexClass" :style="flexStyle">
3
- <slot />
4
- </view>
2
+ <view :class="flexClass" :style="flexStyle">
3
+ <slot />
4
+ </view>
5
5
  </template>
6
6
 
7
7
  <script lang="ts">
8
8
  export default {
9
- name: "hy-flex",
10
- options: {
11
- addGlobalClass: true,
12
- virtualHost: true,
13
- styleIsolation: "shared",
14
- },
15
- };
9
+ name: 'hy-flex',
10
+ options: {
11
+ addGlobalClass: true,
12
+ virtualHost: true,
13
+ styleIsolation: 'shared'
14
+ }
15
+ }
16
16
  </script>
17
17
 
18
18
  <script setup lang="ts">
19
- import { computed, type CSSProperties } from "vue";
20
- import type { PropType } from "vue";
21
- import type { FlexAlign, FlexDirection, FlexJustify, FlexWrap } from "./typing";
22
- import { addUnit, isArray } from "../../libs";
19
+ import { computed } from 'vue'
20
+ import { addUnit, isArray } from '../../libs'
21
+ import flexProps from './props'
23
22
 
24
- const props = defineProps({
25
- /** flex 主轴的方向是否垂直,使用 flex-direction: column */
26
- vertical: {
27
- type: Boolean,
28
- default: false,
29
- },
30
- /**
31
- * 设置元素在主轴方向上的对齐方式
32
- * @values flex-start,flex-end,space-between,space-around,space-evenly,center
33
- * */
34
- justify: {
35
- type: String as PropType<FlexJustify>,
36
- default: "flex-start",
37
- },
38
- /**
39
- * 设置元素在交叉轴方向上的对齐方式
40
- * @values flex-start,center,flex-end,stretch,baseline
41
- * */
42
- align: {
43
- type: String as PropType<FlexAlign>,
44
- default: "flex-start",
45
- },
46
- /**
47
- * 设置元素单行显示还是多行显示
48
- * @values nowrap,wrap,wrap-reverse
49
- * */
50
- wrap: {
51
- type: String as PropType<FlexWrap>,
52
- default: "nowrap",
53
- },
54
- /** flex 属性,支持数字或字符串。如 1 或 'none' */
55
- flex: {
56
- type: [String, Number],
57
- default: "initial",
58
- },
59
- /** 设置网格之间的间隙 */
60
- gap: {
61
- type: [String, Number, Array] as PropType<
62
- string | number | (string | number)[]
63
- >,
64
- default: 0,
65
- },
66
- /** 快捷设置 */
67
- basis: {
68
- type: [String, Number],
69
- default: "auto",
70
- },
71
- /** 定义需要用到的外部样式 */
72
- customStyle: {
73
- type: Object as PropType<CSSProperties>,
74
- default: () => {},
75
- },
76
- /** 自定义外部类名 */
77
- customClass: String,
78
- });
23
+ const props = defineProps(flexProps)
79
24
 
80
25
  // 计算 class
81
26
  const flexClass = computed(() => [
82
- "hy-flex",
83
- props.customClass,
84
- props.vertical && "hy-flex--vertical",
85
- ]);
27
+ 'hy-flex',
28
+ props.customClass,
29
+ props.vertical && 'hy-flex--vertical'
30
+ ])
86
31
 
87
32
  // 计算 style
88
33
  const flexStyle = computed(() => {
89
- const gap = isArray(props.gap) ? props.gap : [props.gap, props.gap];
90
- const [rowGap, colGap] = gap.map((v) => addUnit(v));
34
+ const gap = isArray(props.gap) ? props.gap : [props.gap, props.gap]
35
+ const [rowGap, colGap] = gap.map((v) => addUnit(v))
91
36
 
92
- return {
93
- display: "flex",
94
- "justify-content": props.justify,
95
- "align-items": props.align,
96
- "flex-wrap": props.wrap,
97
- flex: props.flex,
98
- "flex-basis": props.basis,
99
- "row-gap": colGap,
100
- "column-gap": rowGap,
101
- ...props.customStyle,
102
- };
103
- });
37
+ return {
38
+ display: 'flex',
39
+ 'justify-content': props.justify,
40
+ 'align-items': props.align,
41
+ 'flex-wrap': props.wrap,
42
+ flex: props.flex,
43
+ 'flex-basis': props.basis,
44
+ 'row-gap': colGap,
45
+ 'column-gap': rowGap,
46
+ ...props.customStyle
47
+ }
48
+ })
104
49
  </script>
105
50
 
106
51
  <style lang="scss" scoped>
107
- @import "./index.scss";
52
+ @import './index.scss';
108
53
  </style>