@10yun/cv-mobile-ui 0.3.26 → 0.4.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 (189) hide show
  1. package/build/parse-pages.js +2 -2
  2. package/package.json +1 -1
  3. package/ui-cv/README.md +3 -0
  4. package/ui-cv/cv-badge/uni-badge.vue +249 -0
  5. package/ui-cv/cv-banner/cv-banner.vue +1 -1
  6. package/ui-cv/cv-banner-card/cv-banner-card.vue +1 -1
  7. package/ui-cv/cv-block/cv-block.vue +1 -1
  8. package/ui-cv/cv-box/cv-box.vue +1 -1
  9. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/calendar.js +0 -0
  10. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/uni-calendar-item.vue +0 -0
  11. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/uni-calendar.vue +0 -0
  12. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/util.js +0 -0
  13. package/{ui-uni/uni-card → ui-cv/cv-card}/uni-card.vue +0 -0
  14. package/ui-cv/cv-cell/cv-cell.vue +1 -1
  15. package/ui-cv/cv-checkbox-group/cv-checkbox-group.vue +227 -0
  16. package/ui-cv/cv-checkbox-opt-base/cv-checkbox-opt-base.vue +57 -0
  17. package/ui-cv/cv-checkbox-opt-tag/cv-checkbox-opt-tag.vue +107 -0
  18. package/ui-cv/cv-code-sms/cv-code-sms.vue +23 -42
  19. package/{ui-uni/uni-col → ui-cv/cv-col}/uni-col.vue +0 -0
  20. package/{ui-uni/uni-collapse → ui-cv/cv-collapse}/uni-collapse.vue +0 -0
  21. package/{ui-uni/uni-collapse-item → ui-cv/cv-collapse-item}/uni-collapse-item.vue +0 -0
  22. package/{ui-uni/uni-combox → ui-cv/cv-combox}/uni-combox.vue +0 -0
  23. package/{ui-uni/uni-countdown → ui-cv/cv-countdown}/uni-countdown.vue +0 -0
  24. package/{ui-uni/uni-data-checkbox → ui-cv/cv-data-checkbox}/uni-data-checkbox.vue +0 -0
  25. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/clientdb.js +0 -0
  26. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/uni-data-indexed-list-item.vue +0 -0
  27. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/uni-data-indexed-list.vue +0 -0
  28. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/keypress.js +0 -0
  29. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/uni-data-picker.vue +0 -0
  30. package/{ui-uni/uni-data-pickerview → ui-cv/cv-data-pickerview}/uni-data-picker.js +0 -0
  31. package/{ui-uni/uni-data-pickerview → ui-cv/cv-data-pickerview}/uni-data-pickerview.vue +0 -0
  32. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/date-format.js +0 -0
  33. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/uni-dateformat.vue +0 -0
  34. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar-item.vue +0 -0
  35. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar.js +0 -0
  36. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar.vue +0 -0
  37. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/keypress.js +0 -0
  38. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/time-picker.vue +0 -0
  39. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/uni-datetime-picker.vue +0 -0
  40. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/util.js +0 -0
  41. package/ui-cv/cv-dialog-bottom/cv-dialog-bottom.vue +1 -1
  42. package/ui-cv/cv-dialog-full/cv-dialog-full.vue +1 -1
  43. package/ui-cv/cv-dialog-loading/cv-dialog-loading.vue +3 -3
  44. package/ui-cv/cv-drawer/cv-drawer.vue +185 -0
  45. package/{ui-uni/uni-drawer → ui-cv/cv-drawer}/keypress.js +14 -14
  46. package/{ui-uni/uni-easyinput → ui-cv/cv-easyinput}/common.js +0 -0
  47. package/{ui-uni/uni-easyinput → ui-cv/cv-easyinput}/uni-easyinput.vue +0 -0
  48. package/ui-cv/cv-editor-parse/readme.md +2 -3
  49. package/ui-cv/{cv-editor → cv-editor-quill}/compressImage.vue +0 -0
  50. package/ui-cv/{cv-editor/cv-editor.vue → cv-editor-quill/cv-editor-quill.vue} +3 -23
  51. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.css +0 -0
  52. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.ttf +0 -0
  53. package/ui-cv/{cv-editor → cv-editor-quill}/index.js +0 -0
  54. package/{ui-uni/uni-fab → ui-cv/cv-fab}/uni-fab.vue +0 -0
  55. package/{ui-uni/uni-fab → ui-cv/cv-fab}/uni-fab.vue.bak +0 -0
  56. package/{ui-uni/uni-fav → ui-cv/cv-fav}/uni-fav.vue +0 -0
  57. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/choose-and-upload-file.js +0 -0
  58. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/uni-file-picker.vue +0 -0
  59. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-file.vue +0 -0
  60. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-image.vue +0 -0
  61. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/utils.js +0 -0
  62. package/ui-cv/cv-form-base/cv-form-base.vue +470 -0
  63. package/ui-cv/cv-form-base/validate.js +477 -0
  64. package/ui-cv/cv-form-group/cv-form-group.vue +123 -80
  65. package/ui-cv/cv-form-group/cv-form-group2.vue +80 -0
  66. package/ui-cv/cv-form-item/cv-form-item.vue +482 -174
  67. package/ui-cv/cv-form-item/cv-form-item2.vue +215 -0
  68. package/ui-cv/cv-form-merge/cv-form-merge.vue +1 -1
  69. package/ui-cv/cv-geo-local/cv-geo-local.vue +14 -26
  70. package/{ui-uni/uni-goods-nav → ui-cv/cv-goods-nav}/uni-goods-nav.vue +0 -0
  71. package/ui-cv/cv-grid-group/cv-grid-group.vue +148 -0
  72. package/ui-cv/cv-grid-item/cv-grid-item.vue +132 -0
  73. package/ui-cv/cv-icons/cv-icons.vue +1 -1
  74. package/ui-cv/cv-icons2/cv-icons2.vue +78 -0
  75. package/ui-cv/cv-icons2/icons.js +132 -0
  76. package/{ui-uni/uni-icons → ui-cv/cv-icons2}/uni.ttf +0 -0
  77. package/{ui-uni/uni-indexed-list → ui-cv/cv-indexed-list}/uni-indexed-list-item.vue +0 -0
  78. package/{ui-uni/uni-indexed-list → ui-cv/cv-indexed-list}/uni-indexed-list.vue +0 -0
  79. package/ui-cv/cv-info/cv-info.vue +5 -20
  80. package/ui-cv/cv-input-btn/cv-input-btn.vue +25 -43
  81. package/ui-cv/cv-input-digit/cv-input-digit.vue +61 -28
  82. package/ui-cv/cv-input-idcard/cv-input-idcard.vue +47 -29
  83. package/ui-cv/cv-input-number/cv-input-number.vue +60 -28
  84. package/ui-cv/cv-input-password/cv-input-password.vue +80 -30
  85. package/ui-cv/cv-input-text/cv-input-text.vue +55 -37
  86. package/ui-cv/cv-link/uni-link.vue +130 -0
  87. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-list.vue +0 -0
  88. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.vue +0 -0
  89. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.wxs +0 -0
  90. package/{ui-uni/uni-list-ad → ui-cv/cv-list-ad}/uni-list-ad.vue +0 -0
  91. package/{ui-uni/uni-list-chat → ui-cv/cv-list-chat}/uni-list-chat.scss +0 -0
  92. package/{ui-uni/uni-list-chat → ui-cv/cv-list-chat}/uni-list-chat.vue +0 -0
  93. package/{ui-uni/uni-list-item → ui-cv/cv-list-item}/uni-list-item.vue +0 -0
  94. package/ui-cv/cv-load-more/config.json +9 -9
  95. package/ui-cv/cv-load-more/cv-load-more.vue +34 -5
  96. package/ui-cv/cv-message/cv-message.vue +1 -1
  97. package/{ui-uni/uni-nav-bar → ui-cv/cv-nav-bar}/uni-nav-bar.vue +0 -0
  98. package/{ui-uni/uni-nav-bar → ui-cv/cv-nav-bar}/uni-status-bar.vue +0 -0
  99. package/ui-cv/cv-nav-col/cv-nav-col.vue +1 -1
  100. package/ui-cv/cv-nav-row/cv-nav-row.vue +1 -1
  101. package/{ui-uni/uni-notice-bar → ui-cv/cv-notice-bar}/uni-notice-bar.vue +0 -0
  102. package/{ui-uni/uni-number-box → ui-cv/cv-number-box}/uni-number-box.vue +0 -0
  103. package/{ui-uni/uni-pagination → ui-cv/cv-pagination}/uni-pagination.vue +0 -0
  104. package/ui-cv/cv-picker-date/cv-picker-date.vue +17 -27
  105. package/ui-cv/cv-picker-datetime/cv-picker-datetime.vue +31 -41
  106. package/ui-cv/cv-picker-datetime5/cv-picker-datetime5.vue +19 -29
  107. package/ui-cv/cv-picker-region/cv-picker-region.vue +23 -33
  108. package/ui-cv/cv-picker-time/cv-picker-time.vue +16 -26
  109. package/ui-cv/cv-picker1/cv-picker1.vue +16 -28
  110. package/ui-cv/cv-picker2/cv-picker2.vue +22 -32
  111. package/ui-cv/cv-picker3/cv-picker3.vue +34 -44
  112. package/{ui-uni/uni-popup → ui-cv/cv-popup}/keypress.js +0 -0
  113. package/{ui-uni/uni-popup → ui-cv/cv-popup}/popup.js +0 -0
  114. package/{ui-uni/uni-popup → ui-cv/cv-popup}/uni-popup.vue +0 -0
  115. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/keypress.js +0 -0
  116. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/uni-popup-dialog.vue +0 -0
  117. package/{ui-uni/uni-popup-message → ui-cv/cv-popup-message}/uni-popup-message.vue +0 -0
  118. package/{ui-uni/uni-popup-share → ui-cv/cv-popup-share}/uni-popup-share.vue +0 -0
  119. package/ui-cv/cv-radio-group/cv-radio-group.vue +185 -0
  120. package/ui-cv/cv-radio-opt-base/cv-radio-opt-base.vue +57 -0
  121. package/ui-cv/cv-radio-opt-tag/cv-radio-opt-tag.vue +107 -0
  122. package/ui-cv/cv-rate/cv-rate.vue +13 -17
  123. package/ui-cv/cv-rate/uni-rate.vue +358 -0
  124. package/ui-cv/cv-row/uni-row.vue +157 -0
  125. package/ui-cv/cv-search/cv-search.vue +4 -4
  126. package/{ui-uni/uni-search-bar → ui-cv/cv-search-bar}/uni-search-bar.vue +0 -0
  127. package/{ui-uni/uni-section → ui-cv/cv-section}/uni-section.vue +0 -0
  128. package/{ui-uni/uni-segmented-control → ui-cv/cv-segmented-control}/uni-segmented-control.vue +0 -0
  129. package/ui-cv/cv-skeleton/cv-skeleton2.vue +5 -5
  130. package/ui-cv/cv-specs/cv-specs.vue +1 -1
  131. package/{ui-uni/uni-status-bar → ui-cv/cv-status-bar}/uni-status-bar.vue +0 -0
  132. package/{ui-uni/uni-steps → ui-cv/cv-steps}/uni-steps.vue +0 -0
  133. package/{ui-uni/uni-swipe-action → ui-cv/cv-swipe-action}/uni-swipe-action.vue +0 -0
  134. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/bindingx.js +0 -0
  135. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/index.wxs +0 -0
  136. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/isPC.js +0 -0
  137. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpalipay.js +0 -0
  138. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpother.js +0 -0
  139. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpwxs.js +0 -0
  140. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/uni-swipe-action-item.vue +0 -0
  141. package/{ui-uni/uni-swiper-dot → ui-cv/cv-swiper-dot}/uni-swiper-dot.vue +0 -0
  142. package/ui-cv/cv-switch/cv-switch.vue +5 -9
  143. package/{ui-uni/uni-table → ui-cv/cv-table}/uni-table.vue +0 -0
  144. package/{ui-uni/uni-tag → ui-cv/cv-tag}/uni-tag.vue +0 -0
  145. package/{ui-uni/uni-tbody → ui-cv/cv-tbody}/uni-tbody.vue +0 -0
  146. package/{ui-uni/uni-td → ui-cv/cv-td}/uni-td.vue +0 -0
  147. package/{ui-uni/uni-test → ui-cv/cv-test}/uni-test.vue +0 -0
  148. package/ui-cv/cv-textarea/cv-textarea.vue +56 -41
  149. package/{ui-uni/uni-th → ui-cv/cv-th}/filter-dropdown.vue +0 -0
  150. package/{ui-uni/uni-th → ui-cv/cv-th}/uni-th.vue +0 -0
  151. package/{ui-uni/uni-thead → ui-cv/cv-thead}/uni-thead.vue +0 -0
  152. package/{ui-uni/uni-title → ui-cv/cv-title}/uni-title.vue +0 -0
  153. package/{ui-uni/uni-tr → ui-cv/cv-tr}/table-checkbox.vue +0 -0
  154. package/{ui-uni/uni-tr → ui-cv/cv-tr}/uni-tr.vue +0 -0
  155. package/{ui-uni/uni-transition → ui-cv/cv-transition}/createAnimation.js +0 -0
  156. package/{ui-uni/uni-transition → ui-cv/cv-transition}/uni-transition.vue +0 -0
  157. package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +24 -22
  158. package/ui-cv/cv-upload-img/cv-upload-img.vue +1 -1
  159. package/ui-cv/mixins/mixins-input.js +20 -29
  160. package/ui-cv/mixins/mixins-picker.js +1 -13
  161. package/ui-uni/amap-wx/js/util.js +158 -166
  162. package/ui-uni/product.vue +52 -52
  163. package/ui-uni/u-charts/u-charts.js +1092 -743
  164. package/ui-cv/cv-checkbox/cv-checkbox.vue +0 -140
  165. package/ui-cv/cv-checkbox-tag/cv-checkbox-tag.vue +0 -164
  166. package/ui-cv/cv-nav-group/cv-nav-group.vue +0 -33
  167. package/ui-cv/cv-radio/cv-radio.vue +0 -111
  168. package/ui-cv/cv-radio-sex/cv-radio-sex.vue +0 -80
  169. package/ui-cv/cv-radio-tag/cv-radio-tag.vue +0 -133
  170. package/ui-cv/mixins/mixins-checkbox.js +0 -71
  171. package/ui-cv/mixins/mixins-common.js +0 -53
  172. package/ui-cv/mixins/mixins-radio.js +0 -84
  173. package/ui-uni/page-foot/page-foot.vue +0 -38
  174. package/ui-uni/page-head/page-head.vue +0 -16
  175. package/ui-uni/u-link/u-link.vue +0 -59
  176. package/ui-uni/uni-badge/uni-badge.vue +0 -250
  177. package/ui-uni/uni-drawer/uni-drawer.vue +0 -178
  178. package/ui-uni/uni-forms/uni-forms.vue +0 -467
  179. package/ui-uni/uni-forms/validate.js +0 -486
  180. package/ui-uni/uni-forms-item/uni-forms-item.vue +0 -500
  181. package/ui-uni/uni-grid/uni-grid.vue +0 -141
  182. package/ui-uni/uni-grid-item/uni-grid-item.vue +0 -123
  183. package/ui-uni/uni-group/uni-group.vue +0 -123
  184. package/ui-uni/uni-icons/icons.js +0 -132
  185. package/ui-uni/uni-icons/uni-icons.vue +0 -72
  186. package/ui-uni/uni-link/uni-link.vue +0 -117
  187. package/ui-uni/uni-load-more/uni-load-more.vue +0 -366
  188. package/ui-uni/uni-rate/uni-rate.vue +0 -357
  189. package/ui-uni/uni-row/uni-row.vue +0 -155
