hy-app 0.4.15 → 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 (206) 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/hy-coupon.vue +10 -5
  55. package/components/hy-coupon/index.scss +148 -64
  56. package/components/hy-coupon/props.ts +35 -50
  57. package/components/hy-coupon/typing.d.ts +10 -0
  58. package/components/hy-datetime-picker/hy-datetime-picker.vue +415 -580
  59. package/components/hy-datetime-picker/props.ts +142 -32
  60. package/components/hy-datetime-picker/typing.d.ts +132 -132
  61. package/components/hy-divider/hy-divider.vue +90 -169
  62. package/components/hy-divider/props.ts +78 -19
  63. package/components/hy-divider/typing.d.ts +60 -60
  64. package/components/hy-dropdown/hy-dropdown.vue +37 -71
  65. package/components/hy-dropdown/props.ts +38 -15
  66. package/components/hy-dropdown/typing.d.ts +44 -44
  67. package/components/hy-dropdown-item/hy-dropdown-item.vue +141 -173
  68. package/components/hy-dropdown-item/props.ts +19 -8
  69. package/components/hy-empty/hy-empty.vue +75 -129
  70. package/components/hy-empty/props.ts +57 -15
  71. package/components/hy-empty/typing.d.ts +84 -84
  72. package/components/hy-flex/hy-flex.vue +33 -88
  73. package/components/hy-flex/props.ts +58 -0
  74. package/components/hy-flex/typing.d.ts +14 -16
  75. package/components/hy-float-button/hy-float-button.vue +289 -406
  76. package/components/hy-float-button/props.ts +109 -25
  77. package/components/hy-folding-panel/hy-folding-panel.vue +74 -114
  78. package/components/hy-folding-panel/props.ts +42 -0
  79. package/components/hy-folding-panel/typing.d.ts +57 -57
  80. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +139 -231
  81. package/components/hy-folding-panel-item/props.ts +81 -0
  82. package/components/hy-folding-panel-item/typing.d.ts +23 -23
  83. package/components/hy-form/hy-form.vue +172 -212
  84. package/components/hy-form/props.ts +37 -0
  85. package/components/hy-form/typing.d.ts +68 -61
  86. package/components/hy-form-group/typing.d.ts +74 -74
  87. package/components/hy-form-item/hy-form-item.vue +100 -129
  88. package/components/hy-form-item/props.ts +25 -0
  89. package/components/hy-form-item/typing.d.ts +40 -37
  90. package/components/hy-grid/hy-grid.vue +76 -132
  91. package/components/hy-grid/props.ts +58 -16
  92. package/components/hy-grid/typing.d.ts +66 -66
  93. package/components/hy-icon/hy-icon.vue +84 -161
  94. package/components/hy-icon/props.ts +76 -22
  95. package/components/hy-icon/typing.d.ts +83 -82
  96. package/components/hy-image/hy-image.vue +142 -272
  97. package/components/hy-image/props.ts +105 -23
  98. package/components/hy-image/typing.d.ts +84 -87
  99. package/components/hy-input/hy-input.vue +230 -421
  100. package/components/hy-input/props.ts +183 -35
  101. package/components/hy-input/typing.d.ts +169 -169
  102. package/components/hy-line/hy-line.vue +34 -72
  103. package/components/hy-line/props.ts +41 -10
  104. package/components/hy-line/typing.d.ts +29 -29
  105. package/components/hy-line-progress/hy-line-progress.vue +66 -101
  106. package/components/hy-line-progress/props.ts +31 -10
  107. package/components/hy-line-progress/typing.d.ts +29 -29
  108. package/components/hy-list/hy-list.vue +151 -220
  109. package/components/hy-list/props.ts +67 -16
  110. package/components/hy-list/typing.d.ts +52 -52
  111. package/components/hy-loading/hy-loading.vue +63 -119
  112. package/components/hy-loading/props.ts +63 -15
  113. package/components/hy-loading/typing.d.ts +49 -49
  114. package/components/hy-menu/hy-menu.vue +124 -166
  115. package/components/hy-menu/props.ts +42 -10
  116. package/components/hy-menu/typing.d.ts +60 -60
  117. package/components/hy-modal/hy-modal.vue +127 -218
  118. package/components/hy-modal/props.ts +89 -24
  119. package/components/hy-navbar/hy-navbar.vue +104 -177
  120. package/components/hy-navbar/props.ts +76 -22
  121. package/components/hy-navbar/typing.d.ts +81 -81
  122. package/components/hy-notice-bar/hy-notice-bar.vue +67 -144
  123. package/components/hy-notice-bar/props.ts +80 -19
  124. package/components/hy-notice-bar/typing.d.ts +62 -62
  125. package/components/hy-notify/hy-notify.vue +128 -177
  126. package/components/hy-notify/props.ts +49 -12
  127. package/components/hy-notify/typing.d.ts +45 -41
  128. package/components/hy-number-step/hy-number-step.vue +281 -394
  129. package/components/hy-number-step/props.ts +110 -27
  130. package/components/hy-number-step/typing.d.ts +120 -120
  131. package/components/hy-overlay/hy-overlay.vue +39 -66
  132. package/components/hy-overlay/props.ts +31 -8
  133. package/components/hy-pagination/hy-pagination.vue +100 -155
  134. package/components/hy-pagination/props.ts +53 -13
  135. package/components/hy-picker/hy-picker.vue +309 -430
  136. package/components/hy-picker/index.scss +8 -12
  137. package/components/hy-picker/props.ts +110 -26
  138. package/components/hy-popover/hy-popover.vue +190 -252
  139. package/components/hy-popover/props.ts +48 -10
  140. package/components/hy-popup/hy-popup.vue +162 -248
  141. package/components/hy-popup/props.ts +82 -18
  142. package/components/hy-price/hy-price.vue +45 -104
  143. package/components/hy-price/props.ts +52 -12
  144. package/components/hy-price/typing.d.ts +41 -36
  145. package/components/hy-qrcode/hy-qrcode.vue +115 -185
  146. package/components/hy-qrcode/props.ts +68 -18
  147. package/components/hy-qrcode/typing.d.ts +67 -66
  148. package/components/hy-radio/hy-radio.vue +161 -259
  149. package/components/hy-radio/props.ts +95 -25
  150. package/components/hy-radio/typing.d.ts +85 -84
  151. package/components/hy-rate/hy-rate.vue +185 -270
  152. package/components/hy-rate/props.ts +76 -18
  153. package/components/hy-rate/typing.d.ts +61 -60
  154. package/components/hy-read-more/hy-read-more.vue +93 -136
  155. package/components/hy-read-more/props.ts +43 -13
  156. package/components/hy-scroll-list/hy-scroll-list.vue +81 -102
  157. package/components/hy-scroll-list/props.ts +22 -11
  158. package/components/hy-search/hy-search.vue +155 -284
  159. package/components/hy-search/props.ts +130 -25
  160. package/components/hy-signature/hy-signature.vue +491 -635
  161. package/components/hy-signature/props.ts +115 -26
  162. package/components/hy-signature/typing.d.ts +138 -138
  163. package/components/hy-slider/hy-slider.vue +388 -477
  164. package/components/hy-slider/props.ts +75 -19
  165. package/components/hy-steps/hy-steps.vue +212 -279
  166. package/components/hy-steps/props.ts +47 -13
  167. package/components/hy-submit-bar/hy-submit-bar.vue +136 -221
  168. package/components/hy-submit-bar/props.ts +89 -20
  169. package/components/hy-submit-bar/typing.d.ts +87 -87
  170. package/components/hy-subsection/hy-subsection.vue +132 -185
  171. package/components/hy-subsection/props.ts +50 -17
  172. package/components/hy-subsection/typing.d.ts +52 -52
  173. package/components/hy-swipe-action/hy-swipe-action.vue +228 -283
  174. package/components/hy-swipe-action/props.ts +43 -18
  175. package/components/hy-swipe-action/typing.d.ts +46 -46
  176. package/components/hy-swiper/hy-swiper.vue +159 -286
  177. package/components/hy-swiper/props.ts +126 -28
  178. package/components/hy-swiper/typing.d.ts +115 -115
  179. package/components/hy-switch/hy-switch.vue +112 -176
  180. package/components/hy-switch/props.ts +60 -15
  181. package/components/hy-switch/typing.d.ts +63 -63
  182. package/components/hy-tabBar/hy-tabBar.vue +64 -60
  183. package/components/hy-tabs/hy-tabs.vue +277 -380
  184. package/components/hy-tabs/props.ts +75 -18
  185. package/components/hy-tag/hy-tag.vue +111 -204
  186. package/components/hy-tag/props.ts +81 -19
  187. package/components/hy-text/hy-text.vue +200 -322
  188. package/components/hy-text/props.ts +107 -28
  189. package/components/hy-textarea/hy-textarea.vue +147 -256
  190. package/components/hy-textarea/props.ts +112 -25
  191. package/components/hy-textarea/typing.d.ts +42 -42
  192. package/components/hy-toast/hy-toast.vue +135 -143
  193. package/components/hy-tooltip/hy-tooltip.vue +220 -306
  194. package/components/hy-tooltip/props.ts +79 -15
  195. package/components/hy-transition/hy-transition.vue +111 -138
  196. package/components/hy-transition/props.ts +30 -8
  197. package/components/hy-upload/hy-upload.vue +320 -469
  198. package/components/hy-upload/props.ts +130 -27
  199. package/components/hy-warn/hy-warn.vue +80 -129
  200. package/components/hy-warn/props.ts +47 -12
  201. package/components/hy-waterfall/hy-waterfall.vue +139 -163
  202. package/components/hy-waterfall/props.ts +19 -7
  203. package/components/hy-watermark/hy-watermark.vue +762 -870
  204. package/components/hy-watermark/props.ts +103 -22
  205. package/package.json +2 -2
  206. package/web-types.json +1 -1
@@ -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>