@10yun/cv-mobile-ui 0.3.25 → 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 (190) hide show
  1. package/build/parse-pages.js +2 -2
  2. package/package.json +1 -1
  3. package/plugins/request.js +0 -1
  4. package/ui-cv/README.md +3 -0
  5. package/ui-cv/cv-badge/uni-badge.vue +249 -0
  6. package/ui-cv/cv-banner/cv-banner.vue +1 -1
  7. package/ui-cv/cv-banner-card/cv-banner-card.vue +1 -1
  8. package/ui-cv/cv-block/cv-block.vue +1 -1
  9. package/ui-cv/cv-box/cv-box.vue +1 -1
  10. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/calendar.js +0 -0
  11. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/uni-calendar-item.vue +0 -0
  12. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/uni-calendar.vue +0 -0
  13. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/util.js +0 -0
  14. package/{ui-uni/uni-card → ui-cv/cv-card}/uni-card.vue +0 -0
  15. package/ui-cv/cv-cell/cv-cell.vue +1 -1
  16. package/ui-cv/cv-checkbox-group/cv-checkbox-group.vue +227 -0
  17. package/ui-cv/cv-checkbox-opt-base/cv-checkbox-opt-base.vue +57 -0
  18. package/ui-cv/cv-checkbox-opt-tag/cv-checkbox-opt-tag.vue +107 -0
  19. package/ui-cv/cv-code-sms/cv-code-sms.vue +23 -42
  20. package/{ui-uni/uni-col → ui-cv/cv-col}/uni-col.vue +0 -0
  21. package/{ui-uni/uni-collapse → ui-cv/cv-collapse}/uni-collapse.vue +0 -0
  22. package/{ui-uni/uni-collapse-item → ui-cv/cv-collapse-item}/uni-collapse-item.vue +0 -0
  23. package/{ui-uni/uni-combox → ui-cv/cv-combox}/uni-combox.vue +0 -0
  24. package/{ui-uni/uni-countdown → ui-cv/cv-countdown}/uni-countdown.vue +0 -0
  25. package/{ui-uni/uni-data-checkbox → ui-cv/cv-data-checkbox}/uni-data-checkbox.vue +0 -0
  26. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/clientdb.js +0 -0
  27. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/uni-data-indexed-list-item.vue +0 -0
  28. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/uni-data-indexed-list.vue +0 -0
  29. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/keypress.js +0 -0
  30. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/uni-data-picker.vue +0 -0
  31. package/{ui-uni/uni-data-pickerview → ui-cv/cv-data-pickerview}/uni-data-picker.js +0 -0
  32. package/{ui-uni/uni-data-pickerview → ui-cv/cv-data-pickerview}/uni-data-pickerview.vue +0 -0
  33. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/date-format.js +0 -0
  34. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/uni-dateformat.vue +0 -0
  35. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar-item.vue +0 -0
  36. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar.js +0 -0
  37. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar.vue +0 -0
  38. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/keypress.js +0 -0
  39. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/time-picker.vue +0 -0
  40. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/uni-datetime-picker.vue +0 -0
  41. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/util.js +0 -0
  42. package/ui-cv/cv-dialog-bottom/cv-dialog-bottom.vue +1 -1
  43. package/ui-cv/cv-dialog-full/cv-dialog-full.vue +1 -1
  44. package/ui-cv/cv-dialog-loading/cv-dialog-loading.vue +3 -3
  45. package/ui-cv/cv-drawer/cv-drawer.vue +185 -0
  46. package/{ui-uni/uni-drawer → ui-cv/cv-drawer}/keypress.js +14 -14
  47. package/{ui-uni/uni-easyinput → ui-cv/cv-easyinput}/common.js +0 -0
  48. package/{ui-uni/uni-easyinput → ui-cv/cv-easyinput}/uni-easyinput.vue +0 -0
  49. package/ui-cv/cv-editor-parse/readme.md +2 -3
  50. package/ui-cv/{cv-editor → cv-editor-quill}/compressImage.vue +0 -0
  51. package/ui-cv/{cv-editor/cv-editor.vue → cv-editor-quill/cv-editor-quill.vue} +3 -23
  52. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.css +0 -0
  53. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.ttf +0 -0
  54. package/ui-cv/{cv-editor → cv-editor-quill}/index.js +0 -0
  55. package/{ui-uni/uni-fab → ui-cv/cv-fab}/uni-fab.vue +0 -0
  56. package/{ui-uni/uni-fab → ui-cv/cv-fab}/uni-fab.vue.bak +0 -0
  57. package/{ui-uni/uni-fav → ui-cv/cv-fav}/uni-fav.vue +0 -0
  58. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/choose-and-upload-file.js +0 -0
  59. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/uni-file-picker.vue +0 -0
  60. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-file.vue +0 -0
  61. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-image.vue +0 -0
  62. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/utils.js +0 -0
  63. package/ui-cv/cv-form-base/cv-form-base.vue +470 -0
  64. package/ui-cv/cv-form-base/validate.js +477 -0
  65. package/ui-cv/cv-form-group/cv-form-group.vue +123 -80
  66. package/ui-cv/cv-form-group/cv-form-group2.vue +80 -0
  67. package/ui-cv/cv-form-item/cv-form-item.vue +482 -174
  68. package/ui-cv/cv-form-item/cv-form-item2.vue +215 -0
  69. package/ui-cv/cv-form-merge/cv-form-merge.vue +1 -1
  70. package/ui-cv/cv-geo-local/cv-geo-local.vue +14 -26
  71. package/{ui-uni/uni-goods-nav → ui-cv/cv-goods-nav}/uni-goods-nav.vue +0 -0
  72. package/ui-cv/cv-grid-group/cv-grid-group.vue +148 -0
  73. package/ui-cv/cv-grid-item/cv-grid-item.vue +132 -0
  74. package/ui-cv/cv-icons/cv-icons.vue +1 -1
  75. package/ui-cv/cv-icons2/cv-icons2.vue +78 -0
  76. package/ui-cv/cv-icons2/icons.js +132 -0
  77. package/{ui-uni/uni-icons → ui-cv/cv-icons2}/uni.ttf +0 -0
  78. package/{ui-uni/uni-indexed-list → ui-cv/cv-indexed-list}/uni-indexed-list-item.vue +0 -0
  79. package/{ui-uni/uni-indexed-list → ui-cv/cv-indexed-list}/uni-indexed-list.vue +0 -0
  80. package/ui-cv/cv-info/cv-info.vue +5 -20
  81. package/ui-cv/cv-input-btn/cv-input-btn.vue +25 -43
  82. package/ui-cv/cv-input-digit/cv-input-digit.vue +61 -28
  83. package/ui-cv/cv-input-idcard/cv-input-idcard.vue +47 -29
  84. package/ui-cv/cv-input-number/cv-input-number.vue +60 -28
  85. package/ui-cv/cv-input-password/cv-input-password.vue +80 -30
  86. package/ui-cv/cv-input-text/cv-input-text.vue +55 -37
  87. package/ui-cv/cv-link/uni-link.vue +130 -0
  88. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-list.vue +0 -0
  89. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.vue +0 -0
  90. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.wxs +0 -0
  91. package/{ui-uni/uni-list-ad → ui-cv/cv-list-ad}/uni-list-ad.vue +0 -0
  92. package/{ui-uni/uni-list-chat → ui-cv/cv-list-chat}/uni-list-chat.scss +0 -0
  93. package/{ui-uni/uni-list-chat → ui-cv/cv-list-chat}/uni-list-chat.vue +0 -0
  94. package/{ui-uni/uni-list-item → ui-cv/cv-list-item}/uni-list-item.vue +0 -0
  95. package/ui-cv/cv-load-more/config.json +9 -9
  96. package/ui-cv/cv-load-more/cv-load-more.vue +34 -5
  97. package/ui-cv/cv-message/cv-message.vue +1 -1
  98. package/{ui-uni/uni-nav-bar → ui-cv/cv-nav-bar}/uni-nav-bar.vue +0 -0
  99. package/{ui-uni/uni-nav-bar → ui-cv/cv-nav-bar}/uni-status-bar.vue +0 -0
  100. package/ui-cv/cv-nav-col/cv-nav-col.vue +1 -1
  101. package/ui-cv/cv-nav-row/cv-nav-row.vue +1 -1
  102. package/{ui-uni/uni-notice-bar → ui-cv/cv-notice-bar}/uni-notice-bar.vue +0 -0
  103. package/{ui-uni/uni-number-box → ui-cv/cv-number-box}/uni-number-box.vue +0 -0
  104. package/{ui-uni/uni-pagination → ui-cv/cv-pagination}/uni-pagination.vue +0 -0
  105. package/ui-cv/cv-picker-date/cv-picker-date.vue +17 -27
  106. package/ui-cv/cv-picker-datetime/cv-picker-datetime.vue +31 -41
  107. package/ui-cv/cv-picker-datetime5/cv-picker-datetime5.vue +19 -29
  108. package/ui-cv/cv-picker-region/cv-picker-region.vue +23 -33
  109. package/ui-cv/cv-picker-time/cv-picker-time.vue +16 -26
  110. package/ui-cv/cv-picker1/cv-picker1.vue +16 -28
  111. package/ui-cv/cv-picker2/cv-picker2.vue +22 -32
  112. package/ui-cv/cv-picker3/cv-picker3.vue +34 -44
  113. package/{ui-uni/uni-popup → ui-cv/cv-popup}/keypress.js +0 -0
  114. package/{ui-uni/uni-popup → ui-cv/cv-popup}/popup.js +0 -0
  115. package/{ui-uni/uni-popup → ui-cv/cv-popup}/uni-popup.vue +0 -0
  116. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/keypress.js +0 -0
  117. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/uni-popup-dialog.vue +0 -0
  118. package/{ui-uni/uni-popup-message → ui-cv/cv-popup-message}/uni-popup-message.vue +0 -0
  119. package/{ui-uni/uni-popup-share → ui-cv/cv-popup-share}/uni-popup-share.vue +0 -0
  120. package/ui-cv/cv-radio-group/cv-radio-group.vue +185 -0
  121. package/ui-cv/cv-radio-opt-base/cv-radio-opt-base.vue +57 -0
  122. package/ui-cv/cv-radio-opt-tag/cv-radio-opt-tag.vue +107 -0
  123. package/ui-cv/cv-rate/cv-rate.vue +13 -17
  124. package/ui-cv/cv-rate/uni-rate.vue +358 -0
  125. package/ui-cv/cv-row/uni-row.vue +157 -0
  126. package/ui-cv/cv-search/cv-search.vue +4 -4
  127. package/{ui-uni/uni-search-bar → ui-cv/cv-search-bar}/uni-search-bar.vue +0 -0
  128. package/{ui-uni/uni-section → ui-cv/cv-section}/uni-section.vue +0 -0
  129. package/{ui-uni/uni-segmented-control → ui-cv/cv-segmented-control}/uni-segmented-control.vue +0 -0
  130. package/ui-cv/cv-skeleton/cv-skeleton2.vue +5 -5
  131. package/ui-cv/cv-specs/cv-specs.vue +1 -1
  132. package/{ui-uni/uni-status-bar → ui-cv/cv-status-bar}/uni-status-bar.vue +0 -0
  133. package/{ui-uni/uni-steps → ui-cv/cv-steps}/uni-steps.vue +0 -0
  134. package/{ui-uni/uni-swipe-action → ui-cv/cv-swipe-action}/uni-swipe-action.vue +0 -0
  135. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/bindingx.js +0 -0
  136. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/index.wxs +0 -0
  137. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/isPC.js +0 -0
  138. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpalipay.js +0 -0
  139. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpother.js +0 -0
  140. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpwxs.js +0 -0
  141. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/uni-swipe-action-item.vue +0 -0
  142. package/{ui-uni/uni-swiper-dot → ui-cv/cv-swiper-dot}/uni-swiper-dot.vue +0 -0
  143. package/ui-cv/cv-switch/cv-switch.vue +5 -9
  144. package/{ui-uni/uni-table → ui-cv/cv-table}/uni-table.vue +0 -0
  145. package/{ui-uni/uni-tag → ui-cv/cv-tag}/uni-tag.vue +0 -0
  146. package/{ui-uni/uni-tbody → ui-cv/cv-tbody}/uni-tbody.vue +0 -0
  147. package/{ui-uni/uni-td → ui-cv/cv-td}/uni-td.vue +0 -0
  148. package/{ui-uni/uni-test → ui-cv/cv-test}/uni-test.vue +0 -0
  149. package/ui-cv/cv-textarea/cv-textarea.vue +56 -41
  150. package/{ui-uni/uni-th → ui-cv/cv-th}/filter-dropdown.vue +0 -0
  151. package/{ui-uni/uni-th → ui-cv/cv-th}/uni-th.vue +0 -0
  152. package/{ui-uni/uni-thead → ui-cv/cv-thead}/uni-thead.vue +0 -0
  153. package/{ui-uni/uni-title → ui-cv/cv-title}/uni-title.vue +0 -0
  154. package/{ui-uni/uni-tr → ui-cv/cv-tr}/table-checkbox.vue +0 -0
  155. package/{ui-uni/uni-tr → ui-cv/cv-tr}/uni-tr.vue +0 -0
  156. package/{ui-uni/uni-transition → ui-cv/cv-transition}/createAnimation.js +0 -0
  157. package/{ui-uni/uni-transition → ui-cv/cv-transition}/uni-transition.vue +0 -0
  158. package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +24 -22
  159. package/ui-cv/cv-upload-img/cv-upload-img.vue +1 -1
  160. package/ui-cv/mixins/mixins-input.js +20 -29
  161. package/ui-cv/mixins/mixins-picker.js +1 -13
  162. package/ui-uni/amap-wx/js/util.js +158 -166
  163. package/ui-uni/product.vue +52 -52
  164. package/ui-uni/u-charts/u-charts.js +1092 -743
  165. package/ui-cv/cv-checkbox/cv-checkbox.vue +0 -140
  166. package/ui-cv/cv-checkbox-tag/cv-checkbox-tag.vue +0 -164
  167. package/ui-cv/cv-nav-group/cv-nav-group.vue +0 -33
  168. package/ui-cv/cv-radio/cv-radio.vue +0 -111
  169. package/ui-cv/cv-radio-sex/cv-radio-sex.vue +0 -80
  170. package/ui-cv/cv-radio-tag/cv-radio-tag.vue +0 -133
  171. package/ui-cv/mixins/mixins-checkbox.js +0 -71
  172. package/ui-cv/mixins/mixins-common.js +0 -53
  173. package/ui-cv/mixins/mixins-radio.js +0 -84
  174. package/ui-uni/page-foot/page-foot.vue +0 -38
  175. package/ui-uni/page-head/page-head.vue +0 -16
  176. package/ui-uni/u-link/u-link.vue +0 -59
  177. package/ui-uni/uni-badge/uni-badge.vue +0 -250
  178. package/ui-uni/uni-drawer/uni-drawer.vue +0 -178
  179. package/ui-uni/uni-forms/uni-forms.vue +0 -467
  180. package/ui-uni/uni-forms/validate.js +0 -486
  181. package/ui-uni/uni-forms-item/uni-forms-item.vue +0 -500
  182. package/ui-uni/uni-grid/uni-grid.vue +0 -141
  183. package/ui-uni/uni-grid-item/uni-grid-item.vue +0 -123
  184. package/ui-uni/uni-group/uni-group.vue +0 -123
  185. package/ui-uni/uni-icons/icons.js +0 -132
  186. package/ui-uni/uni-icons/uni-icons.vue +0 -72
  187. package/ui-uni/uni-link/uni-link.vue +0 -117
  188. package/ui-uni/uni-load-more/uni-load-more.vue +0 -366
  189. package/ui-uni/uni-rate/uni-rate.vue +0 -357
  190. package/ui-uni/uni-row/uni-row.vue +0 -155
