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

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 (235) 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/cv-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-cv/cv-calendar/calendar.js +963 -0
  10. package/ui-cv/cv-calendar/cv-calendar-item.vue +198 -0
  11. package/ui-cv/cv-calendar/cv-calendar.vue +508 -0
  12. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/util.js +0 -0
  13. package/ui-cv/cv-card/cv-card.vue +427 -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-cv/cv-col/cv-col.vue +2965 -0
  20. package/ui-cv/cv-collapse/cv-collapse.vue +146 -0
  21. package/ui-cv/cv-collapse-item/cv-collapse-item.vue +395 -0
  22. package/ui-cv/cv-combox/cv-combox.vue +250 -0
  23. package/ui-cv/cv-countdown/cv-countdown.vue +245 -0
  24. package/ui-cv/cv-data-checkbox/cv-data-checkbox.vue +841 -0
  25. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/clientdb.js +0 -0
  26. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list-item.vue +154 -0
  27. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list.vue +376 -0
  28. package/ui-cv/cv-data-picker/cv-data-picker.vue +486 -0
  29. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/keypress.js +0 -0
  30. package/{ui-uni/uni-data-pickerview/uni-data-picker.js → ui-cv/cv-data-pickerview/cv-data-picker.js} +0 -0
  31. package/ui-cv/cv-data-pickerview/cv-data-pickerview.vue +304 -0
  32. package/ui-cv/cv-dateformat/cv-dateformat.vue +86 -0
  33. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/date-format.js +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-cv/cv-datetime-picker/calendar.vue +761 -0
  37. package/ui-cv/cv-datetime-picker/cv-datetime-picker.vue +958 -0
  38. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/keypress.js +0 -0
  39. package/ui-cv/cv-datetime-picker/time-picker.vue +907 -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-cv/cv-easyinput/cv-easyinput.vue +514 -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-cv/cv-fab/cv-fab.vue +465 -0
  55. package/{ui-uni/uni-fab/uni-fab.vue.bak → ui-cv/cv-fab/cv-fab.vue.bak} +2 -2
  56. package/ui-cv/cv-fav/cv-fav.vue +150 -0
  57. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/choose-and-upload-file.js +0 -0
  58. package/ui-cv/cv-file-picker/cv-file-picker.vue +619 -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/uni-goods-nav.vue → ui-cv/cv-goods-nav/cv-goods-nav.vue} +1 -1
  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-icon2/cv-icon2.vue +78 -0
  74. package/ui-cv/cv-icon2/icons.js +132 -0
  75. package/{ui-uni/uni-icons → ui-cv/cv-icon2}/uni.ttf +0 -0
  76. package/ui-cv/cv-icons/cv-icons.vue +1 -1
  77. package/ui-cv/cv-indexed-list/cv-indexed-list-item.vue +154 -0
  78. package/ui-cv/cv-indexed-list/cv-indexed-list.vue +371 -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-link2/cv-link2.vue +130 -0
  87. package/ui-cv/cv-list/cv-list.vue +107 -0
  88. package/ui-cv/cv-list/cv-refresh.vue +65 -0
  89. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.wxs +0 -0
  90. package/ui-cv/cv-list-ad/cv-list-ad.vue +113 -0
  91. package/{ui-uni/uni-list-chat/uni-list-chat.scss → ui-cv/cv-list-chat/cv-list-chat.scss} +0 -0
  92. package/{ui-uni/uni-list-chat/uni-list-chat.vue → ui-cv/cv-list-chat/cv-list-chat.vue} +0 -0
  93. package/ui-cv/cv-list-item/cv-list-item.vue +449 -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-cv/cv-nav-bar/cv-nav-bar.vue +256 -0
  98. package/{ui-uni/uni-nav-bar/uni-status-bar.vue → ui-cv/cv-nav-bar/cv-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-cv/cv-notice-bar/cv-notice-bar.vue +453 -0
  102. package/ui-cv/cv-number-box/cv-number-box.vue +223 -0
  103. package/ui-cv/cv-pagination/cv-pagination.vue +397 -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-cv/cv-popup/cv-popup.vue +429 -0
  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-dialog/uni-popup-dialog.vue → ui-cv/cv-popup-dialog/cv-popup-dialog.vue} +0 -0
  116. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/keypress.js +0 -0
  117. package/ui-cv/cv-popup-message/cv-popup-message.vue +143 -0
  118. package/{ui-uni/uni-popup-share/uni-popup-share.vue → ui-cv/cv-popup-share/cv-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/cv-row.vue +157 -0
  125. package/ui-cv/cv-search/cv-search.vue +4 -4
  126. package/ui-cv/cv-search-bar/cv-search-bar.vue +280 -0
  127. package/{ui-uni/uni-section/uni-section.vue → ui-cv/cv-section/cv-section.vue} +0 -0
  128. package/{ui-uni/uni-segmented-control/uni-segmented-control.vue → ui-cv/cv-segmented-control/cv-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/uni-status-bar.vue → ui-cv/cv-status-bar/cv-status-bar.vue} +0 -0
  132. package/ui-cv/cv-steps/cv-steps.vue +293 -0
  133. package/{ui-uni/uni-swipe-action/uni-swipe-action.vue → ui-cv/cv-swipe-action/cv-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/uni-swipe-action-item.vue → ui-cv/cv-swipe-action-item/cv-swipe-action-item.vue} +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-cv/cv-swiper-dot/cv-swiper-dot.vue +255 -0
  142. package/ui-cv/cv-switch/cv-switch.vue +5 -9
  143. package/ui-cv/cv-table/cv-table.vue +460 -0
  144. package/ui-cv/cv-tag/cv-tag.vue +276 -0
  145. package/ui-cv/cv-tbody/cv-tbody.vue +28 -0
  146. package/ui-cv/cv-td/cv-td.vue +93 -0
  147. package/{ui-uni/uni-test/uni-test.vue → ui-cv/cv-test/cv-test.vue} +0 -0
  148. package/ui-cv/cv-textarea/cv-textarea.vue +56 -41
  149. package/ui-cv/cv-th/cv-th.vue +270 -0
  150. package/{ui-uni/uni-th → ui-cv/cv-th}/filter-dropdown.vue +0 -0
  151. package/ui-cv/cv-thead/cv-thead.vue +114 -0
  152. package/ui-cv/cv-title/cv-title.vue +168 -0
  153. package/ui-cv/cv-tr/cv-tr.vue +166 -0
  154. package/{ui-uni/uni-tr → ui-cv/cv-tr}/table-checkbox.vue +0 -0
  155. package/{ui-uni/uni-transition → ui-cv/cv-transition}/createAnimation.js +0 -0
  156. package/ui-cv/cv-transition/cv-transition.vue +279 -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-calendar/calendar.js +0 -546
  178. package/ui-uni/uni-calendar/uni-calendar-item.vue +0 -171
  179. package/ui-uni/uni-calendar/uni-calendar.vue +0 -504
  180. package/ui-uni/uni-card/uni-card.vue +0 -420
  181. package/ui-uni/uni-col/uni-col.vue +0 -2968
  182. package/ui-uni/uni-collapse/uni-collapse.vue +0 -146
  183. package/ui-uni/uni-collapse-item/uni-collapse-item.vue +0 -378
  184. package/ui-uni/uni-combox/uni-combox.vue +0 -237
  185. package/ui-uni/uni-countdown/uni-countdown.vue +0 -234
  186. package/ui-uni/uni-data-checkbox/uni-data-checkbox.vue +0 -792
  187. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list-item.vue +0 -142
  188. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list.vue +0 -364
  189. package/ui-uni/uni-data-picker/uni-data-picker.vue +0 -468
  190. package/ui-uni/uni-data-pickerview/uni-data-pickerview.vue +0 -298
  191. package/ui-uni/uni-dateformat/uni-dateformat.vue +0 -88
  192. package/ui-uni/uni-datetime-picker/calendar.vue +0 -747
  193. package/ui-uni/uni-datetime-picker/time-picker.vue +0 -899
  194. package/ui-uni/uni-datetime-picker/uni-datetime-picker.vue +0 -874
  195. package/ui-uni/uni-drawer/uni-drawer.vue +0 -178
  196. package/ui-uni/uni-easyinput/uni-easyinput.vue +0 -438
  197. package/ui-uni/uni-fab/uni-fab.vue +0 -443
  198. package/ui-uni/uni-fav/uni-fav.vue +0 -136
  199. package/ui-uni/uni-file-picker/uni-file-picker.vue +0 -614
  200. package/ui-uni/uni-forms/uni-forms.vue +0 -467
  201. package/ui-uni/uni-forms/validate.js +0 -486
  202. package/ui-uni/uni-forms-item/uni-forms-item.vue +0 -500
  203. package/ui-uni/uni-grid/uni-grid.vue +0 -141
  204. package/ui-uni/uni-grid-item/uni-grid-item.vue +0 -123
  205. package/ui-uni/uni-group/uni-group.vue +0 -123
  206. package/ui-uni/uni-icons/icons.js +0 -132
  207. package/ui-uni/uni-icons/uni-icons.vue +0 -72
  208. package/ui-uni/uni-indexed-list/uni-indexed-list-item.vue +0 -142
  209. package/ui-uni/uni-indexed-list/uni-indexed-list.vue +0 -357
  210. package/ui-uni/uni-link/uni-link.vue +0 -117
  211. package/ui-uni/uni-list/uni-list.vue +0 -107
  212. package/ui-uni/uni-list/uni-refresh.vue +0 -65
  213. package/ui-uni/uni-list-ad/uni-list-ad.vue +0 -106
  214. package/ui-uni/uni-list-item/uni-list-item.vue +0 -428
  215. package/ui-uni/uni-load-more/uni-load-more.vue +0 -366
  216. package/ui-uni/uni-nav-bar/uni-nav-bar.vue +0 -244
  217. package/ui-uni/uni-notice-bar/uni-notice-bar.vue +0 -394
  218. package/ui-uni/uni-number-box/uni-number-box.vue +0 -224
  219. package/ui-uni/uni-pagination/uni-pagination.vue +0 -376
  220. package/ui-uni/uni-popup/uni-popup.vue +0 -412
  221. package/ui-uni/uni-popup-message/uni-popup-message.vue +0 -143
  222. package/ui-uni/uni-rate/uni-rate.vue +0 -357
  223. package/ui-uni/uni-row/uni-row.vue +0 -155
  224. package/ui-uni/uni-search-bar/uni-search-bar.vue +0 -262
  225. package/ui-uni/uni-steps/uni-steps.vue +0 -250
  226. package/ui-uni/uni-swiper-dot/uni-swiper-dot.vue +0 -205
  227. package/ui-uni/uni-table/uni-table.vue +0 -455
  228. package/ui-uni/uni-tag/uni-tag.vue +0 -283
  229. package/ui-uni/uni-tbody/uni-tbody.vue +0 -30
  230. package/ui-uni/uni-td/uni-td.vue +0 -88
  231. package/ui-uni/uni-th/uni-th.vue +0 -259
  232. package/ui-uni/uni-thead/uni-thead.vue +0 -114
  233. package/ui-uni/uni-title/uni-title.vue +0 -171
  234. package/ui-uni/uni-tr/uni-tr.vue +0 -156
  235. package/ui-uni/uni-transition/uni-transition.vue +0 -287
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <!-- #ifdef H5 -->
3
+ <tbody>
4
+ <slot></slot>
5
+ </tbody>
6
+ <!-- #endif -->
7
+ <!-- #ifndef H5 -->
8
+ <view>
9
+ <slot></slot>
10
+ </view>
11
+ <!-- #endif -->
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ name: 'cvBody',
17
+ options: {
18
+ virtualHost: true
19
+ },
20
+ data() {
21
+ return {};
22
+ },
23
+ created() {},
24
+ methods: {}
25
+ };
26
+ </script>
27
+
28
+ <style scoped></style>
@@ -0,0 +1,93 @@
1
+ <template>
2
+ <!-- #ifdef H5 -->
3
+ <td
4
+ class="uni-table-td"
5
+ :rowspan="rowspan"
6
+ :colspan="colspan"
7
+ :class="{ 'table--border': border }"
8
+ :style="{ width: width + 'px', 'text-align': align }"
9
+ >
10
+ <slot></slot>
11
+ </td>
12
+ <!-- #endif -->
13
+ <!-- #ifndef H5 -->
14
+ <!-- :class="{'table--border':border}" -->
15
+ <view class="uni-table-td" :class="{ 'table--border': border }" :style="{ width: width + 'px', 'text-align': align }">
16
+ <slot></slot>
17
+ </view>
18
+ <!-- #endif -->
19
+ </template>
20
+
21
+ <script>
22
+ /**
23
+ * Td 单元格
24
+ * @description 表格中的标准单元格组件
25
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=3270
26
+ * @property {Number} align = [left|center|right] 单元格对齐方式
27
+ */
28
+ export default {
29
+ name: 'cvTd',
30
+ options: {
31
+ virtualHost: true
32
+ },
33
+ props: {
34
+ width: {
35
+ type: [String, Number],
36
+ default: ''
37
+ },
38
+ align: {
39
+ type: String,
40
+ default: 'left'
41
+ },
42
+ rowspan: {
43
+ type: [Number, String],
44
+ default: 1
45
+ },
46
+ colspan: {
47
+ type: [Number, String],
48
+ default: 1
49
+ }
50
+ },
51
+ data() {
52
+ return {
53
+ border: false
54
+ };
55
+ },
56
+ created() {
57
+ this.root = this.getTable();
58
+ this.border = this.root.border;
59
+ },
60
+ methods: {
61
+ /**
62
+ * 获取父元素实例
63
+ */
64
+ getTable() {
65
+ let parent = this.$parent;
66
+ let parentName = parent.$options.name;
67
+ while (parentName !== 'uniTable') {
68
+ parent = parent.$parent;
69
+ if (!parent) return false;
70
+ parentName = parent.$options.name;
71
+ }
72
+ return parent;
73
+ }
74
+ }
75
+ };
76
+ </script>
77
+
78
+ <style scoped>
79
+ .uni-table-td {
80
+ display: table-cell;
81
+ padding: 8px 10px;
82
+ font-size: 14px;
83
+ border-bottom: 1px #ebeef5 solid;
84
+ font-weight: 400;
85
+ color: #606266;
86
+ line-height: 23px;
87
+ box-sizing: border-box;
88
+ }
89
+
90
+ .table--border {
91
+ border-right: 1px #ebeef5 solid;
92
+ }
93
+ </style>
@@ -1,38 +1,28 @@
1
1
  <template>
