hy-app 0.4.15 → 0.5.1

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,15 +1,49 @@
1
- import type IProps from "./typing";
1
+ import type { StepListVo } from './typing'
2
+ import type { PropType } from 'vue'
2
3
 
3
- const defaultProps: IProps = {
4
- list: [],
5
- direction: "row",
6
- current: 0,
7
- activeColor: "",
8
- inactiveColor: "",
9
- activeIcon: "",
10
- inactiveIcon: "",
11
- dot: false,
12
- iconSize: 17,
13
- };
4
+ const stepsProps = {
5
+ /** 设置当前处于第几步 */
6
+ current: {
7
+ type: Number,
8
+ default: 0
9
+ },
10
+ /** 步骤条的数据集 */
11
+ list: {
12
+ type: Array as PropType<StepListVo[]>,
13
+ default: []
14
+ },
15
+ /**
16
+ * 方向
17
+ * @values row,column
18
+ * */
19
+ direction: {
20
+ type: String,
21
+ default: 'row'
22
+ },
23
+ /** 激活状态颜色 */
24
+ activeColor: {
25
+ type: String,
26
+ default: ''
27
+ },
28
+ /** 未激活状态颜色 */
29
+ inactiveColor: {
30
+ type: String,
31
+ default: ''
32
+ },
33
+ /** 激活状态的图标 */
34
+ activeIcon: String,
35
+ /** 未激活状态图标 */
36
+ inactiveIcon: String,
37
+ /** 是否显示点类型 */
38
+ dot: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ /** 图标大小 */
43
+ iconSize: {
44
+ type: [String, Number],
45
+ default: 17
46
+ }
47
+ }
14
48
 
15
- export default defaultProps;
49
+ export default stepsProps
@@ -1,274 +1,189 @@
1
1
  <template>
2
- <view
3
- :class="['hy-submit-bar', border && 'hy-border__top', customClass]"
4
- :style="submitBarStyle"
5
- >
6
- <view class="hy-submit-bar__left">
7
- <slot v-if="$slots.left" name="left"></slot>
8
- <view
9
- v-else-if="menus.length"
10
- class="hy-submit-bar__left--item"
11
- v-for="(item, i) in menus"
12
- :key="i"
13
- @tap="clickMenuFn(item, i)"
14
- >
15
- <HyIcon
16
- :name="item.icon"
17
- :label="item.text"
18
- :color="iconColor"
19
- :label-color="iconLabelColor"
20
- labelPos="bottom"
21
- space="7"
22
- :size="20"
23
- ></HyIcon>
24
- <HyBadge
25
- :value="item?.badge?.value"
26
- :absolute="true"
27
- :offset="item?.badge?.offset || [-5, 20]"
28
- :isDot="item?.badge?.isDot"
29
- :type="item?.badge?.type"
30
- :color="item?.badge?.color"
31
- :shape="item?.badge?.shape"
32
- :numberType="item?.badge?.numberType"
33
- :inverted="item?.badge?.inverted"
34
- ></HyBadge>
35
- </view>
36
- </view>
37
- <view class="hy-submit-bar__right">
38
- <slot v-if="$slots.right" name="right"></slot>
39
- <template v-else>
40
- <view
41
- class="hy-submit-bar__right--button"
42
- v-if="showLeftBtn"
43
- :style="leftBtnStyle"
44
- @tap.stop="confirmClickFn(0)"
45
- >
46
- <HyLoading
47
- :show="leftLoading"
48
- size="13"
49
- mode="circle"
50
- :custom-style="{ marginRight: '10rpx' }"
51
- ></HyLoading>
52
- {{ leftBtnText }}
2
+ <view
3
+ :class="['hy-submit-bar', border && 'hy-border__top', customClass]"
4
+ :style="submitBarStyle"
5
+ >
6
+ <view class="hy-submit-bar__left">
7
+ <slot v-if="$slots.left" name="left"></slot>
8
+ <view
9
+ v-else-if="menus.length"
10
+ class="hy-submit-bar__left--item"
11
+ v-for="(item, i) in menus"
12
+ :key="i"
13
+ @tap="clickMenuFn(item, i)"
14
+ >
15
+ <hy-icon
16
+ :name="item.icon"
17
+ :label="item.text"
18
+ :color="iconColor"
19
+ :label-color="iconLabelColor"
20
+ labelPos="bottom"
21
+ space="7"
22
+ :size="20"
23
+ ></hy-icon>
24
+ <hy-badge
25
+ :value="item?.badge?.value"
26
+ :absolute="true"
27
+ :offset="item?.badge?.offset || [-5, 20]"
28
+ :isDot="item?.badge?.isDot"
29
+ :type="item?.badge?.type"
30
+ :color="item?.badge?.color"
31
+ :shape="item?.badge?.shape"
32
+ :numberType="item?.badge?.numberType"
33
+ :inverted="item?.badge?.inverted"
34
+ ></hy-badge>
35
+ </view>
53
36
  </view>