@@ -1,357 +0,0 @@
1
- <template>
2
- <view>
3
- <view ref="uni-rate" class="uni-rate">
4
- <view class="uni-rate__icon" :class="{'uni-cursor-not-allowed': disabled}" :style="{ 'margin-right': marginNumber + 'px' }" v-for="(star, index) in stars" :key="index" @touchstart.stop="touchstart" @touchmove.stop="touchmove" @mousedown.stop="mousedown" @mousemove.stop="mousemove" @mouseleave="mouseleave">
5
- <uni-icons :color="color" :size="size" :type="isFill ? 'star-filled' : 'star'" />
6
- <!-- #ifdef APP-NVUE -->
7
- <view :style="{ width: star.activeWitch.replace('%','')*size/100+'px'}" class="uni-rate__icon-on">
8
- <uni-icons style="text-align: left;" :color="disabled?'#ccc':activeColor" :size="size" type="star-filled" />
9
- </view>
10
- <!-- #endif -->
11
- <!-- #ifndef APP-NVUE -->
12
- <view :style="{ width: star.activeWitch}" class="uni-rate__icon-on">
13
- <uni-icons :color="disabled?disabledColor:activeColor" :size="size" type="star-filled" />
14
- </view>
15
- <!-- #endif -->
16
- </view>
17
- </view>
18
- </view>
19
- </template>
20
-
21
- <script>
22
- // #ifdef APP-NVUE
23
- const dom = uni.requireNativePlugin('dom');
24
- // #endif
25
- /**
26
- * Rate 评分
27
- * @description 评分组件
28
- * @tutorial https://ext.dcloud.net.cn/plugin?id=33
29
- * @property {Boolean} isFill = [true|false] 星星的类型,是否为实心类型, 默认为实心
30
- * @property {String} color 未选中状态的星星颜色,默认为 "#ececec"
31
- * @property {String} activeColor 选中状态的星星颜色,默认为 "#ffca3e"
32
- * @property {String} disabledColor 禁用状态的星星颜色,默认为 "#c0c0c0"
33
- * @property {Number} size 星星的大小
34
- * @property {Number} value/v-model 当前评分
35
- * @property {Number} max 最大评分评分数量,目前一分一颗星
36
- * @property {Number} margin 星星的间距,单位 px
37
- * @property {Boolean} disabled = [true|false] 是否为禁用状态,默认为 false
38
- * @property {Boolean} readonly = [true|false] 是否为只读状态,默认为 false
39
- * @property {Boolean} allowHalf = [true|false] 是否实现半星,默认为 false
40
- * @property {Boolean} touchable = [true|false] 是否支持滑动手势,默认为 true
41
- * @event {Function} change uniRate 的 value 改变时触发事件,e={value:Number}
42
- */
43
-
44
- export default {
45
- name: "UniRate",
46
- props: {
47
- isFill: {
48
- // 星星的类型,是否镂空
49
- type: [Boolean, String],
50
- default: true
51
- },
52
- color: {
53
- // 星星未选中的颜色
54
- type: String,
55
- default: "#ececec"
56
- },
57
- activeColor: {
58
- // 星星选中状态颜色
59
- type: String,
60
- default: "#ffca3e"
61
- },
62
- disabledColor: {
63
- // 星星禁用状态颜色
64
- type: String,
65
- default: "#c0c0c0"
66
- },
67
- size: {
68
- // 星星的大小
69
- type: [Number, String],
70
- default: 24
71
- },
72
- value: {
73
- // 当前评分
74
- type: [Number, String],
75
- default: 1
76
- },
77
- modelValue: {
78
- // 当前评分
79
- type: [Number, String],
80
- default: 1
81
- },
82
- max: {
83
- // 最大评分
84
- type: [Number, String],
85
- default: 5
86
- },
87
- margin: {
88
- // 星星的间距
89
- type: [Number, String],
90
- default: 0
91
- },
92
- disabled: {
93
- // 是否可点击
94
- type: [Boolean, String],
95
- default: false
96
- },
97
- readonly: {
98
- // 是否只读
99
- type: [Boolean, String],
100
- default: false
101
- },
102
- allowHalf: {
103
- // 是否显示半星
104
- type: [Boolean, String],
105
- default: false
106
- },
107
- touchable: {
108
- // 是否支持滑动手势
109
- type: [Boolean, String],
110
- default: true
111
- }
112
- },
113
- data() {
114
- return {
115
- valueSync: "",
116
- userMouseFristMove: true,
117
- userRated: false,
118
- userLastRate: 1
119
- };
120
- },
121
- watch: {
122
- value(newVal) {
123
- this.valueSync = Number(newVal);
124
- },
125
- modelValue(newVal) {
126
- this.valueSync = Number(newVal);
127
- },
128
- },
129
- computed: {
130
- stars() {
131
- const value = this.valueSync ? this.valueSync : 0;
132
- const starList = [];
133
- const floorValue = Math.floor(value);
134
- const ceilValue = Math.ceil(value);
135
- for (let i = 0; i < this.max; i++) {
136
- if (floorValue > i) {
137
- starList.push({
138
- activeWitch: "100%"
139
- });
140
- } else if (ceilValue - 1 === i) {
141
- starList.push({
142
- activeWitch: (value - floorValue) * 100 + "%"
143
- });
144
- } else {
145
- starList.push({
146
- activeWitch: "0"
147
- });
148
- }
149
- }
150
- return starList;
151
- },
152
-
153
- marginNumber() {
154
- return Number(this.margin)
155
- }
156
- },
157
- created() {
158
- this.valueSync = Number(this.value || this.modelValue);
159
- this._rateBoxLeft = 0
160
- this._oldValue = null
161
- },
162
- mounted() {
163
- setTimeout(() => {
164
- this._getSize()
165
- }, 100)
166
- // #ifdef H5
167
- this.PC = this.IsPC()
168
- // #endif
169
- },
170
- methods: {
171
- touchstart(e) {
172
- // #ifdef H5
173
- if (this.IsPC()) return
174
- // #endif
175
- if (this.readonly || this.disabled) return
176
- const {
177
- clientX,
178
- screenX
179
- } = e.changedTouches[0]
180
- // TODO 做一下兼容,只有 Nvue 下才有 screenX,其他平台式 clientX
181
- this._getRateCount(clientX || screenX)
182
- },
183
- touchmove(e) {
184
- // #ifdef H5
185
- if (this.IsPC()) return
186
- // #endif
187
- if (this.readonly || this.disabled || !this.touchable) return
188
- const {
189
- clientX,
190
- screenX
191
- } = e.changedTouches[0]
192
- this._getRateCount(clientX || screenX)
193
- },
194
-
195
- /**
196
- * 兼容 PC @tian
197
- */
198
-
199
- mousedown(e) {
200
- // #ifdef H5
201
- if (!this.IsPC()) return
202
- if (this.readonly || this.disabled) return
203
- const {
204
- clientX,
205
- } = e
206
- this.userLastRate = this.valueSync
207
- this._getRateCount(clientX)
208
- this.userRated = true
209
- // #endif
210
- },
211
- mousemove(e) {
212
- // #ifdef H5
213
- if (!this.IsPC()) return
214
- if (this.userRated) return
215
- if (this.userMouseFristMove) {
216
- console.log('---mousemove----', this.valueSync);
217
- this.userLastRate = this.valueSync
218
- this.userMouseFristMove = false
219
- }
220
- if (this.readonly || this.disabled || !this.touchable) return
221
- const {
222
- clientX,
223
- } = e
224
- this._getRateCount(clientX)
225
- // #endif
226
- },
227
- mouseleave(e) {
228
- // #ifdef H5
229
- if (!this.IsPC()) return
230
- if (this.readonly || this.disabled || !this.touchable) return
231
- if (this.userRated) {
232
- this.userRated = false
233
- return
234
- }
235
- this.valueSync = this.userLastRate
236
- // #endif
237
- },
238
- // #ifdef H5
239
- IsPC() {
240
- var userAgentInfo = navigator.userAgent;
241
- var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
242
- var flag = true;
243
- for (let v = 0; v < Agents.length - 1; v++) {
244
- if (userAgentInfo.indexOf(Agents[v]) > 0) {
245
- flag = false;
246
- break;
247
- }
248
- }
249
- return flag;
250
- },
251
- // #endif
252
-
253
- /**
254
- * 获取星星个数
255
- */
256
- _getRateCount(clientX) {
257
- this._getSize()
258
- const size = Number(this.size)
259
- if (size === NaN) {
260
- return new Error('size 属性只能设置为数字')
261
- }
262
- const rateMoveRange = clientX - this._rateBoxLeft
263
- let index = parseInt(rateMoveRange / (size + this.marginNumber))
264
- index = index < 0 ? 0 : index;
265
- index = index > this.max ? this.max : index;
266
- const range = parseInt(rateMoveRange - (size + this.marginNumber) * index);
267
- let value = 0;
268
- if (this._oldValue === index && !this.PC) return;
269
- this._oldValue = index;
270
- if (this.allowHalf) {
271
- if (range > (size / 2)) {
272
- value = index + 1
273
- } else {
274
- value = index + 0.5
275
- }
276
- } else {
277
- value = index + 1
278
- }
279
-
280
- value = Math.max(0.5, Math.min(value, this.max))
281
- this.valueSync = value
282
- this._onChange()
283
- },
284
-
285
- /**
286
- * 触发动态修改
287
- */
288
- _onChange() {
289
-
290
- this.$emit("input", this.valueSync);
291
- this.$emit("update:modelValue", this.valueSync);
292
- this.$emit("change", {
293
- value: this.valueSync
294
- });
295
- },
296
- /**
297
- * 获取星星距离屏幕左侧距离
298
- */
299
- _getSize() {
300
- // #ifndef APP-NVUE
301
- uni.createSelectorQuery()
302
- .in(this)
303
- .select('.uni-rate')
304
- .boundingClientRect()
305
- .exec(ret => {
306
- if (ret) {
307
- this._rateBoxLeft = ret[0].left
308
- }
309
- })
310
- // #endif
311
- // #ifdef APP-NVUE
312
- dom.getComponentRect(this.$refs['uni-rate'], (ret) => {
313
- const size = ret.size
314
- if (size) {
315
- this._rateBoxLeft = size.left
316
- }
317
- })
318
- // #endif
319
- }
320
- }
321
- };
322
- </script>
323
-
324
- <style scoped>
325
- .uni-rate {
326
- /* #ifndef APP-NVUE */
327
- display: flex;
328
- /* #endif */
329
- line-height: 1;
330
- font-size: 0;
331
- flex-direction: row;
332
- /* #ifdef H5 */
333
- cursor: pointer;
334
- /* #endif */
335
- }
336
-
337
- .uni-rate__icon {
338
- position: relative;
339
- line-height: 1;
340
- font-size: 0;
341
- }
342
-
343
- .uni-rate__icon-on {
344
- overflow: hidden;
345
- position: absolute;
346
- top: 0;
347
- left: 0;
348
- line-height: 1;
349
- text-align: left;
350
- }
351
-
352
- .uni-cursor-not-allowed {
353
- /* #ifdef H5 */
354
- cursor: not-allowed !important;
355
- /* #endif */
356
- }
357
- </style>
@@ -1,155 +0,0 @@
1
- <template>
2
- <view :class="[ 'uni-row', typeClass , justifyClass, alignClass, ]" :style="{
3
- marginLeft:`${Number(marginValue)}rpx`,
4
- marginRight:`${Number(marginValue)}rpx`,
5
- }">
6
- <slot></slot>
7
- </view>
8
- </template>
9
-
10
- <script>
11
- const ComponentClass = 'uni-row';
12
- const modifierSeparator = '--';
13
- /**
14
- * Row 布局-行
15
- * @description 流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。
16
- * @tutorial https://ext.dcloud.net.cn/plugin?id=3958
17
- *
18
- * @property {gutter} type = Number 栅格间隔
19
- * @property {justify} type = String flex 布局下的水平排列方式
20
- * 可选 start/end/center/space-around/space-between start
21
- * 默认值 start
22
- * @property {align} type = String flex 布局下的垂直排列方式
23
- * 可选 top/middle/bottom
24
- * 默认值 top
25
- * @property {width} type = String|Number nvue下需要自行配置宽度用于计算
26
- * 默认值 750
27
- */
28
-
29
-
30
- export default {
31
- name: 'uniRow',
32
- componentName: 'uniRow',
33
- // #ifdef MP-WEIXIN
34
- options: {
35
- virtualHost: true // 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现,可使用flex布局
36
- },
37
- // #endif
38
- props: {
39
- type: String,
40
- gutter: Number,
41
- justify: {
42
- type: String,
43
- default: 'start'
44
- },
45
- align: {
46
- type: String,
47
- default: 'top'
48
- },
49
- // nvue如果使用span等属性,需要配置宽度
50
- width: {
51
- type: [String, Number],
52
- default: 750
53
- }
54
- },
55
- created() {
56
- // #ifdef APP-NVUE
57
- this.type = 'flex';
58
- // #endif
59
- },
60
- computed: {
61
- marginValue() {
62
- // #ifndef APP-NVUE
63
- if (this.gutter) {
64
- return -(this.gutter / 2);
65
- }
66
- // #endif
67
- return 0;
68
- },
69
- typeClass() {
70
- return this.type === 'flex' ? `${ComponentClass + modifierSeparator}flex` : '';
71
- },
72
- justifyClass() {
73
- return this.justify !== 'start' ? `${ComponentClass + modifierSeparator}flex-justify-${this.justify}` : ''
74
- },
75
- alignClass() {
76
- return this.align !== 'top' ? `${ComponentClass + modifierSeparator}flex-align-${this.align}` : ''
77
- }
78
- }
79
- };
80
- </script>
81
-
82
- <style scoped>
83
- .uni-row {
84
- position: relative;
85
- flex-direction: row;
86
- /* #ifdef APP-NVUE */
87
- flex: 1;
88
- /* #endif */
89
- /* #ifndef APP-NVUE */
90
- box-sizing: border-box;
91
- /* #endif */
92
- }
93
-
94
- /* #ifndef APP-NVUE */
95
- .uni-row::before,
96
- .uni-row::after {
97
- display: table;
98
- content: "";
99
- }
100
-
101
- .uni-row::after {
102
- clear: both;
103
- }
104
-
105
- /* #endif */
106
- /* #ifndef MP-QQ || MP-TOUTIAO || MP-BAIDU */
107
- .uni-row--flex {
108
- /* #ifndef APP-NVUE */
109
- display: flex;
110
- /* #endif */
111
- flex-direction: row;
112
- flex-wrap: wrap;
113
- flex: 1;
114
- }
115
-
116
- .uni-row--flex:before,
117
- .uni-row--flex:after {
118
- /* #ifndef APP-NVUE */
119
- display: none;
120
- /* #endif */
121
- }
122
-
123
- .uni-row--flex-justify-center {
124
- justify-content: center;
125
- }
126
-
127
- .uni-row--flex-justify-end {
128
- justify-content: flex-end;
129
- }
130
-
131
- .uni-row--flex-justify-space-between {
132
- justify-content: space-between;
133
- }
134
-
135
- .uni-row--flex-justify-space-around {
136
- justify-content: space-around;
137
- }
138
-
139
- .uni-row--flex-align-middle {
140
- align-items: center;
141
- }
142
-
143
- .uni-row--flex-align-bottom {
144
- align-items: flex-end;
145
- }
146
-
147
- /* #endif */
148
-
149
- /* #ifdef MP-WEIXIN || MP-TOUTIAO || MP-QQ */
150
- :host {
151
- display: block;
152
- }
153
-
154
- /* #endif */
155
- </style>