2
- <cv-form-item
3
- :tip="tip"
4
- :label="label"
5
- :must="must"
6
- :message="message"
7
- :messageDisplay="messageDisplay"
8
- :labelWidth="localLabelWidth"
9
- :layout="localLayout"
10
- :onQClear="onQClear"
11
- :input-value="localVal"
12
- >
13
- <view class="cv-textarea">
2
+ <view class="cv-textarea-wrap" :class="{ 'cv-textarea__border': border }">
3
+ <view class="cv-textarea__box">
14
4
  <textarea
15
- class="cv-textarea-item"
5
+ class="cv-textarea__content"
16
6
  v-model="localVal"
17
7
  :maxlength="maxlength"
18
8
  :placeholder="placeholder"
19
- placeholder-class="cv-textarea-placeholder"
20
- @input="updateInput"
9
+ placeholder-class="cv-textarea__placeholder"
10
+ @input="funcOnInput"
21
11
  auto-height
12
+ border
22
13
  />
23
- <view class="cv-textarea-maxlength" v-if="maxlength >= 1">
24
- <text>{{ tempLength }}</text>
25
- /
26
- <text>{{ maxlength }}</text>
27
- </view>
28
14
  </view>
29
- </cv-form-item>
15
+
16
+ <view class="cv-textarea__maxlength" v-if="maxlength >= 1">
17
+ <text>{{ tempLength }}</text>
18
+ /
19
+ <text>{{ maxlength }}</text>
20
+ </view>
21
+ </view>
30
22
  </template>
