@10yun/cv-mobile-ui 0.4.2 → 0.4.4

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 (168) hide show
  1. package/package.json +1 -1
  2. package/ui-cv/cv-form-item/cv-form-item.vue +1 -1
  3. package/ui-cv/cv-input-password/cv-input-password.vue +2 -2
  4. package/ui-uni/amap-wx/js/util.js +166 -158
  5. package/ui-uni/page-foot/page-foot.vue +38 -0
  6. package/ui-uni/page-head/page-head.vue +16 -0
  7. package/ui-uni/product.vue +52 -52
  8. package/ui-uni/u-charts/u-charts.js +743 -1092
  9. package/ui-uni/u-link/u-link.vue +59 -0
  10. package/ui-uni/uni-badge/uni-badge.vue +250 -0
  11. package/ui-uni/uni-calendar/calendar.js +546 -0
  12. package/ui-uni/uni-calendar/uni-calendar-item.vue +171 -0
  13. package/ui-uni/uni-calendar/uni-calendar.vue +504 -0
  14. package/{ui-cv/cv-calendar → ui-uni/uni-calendar}/util.js +0 -0
  15. package/ui-uni/uni-card/uni-card.vue +420 -0
  16. package/ui-uni/uni-col/uni-col.vue +2968 -0
  17. package/ui-uni/uni-collapse/uni-collapse.vue +146 -0
  18. package/ui-uni/uni-collapse-item/uni-collapse-item.vue +378 -0
  19. package/ui-uni/uni-combox/uni-combox.vue +237 -0
  20. package/ui-uni/uni-countdown/uni-countdown.vue +234 -0
  21. package/ui-uni/uni-data-checkbox/uni-data-checkbox.vue +792 -0
  22. package/{ui-cv/cv-data-indexed-list → ui-uni/uni-data-indexed-list}/clientdb.js +0 -0
  23. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list-item.vue +142 -0
  24. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list.vue +364 -0
  25. package/{ui-cv/cv-data-picker → ui-uni/uni-data-picker}/keypress.js +0 -0
  26. package/ui-uni/uni-data-picker/uni-data-picker.vue +468 -0
  27. package/{ui-cv/cv-data-pickerview/cv-data-picker.js → ui-uni/uni-data-pickerview/uni-data-picker.js} +0 -0
  28. package/ui-uni/uni-data-pickerview/uni-data-pickerview.vue +298 -0
  29. package/{ui-cv/cv-dateformat → ui-uni/uni-dateformat}/date-format.js +0 -0
  30. package/ui-uni/uni-dateformat/uni-dateformat.vue +88 -0
  31. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar-item.vue +0 -0
  32. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar.js +0 -0
  33. package/ui-uni/uni-datetime-picker/calendar.vue +747 -0
  34. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/keypress.js +0 -0
  35. package/ui-uni/uni-datetime-picker/time-picker.vue +899 -0
  36. package/ui-uni/uni-datetime-picker/uni-datetime-picker.vue +874 -0
  37. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/util.js +0 -0
  38. package/ui-uni/uni-drawer/keypress.js +45 -0
  39. package/ui-uni/uni-drawer/uni-drawer.vue +178 -0
  40. package/{ui-cv/cv-easyinput → ui-uni/uni-easyinput}/common.js +0 -0
  41. package/ui-uni/uni-easyinput/uni-easyinput.vue +438 -0
  42. package/ui-uni/uni-fab/uni-fab.vue +443 -0
  43. package/{ui-cv/cv-fab/cv-fab.vue.bak → ui-uni/uni-fab/uni-fab.vue.bak} +2 -2
  44. package/ui-uni/uni-fav/uni-fav.vue +136 -0
  45. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/choose-and-upload-file.js +0 -0
  46. package/ui-uni/uni-file-picker/uni-file-picker.vue +614 -0
  47. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-file.vue +0 -0
  48. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-image.vue +0 -0
  49. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/utils.js +0 -0
  50. package/ui-uni/uni-forms/uni-forms.vue +467 -0
  51. package/ui-uni/uni-forms/validate.js +486 -0
  52. package/ui-uni/uni-forms-item/uni-forms-item.vue +500 -0
  53. package/{ui-cv/cv-goods-nav/cv-goods-nav.vue → ui-uni/uni-goods-nav/uni-goods-nav.vue} +1 -1
  54. package/ui-uni/uni-grid/uni-grid.vue +141 -0
  55. package/ui-uni/uni-grid-item/uni-grid-item.vue +123 -0
  56. package/ui-uni/uni-group/uni-group.vue +123 -0
  57. package/ui-uni/uni-icons/icons.js +132 -0
  58. package/ui-uni/uni-icons/uni-icons.vue +72 -0
  59. package/{ui-cv/cv-icon2 → ui-uni/uni-icons}/uni.ttf +0 -0
  60. package/ui-uni/uni-indexed-list/uni-indexed-list-item.vue +142 -0
  61. package/ui-uni/uni-indexed-list/uni-indexed-list.vue +357 -0
  62. package/ui-uni/uni-link/uni-link.vue +117 -0
  63. package/ui-uni/uni-list/uni-list.vue +107 -0
  64. package/ui-uni/uni-list/uni-refresh.vue +65 -0
  65. package/{ui-cv/cv-list → ui-uni/uni-list}/uni-refresh.wxs +0 -0
  66. package/ui-uni/uni-list-ad/uni-list-ad.vue +106 -0
  67. package/{ui-cv/cv-list-chat/cv-list-chat.scss → ui-uni/uni-list-chat/uni-list-chat.scss} +0 -0
  68. package/{ui-cv/cv-list-chat/cv-list-chat.vue → ui-uni/uni-list-chat/uni-list-chat.vue} +0 -0
  69. package/ui-uni/uni-list-item/uni-list-item.vue +428 -0
  70. package/ui-uni/uni-load-more/uni-load-more.vue +366 -0
  71. package/ui-uni/uni-nav-bar/uni-nav-bar.vue +244 -0
  72. package/{ui-cv/cv-nav-bar/cv-status-bar.vue → ui-uni/uni-nav-bar/uni-status-bar.vue} +0 -0
  73. package/ui-uni/uni-notice-bar/uni-notice-bar.vue +394 -0
  74. package/ui-uni/uni-number-box/uni-number-box.vue +224 -0
  75. package/ui-uni/uni-pagination/uni-pagination.vue +376 -0
  76. package/{ui-cv/cv-popup → ui-uni/uni-popup}/keypress.js +0 -0
  77. package/{ui-cv/cv-popup → ui-uni/uni-popup}/popup.js +0 -0
  78. package/ui-uni/uni-popup/uni-popup.vue +412 -0
  79. package/{ui-cv/cv-popup-dialog → ui-uni/uni-popup-dialog}/keypress.js +0 -0
  80. package/{ui-cv/cv-popup-dialog/cv-popup-dialog.vue → ui-uni/uni-popup-dialog/uni-popup-dialog.vue} +0 -0
  81. package/ui-uni/uni-popup-message/uni-popup-message.vue +143 -0
  82. package/{ui-cv/cv-popup-share/cv-popup-share.vue → ui-uni/uni-popup-share/uni-popup-share.vue} +0 -0
  83. package/ui-uni/uni-rate/uni-rate.vue +357 -0
  84. package/ui-uni/uni-row/uni-row.vue +155 -0
  85. package/ui-uni/uni-search-bar/uni-search-bar.vue +262 -0
  86. package/{ui-cv/cv-section/cv-section.vue → ui-uni/uni-section/uni-section.vue} +0 -0
  87. package/{ui-cv/cv-segmented-control/cv-segmented-control.vue → ui-uni/uni-segmented-control/uni-segmented-control.vue} +0 -0
  88. package/{ui-cv/cv-status-bar/cv-status-bar.vue → ui-uni/uni-status-bar/uni-status-bar.vue} +0 -0
  89. package/ui-uni/uni-steps/uni-steps.vue +250 -0
  90. package/{ui-cv/cv-swipe-action/cv-swipe-action.vue → ui-uni/uni-swipe-action/uni-swipe-action.vue} +0 -0
  91. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/bindingx.js +0 -0
  92. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/index.wxs +0 -0
  93. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/isPC.js +0 -0
  94. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpalipay.js +0 -0
  95. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpother.js +0 -0
  96. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpwxs.js +0 -0
  97. package/{ui-cv/cv-swipe-action-item/cv-swipe-action-item.vue → ui-uni/uni-swipe-action-item/uni-swipe-action-item.vue} +0 -0
  98. package/ui-uni/uni-swiper-dot/uni-swiper-dot.vue +205 -0
  99. package/ui-uni/uni-table/uni-table.vue +455 -0
  100. package/ui-uni/uni-tag/uni-tag.vue +283 -0
  101. package/ui-uni/uni-tbody/uni-tbody.vue +30 -0
  102. package/ui-uni/uni-td/uni-td.vue +88 -0
  103. package/{ui-cv/cv-test/cv-test.vue → ui-uni/uni-test/uni-test.vue} +0 -0
  104. package/{ui-cv/cv-th → ui-uni/uni-th}/filter-dropdown.vue +0 -0
  105. package/ui-uni/uni-th/uni-th.vue +259 -0
  106. package/ui-uni/uni-thead/uni-thead.vue +114 -0
  107. package/ui-uni/uni-title/uni-title.vue +171 -0
  108. package/{ui-cv/cv-tr → ui-uni/uni-tr}/table-checkbox.vue +0 -0
  109. package/ui-uni/uni-tr/uni-tr.vue +156 -0
  110. package/{ui-cv/cv-transition → ui-uni/uni-transition}/createAnimation.js +0 -0
  111. package/ui-uni/uni-transition/uni-transition.vue +287 -0
  112. package/ui-cv/cv-badge/cv-badge.vue +0 -249
  113. package/ui-cv/cv-calendar/calendar.js +0 -963
  114. package/ui-cv/cv-calendar/cv-calendar-item.vue +0 -198
  115. package/ui-cv/cv-calendar/cv-calendar.vue +0 -508
  116. package/ui-cv/cv-card/cv-card.vue +0 -427
  117. package/ui-cv/cv-col/cv-col.vue +0 -2965
  118. package/ui-cv/cv-collapse/cv-collapse.vue +0 -146
  119. package/ui-cv/cv-collapse-item/cv-collapse-item.vue +0 -395
  120. package/ui-cv/cv-combox/cv-combox.vue +0 -250
  121. package/ui-cv/cv-countdown/cv-countdown.vue +0 -245
  122. package/ui-cv/cv-data-checkbox/cv-data-checkbox.vue +0 -841
  123. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list-item.vue +0 -154
  124. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list.vue +0 -376
  125. package/ui-cv/cv-data-picker/cv-data-picker.vue +0 -486
  126. package/ui-cv/cv-data-pickerview/cv-data-pickerview.vue +0 -304
  127. package/ui-cv/cv-dateformat/cv-dateformat.vue +0 -86
  128. package/ui-cv/cv-datetime-picker/calendar.vue +0 -761
  129. package/ui-cv/cv-datetime-picker/cv-datetime-picker.vue +0 -958
  130. package/ui-cv/cv-datetime-picker/time-picker.vue +0 -907
  131. package/ui-cv/cv-drawer/cv-drawer.vue +0 -185
  132. package/ui-cv/cv-drawer/keypress.js +0 -45
  133. package/ui-cv/cv-easyinput/cv-easyinput.vue +0 -514
  134. package/ui-cv/cv-fab/cv-fab.vue +0 -465
  135. package/ui-cv/cv-fav/cv-fav.vue +0 -150
  136. package/ui-cv/cv-file-picker/cv-file-picker.vue +0 -619
  137. package/ui-cv/cv-form-base/cv-form-base.vue +0 -470
  138. package/ui-cv/cv-form-base/validate.js +0 -477
  139. package/ui-cv/cv-grid-group/cv-grid-group.vue +0 -148
  140. package/ui-cv/cv-grid-item/cv-grid-item.vue +0 -132
  141. package/ui-cv/cv-icon2/cv-icon2.vue +0 -78
  142. package/ui-cv/cv-icon2/icons.js +0 -132
  143. package/ui-cv/cv-indexed-list/cv-indexed-list-item.vue +0 -154
  144. package/ui-cv/cv-indexed-list/cv-indexed-list.vue +0 -371
  145. package/ui-cv/cv-link2/cv-link2.vue +0 -130
  146. package/ui-cv/cv-list/cv-list.vue +0 -107
  147. package/ui-cv/cv-list/cv-refresh.vue +0 -65
  148. package/ui-cv/cv-list-ad/cv-list-ad.vue +0 -113
  149. package/ui-cv/cv-list-item/cv-list-item.vue +0 -449
  150. package/ui-cv/cv-nav-bar/cv-nav-bar.vue +0 -256
  151. package/ui-cv/cv-notice-bar/cv-notice-bar.vue +0 -453
  152. package/ui-cv/cv-number-box/cv-number-box.vue +0 -223
  153. package/ui-cv/cv-pagination/cv-pagination.vue +0 -397
  154. package/ui-cv/cv-popup/cv-popup.vue +0 -429
  155. package/ui-cv/cv-popup-message/cv-popup-message.vue +0 -143
  156. package/ui-cv/cv-row/cv-row.vue +0 -157
  157. package/ui-cv/cv-search-bar/cv-search-bar.vue +0 -280
  158. package/ui-cv/cv-steps/cv-steps.vue +0 -293
  159. package/ui-cv/cv-swiper-dot/cv-swiper-dot.vue +0 -255
  160. package/ui-cv/cv-table/cv-table.vue +0 -460
  161. package/ui-cv/cv-tag/cv-tag.vue +0 -276
  162. package/ui-cv/cv-tbody/cv-tbody.vue +0 -28
  163. package/ui-cv/cv-td/cv-td.vue +0 -93
  164. package/ui-cv/cv-th/cv-th.vue +0 -270
  165. package/ui-cv/cv-thead/cv-thead.vue +0 -114
  166. package/ui-cv/cv-title/cv-title.vue +0 -168
  167. package/ui-cv/cv-tr/cv-tr.vue +0 -166
  168. package/ui-cv/cv-transition/cv-transition.vue +0 -279