54
- <view
55
- class="hy-submit-bar__right--button"
56
- v-if="showRightBtn"
57
- :style="rightBtnStyle"
58
- @tap.stop="confirmClickFn(1)"
59
- >
60
- <HyLoading
61
- :show="rightLoading"
62
- size="13"
63
- mode="circle"
64
- :custom-style="{ marginRight: '10rpx' }"
65
- ></HyLoading>
66
- {{ rightBtnText }}
37
+ <view class="hy-submit-bar__right">
38
+ <slot v-if="$slots.right" name="right"></slot>
39
+ <template v-else>
40
+ <view
41
+ class="hy-submit-bar__right--button"
42
+ v-if="showLeftBtn"
43
+ :style="leftBtnStyle"
44
+ @tap.stop="confirmClickFn(0)"
45
+ >
46
+ <hy-loading
47
+ :show="leftLoading"
48
+ size="13"
49
+ mode="circle"
50
+ :custom-style="{ marginRight: '10rpx' }"
51
+ ></hy-loading>
52
+ {{ leftBtnText }}
53
+ </view>
54
+ <view
55
+ class="hy-submit-bar__right--button"
56
+ v-if="showRightBtn"
57
+ :style="rightBtnStyle"
58
+ @tap.stop="confirmClickFn(1)"
59
+ >
60
+ <hy-loading
61
+ :show="rightLoading"
62
+ size="13"
63
+ mode="circle"
64
+ :custom-style="{ marginRight: '10rpx' }"
65
+ ></hy-loading>
66
+ {{ rightBtnText }}
67
+ </view>
68
+ </template>
67
69
  </view>
68
- </template>
69
70
  </view>
70
- </view>
71
71
  </template>
72
72
 
73
73
  <script lang="ts">
74
74
  export default {
75
- name: "hy-submit-bar",
76
- options: {
77
- addGlobalClass: true,
78
- virtualHost: true,
79
- styleIsolation: "shared",
80
- },
81
- };
75
+ name: 'hy-submit-bar',
76
+ options: {
77
+ addGlobalClass: true,
78
+ virtualHost: true,
79
+ styleIsolation: 'shared'
80
+ }
81
+ }
82
82
  </script>
83
83
 
84
84
  <script setup lang="ts">
85
- import { computed } from "vue";
86
- import type { CSSProperties, PropType } from "vue";
87
- import type { SubmitBarIconMenus, ISubmitBarEmits } from "./typing";
85
+ import { computed } from 'vue'
86
+ import type { CSSProperties } from 'vue'
87
+ import type { SubmitBarIconMenus, ISubmitBarEmits } from './typing'
88
+ import submitBarProps from './props'
88
89
  // 组件
89
- import HyIcon from "../hy-icon/hy-icon.vue";
90
- import HyLoading from "../hy-loading/hy-loading.vue";
91
- import HyBadge from "../hy-badge/hy-badge.vue";
90
+ import HyIcon from '../hy-icon/hy-icon.vue'
91
+ import HyLoading from '../hy-loading/hy-loading.vue'
92
+ import HyBadge from '../hy-badge/hy-badge.vue'
92
93
 
93
94
  /**
94
95
  * 该布局一般用于商品详情页底部引导用户快速购买商品的场景,开发者可以根据自己的需求修改布局结构和样式。
95
96
  * @displayName hy-submit-bar
96
97
  */
97
- defineOptions({});
98
+ defineOptions({})
98
99
 
