@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,486 @@
1
+ <template>
2
+ <view class="uni-data-tree">
3
+ <view class="uni-data-tree-input" @click="handleInput">
4
+ <slot :options="options" :data="inputSelected" :error="errorMessage">
5
+ <view class="input-value" :class="{ 'input-value-border': border }">
6
+ <text v-if="errorMessage" class="selected-area error-text">{{ errorMessage }}</text>
7
+ <view v-else-if="loading && !isOpened" class="selected-area">
8
+ <cv-load-more class="load-more" :contentText="loadMore" status="loading"></cv-load-more>
9
+ </view>
10
+ <scroll-view v-else-if="inputSelected.length" class="selected-area" scroll-x="true">
11
+ <view class="selected-list">
12
+ <view class="selected-item" v-for="(item, index) in inputSelected" :key="index">
13
+ <text>{{ item.text }}</text>
14
+ <text v-if="index < inputSelected.length - 1" class="input-split-line">{{ split }}</text>
15
+ </view>
16
+ </view>
17
+ </scroll-view>
18
+ <text v-else class="selected-area placeholder">{{ placeholder }}</text>
19
+ <view class="arrow-area" v-if="!readonly">
20
+ <view class="input-arrow"></view>
21
+ </view>
22
+ </view>
23
+ </slot>
24
+ </view>
25
+ <view class="uni-data-tree-cover" v-if="isOpened" @click="handleClose"></view>
26
+ <view class="uni-data-tree-dialog" v-if="isOpened">
27
+ <view class="dialog-caption">
28
+ <view class="title-area">
29
+ <text class="dialog-title">{{ popupTitle }}</text>
30
+ </view>
31
+ <view class="dialog-close" @click="handleClose">
32
+ <view class="dialog-close-plus" data-id="close"></view>
33
+ <view class="dialog-close-plus dialog-close-rotate" data-id="close"></view>
34
+ </view>
35
+ </view>
36
+ <data-picker-view
37
+ class="picker-view"
38
+ ref="pickerView"
39
+ v-model="dataValue"
40
+ :localdata="localdata"
41
+ :preload="preload"
42
+ :collection="collection"
43
+ :field="field"
44
+ :orderby="orderby"
45
+ :where="where"
46
+ :step-searh="stepSearh"
47
+ :self-field="selfField"
48
+ :parent-field="parentField"
49
+ :managed-mode="true"
50
+ @change="onchange"
51
+ @datachange="ondatachange"
52
+ @nodeclick="onnodeclick"
53
+ ></data-picker-view>
54
+ </view>
55
+ </view>
56
+ </template>
57
+
58
+ <script>
59
+ import dataPicker from '../cv-data-pickerview/cv-data-picker.js';
60
+ import DataPickerView from '../cv-data-pickerview/cv-data-pickerview.vue';
61
+
62
+ /**
63
+ * DataPicker 级联选择
64
+ * @description 支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。
65
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=3796
66
+ * @property {String} popup-title 弹出窗口标题
67
+ * @property {Array} localdata 本地数据,参考
68
+ * @property {Boolean} border = [true|false] 是否有边框
69
+ * @property {Boolean} readonly = [true|false] 是否仅读
70
+ * @property {Boolean} preload = [true|false] 是否预加载数据
71
+ * @value true 开启预加载数据,点击弹出窗口后显示已加载数据
72
+ * @value false 关闭预加载数据,点击弹出窗口后开始加载数据
73
+ * @property {Boolean} step-searh = [true|false] 是否分布查询
74
+ * @value true 启用分布查询,仅查询当前选中节点
75
+ * @value false 关闭分布查询,一次查询出所有数据
76
+ * @property {String|DBFieldString} self-field 分布查询当前字段名称
77
+ * @property {String|DBFieldString} parent-field 分布查询父字段名称
78
+ * @property {String|DBCollectionString} collection 表名
79
+ * @property {String|DBFieldString} field 查询字段,多个字段用 `,` 分割
80
+ * @property {String} orderby 排序字段及正序倒叙设置
81
+ * @property {String|JQLString} where 查询条件
82
+ * @event {Function} popupshow 弹出的选择窗口打开时触发此事件
83
+ * @event {Function} popuphide 弹出的选择窗口关闭时触发此事件
84
+ */
85
+ export default {
86
+ name: 'cvDataPicker',
87
+ emits: ['popupopened', 'popupclosed', 'nodeclick', 'input', 'change', 'update:modelValue'],
88
+ mixins: [dataPicker],
89
+ components: {
90
+ DataPickerView
91
+ },
92
+ props: {
93
+ options: {
94
+ type: [Object, Array],
95
+ default() {
96
+ return {};
97
+ }
98
+ },
99
+ popupTitle: {
100
+ type: String,
101
+ default: '请选择'
102
+ },
103
+ placeholder: {
104
+ type: String,
105
+ default: '请选择'
106
+ },
107
+ heightMobile: {
108
+ type: String,
109
+ default: ''
110
+ },
111
+ readonly: {
112
+ type: Boolean,
113
+ default: false
114
+ },
115
+ border: {
116
+ type: Boolean,
117
+ default: true
118
+ },
119
+ split: {
120
+ type: String,
121
+ default: '/'
122
+ }
123
+ },
124
+ data() {
125
+ return {
126
+ isOpened: false,
127
+ inputSelected: []
128
+ };
129
+ },
130
+ created() {
131
+ this.form = this.getForm('uniForms');
132
+ this.formItem = this.getForm('uniFormsItem');
133
+ if (this.formItem) {
134
+ if (this.formItem.name) {
135
+ this.rename = this.formItem.name;
136
+ this.form.inputChildrens.push(this);
137
+ }
138
+ }
139
+
140
+ this.$nextTick(() => {
141
+ this.load();
142
+ });
143
+ },
144
+ methods: {
145
+ onPropsChange() {
146
+ this._treeData = [];
147
+ this.selectedIndex = 0;
148
+ this.load();
149
+ },
150
+ load() {
151
+ if (this.readonly) {
152
+ this._processReadonly(this.localdata, this.dataValue);
153
+ return;
154
+ }
155
+
156
+ if (this.isLocaldata) {
157
+ this.loadData();
158
+ this.inputSelected = this.selected.slice(0);
159
+ } else if (!this.parentField && !this.selfField && this.dataValue) {
160
+ this.getNodeData(() => {
161
+ this.inputSelected = this.selected.slice(0);
162
+ });
163
+ } else if (this.dataValue.length) {
164
+ this.getTreePath(() => {
165
+ this.inputSelected = this.selected.slice(0);
166
+ });
167
+ }
168
+ },
169
+ getForm(name = 'uniForms') {
170
+ let parent = this.$parent;
171
+ let parentName = parent.$options.name;
172
+ while (parentName !== name) {
173
+ parent = parent.$parent;
174
+ if (!parent) return false;
175
+ parentName = parent.$options.name;
176
+ }
177
+ return parent;
178
+ },
179
+ show() {
180
+ this.isOpened = true;
181
+ this.$nextTick(() => {
182
+ this.$refs.pickerView.updateData({
183
+ treeData: this._treeData,
184
+ selected: this.selected,
185
+ selectedIndex: this.selectedIndex
186
+ });
187
+ });
188
+ this.$emit('popupopened');
189
+ },
190
+ hide() {
191
+ this.isOpened = false;
192
+ this.$emit('popupclosed');
193
+ },
194
+ handleInput() {
195
+ if (this.readonly) {
196
+ return;
197
+ }
198
+ this.show();
199
+ },
200
+ handleClose(e) {
201
+ this.hide();
202
+ },
203
+ onnodeclick(e) {
204
+ this.$emit('nodeclick', e);
205
+ },
206
+ ondatachange(e) {
207
+ this._treeData = this.$refs.pickerView._treeData;
208
+ },
209
+ onchange(e) {
210
+ this.hide();
211
+ this.inputSelected = e;
212
+ this._dispatchEvent(e);
213
+ },
214
+ _processReadonly(dataList, valueArray) {
215
+ var isTree = dataList.findIndex((item) => {
216
+ return item.children;
217
+ });
218
+ if (isTree > -1) {
219
+ if (Array.isArray(valueArray)) {
220
+ let inputValue = valueArray[valueArray.length - 1];
221
+ if (typeof inputValue === 'object' && inputValue.value) {
222
+ inputValue = inputValue.value;
223
+ }
224
+ }
225
+ this.inputSelected = this._findNodePath(inputValue, this.localdata);
226
+ return;
227
+ }
228
+
229
+ let result = [];
230
+ for (let i = 0; i < valueArray.length; i++) {
231
+ var value = valueArray[i];
232
+ var item = dataList.find((v) => {
233
+ return v.value == value;
234
+ });
235
+ if (item) {
236
+ result.push(item);
237
+ }
238
+ }
239
+ if (result.length) {
240
+ this.inputSelected = result;
241
+ }
242
+ },
243
+ _filterForArray(data, valueArray) {
244
+ var result = [];
245
+ for (let i = 0; i < valueArray.length; i++) {
246
+ var value = valueArray[i];
247
+ var found = data.find((item) => {
248
+ return item.value == value;
249
+ });
250
+ if (found) {
251
+ result.push(found);
252
+ }
253
+ }
254
+ return result;
255
+ },
256
+ _dispatchEvent(selected) {
257
+ var value = new Array(selected.length);
258
+ for (var i = 0; i < selected.length; i++) {
259
+ value[i] = selected[i].value;
260
+ }
261
+
262
+ const item = selected[selected.length - 1];
263
+
264
+ if (this.formItem) {
265
+ this.formItem.setValue(item.value);
266
+ }
267
+
268
+ this.$emit('input', item.value);
269
+ this.$emit('update:modelValue', item.value);
270
+ this.$emit('change', {
271
+ detail: {
272
+ value: selected
273
+ }
274
+ });
275
+ }
276
+ }
277
+ };
278
+ </script>
279
+
280
+ <style scoped>
281
+ .uni-data-tree {
282
+ position: relative;
283
+ font-size: 14px;
284
+ }
285
+
286
+ .error-text {
287
+ color: #dd524d;
288
+ }
289
+
290
+ .input-value {
291
+ /* #ifndef APP-NVUE */
292
+ display: flex;
293
+ /* #endif */
294
+ flex-direction: row;
295
+ align-items: center;
296
+ flex-wrap: nowrap;
297
+ font-size: 14px;
298
+ line-height: 38px;
299
+ padding: 0 5px;
300
+ overflow: hidden;
301
+ /* #ifdef APP-NVUE */
302
+ height: 40px;
303
+ /* #endif */
304
+ }
305
+
306
+ .input-value-border {
307
+ border: 1px solid #e5e5e5;
308
+ border-radius: 5px;
309
+ }
310
+
311
+ .selected-area {
312
+ flex: 1;
313
+ overflow: hidden;
314
+ /* #ifndef APP-NVUE */
315
+ display: flex;
316
+ /* #endif */
317
+ flex-direction: row;
318
+ }
319
+
320
+ .load-more {
321
+ /* #ifndef APP-NVUE */
322
+ margin-right: auto;
323
+ /* #endif */
324
+ /* #ifdef APP-NVUE */
325
+ width: 40px;
326
+ /* #endif */
327
+ }
328
+
329
+ .selected-list {
330
+ /* #ifndef APP-NVUE */
331
+ display: flex;
332
+ /* #endif */
333
+ flex-direction: row;
334
+ flex-wrap: nowrap;
335
+ padding: 0 5px;
336
+ }
337
+
338
+ .selected-item {
339
+ flex-direction: row;
340
+ padding: 0 1px;
341
+ /* #ifndef APP-NVUE */
342
+ white-space: nowrap;
343
+ /* #endif */
344
+ }
345
+
346
+ .placeholder {
347
+ color: grey;
348
+ }
349
+
350
+ .input-split-line {
351
+ opacity: 0.5;
352
+ }
353
+
354
+ .arrow-area {
355
+ position: relative;
356
+ width: 20px;
357
+ /* #ifndef APP-NVUE */
358
+ margin-left: auto;
359
+ display: flex;
360
+ /* #endif */
361
+ justify-content: center;
362
+ transform: rotate(-45deg);
363
+ transform-origin: center;
364
+ }
365
+
366
+ .input-arrow {
367
+ width: 7px;
368
+ height: 7px;
369
+ border-left: 1px solid #999;
370
+ border-bottom: 1px solid #999;
371
+ }
372
+
373
+ .uni-data-tree-cover {
374
+ position: fixed;
375
+ left: 0;
376
+ top: 0;
377
+ right: 0;
378
+ bottom: 0;
379
+ background-color: rgba(0, 0, 0, 0.4);
380
+ /* #ifndef APP-NVUE */
381
+ display: flex;
382
+ /* #endif */
383
+ flex-direction: column;
384
+ z-index: 100;
385
+ }
386
+
387
+ .uni-data-tree-dialog {
388
+ position: fixed;
389
+ left: 0;
390
+ top: 20%;
391
+ right: 0;
392
+ bottom: 0;
393
+ background-color: #ffffff;
394
+ border-top-left-radius: 10px;
395
+ border-top-right-radius: 10px;
396
+ /* #ifndef APP-NVUE */
397
+ display: flex;
398
+ /* #endif */
399
+ flex-direction: column;
400
+ z-index: 102;
401
+ overflow: hidden;
402
+ /* #ifdef APP-NVUE */
403
+ width: 750rpx;
404
+ /* #endif */
405
+ }
406
+
407
+ .dialog-caption {
408
+ position: relative;
409
+ /* #ifndef APP-NVUE */
410
+ display: flex;
411
+ /* #endif */
412
+ flex-direction: row;
413
+ border-bottom: 1px solid #f0f0f0;
414
+ }
415
+
416
+ .title-area {
417
+ /* #ifndef APP-NVUE */
418
+ display: flex;
419
+ /* #endif */
420
+ align-items: center;
421
+ /* #ifndef APP-NVUE */
422
+ margin: auto;
423
+ /* #endif */
424
+ padding: 0 10px;
425
+ }
426
+
427
+ .dialog-title {
428
+ font-weight: bold;
429
+ line-height: 44px;
430
+ }
431
+
432
+ .dialog-close {
433
+ position: absolute;
434
+ top: 0;
435
+ right: 0;
436
+ bottom: 0;
437
+ /* #ifndef APP-NVUE */
438
+ display: flex;
439
+ /* #endif */
440
+ flex-direction: row;
441
+ align-items: center;
442
+ padding: 0 15px;
443
+ }
444
+
445
+ .dialog-close-plus {
446
+ width: 16px;
447
+ height: 2px;
448
+ background-color: #666;
449
+ border-radius: 2px;
450
+ transform: rotate(45deg);
451
+ }
452
+
453
+ .dialog-close-rotate {
454
+ position: absolute;
455
+ transform: rotate(-45deg);
456
+ }
457
+
458
+ .picker-view {
459
+ flex: 1;
460
+ overflow: hidden;
461
+ }
462
+
463
+ /* #ifdef H5 */
464
+ @media all and (min-width: 768px) {
465
+ .uni-data-tree-cover {
466
+ background-color: transparent;
467
+ }
468
+
469
+ .uni-data-tree-dialog {
470
+ position: absolute;
471
+ top: 100%;
472
+ height: auto;
473
+ min-height: 400px;
474
+ max-height: 50vh;
475
+ background-color: #fff;
476
+ border-radius: 5px;
477
+ box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
478
+ }
479
+
480
+ .dialog-caption {
481
+ display: none;
482
+ }
483
+ }
484
+
485
+ /* #endif */
486
+ </style>