@@ -1,280 +0,0 @@
1
- <template>
2
- <view class="uni-searchbar">
3
- <view :style="{ borderRadius: radius + 'px', backgroundColor: bgColor }" class="uni-searchbar__box" @click="searchClick">
4
- <view class="uni-searchbar__box-icon-search">
5
- <slot name="searchIcon">
6
- <cv-icon2 color="#999999" size="18" type="search" />
7
- </slot>
8
- </view>
9
- <input
10
- v-if="show || searchVal"
11
- :focus="showSync"
12
- :placeholder="placeholder"
13
- :maxlength="maxlength"
14
- class="uni-searchbar__box-search-input"
15
- confirm-type="search"
16
- type="text"
17
- v-model="searchVal"
18
- @confirm="confirm"
19
- @blur="blur"
20
- @focus="emitFocus"
21
- />
22
- <text v-else class="uni-searchbar__text-placeholder">{{ placeholder }}</text>
23
- <view
24
- v-if="show && (clearButton === 'always' || (clearButton === 'auto' && searchVal !== ''))"
25
- class="uni-searchbar__box-icon-clear"
26
- @click="clear"
27
- >
28
- <slot name="clearIcon">
29
- <cv-icon2 color="#c0c4cc" size="15" type="clear" />
30
- </slot>
31
- </view>
32
- </view>
33
- <text @click="cancel" class="uni-searchbar__cancel" v-if="cancelButton === 'always' || (show && cancelButton === 'auto')">
34
- {{ cancelText }}
35
- </text>
36
- </view>
37
- </template>
38
-
39
- <script>
40
- /**
41
- * SearchBar 搜索栏
42
- * @description 评分组件
43
- * @tutorial https://ext.dcloud.net.cn/plugin?id=866
44
- * @property {Number} radius 搜索栏圆角
45
- * @property {Number} maxlength 输入最大长度
46
- * @property {String} placeholder 搜索栏Placeholder
47
- * @property {String} clearButton = [always|auto|none] 是否显示清除按钮
48
- * @value always 一直显示
49
- * @value auto 输入框不为空时显示
50
- * @value none 一直不显示
51
- * @property {String} cancelButton = [always|auto|none] 是否显示取消按钮
52
- * @value always 一直显示
53
- * @value auto 输入框不为空时显示
54
- * @value none 一直不显示
55
- * @property {String} cancelText 取消按钮的文字
56
- * @property {String} bgColor 输入框背景颜色
57
- * @property {Boolean} focus 是否自动聚焦
58
- * @event {Function} confirm uniSearchBar 的输入框 confirm 事件,返回参数为uniSearchBar的value,e={value:Number}
59
- * @event {Function} input uniSearchBar 的 value 改变时触发事件,返回参数为uniSearchBar的value,e=value
60
- * @event {Function} cancel 点击取消按钮时触发事件,返回参数为uniSearchBar的value,e={value:Number}
61
- * @event {Function} clear 点击清除按钮时触发事件,返回参数为uniSearchBar的value,e={value:Number}
62
- * @event {Function} blur input失去焦点时触发事件,返回参数为uniSearchBar的value,e={value:Number}
63
- */
64
-
65
- export default {
66
- name: 'cvSearchBar',
67
- emits: ['input', 'update:modelValue', 'clear', 'cancel', 'confirm', 'blur', 'focus'],
68
- props: {
69
- placeholder: {
70
- type: String,
71
- default: '请输入搜索内容'
72
- },
73
- radius: {
74
- type: [Number, String],
75
- default: 5
76
- },
77
- clearButton: {
78
- type: String,
79
- default: 'auto'
80
- },
81
- cancelButton: {
82
- type: String,
83
- default: 'auto'
84
- },
85
- cancelText: {
86
- type: String,
87
- default: '取消'
88
- },
89
- bgColor: {
90
- type: String,
91
- default: '#F8F8F8'
92
- },
93
- maxlength: {
94
- type: [Number, String],
95
- default: 100
96
- },
97
- value: {
98
- type: [Number, String],
99
- default: ''
100
- },
101
- modelValue: {
102
- type: [Number, String],
103
- default: ''
104
- },
105
- focus: {
106
- type: Boolean,
107
- default: false
108
- }
109
- },
110
- data() {
111
- return {
112
- show: false,
113
- showSync: false,
114
- searchVal: ''
115
- };
116
- },
117
- watch: {
118
- value: {
119
- immediate: true,
120
- handler(newVal) {
121
- this.searchVal = newVal;
122
- if (newVal) {
123
- this.show = true;
124
- }
125
- }
126
- },
127
- modelValue: {
128
- immediate: true,
129
- handler(newVal) {
130
- this.searchVal = newVal;
131
- if (newVal) {
132
- this.show = true;
133
- }
134
- }
135
- },
136
- focus: {
137
- immediate: true,
138
- handler(newVal) {
139
- if (newVal) {
140
- this.show = true;
141
- this.$nextTick(() => {
142
- this.showSync = true;
143
- });
144
- }
145
- }
146
- },
147
- searchVal(newVal, oldVal) {
148
- this.$emit('input', newVal);
149
- this.$emit('update:modelValue', newVal);
150
- }
151
- },
152
- methods: {
153
- searchClick() {
154
- if (this.show) {
155
- return;
156
- }
157
- this.show = true;
158
- this.$nextTick(() => {
159
- this.showSync = true;
160
- });
161
- },
162
- clear() {
163
- this.$emit('clear', {
164
- value: this.searchVal
165
- });
166
- this.searchVal = '';
167
- },
168
- cancel() {
169
- this.$emit('cancel', {
170
- value: this.searchVal
171
- });
172
- this.searchVal = '';
173
- this.show = false;
174
- this.showSync = false;
175
- // #ifndef APP-PLUS
176
- uni.hideKeyboard();
177
- // #endif
178
- // #ifdef APP-PLUS
179
- plus.key.hideSoftKeybord();
180
- // #endif
181
- },
182
- confirm() {
183
- // #ifndef APP-PLUS
184
- uni.hideKeyboard();
185
- // #endif
186
- // #ifdef APP-PLUS
187
- plus.key.hideSoftKeybord();
188
- // #endif
189
- this.$emit('confirm', {
190
- value: this.searchVal
191
- });
192
- },
193
- blur() {
194
- // #ifndef APP-PLUS
195
- uni.hideKeyboard();
196
- // #endif
197
- // #ifdef APP-PLUS
198
- plus.key.hideSoftKeybord();
199
- // #endif
200
- this.$emit('blur', {
201
- value: this.searchVal
202
- });
203
- },
204
- emitFocus(e) {
205
- this.$emit('focus', e.detail);
206
- }
207
- }
208
- };
209
- </script>
210
-
211
- <style scoped>
212
- .uni-searchbar {
213
- /* #ifndef APP-NVUE */
214
- display: flex;
215
- /* #endif */
216
- flex-direction: row;
217
- position: relative;
218
- padding: 8px;
219
- }
220
-
221
- .uni-searchbar__box {
222
- /* #ifndef APP-NVUE */
223
- display: flex;
224
- box-sizing: border-box;
225
- /* #endif */
226
- overflow: hidden;
227
- position: relative;
228
- flex: 1;
229
- justify-content: center;
230
- flex-direction: row;
231
- align-items: center;
232
- height: 36px;
233
- padding: 5px 8px 5px 0px;
234
- border-width: 0.5px;
235
- border-style: solid;
236
- border-color: #e5e5e5;
237
- }
238
-
239
- .uni-searchbar__box-icon-search {
240
- /* #ifndef APP-NVUE */
241
- display: flex;
242
- /* #endif */
243
- flex-direction: row;
244
- padding: 0 8px;
245
- justify-content: center;
246
- align-items: center;
247
- color: #808080;
248
- }
249
-
250
- .uni-searchbar__box-search-input {
251
- flex: 1;
252
- font-size: 14px;
253
- color: #333;
254
- }
255
-
256
- .uni-searchbar__box-icon-clear {
257
- align-items: center;
258
- line-height: 24px;
259
- padding-left: 8px;
260
- /* #ifdef H5 */
261
- cursor: pointer;
262
- /* #endif */
263
- }
264
-
265
- .uni-searchbar__text-placeholder {
266
- font-size: 14px;
267
- color: #808080;
268
- margin-left: 5px;
269
- }
270
-
271
- .uni-searchbar__cancel {
272
- padding-left: 10px;
273
- line-height: 36px;
274
- font-size: 14px;
275
- color: #333;
276
- /* #ifdef H5 */
277
- cursor: pointer;
278
- /* #endif */
279
- }
280
- </style>
@@ -1,293 +0,0 @@
1
- <template>
2
- <view class="uni-steps">
3
- <view :class="[direction === 'column' ? 'uni-steps__column' : 'uni-steps__row']">
4
- <view :class="[direction === 'column' ? 'uni-steps__column-text-container' : 'uni-steps__row-text-container']">
5
- <view
6
- v-for="(item, index) in options"
7
- :key="index"
8
- :class="[direction === 'column' ? 'uni-steps__column-text' : 'uni-steps__row-text']"
9
- >
10
- <text
11
- :style="{ color: index <= active ? activeColor : deactiveColor }"
12
- :class="[direction === 'column' ? 'uni-steps__column-title' : 'uni-steps__row-title']"
13
- >
14
- {{ item.title }}
15
- </text>
16
- <text
17
- :style="{ color: index <= active ? activeColor : deactiveColor }"
18
- :class="[direction === 'column' ? 'uni-steps__column-desc' : 'uni-steps__row-desc']"
19
- >
20
- {{ item.desc }}
21
- </text>
22
- </view>
23
- </view>
24
- <view :class="[direction === 'column' ? 'uni-steps__column-container' : 'uni-steps__row-container']">
25
- <view
26
- :class="[direction === 'column' ? 'uni-steps__column-line-item' : 'uni-steps__row-line-item']"
27
- v-for="(item, index) in options"
28
- :key="index"
29
- >
30
- <view
31
- :class="[
32
- direction === 'column' ? 'uni-steps__column-line' : 'uni-steps__row-line',
33
- direction === 'column' ? 'uni-steps__column-line--before' : 'uni-steps__row-line--before'
34
- ]"
35
- :style="{
36
- backgroundColor: index <= active && index !== 0 ? activeColor : index === 0 ? 'transparent' : deactiveColor
37
- }"
38
- ></view>
39
- <view :class="[direction === 'column' ? 'uni-steps__column-check' : 'uni-steps__row-check']" v-if="index === active">
40
- <cv-icon2 :color="activeColor" type="checkbox-filled" size="14"></cv-icon2>
41
- </view>
42
- <view
43
- :class="[direction === 'column' ? 'uni-steps__column-circle' : 'uni-steps__row-circle']"
44
- v-else
45
- :style="{ backgroundColor: index < active ? activeColor : deactiveColor }"
46
- ></view>
47
- <view
48
- :class="[
49
- direction === 'column' ? 'uni-steps__column-line' : 'uni-steps__row-line',
50
- direction === 'column' ? 'uni-steps__column-line--after' : 'uni-steps__row-line--after'
51
- ]"
52
- :style="{
53
- backgroundColor:
54
- index < active && index !== options.length - 1
55
- ? activeColor
56
- : index === options.length - 1
57
- ? 'transparent'
58
- : deactiveColor
59
- }"
60
- ></view>
61
- </view>
62
- </view>
63
- </view>
64
- </view>
65
- </template>
66
-
67
- <script>
68
- /**
69
- * Steps 步骤条
70
- * @description 评分组件
71
- * @tutorial https://ext.dcloud.net.cn/plugin?id=34
72
- * @property {Number} active 当前步骤
73
- * @property {String} direction = [row|column] 当前步骤
74
- * @value row 横向
75
- * @value column 纵向
76
- * @property {String} activeColor 选中状态的颜色
77
- * @property {Array} options 数据源,格式为:[{title:'xxx',desc:'xxx'},{title:'xxx',desc:'xxx'}]
78
- */
79
-
80
- export default {
81
- name: 'UniSteps',
82
- props: {
83
- direction: {
84
- // 排列方向 row column
85
- type: String,
86
- default: 'row'
87
- },
88
- activeColor: {
89
- // 激活状态颜色
90
- type: String,
91
- default: '#1aad19'
92
- },
93
- deactiveColor: {
94
- // 未激活状态颜色
95
- type: String,
96
- default: '#999999'
97
- },
98
- active: {
99
- // 当前步骤
100
- type: Number,
101
- default: 0
102
- },
103
- options: {
104
- type: Array,
105
- default() {
106
- return [];
107
- }
108
- } // 数据
109
- },
110
- data() {
111
- return {};
112
- }
113
- };
114
- </script>
115
-
116
- <style scoped>
117
- .uni-steps {
118
- /* #ifndef APP-NVUE */
119
- display: flex;
120
- width: 100%;
121
- /* #endif */
122
- /* #ifdef APP-NVUE */
123
- flex: 1;
124
- /* #endif */
125
- flex-direction: column;
126
- }
127
-
128
- .uni-steps__row {
129
- /* #ifndef APP-NVUE */
130
- display: flex;
131
- /* #endif */
132
- flex-direction: column;
133
- }
134
-
135
- .uni-steps__column {
136
- /* #ifndef APP-NVUE */
137
- display: flex;
138
- /* #endif */
139
- flex-direction: row-reverse;
140
- }
141
-
142
- .uni-steps__row-text-container {
143
- /* #ifndef APP-NVUE */
144
- display: flex;
145
- /* #endif */
146
- flex-direction: row;
147
- align-items: flex-end;
148
- margin-bottom: 8px;
149
- }
150
-
151
- .uni-steps__column-text-container {
152
- /* #ifndef APP-NVUE */
153
- display: flex;
154
- /* #endif */
155
- flex-direction: column;
156
- flex: 1;
157
- }
158
-
159
- .uni-steps__row-text {
160
- /* #ifndef APP-NVUE */
161
- display: inline-flex;
162
- /* #endif */
163
- flex: 1;
164
- flex-direction: column;
165
- }
166
-
167
- .uni-steps__column-text {
168
- padding: 6px 0px;
169
- border-bottom-style: solid;
170
- border-bottom-width: 1px;
171
- border-bottom-color: #e5e5e5;
172
- /* #ifndef APP-NVUE */
173
- display: flex;
174
- /* #endif */
175
- flex-direction: column;
176
- }
177
-
178
- .uni-steps__row-title {
179
- font-size: 14px;
180
- line-height: 16px;
181
- text-align: center;
182
- }
183
-
184
- .uni-steps__column-title {
185
- font-size: 14px;
186
- text-align: left;
187
- line-height: 18px;
188
- }
189
-
190
- .uni-steps__row-desc {
191
- font-size: 12px;
192
- line-height: 14px;
193
- text-align: center;
194
- }
195
-
196
- .uni-steps__column-desc {
197
- font-size: 12px;
198
- text-align: left;
199
- line-height: 18px;
200
- }
201
-
202
- .uni-steps__row-container {
203
- /* #ifndef APP-NVUE */
204
- display: flex;
205
- /* #endif */
206
- flex-direction: row;
207
- }
208
-
209
- .uni-steps__column-container {
210
- /* #ifndef APP-NVUE */
211
- display: inline-flex;
212
- /* #endif */
213
- width: 30px;
214
- flex-direction: column;
215
- }
216
-
217
- .uni-steps__row-line-item {
218
- /* #ifndef APP-NVUE */
219
- display: inline-flex;
220
- /* #endif */
221
- flex-direction: row;
222
- flex: 1;
223
- height: 14px;
224
- line-height: 14px;
225
- align-items: center;
226
- justify-content: center;
227
- }
228
-
229
- .uni-steps__column-line-item {
230
- /* #ifndef APP-NVUE */
231
- display: flex;
232
- /* #endif */
233
- flex-direction: column;
234
- flex: 1;
235
- align-items: center;
236
- justify-content: center;
237
- }
238
-
239
- .uni-steps__row-line {
240
- flex: 1;
241
- height: 1px;
242
- background-color: #999;
243
- }
244
-
245
- .uni-steps__column-line {
246
- width: 1px;
247
- background-color: #999;
248
- }
249
-
250
- .uni-steps__row-line--after {
251
- transform: translateX(1px);
252
- }
253
-
254
- .uni-steps__column-line--after {
255
- flex: 1;
256
- transform: translate(0px, 1px);
257
- }
258
-
259
- .uni-steps__row-line--before {
260
- transform: translateX(-1px);
261
- }
262
-
263
- .uni-steps__column-line--before {
264
- height: 6px;
265
- transform: translate(0px, -1px);
266
- }
267
-
268
- .uni-steps__row-circle {
269
- width: 5px;
270
- height: 5px;
271
- border-radius: 100px;
272
- background-color: #999;
273
- margin: 0px 3px;
274
- }
275
-
276
- .uni-steps__column-circle {
277
- width: 5px;
278
- height: 5px;
279
- border-radius: 100px;
280
- background-color: #999;
281
- margin: 4px 0px 5px 0px;
282
- }
283
-
284
- .uni-steps__row-check {
285
- margin: 0px 6px;
286
- }
287
-
288
- .uni-steps__column-check {
289
- height: 14px;
290
- line-height: 14px;
291
- margin: 2px 0px;
292
- }
293
- </style>