99
- // const props = withDefaults(defineProps<IProps>(), defaultProps)
100
- const props = defineProps({
101
- /** 左边菜单栏 */
102
- menus: {
103
- type: Array as unknown as PropType<SubmitBarIconMenus[]>,
104
- default: [],
105
- },
106
- /** 绝对定位 */
107
- fixed: {
108
- type: Boolean,
109
- default: true,
110
- },
111
- /** 是否显示边框 */
112
- border: {
113
- type: Boolean,
114
- default: true,
115
- },
116
- /** 加载左边按钮loading */
117
- leftLoading: {
118
- type: Boolean,
119
- default: false,
120
- },
121
- /** 加载右边按钮loading */
122
- rightLoading: {
123
- type: Boolean,
124
- default: false,
125
- },
126
- /** 左边icon的颜色 */
127
- iconColor: String,
128
- /** 左边文字的颜色 */
129
- iconLabelColor: {
130
- type: String,
131
- default: "#909193FF",
132
- },
133
- /** 右边按钮文字颜色 */
134
- textColor: String,
135
- /** 显示左边按钮 */
136
- showLeftBtn: {
137
- type: Boolean,
138
- default: true,
139
- },
140
- /** 显示右边按钮 */
141
- showRightBtn: {
142
- type: Boolean,
143
- default: true,
144
- },
145
- /** 左边按钮文字 */
146
- leftBtnText: {
147
- type: String,
148
- default: "加入购物车",
149
- },
150
- /** 右边按钮文字 */
151
- rightBtnText: {
152
- type: String,
153
- default: "立即购买",
154
- },
155
- /** 左边按钮颜色,支持渐变色 */
156
- leftBtnColor: {
157
- type: String,
158
- default: "#ed3f14",
159
- },
160
- /** 有边按钮颜色,支持渐变色 */
161
- rightBtnColor: {
162
- type: String,
163
- default: "#ff7900",
164
- },
165
- /**
166
- * 按钮的形状
167
- * @values circle,square
168
- * */
169
- shape: {
170
- type: String,
171
- default: "circle",
172
- },
173
- /** 层级 */
174
- zIndex: {
175
- type: [Number, String],
176
- default: 999,
177
- },
178
- /** 定义需要用到的外部样式 */
179
- customStyle: {
180
- type: Object as PropType<CSSProperties>,
181
- default: () => {},
182
- },
183
- /** 自定义外部类名 */
184
- customClass: String,
185
- });
186
- const emit = defineEmits<ISubmitBarEmits>();
100
+ const props = defineProps(submitBarProps)
101
+ const emit = defineEmits<ISubmitBarEmits>()
187
102
 
188
103
  /**
189
104
  * @description 整体样式
190
105
  * */
191
106
  const submitBarStyle = computed(() => {
192
- const style: CSSProperties = {
193
- bottom: 0,
194
- left: 0,
195
- zIndex: props.zIndex,
196
- };
197
- if (props.fixed) style.position = "fixed";
198
- return Object.assign(style, props.customStyle);
199
- });
107
+ const style: CSSProperties = {
108
+ bottom: 0,
109
+ left: 0,
110
+ zIndex: props.zIndex
111
+ }
112
+ if (props.fixed) style.position = 'fixed'
113
+ return Object.assign(style, props.customStyle)
114
+ })
200
115
 
201
116
  /**
202
117
  * @description 左边按钮样式
203
118
  * */
204
119
  const leftBtnStyle = computed(() => {
205
- const style: CSSProperties = {
206
- background: props.leftBtnColor,
207
- color: props.textColor,
208
- };
209
- if (!props.showRightBtn) {
210
- style.flex = 1;
211
- if (props.shape === "circle") {
212
- style.borderRadius = "100px";
213
- } else {
214
- style.borderRadius = "2px";
120
+ const style: CSSProperties = {
121
+ background: props.leftBtnColor,
122
+ color: props.textColor
215
123
  }
216
- } else {
217
- if (props.shape === "circle") {
218
- style.borderRadius = "100px 0 0 100px";
124
+ if (!props.showRightBtn) {
125
+ style.flex = 1
126
+ if (props.shape === 'circle') {
127
+ style.borderRadius = '100px'
128
+ } else {
129
+ style.borderRadius = '2px'
130
+ }
219
131
  } else {
220
- style.borderRadius = "2px 0 0 2px";
132
+ if (props.shape === 'circle') {
133
+ style.borderRadius = '100px 0 0 100px'
134
+ } else {
135
+ style.borderRadius = '2px 0 0 2px'
136
+ }
221
137
  }
222
- }
223
- return style;
224
- });
138
+ return style
139
+ })
225
140
 
226
141
  /**
227
142
  * @description 右边按钮样式
228
143
  * */
229
144
  const rightBtnStyle = computed(() => {
230
- const style: CSSProperties = {
231
- background: props.rightBtnColor,
232
- color: props.textColor,
233
- };
234
- if (!props.showLeftBtn) {
235
- style.flex = 1;
236
- if (props.shape === "circle") {
237
- style.borderRadius = "100px";
238
- } else {
239
- style.borderRadius = "2px";
145
+ const style: CSSProperties = {
146
+ background: props.rightBtnColor,
147
+ color: props.textColor
240
148
  }
241
- } else {
242
- if (props.shape === "circle") {
243
- style.borderRadius = "0 100px 100px 0";
149
+ if (!props.showLeftBtn) {
150
+ style.flex = 1
151
+ if (props.shape === 'circle') {
152
+ style.borderRadius = '100px'
153
+ } else {
154
+ style.borderRadius = '2px'
155
+ }
244
156
  } else {
245
- style.borderRadius = "0 2px 2px 0";
157
+ if (props.shape === 'circle') {
158
+ style.borderRadius = '0 100px 100px 0'
159
+ } else {
160
+ style.borderRadius = '0 2px 2px 0'
161
+ }
246
162
  }
247
- }
248
- return style;
249
- });
163
+ return style
164
+ })
250
165
 