31
23
 
32
24
  <script>
33
- import MixinsCommon from '../mixins/mixins-common.js';
34
25
  export default {
35
- mixins: [MixinsCommon],
36
26
  name: 'cvTextArea',
37
27
  inject: {
38
28
  cvFormGroup: {
@@ -50,21 +40,17 @@ export default {
50
40
  type: [Number, String],
51
41
  default: -1
52
42
  },
53
- tip: {
54
- type: String,
55
- default: ''
43
+ placeholder: {
44
+ type: [String],
45
+ default: '请输入文本'
56
46
  },
57
- onQClear: {
47
+ clearable: {
58
48
  type: Boolean,
59
49
  default: false
60
50
  },
61
- message: {
62
- type: String,
63
- default: ''
64
- },
65
- messageDisplay: {
51
+ border: {
66
52
  type: Boolean,
67
- default: false
53
+ default: true
68
54
  }
69
55
  },
70
56
 
@@ -80,38 +66,67 @@ export default {
80
66
  this.tempLength = this.localVal.length;
81
67
  }
82
68
  },
83
- created: function () {
69
+ created() {
84
70
  this.localVal = this.value;
85
71
  },
86
72
  methods: {
87
- updateInput(e) {
73
+ funcOnInput(e) {
88
74
  this.tempLength = this.localVal.length;
89
75
  this.$emit('input', this.localVal);
90
76
  },
91
77
  /* 监听自己清除按钮点击事件 */
92
78
  onEmpty() {
93
79
  this.localVal = '';
94
- this.updateInput();
80
+ this.funcOnInput();
95
81
  }
96
82
  }
97
83
  };
98
84
  </script>
99
85
 
100
86
  <style>
101
- .cv-textarea-item {
87
+ .cv-textarea-wrap {
88
+ border-radius: 4px;
89
+ background-color: #fff;
90
+ position: relative;
91
+ display: flex;
92
+ flex-direction: row;
93
+ flex: 1;
94
+ padding: 9px;
95
+ align-items: stretch;
96
+ align-content: flex-start;
97
+ }
98
+ .cv-textarea__box {
99
+ flex: 1;
100
+ font-size: 15px;
101
+ color: #606266;
102
+ width: 100%;
103
+ }
104
+ .cv-textarea__content {
102
105
  min-height: 65px;
103
106
  line-height: 1.5em;
104
- padding-top: 7px;
105
107
  font-size: 14px;
106
108
  width: auto;
107
- margin-right: 20px;
108
109
  }
109
- .cv-textarea-maxlength {
110
+ .cv-textarea__border {
111
+ border-width: 0.5px !important;
112
+ border-color: #dadbde !important;
113
+ border-style: solid;
114
+ padding-left: 10px;
115
+ }
116
+
117
+ .cv-textarea__maxlength {
110
118
  font-size: 14px;
111
119
  color: rgba(0, 0, 0, 0.4);
112
120
  text-align: right;
121
+ position: absolute;
122
+ right: 5px;
123
+ bottom: 2px;
124
+ font-size: 12px;
125
+ color: #909193;
126
+ background-color: #fff;
127
+ padding: 1px 4px;
113
128
  }
114
- .cv-textarea-placeholder {
129
+ .cv-textarea__placeholder {
115
130
  font-size: 14px;
116
131
  }
117
132
  </style>
@@ -0,0 +1,270 @@
1
+ <template>
2
+ <!-- #ifdef H5 -->
3
+ <th
4
+ :rowspan="rowspan"
5
+ :colspan="colspan"
6
+ class="uni-table-th"
7
+ :class="{ 'table--border': border }"
8
+ :style="{ width: width + 'px', 'text-align': align }"
9
+ >
10
+ <view class="uni-table-th-row">
11
+ <view class="uni-table-th-content" :style="{ 'justify-content': contentAlign }" @click="sort">
12
+ <slot></slot>
13
+ <view v-if="sortable" class="arrow-box">
14
+ <text class="arrow up" :class="{ active: ascending }" @click.stop="ascendingFn"></text>
15
+ <text class="arrow down" :class="{ active: descending }" @click.stop="descendingFn"></text>
16
+ </view>
17
+ </view>
18
+ <dropdown
19
+ v-if="filterType || filterData.length"
20
+ :filterData="filterData"
21
+ :filterType="filterType"
22
+ @change="ondropdown"
23
+ ></dropdown>
24
+ </view>
25
+ </th>
26
+ <!-- #endif -->
27
+ <!-- #ifndef H5 -->
28
+ <view class="uni-table-th" :class="{ 'table--border': border }" :style="{ width: width + 'px', 'text-align': align }">
29
+ <slot></slot>
30
+ </view>
31
+ <!-- #endif -->
32
+ </template>
33
+
34
+ <script>
35
+ import dropdown from './filter-dropdown.vue';
36
+ /**
37
+ * Th 表头
38
+ * @description 表格内的表头单元格组件
39
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=3270
40
+ * @property {Number} width 单元格宽度
41
+ * @property {Boolean} sortable 是否启用排序
42
+ * @property {Number} align = [left|center|right] 单元格对齐方式
43
+ * @value left 单元格文字左侧对齐
44
+ * @value center 单元格文字居中
45
+ * @value right 单元格文字右侧对齐
46
+ * @property {Array} filterData 筛选数据
47
+ * @property {String} filterType [search|select] 筛选类型
48
+ * @value search 关键字搜素
49
+ * @value select 条件选择
50
+ * @event {Function} sort-change 排序触发事件
51
+ */
52
+ export default {
53
+ name: 'cvTh',
54
+ options: {
55
+ virtualHost: true
56
+ },
57
+ components: {
58
+ dropdown
59
+ },
60
+ emits: ['sort-change', 'filter-change'],
61
+ props: {
62
+ width: {
63
+ type: [String, Number],
64
+ default: ''
65
+ },
66
+ align: {
67
+ type: String,
68
+ default: 'left'
69
+ },
70
+ rowspan: {
71
+ type: [Number, String],
72
+ default: 1
73
+ },
74
+ colspan: {
75
+ type: [Number, String],
76
+ default: 1
77
+ },
78
+ sortable: {
79
+ type: Boolean,
80
+ default: false
81
+ },
82
+ filterType: {
83
+ type: String,
84
+ default: ''
85
+ },
86
+ filterData: {
87
+ type: Array,
88
+ default() {
89
+ return [];
90
+ }
91
+ }
92
+ },
93
+ data() {
94
+ return {
95
+ border: false,
96
+ ascending: false,
97
+ descending: false
98
+ };
99
+ },
100
+ computed: {
101
+ contentAlign() {
102
+ let align = 'left';
103
+ switch (this.align) {
104
+ case 'left':
105
+ align = 'flex-start';
106
+ break;
107
+ case 'center':
108
+ align = 'center';
109
+ break;
110
+ case 'right':
111
+ align = 'flex-end';
112
+ break;
113
+ }
114
+ return align;
115
+ }
116
+ },
117
+ created() {
118
+ this.root = this.getTable('uniTable');
119
+ this.rootTr = this.getTable('uniTr');
120
+ this.rootTr.minWidthUpdate(this.width ? this.width : 140);
121
+ this.border = this.root.border;
122
+ this.root.thChildren.push(this);
123
+ },
124
+ methods: {
125
+ sort() {
126
+ if (!this.sortable) return;
127
+ this.clearOther();
128
+ if (!this.ascending && !this.descending) {
129
+ this.ascending = true;
130
+ this.$emit('sort-change', {
131
+ order: 'ascending'
132
+ });
133
+ return;
134
+ }
135
+ if (this.ascending && !this.descending) {
136
+ this.ascending = false;
137
+ this.descending = true;
138
+ this.$emit('sort-change', {
139
+ order: 'descending'
140
+ });
141
+ return;
142
+ }
143
+
144
+ if (!this.ascending && this.descending) {
145
+ this.ascending = false;
146
+ this.descending = false;
147
+ this.$emit('sort-change', {
148
+ order: null
149
+ });
150
+ }
151
+ },
152
+ ascendingFn() {
153
+ this.clearOther();
154
+ this.ascending = !this.ascending;
155
+ this.descending = false;
156
+ this.$emit('sort-change', {
157
+ order: this.ascending ? 'ascending' : null
158
+ });
159
+ },
160
+ descendingFn() {
161
+ this.clearOther();
162
+ this.descending = !this.descending;
163
+ this.ascending = false;
164
+ this.$emit('sort-change', {
165
+ order: this.descending ? 'descending' : null
166
+ });
167
+ },
168
+ clearOther() {
169
+ this.root.thChildren.map((item) => {
170
+ if (item !== this) {
171
+ item.ascending = false;
172
+ item.descending = false;
173
+ }
174
+ return item;
175
+ });
176
+ },
177
+ ondropdown(e) {
178
+ this.$emit('filter-change', e);
179
+ },
180
+ /**
181
+ * 获取父元素实例
182
+ */
183
+ getTable(name) {
184
+ let parent = this.$parent;
185
+ let parentName = parent.$options.name;
186
+ while (parentName !== name) {
187
+ parent = parent.$parent;
188
+ if (!parent) return false;
189
+ parentName = parent.$options.name;
190
+ }
191
+ return parent;
192
+ }
193
+ }
194
+ };
195
+ </script>
196
+
197
+ <style scoped>
198
+ .uni-table-th {
199
+ padding: 12px 10px;
200
+ /* #ifndef APP-NVUE */
201
+ display: table-cell;
202
+ box-sizing: border-box;
203
+ /* #endif */
204
+ font-size: 14px;
205
+ font-weight: bold;
206
+ color: #909399;
207
+ border-bottom: 1px #ebeef5 solid;
208
+ }
209
+
210
+ .uni-table-th-row {
211
+ /* #ifndef APP-NVUE */
212
+ display: flex;
213
+ /* #endif */
214
+ flex-direction: row;
215
+ }
216
+
217
+ .table--border {
218
+ border-right: 1px #ebeef5 solid;
219
+ }
220
+
221
+ .uni-table-th-content {
222
+ display: flex;
223
+ align-items: center;
224
+ flex: 1;
225
+ }
226
+
227
+ .arrow {
228
+ display: block;
229
+ position: relative;
230
+ width: 10px;
231
+ height: 8px;
232
+ left: 5px;
233
+ overflow: hidden;
234
+ cursor: pointer;
235
+ }
236
+
237
+ .down {
238
+ top: 3px;
239
+ }
240
+
241
+ .down ::after {
242
+ content: '';
243
+ width: 8px;
244
+ height: 8px;
245
+ position: absolute;
246
+ left: 2px;
247
+ top: -5px;
248
+ transform: rotate(45deg);
249
+ background-color: #ccc;
250
+ }
251
+
252
+ .down.active ::after {
253
+ background-color: #007aff;
254
+ }
255
+
256
+ .up ::after {
257
+ content: '';
258
+ width: 8px;
259
+ height: 8px;
260
+ position: absolute;
261
+ left: 2px;
262
+ top: 5px;
263
+ transform: rotate(45deg);
264
+ background-color: #ccc;
265
+ }
266
+
267
+ .up.active ::after {
268
+ background-color: #007aff;
269
+ }
270
+ </style>
@@ -0,0 +1,114 @@
1
+ <template>
2
+ <!-- #ifdef H5 -->
3
+ <thead class="uni-table-thead">
4
+ <tr class="uni-table-tr">
5
+ <th :rowspan="rowspan" colspan="1" class="checkbox" :class="{ 'tr-table--border': border }">
6
+ <table-checkbox :indeterminate="indeterminate" :checked="checked" @checkboxSelected="checkboxSelected"></table-checkbox>
7
+ </th>
8
+ </tr>
9
+ <slot></slot>
10
+ </thead>
11
+ <!-- #endif -->
12
+ <!-- #ifndef H5 -->
13
+ <view class="uni-table-thead">
14
+ <slot></slot>
15
+ </view>
16
+ <!-- #endif -->
17
+ </template>
18
+
19
+ <script>
20
+ import tableCheckbox from '../uni-tr/table-checkbox.vue';
21
+ export default {
22
+ name: 'cvThead',
23
+ components: {
24
+ tableCheckbox
25
+ },
26
+ options: {
27
+ virtualHost: true
28
+ },
29
+ data() {
30
+ return {
31
+ border: false,
32
+ selection: false,
33
+ rowspan: 1,
34
+ indeterminate: false,
35
+ checked: false
36
+ };
37
+ },
38
+ created() {
39
+ this.root = this.getTable();
40
+ // #ifdef H5
41
+ this.root.theadChildren = this;
42
+ // #endif
43
+ this.border = this.root.border;
44
+ this.selection = this.root.type;
45
+ },
46
+ methods: {
47
+ init(self) {
48
+ this.rowspan++;
49
+ },
50
+ checkboxSelected(e) {
51
+ this.indeterminate = false;
52
+ const backIndexData = this.root.backIndexData;
53
+ const data = this.root.trChildren.filter((v) => !v.disabled && v.keyValue);
54
+ if (backIndexData.length === data.length) {
55
+ this.checked = false;
56
+ this.root.clearSelection();
57
+ } else {
58
+ this.checked = true;
59
+ this.root.selectionAll();
60
+ }
61
+ },
62
+ /**
63
+ * 获取父元素实例
64
+ */
65
+ getTable(name = 'uniTable') {
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 scoped>
80
+ .uni-table-thead {
81
+ display: table-header-group;
82
+ }
83
+
84
+ .uni-table-tr {
85
+ /* #ifndef APP-NVUE */
86
+ display: table-row;
87
+ transition: all 0.3s;
88
+ box-sizing: border-box;
89
+ /* #endif */
90
+ border: 1px red solid;
91
+ background-color: #fafafa;
92
+ }
93
+
94
+ .checkbox {
95
+ padding: 0 8px;
96
+ width: 26px;
97
+ padding-left: 12px;
98
+ /* #ifndef APP-NVUE */
99
+ display: table-cell;
100
+ vertical-align: middle;
101
+ /* #endif */
102
+ color: #333;
103
+ font-weight: 500;
104
+ border-bottom: 1px #ebeef5 solid;
105
+ font-size: 14px;
106
+ }
107
+
108
+ .tr-table--border {
109
+ border-right: 1px #ebeef5 solid;
110
+ }
111
+
112
+ /* #ifndef APP-NVUE */
113
+ /* #endif */
114
+ </style>