@@ -0,0 +1,185 @@
1
+ <template>
2
+ <view class="cv-radio-group-wrap">
3
+ <radio-group @change="radioChange" class="cv-radio-group__box">
4
+ <slot>
5
+ <cv-radio-opt-base
6
+ v-if="type == 'base'"
7
+ v-for="item in items"
8
+ :key="item.value"
9
+ :value="item.value"
10
+ :checked="item.value == itemsValue"
11
+ >
12
+ {{ item.text }}
13
+ </cv-radio-opt-base>
14
+ <cv-radio-opt-tag
15
+ v-if="type == 'tag'"
16
+ v-for="item in items"
17
+ :key="item.value"
18
+ :value="item.value"
19
+ :checked="item.value == itemsValue"
20
+ >
21
+ {{ item.text }}
22
+ </cv-radio-opt-tag>
23
+ <!-- <label class="cv-radio-group__label">
24
+ <view class="">
25
+ <radio :value="item.value" :checked="item.value == itemsValue" style="transform: scale(0.7)" />
26
+ </view>
27
+ <view>{{ item.text }}</view>
28
+ </label> -->
29
+ </slot>
30
+ </radio-group>
31
+ </view>
32
+ </template>
33
+
34
+ <script>
35
+ import cvRadioOptBase from '../cv-radio-opt-base/cv-radio-opt-base.vue';
36
+ import cvRadioOptTag from '../cv-radio-opt-tag/cv-radio-opt-tag.vue';
37
+ export default {
38
+ name: 'cvRadioGroup',
39
+ components: {
40
+ cvRadioOptBase,
41
+ cvRadioOptTag
42
+ },
43
+ props: {
44
+ type: {
45
+ type: String,
46
+ default: 'base'
47
+ },
48
+ value: {
49
+ type: [String, Number],
50
+ default: ''
51
+ },
52
+ dataType: {
53
+ type: String,
54
+ default: 'value'
55
+ },
56
+
57
+ dataUrl: {
58
+ type: String,
59
+ default: ''
60
+ },
61
+ dataValue: {
62
+ type: String,
63
+ default: 'value'
64
+ },
65
+ dataText: {
66
+ type: String,
67
+ default: 'text'
68
+ },
69
+ dataLists: {
70
+ type: [Array, String],
71
+ default: () => {
72
+ return [];
73
+ }
74
+ }
75
+ },
76
+ data() {
77
+ return {
78
+ localVal: '',
79
+ items: [],
80
+ itemsValue: ''
81
+ };
82
+ },
83
+ watch: {
84
+ value(newVal) {
85
+ this.localVal = newVal;
86
+ this._dealValue();
87
+ },
88
+ dataLists(newVal) {
89
+ if (this.dataUrl == '') {
90
+ this.dataLists = newVal;
91
+ this.items = this.itemsSortOut();
92
+ this._dealValue();
93
+ }
94
+ }
95
+ },
96
+ created() {
97
+ this.localVal = this.value;
98
+ if (this.dataLists) {
99
+ this.items = this.itemsSortOut();
100
+ }
101
+ //默认Value
102
+ this._dealValue();
103
+ },
104
+ methods: {
105
+ _dealValue() {
106
+ //默认Value
107
+ let items = this.items;
108
+ if (this.dataType == 'text') {
109
+ for (let index = 0; index < items.length; index++) {
110
+ if (this.localVal == items[index].text) {
111
+ this.itemsValue = items[index].value;
112
+ }
113
+ }
114
+ } else {
115
+ this.itemsValue = this.localVal;
116
+ }
117
+ },
118
+ radioChange(e) {
119
+ let value = e.detail.value;
120
+ let localVal = value;
121
+ if (this.dataType == 'text') {
122
+ let items = this.items;
123
+ for (let index = 0; index < items.length; index++) {
124
+ if (localVal == items[index].value) {
125
+ localVal = items[index].text;
126
+ }
127
+ }
128
+ }
129
+ this.localVal = localVal;
130
+ this.$emit('input', this.localVal);
131
+ },
132
+ itemsSortOut() {
133
+ let original = [];
134
+ if (this.dataUrl) {
135
+ //网络请求
136
+ if (typeof this.dataUrl == 'function') {
137
+ this.dataUrl({}).then((successRes) => {
138
+ original = successRes.data;
139
+ });
140
+ } else {
141
+ console.warn('此处需要自定义请求方法');
142
+ }
143
+ } else {
144
+ original = this.dataLists;
145
+ }
146
+ if (typeof original == 'string') {
147
+ original = JSON.parse(original);
148
+ }
149
+ //整理数据
150
+ let items = [];
151
+ let dataValue = this.dataValue ? this.dataValue : 'value';
152
+ let dataText = this.dataText ? this.dataText : 'text';
153
+ let i = 0;
154
+ for (i in original) {
155
+ let data = original[i];
156
+ items.push({
157
+ value: data[dataValue].toString(),
158
+ text: data[dataText]
159
+ });
160
+ }
161
+ return items;
162
+ }
163
+ }
164
+ };
165
+ </script>
166
+
167
+ <style>
168
+ .cv-radio-group-wrap {
169
+ min-height: 35px;
170
+ float: left;
171
+ }
172
+ .cv-radio-group__box {
173
+ display: flex;
174
+ flex-direction: row;
175
+ flex-wrap: wrap;
176
+ align-items: stretch;
177
+ align-content: flex-start;
178
+ }
179
+ .cv-radio-group__label {
180
+ height: 35px;
181
+ line-height: 35px;
182
+ display: flex;
183
+ margin-right: 10px;
184
+ }
185
+ </style>
@@ -0,0 +1,57 @@
1
+ <template>
2
+ <view class="cv-radio-opt-base">
3
+ <label class="cv-radio-opt__label">
4
+ <radio :value="localVal" :checked="checked" style="transform: scale(0.7)" />
5
+ <view>
6
+ <slot>{{ label }}</slot>
7
+ </view>
8
+ </label>
9
+ </view>
10
+ </template>
11
+ <script>
12
+ export default {
13
+ name: 'cvRadioOptBase',
14
+ props: {
15
+ label: {
16
+ type: [String, Number],
17
+ default: ''
18
+ },
19
+ value: {
20
+ type: [String, Number],
21
+ default: ''
22
+ },
23
+ checked: {
24
+ type: Boolean,
25
+ default: false
26
+ }
27
+ },
28
+ data() {
29
+ return {
30
+ localVal: ''
31
+ };
32
+ },
33
+ watch: {
34
+ value(newVal) {
35
+ this.localVal = String(newVal);
36
+ }
37
+ },
38
+ created() {
39
+ this.localVal = String(this.value);
40
+ },
41
+ methods: {}
42
+ };
43
+ </script>
44
+
45
+ <style>
46
+ .cv-radio-opt-base {
47
+ min-height: 35px;
48
+ display: inline-flex;
49
+ }
50
+
51
+ .cv-radio-opt__label {
52
+ height: 35px;
53
+ line-height: 35px;
54
+ margin-right: 10px;
55
+ display: flex;
56
+ }
57
+ </style>
@@ -0,0 +1,107 @@
1
+ <template>
2
+ <view class="cv-radio-opt-tag">
3
+ <label class="cv-radio-opt__label" :class="localChecked ? 'radio-checked' : ''" @click="funcOnClick">
4
+ <radio class="cv-radio-opt__radio" :value="localVal" :checked="localChecked" />
5
+ <view>
6
+ <slot>{{ label }}</slot>
7
+ </view>
8
+ </label>
9
+ </view>
10
+ </template>
11
+ <script>
12
+ export default {
13
+ name: 'cvRadioOptTag',
14
+ props: {
15
+ label: {
16
+ type: [String, Number],
17
+ default: ''
18
+ },
19
+ value: {
20
+ type: [String, Number],
21
+ default: ''
22
+ },
23
+ checked: {
24
+ type: Boolean,
25
+ default: false
26
+ }
27
+ },
28
+ data() {
29
+ return {
30
+ localVal: '',
31
+ localChecked: false,
32
+ parentObj: null
33
+ };
34
+ },
35
+ watch: {
36
+ value(newVal) {
37
+ this.localVal = String(newVal);
38
+ },
39
+ checked(newVal) {
40
+ this.localChecked = newVal;
41
+ },
42
+ 'parentObj.value'(newVal) {
43
+ // console.log('----', newVal);
44
+ this.localChecked = newVal == this.value ? true : false;
45
+ }
46
+ },
47
+ created() {
48
+ this.localVal = String(this.value);
49
+ this.localChecked = this.checked;
50
+ },
51
+ mounted() {
52
+ this.parentObj = this.getParent();
53
+ },
54
+ methods: {
55
+ funcOnClick() {
56
+ // let parentObj = this.getParent();
57
+ // console.log(parentObj.$children);
58
+ // let { value } = parentObj;
59
+ // console.log(value, this.localVal);
60
+ // this.localChecked = newVal == this.value ? true : false;
61
+ },
62
+ /**
63
+ * 获取父元素实例
64
+ */
65
+ getParent(name = 'cvRadioGroup') {
66
+ let parent = this.$parent;
67
+ let parentName = parent.$options.name;
68
+ while (parentName !== name) {
69
+ parent = parent.$parent;
70
+ if (!parent) return false;
71
+ parentName = parent.$options.name;
72
+ }
73
+ return parent;
74
+ }
75
+ }
76
+ };
77
+ </script>
78
+
79
+ <style>
80
+ .cv-radio-opt-tag {
81
+ display: inline-flex;
82
+ min-height: 35px;
83
+ }
84
+
85
+ .cv-radio-opt__label {
86
+ margin: 5px 0;
87
+ height: 25px;
88
+ line-height: 25px;
89
+ display: flex;
90
+ margin-right: 10px;
91
+ border: solid 0.5px #f0f4f7;
92
+ color: rgba(0, 0, 0, 0.4);
93
+ padding: 0 10px;
94
+ border-radius: 3px;
95
+ background-color: #f0f4f7;
96
+ font-size: 14px;
97
+ }
98
+ .cv-radio-opt__label.radio-checked {
99
+ color: #4292cc;
100
+ border-color: #4292cc;
101
+ background-color: #ddeffd;
102
+ }
103
+ .cv-radio-opt__radio {
104
+ display: none;
105
+ transform: scale(0.7);
106
+ }
107
+ </style>
@@ -1,25 +1,21 @@
1
1
  <template>