251
166
  /**
252
167
  * @description 点击左边图标
253
168
  * */
254
169
  const clickMenuFn = (temp: SubmitBarIconMenus, index: number) => {
255
- emit("menuClick", temp, index);
256
- };
170
+ emit('menuClick', temp, index)
171
+ }
257
172
 
258
173
  /**
259
174
  * @description 点击按钮
260
175
  * */
261
176
  const confirmClickFn = (i: number) => {
262
- if (
263
- (!props.leftLoading && !props.rightLoading) ||
264
- (props.leftLoading && i !== 0) ||
265
- (props.rightLoading && i !== 1)
266
- ) {
267
- emit("click", i);
268
- }
269
- };
177
+ if (
178
+ (!props.leftLoading && !props.rightLoading) ||
179
+ (props.leftLoading && i !== 0) ||
180
+ (props.rightLoading && i !== 1)
181
+ ) {
182
+ emit('click', i)
183
+ }
184
+ }
270
185
  </script>
271
186
 
272
187
  <style lang="scss" scoped>
273
- @import "./index.scss";
188
+ @import './index.scss';
274
189
  </style>
@@ -1,22 +1,91 @@
1
- import type IProps from "./typing";
1
+ import type { SubmitBarIconMenus } from './typing'
2
+ import type { CSSProperties, PropType } from 'vue'
2
3
 
3
- const defaultProps: IProps = {
4
- menus: [],
5
- fixed: true,
6
- border: true,
7
- leftLoading: false,
8
- rightLoading: false,
9
- iconColor: "",
10
- iconLabelColor: "#909193FF",
11
- textColor: "",
12
- showLeftBtn: true,
13
- showRightBtn: true,
14
- leftBtnText: "加入购物车",
15
- rightBtnText: "立即购买",
16
- leftBtnColor: "#ed3f14",
17
- rightBtnColor: "#ff7900",
18
- shape: "circle",
19
- warn: 300,
20
- };
4
+ const submitBarProps = {
5
+ /** 左边菜单栏 */
6
+ menus: {
7
+ type: Array as unknown as PropType<SubmitBarIconMenus[]>,
8
+ default: []
9
+ },
10
+ /** 绝对定位 */
11
+ fixed: {
12
+ type: Boolean,
13
+ default: true
14
+ },
15
+ /** 是否显示边框 */
16
+ border: {
17
+ type: Boolean,
18
+ default: true
19
+ },
20
+ /** 加载左边按钮loading */
21
+ leftLoading: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ /** 加载右边按钮loading */
26
+ rightLoading: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ /** 左边icon的颜色 */
31
+ iconColor: String,
32
+ /** 左边文字的颜色 */
33
+ iconLabelColor: {
34
+ type: String,
35
+ default: '#909193FF'
36
+ },
37
+ /** 右边按钮文字颜色 */
38
+ textColor: String,
39
+ /** 显示左边按钮 */
40
+ showLeftBtn: {
41
+ type: Boolean,
42
+ default: true
43
+ },
44
+ /** 显示右边按钮 */
45
+ showRightBtn: {
46
+ type: Boolean,
47
+ default: true
48
+ },
49
+ /** 左边按钮文字 */
50
+ leftBtnText: {
51
+ type: String,
52
+ default: '加入购物车'
53
+ },
54
+ /** 右边按钮文字 */
55
+ rightBtnText: {
56
+ type: String,
57
+ default: '立即购买'
58
+ },
59
+ /** 左边按钮颜色,支持渐变色 */
60
+ leftBtnColor: {
61
+ type: String,
62
+ default: '#ed3f14'
63
+ },
64
+ /** 有边按钮颜色,支持渐变色 */
65
+ rightBtnColor: {
66
+ type: String,
67
+ default: '#ff7900'
68
+ },
69
+ /**
70
+ * 按钮的形状
71
+ * @values circle,square
72
+ * */
73
+ shape: {
74
+ type: String,
75
+ default: 'circle'
76
+ },
77
+ /** 层级 */
78
+ zIndex: {
79
+ type: [Number, String],
80
+ default: 999
81
+ },
82
+ /** 定义需要用到的外部样式 */
83
+ customStyle: {
84
+ type: Object as PropType<CSSProperties>,
85
+ default: () => {}
86
+ },
87
+ /** 自定义外部类名 */
88
+ customClass: String
89
+ }
21
90
 
22
- export default defaultProps;
91
+ export default submitBarProps