2
- <cv-form-item :label="label" :labelWidth="localLabelWidth" :layout="localLayout" rtip="">
3
- <view class="cv-rate-area">
4
- <view
5
- class="cv-rate-item"
6
- v-for="i in parseInt(max)"
7
- :key="i"
8
- v-bind:style="i <= locaValue ? starSelected : starStyle"
9
- :data-value="i"
10
- @tap="click_star"
11
- >
12
- <template v-if="isFill == true && i > locaValue">☆</template>
13
- <template v-else>★</template>
14
- </view>
2
+ <view class="cv-rate-area">
3
+ <view
4
+ class="cv-rate-item"
5
+ v-for="i in parseInt(max)"
6
+ :key="i"
7
+ v-bind:style="i <= locaValue ? starSelected : starStyle"
8
+ :data-value="i"
9
+ @tap="click_star"
10
+ >
11
+ <template v-if="isFill == true && i > locaValue">☆</template>
12
+ <template v-else>★</template>
15
13
  </view>
16
- </cv-form-item>
14
+ </view>
17
15
  </template>
18
16
 
19
17
  <script>
20
- import MixinsCommon from '../mixins/mixins-common';
21
18
  export default {
22
- mixins: [MixinsCommon],
23
19
  name: 'cvRate',
24
20
  inject: {
25
21
  cvFormGroup: {
@@ -80,7 +76,7 @@ export default {
80
76
  watch: {
81
77
  value(newVal) {}
82
78
  },
83
- created: function () {
79
+ created() {
84
80
  this.locaValue = this.value || 1;
85
81
  this._dealStyle();
86
82
  },