@aochuang/common 1.0.1 → 1.0.126

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 (283) hide show
  1. package/common/index.js +13 -0
  2. package/common/resizable/index.js +3 -0
  3. package/common/resizable/resizable.vue +260 -0
  4. package/common/scroll-load-more/index.js +3 -0
  5. package/common/scroll-load-more/scroll-load-more.vue +397 -0
  6. package/common/static-map/index.js +3 -0
  7. package/common/static-map/static-map.vue +87 -0
  8. package/common/tooltip/tooltip.vue +27 -7
  9. package/common/viewer/index.js +4 -0
  10. package/common/viewer/util.js +40 -0
  11. package/common/viewer/viewer.vue +607 -0
  12. package/common/viewer-pedestal/index.js +3 -0
  13. package/common/viewer-pedestal/viewer-pedestal.vue +70 -0
  14. package/common/voice/index.js +21 -0
  15. package/common/voice/util.js +18 -0
  16. package/common/voice/voice-player-aac.js +584 -0
  17. package/common/voice/voice-player-audio.js +159 -0
  18. package/common/voice/voice-player.js +309 -0
  19. package/common/voice/voice.vue +274 -0
  20. package/common/voice-player/index.js +3 -0
  21. package/common/voice-player/voice-player.vue +785 -0
  22. package/common/waterfall/index.js +3 -0
  23. package/common/waterfall/waterfall.vue +169 -0
  24. package/common/wechat-emoji/emoji/666.png +0 -0
  25. package/common/wechat-emoji/emoji/Emm.png +0 -0
  26. package/common/wechat-emoji/emoji/OK.png +0 -0
  27. package/common/wechat-emoji/emoji//344/272/262/344/272/262.png +0 -0
  28. package/common/wechat-emoji/emoji//344/276/277/344/276/277.png +0 -0
  29. package/common/wechat-emoji/emoji//345/201/267/347/254/221.png +0 -0
  30. package/common/wechat-emoji/emoji//345/202/262/346/205/242.png +0 -0
  31. package/common/wechat-emoji/emoji//345/206/215/350/247/201.png +0 -0
  32. package/common/wechat-emoji/emoji//345/207/213/350/260/242.png +0 -0
  33. package/common/wechat-emoji/emoji//345/210/240/351/231/244.png +0 -0
  34. package/common/wechat-emoji/emoji//345/212/240/346/262/271.png +0 -0
  35. package/common/wechat-emoji/emoji//345/213/276/345/274/225.png +0 -0
  36. package/common/wechat-emoji/emoji//345/217/221/345/221/206.png +0 -0
  37. package/common/wechat-emoji/emoji//345/217/221/346/200/222.png +0 -0
  38. package/common/wechat-emoji/emoji//345/217/221/346/212/226.png +0 -0
  39. package/common/wechat-emoji/emoji//345/217/257/346/200/234.png +0 -0
  40. package/common/wechat-emoji/emoji//345/217/263/345/223/274/345/223/274.png +0 -0
  41. package/common/wechat-emoji/emoji//345/217/271/346/260/224.png +0 -0
  42. package/common/wechat-emoji/emoji//345/220/203/347/223/234.png +0 -0
  43. package/common/wechat-emoji/emoji//345/220/210/345/215/201.png +0 -0
  44. package/common/wechat-emoji/emoji//345/220/220.png +0 -0
  45. package/common/wechat-emoji/emoji//345/220/220/350/210/214/345/244/264.png +0 -0
  46. package/common/wechat-emoji/emoji//345/221/262/347/211/231.png +0 -0
  47. package/common/wechat-emoji/emoji//345/222/222/351/252/202.png +0 -0
  48. package/common/wechat-emoji/emoji//345/222/226/345/225/241.png +0 -0
  49. package/common/wechat-emoji/emoji//345/223/207.png +0 -0
  50. package/common/wechat-emoji/emoji//345/223/210/346/254/240.png +0 -0
  51. package/common/wechat-emoji/emoji//345/225/244/351/205/222.png +0 -0
  52. package/common/wechat-emoji/emoji//345/230/230.png +0 -0
  53. package/common/wechat-emoji/emoji//345/230/264/345/224/207.png +0 -0
  54. package/common/wechat-emoji/emoji//345/230/277/345/223/210.png +0 -0
  55. package/common/wechat-emoji/emoji//345/233/247.png +0 -0
  56. package/common/wechat-emoji/emoji//345/233/260.png +0 -0
  57. package/common/wechat-emoji/emoji//345/235/217/347/254/221.png +0 -0
  58. package/common/wechat-emoji/emoji//345/244/247/345/223/255.png +0 -0
  59. package/common/wechat-emoji/emoji//345/244/251/345/225/212.png +0 -0
  60. package/common/wechat-emoji/emoji//345/244/252/351/230/263.png +0 -0
  61. package/common/wechat-emoji/emoji//345/244/261/346/234/233.png +0 -0
  62. package/common/wechat-emoji/emoji//345/245/213/346/226/227.png +0 -0
  63. package/common/wechat-emoji/emoji//345/245/270/347/254/221.png +0 -0
  64. package/common/wechat-emoji/emoji//345/245/275/347/232/204.png +0 -0
  65. package/common/wechat-emoji/emoji//345/247/224/345/261/210.png +0 -0
  66. package/common/wechat-emoji/emoji//345/256/263/347/276/236.png +0 -0
  67. package/common/wechat-emoji/emoji//345/260/264/345/260/254.png +0 -0
  68. package/common/wechat-emoji/emoji//345/267/246/345/223/274/345/223/274.png +0 -0
  69. package/common/wechat-emoji/emoji//345/272/206/347/245/235.png +0 -0
  70. package/common/wechat-emoji/emoji//345/274/261.png +0 -0
  71. package/common/wechat-emoji/emoji//345/274/272.png +0 -0
  72. package/common/wechat-emoji/emoji//345/276/227/346/204/217.png +0 -0
  73. package/common/wechat-emoji/emoji//345/276/256/347/254/221.png +0 -0
  74. package/common/wechat-emoji/emoji//345/277/203/347/242/216.png +0 -0
  75. package/common/wechat-emoji/emoji//345/277/253/345/223/255/344/272/206.png +0 -0
  76. package/common/wechat-emoji/emoji//346/200/204/347/201/253.png +0 -0
  77. package/common/wechat-emoji/emoji//346/201/220/346/203/247.png +0 -0
  78. package/common/wechat-emoji/emoji//346/202/240/351/227/262.png +0 -0
  79. package/common/wechat-emoji/emoji//346/203/212/346/201/220.png +0 -0
  80. package/common/wechat-emoji/emoji//346/203/212/350/256/266.png +0 -0
  81. package/common/wechat-emoji/emoji//346/204/211/345/277/253.png +0 -0
  82. package/common/wechat-emoji/emoji//346/206/250/347/254/221.png +0 -0
  83. package/common/wechat-emoji/emoji//346/211/223/350/204/270.png +0 -0
  84. package/common/wechat-emoji/emoji//346/212/223/347/213/202.png +0 -0
  85. package/common/wechat-emoji/emoji//346/212/240/351/274/273.png +0 -0
  86. package/common/wechat-emoji/emoji//346/212/261/346/213/263.png +0 -0
  87. package/common/wechat-emoji/emoji//346/213/245/346/212/261.png +0 -0
  88. package/common/wechat-emoji/emoji//346/213/263/345/244/264.png +0 -0
  89. package/common/wechat-emoji/emoji//346/215/202/350/204/270.png +0 -0
  90. package/common/wechat-emoji/emoji//346/217/241/346/211/213.png +0 -0
  91. package/common/wechat-emoji/emoji//346/222/207/345/230/264.png +0 -0
  92. package/common/wechat-emoji/emoji//346/223/246/346/261/227.png +0 -0
  93. package/common/wechat-emoji/emoji//346/225/262/346/211/223.png +0 -0
  94. package/common/wechat-emoji/emoji//346/227/240/350/257/255.png +0 -0
  95. package/common/wechat-emoji/emoji//346/227/272/346/237/264.png +0 -0
  96. package/common/wechat-emoji/emoji//346/231/225.png +0 -0
  97. package/common/wechat-emoji/emoji//346/234/210/344/272/256.png +0 -0
  98. package/common/wechat-emoji/emoji//346/234/272/346/231/272.png +0 -0
  99. package/common/wechat-emoji/emoji//346/261/227.png +0 -0
  100. package/common/wechat-emoji/emoji//346/265/201/346/261/227.png +0 -0
  101. package/common/wechat-emoji/emoji//346/265/201/346/263/252.png +0 -0
  102. package/common/wechat-emoji/emoji//347/202/270/345/274/271.png +0 -0
  103. package/common/wechat-emoji/emoji//347/203/237/350/212/261.png +0 -0
  104. package/common/wechat-emoji/emoji//347/210/206/347/253/271.png +0 -0
  105. package/common/wechat-emoji/emoji//347/210/261/345/277/203.png +0 -0
  106. package/common/wechat-emoji/emoji//347/214/252/345/244/264.png +0 -0
  107. package/common/wechat-emoji/emoji//347/216/253/347/221/260.png +0 -0
  108. package/common/wechat-emoji/emoji//347/224/237/347/227/205.png +0 -0
  109. package/common/wechat-emoji/emoji//347/226/221/351/227/256.png +0 -0
  110. package/common/wechat-emoji/emoji//347/231/274.png +0 -0
  111. package/common/wechat-emoji/emoji//347/231/275/347/234/274.png +0 -0
  112. package/common/wechat-emoji/emoji//347/232/261/347/234/211.png +0 -0
  113. package/common/wechat-emoji/emoji//347/235/241.png +0 -0
  114. package/common/wechat-emoji/emoji//347/240/264/346/266/225/344/270/272/347/254/221.png +0 -0
  115. package/common/wechat-emoji/emoji//347/244/274/347/211/251.png +0 -0
  116. package/common/wechat-emoji/emoji//347/244/276/344/274/232/347/244/276/344/274/232.png +0 -0
  117. package/common/wechat-emoji/emoji//347/246/217.png +0 -0
  118. package/common/wechat-emoji/emoji//347/254/221/350/204/270.png +0 -0
  119. package/common/wechat-emoji/emoji//347/272/242/345/214/205.png +0 -0
  120. package/common/wechat-emoji/emoji//347/277/273/347/231/275/347/234/274.png +0 -0
  121. package/common/wechat-emoji/emoji//350/200/266.png +0 -0
  122. package/common/wechat-emoji/emoji//350/203/234/345/210/251.png +0 -0
  123. package/common/wechat-emoji/emoji//350/204/270/347/272/242.png +0 -0
  124. package/common/wechat-emoji/emoji//350/211/262.png +0 -0
  125. package/common/wechat-emoji/emoji//350/213/246/346/266/251.png +0 -0
  126. package/common/wechat-emoji/emoji//350/217/234/345/210/200.png +0 -0
  127. package/common/wechat-emoji/emoji//350/233/213/347/263/225.png +0 -0
  128. package/common/wechat-emoji/emoji//350/241/260.png +0 -0
  129. package/common/wechat-emoji/emoji//350/243/202/345/274/200.png +0 -0
  130. package/common/wechat-emoji/emoji//350/245/277/347/223/234.png +0 -0
  131. package/common/wechat-emoji/emoji//350/256/251/346/210/221/347/234/213/347/234/213.png +0 -0
  132. package/common/wechat-emoji/emoji//350/260/203/347/232/256.png +0 -0
  133. package/common/wechat-emoji/emoji//350/267/263/350/267/263.png +0 -0
  134. package/common/wechat-emoji/emoji//350/275/254/345/234/210.png +0 -0
  135. package/common/wechat-emoji/emoji//351/204/231/350/247/206.png +0 -0
  136. package/common/wechat-emoji/emoji//351/227/255/345/230/264.png +0 -0
  137. package/common/wechat-emoji/emoji//351/230/264/351/231/251.png +0 -0
  138. package/common/wechat-emoji/emoji//351/232/276/350/277/207.png +0 -0
  139. package/common/wechat-emoji/emoji//351/252/267/351/253/205.png +0 -0
  140. package/common/wechat-emoji/emoji//351/254/274/350/204/270.png +0 -0
  141. package/common/wechat-emoji/emoji//351/270/241.png +0 -0
  142. package/common/wechat-emoji/emoji//351/274/223/346/216/214.png +0 -0
  143. package/common/wechat-emoji/index.js +14 -0
  144. package/common/wechat-emoji/order.json +111 -0
  145. package/common/wechat-emoji/utils.js +52 -0
  146. package/common/wechat-emoji/wechat-emoji.vue +74 -0
  147. package/common/wechat-emoji-select/index.js +3 -0
  148. package/common/wechat-emoji-select/wechat-emoji-select.vue +67 -0
  149. package/components/advanced-filter/advanced-filter-condition.vue +1 -1
  150. package/components/advanced-filter/advanced-filter.vue +6 -1
  151. package/components/advanced-filter/index.js +11 -12
  152. package/components/avatar/avatar.vue +9 -5
  153. package/components/button/button.vue +15 -2
  154. package/components/date-picker/date-picker.vue +9 -2
  155. package/components/dialog/dialog.vue +6 -1
  156. package/components/dropdown/dropdown-item.vue +10 -2
  157. package/components/dropdown/dropdown.vue +45 -5
  158. package/components/dropdown/index.js +8 -8
  159. package/components/empty/empty.vue +29 -2
  160. package/components/filter/filter.vue +1 -1
  161. package/components/filter/index.js +10 -10
  162. package/components/form/form.vue +33 -2
  163. package/components/form/index.js +11 -0
  164. package/components/grid/grid-column.vue +1 -0
  165. package/components/grid/grid-table.vue +6 -4
  166. package/components/grid/grid.vue +15 -3
  167. package/components/grid/index.js +31 -32
  168. package/components/icon/demo_index.html +2752 -1073
  169. package/components/icon/iconfont.css +299 -7
  170. package/components/icon/iconfont.js +1 -1
  171. package/components/icon/iconfont.json +518 -7
  172. package/components/icon/iconfont.ttf +0 -0
  173. package/components/icon/iconfont.woff +0 -0
  174. package/components/icon/iconfont.woff2 +0 -0
  175. package/components/image/image.vue +91 -13
  176. package/components/image/index.js +3 -1
  177. package/components/image/util.js +82 -1
  178. package/components/index.js +6 -2
  179. package/components/menu/index.js +13 -7
  180. package/components/menu/menu-group.vue +6 -1
  181. package/components/menu/menu-item.vue +57 -3
  182. package/components/menu/menu.vue +1 -1
  183. package/components/message/message.js +12 -9
  184. package/components/message-box/index.js +4 -0
  185. package/components/pagination/pagination.vue +11 -7
  186. package/components/popover/popover.vue +24 -1
  187. package/components/searchbox/searchbox.vue +15 -3
  188. package/components/select/index.js +2 -0
  189. package/components/select/select.vue +7 -1
  190. package/components/skeleton/index.js +2 -0
  191. package/components/sortable/index.js +7 -5
  192. package/components/sortable/sortable.vue +5 -0
  193. package/components/tabbar/index.js +9 -0
  194. package/components/tabbar/tabbar-item.vue +162 -0
  195. package/components/tabbar/tabbar.vue +49 -0
  196. package/components/tabs/index.js +2 -0
  197. package/components/tabs/tabs.vue +5 -0
  198. package/components/tag/index.js +4 -4
  199. package/components/tag/tag.less +12 -3
  200. package/components/textarea/textarea.vue +19 -3
  201. package/components/time-picker/time-picker.vue +7 -0
  202. package/components/toolbar/index.js +2 -0
  203. package/components/transfer/index.js +4 -4
  204. package/components/transfer/transfer-element.vue +109 -0
  205. package/components/transfer/transfer.vue +22 -7
  206. package/components/tree/tree.vue +175 -16
  207. package/components/video/video.vue +50 -2
  208. package/package.json +12 -1
  209. package/uni-common/more-button/more-button.vue +23 -0
  210. package/uni-common/popup-select/popup-select.vue +217 -0
  211. package/uni-common/portray/portray.vue +54 -0
  212. package/uni-common/refresh-view/refresh-view.vue +94 -0
  213. package/uni-common/scroll-load-more/scroll-load-more.vue +201 -0
  214. package/uni-common/tree-popup-select/index.js +3 -0
  215. package/uni-common/tree-popup-select/tree-popup-select-panel.vue +92 -0
  216. package/uni-common/tree-popup-select/tree-popup-select.vue +124 -0
  217. package/uni-common/tree-popup-select/util.js +19 -0
  218. package/uni-common/wechat-emoji/index.js +13 -0
  219. package/uni-common/wechat-emoji/order.json +438 -0
  220. package/uni-common/wechat-emoji/utils.js +52 -0
  221. package/uni-common/wechat-emoji/wechat-emoji.vue +74 -0
  222. package/uni-components/avatar/avatar.vue +81 -0
  223. package/uni-components/badge/badge.vue +57 -0
  224. package/uni-components/empty/empty.vue +27 -0
  225. package/uni-components/exception/exception.vue +47 -0
  226. package/uni-components/icon/demo.css +539 -0
  227. package/uni-components/icon/demo_index.html +1591 -0
  228. package/uni-components/icon/icon.vue +48 -0
  229. package/uni-components/icon/iconfont.css +259 -0
  230. package/uni-components/icon/iconfont.js +1 -0
  231. package/uni-components/icon/iconfont.json +436 -0
  232. package/uni-components/icon/iconfont.ttf +0 -0
  233. package/uni-components/icon/iconfont.woff +0 -0
  234. package/uni-components/icon/iconfont.woff2 +0 -0
  235. package/uni-components/icon/index.js +3 -0
  236. package/uni-components/image/image.vue +38 -0
  237. package/uni-components/image/index.js +3 -0
  238. package/uni-components/loading/index.js +3 -0
  239. package/uni-components/loading/loading.vue +30 -0
  240. package/uni-components/message/message-item.vue +29 -0
  241. package/uni-components/message/message.js +80 -0
  242. package/uni-components/message/message.vue +30 -0
  243. package/uni-components/message-box/message-box-item.vue +54 -0
  244. package/uni-components/message-box/message-box.js +91 -0
  245. package/uni-components/message-box/message-box.vue +52 -0
  246. package/uni-components/picker/picker.vue +270 -0
  247. package/uni-components/popup/index.js +3 -0
  248. package/uni-components/popup/popup.vue +143 -0
  249. package/uni-components/search/index.js +3 -0
  250. package/uni-components/search/search.vue +86 -0
  251. package/uni-components/skeleton/skeleton-chat.vue +85 -0
  252. package/uni-components/skeleton/skeleton-contact.vue +84 -0
  253. package/uni-components/skeleton/skeleton-detail.vue +84 -0
  254. package/uni-components/skeleton/skeleton.vue +32 -0
  255. package/uni-components/tabbar/tabbar-item.vue +33 -0
  256. package/uni-components/tabbar/tabbar.vue +87 -0
  257. package/uni-components/tree/index.js +3 -0
  258. package/uni-components/tree/tree-select-loading.vue +48 -0
  259. package/uni-components/tree/tree-select-node.vue +202 -0
  260. package/uni-components/tree/tree-select-store.js +520 -0
  261. package/uni-components/tree/tree-select.vue +210 -0
  262. package/uni-components/tree/utils.js +33 -0
  263. package/uni-components/video/index.js +3 -0
  264. package/uni-components/video/video.vue +29 -0
  265. package/uni-components/voice/index.js +3 -0
  266. package/uni-components/voice/voice.vue +24 -0
  267. package/uni-components/waterfall/index.js +3 -0
  268. package/uni-components/waterfall/util.js +72 -0
  269. package/uni-components/waterfall/waterfall.vue +147 -0
  270. package/utils/data.js +128 -0
  271. package/utils/date.js +484 -44
  272. package/utils/dom.js +37 -0
  273. package/utils/event.js +92 -0
  274. package/utils/file.js +76 -0
  275. package/utils/json.js +22 -1
  276. package/utils/network-detector.js +258 -0
  277. package/utils/oss.js +11 -0
  278. package/utils/share-message.js +81 -0
  279. package/utils/share-websocket.js +127 -0
  280. package/utils/string.js +59 -0
  281. package/utils/time-task.js +60 -0
  282. package/utils/url.js +46 -0
  283. package/utils/util.js +416 -1
@@ -1,9 +1,11 @@
1
1
  <template>
2
- <el-transfer
2
+ <transfer-element
3
3
  class="ui-transfer"
4
4
  :data="innerData"
5
5
  :props="props"
6
6
  :titles="titles"
7
+ :remote="remote"
8
+ :query-method="handleQueryTransferData"
7
9
  :filter-placeholder="filterPlaceholer"
8
10
  :filterable="filterable"
9
11
  :filter-method="filterMethod"
@@ -24,17 +26,16 @@
24
26
  >
25
27
  </div>
26
28
  </template>
27
- </el-transfer>
29
+ </transfer-element>
28
30
  </template>
29
31
  <script>
30
- import ElTransfer from 'element-ui/lib/transfer'
31
- import 'element-ui/lib/theme-chalk/transfer.css'
32
+ import TransferElement from './transfer-element'
32
33
  import TransferLoadMore from './transfer-load-more'
33
34
 
34
35
  export default {
35
36
  name: 'UiTransfer',
36
37
  components: {
37
- ElTransfer,
38
+ TransferElement,
38
39
  TransferLoadMore
39
40
  },
40
41
  props: {
@@ -44,6 +45,10 @@ export default {
44
45
  titles: {
45
46
  type: Array
46
47
  },
48
+ remote: {
49
+ type: Boolean,
50
+ default: false
51
+ },
47
52
  filterable: {
48
53
  type: Boolean,
49
54
  default: false
@@ -75,6 +80,7 @@ export default {
75
80
  },
76
81
  data () {
77
82
  return {
83
+ keyword: null,
78
84
  pageIndex: 1,
79
85
  pageSize: 20,
80
86
  reloading: false,
@@ -135,6 +141,10 @@ export default {
135
141
  }
136
142
  },
137
143
  methods: {
144
+ handleQueryTransferData ({ keyword }) {
145
+ this.keyword = keyword
146
+ this.reload()
147
+ },
138
148
  loadMoreOptions () {
139
149
  if (this.innerLoading || this.notMore) {
140
150
  return
@@ -225,8 +235,13 @@ export default {
225
235
  font-size: 14px;
226
236
  }
227
237
  .el-transfer-panel .el-checkbox__inner {
228
- width: 12px;
229
- height: 12px;
238
+ width: 16px;
239
+ height: 16px;
240
+ line-height: 16px;
241
+ box-sizing: border-box;
242
+ &:after {
243
+ top: 1px;
244
+ }
230
245
  }
231
246
  .el-transfer-panel{
232
247
  flex: 1;
@@ -10,13 +10,17 @@
10
10
  :node-key="idField"
11
11
  :show-checkbox="multiple"
12
12
  :highlight-current="highlightCurrent"
13
- :expand-on-click-node="false"
13
+ :expand-on-click-node="expandOnClickNode"
14
14
  :current-node-key="current"
15
+ :lazy="lazy"
16
+ :load="lazyLoadMethod"
17
+ :props="treeProps"
15
18
  @current-change="handleCurrentChange"
16
19
  :filter-node-method="handleFilterNode"
17
20
  :check-strictly="checkStrictly"
18
21
  :default-expand-all="defaultExpandAll"
19
22
  :allow-drop="allowDrop"
23
+ v-on="bindEvents"
20
24
  @check="handleNodeCheck"
21
25
  >
22
26
  <div class="ui-tree__node" slot-scope="{ node, data }" :style="{'height': itemHeight, 'line-height': itemHeight}">
@@ -24,10 +28,12 @@
24
28
  <component
25
29
  :is="handleRenderLevelIcon(node)"
26
30
  ></component>
27
- <span
28
- :title="data[textField]"
29
- class="ui-tree__node-text"
30
- >{{ data[textField] }}</span>
31
+ <slot name="node" :data="data">
32
+ <span
33
+ :title="data[textField]"
34
+ class="ui-tree__node-text"
35
+ >{{ data[textField] }}</span>
36
+ </slot>
31
37
  <span class="ui-tree__node-tool" v-if="$slots['node-toolbar']">
32
38
  <slot name="node-toolbar" :data="data"></slot>
33
39
  </span>
@@ -44,12 +50,15 @@
44
50
  import ElTree from 'element-ui/lib/tree'
45
51
  import 'element-ui/lib/theme-chalk/tree.css'
46
52
  import UiIcon from '../icon'
53
+ import UiLoading from '../loading'
47
54
  import { getNodesByLevel, getCheckLeastFatherNodes } from './utils'
48
55
 
49
56
  export default {
50
57
  name: 'UiTree',
51
58
  components: {
52
- ElTree
59
+ ElTree,
60
+ UiIcon,
61
+ UiLoading
53
62
  },
54
63
  props: {
55
64
  height: {
@@ -64,6 +73,10 @@ export default {
64
73
  queryMethod: {
65
74
  type: Function
66
75
  },
76
+ lazy: {
77
+ type: Boolean,
78
+ default: false
79
+ },
67
80
  defaultExpandAll: {
68
81
  type: Boolean,
69
82
  default: false
@@ -124,12 +137,25 @@ export default {
124
137
  filterKeyword: {
125
138
  type: String
126
139
  },
140
+ filterMethod: {
141
+ type: Function
142
+ },
143
+ expandOnClickNode: {
144
+ type: Boolean,
145
+ default: false
146
+ },
127
147
  allowDrop: {
128
148
  type: Function
129
149
  },
150
+ isLeaf: {
151
+ type: [Function]
152
+ },
130
153
  itemHeight: {
131
154
  type: String,
132
155
  default: '32px'
156
+ },
157
+ bindContextMenuEvent: {
158
+ type: Boolean
133
159
  }
134
160
  },
135
161
  data () {
@@ -139,6 +165,13 @@ export default {
139
165
  }
140
166
  },
141
167
  computed: {
168
+ bindEvents () {
169
+ const events = {}
170
+ if (this.bindContextMenuEvent) {
171
+ events['node-contextmenu'] = this.handleNodeContextMenu
172
+ }
173
+ return events
174
+ },
142
175
  levelIconsMap () {
143
176
  const map = {}
144
177
  if (this.levelIcons && this.levelIcons.length) {
@@ -156,6 +189,30 @@ export default {
156
189
  return getNodesByLevel(this.innerData, this.defaultExpandedLevel).map(v => {
157
190
  return v[this.idField]
158
191
  })
192
+ },
193
+ treeProps () {
194
+ return {
195
+ isLeaf: this.isLeaf
196
+ }
197
+ },
198
+ lazyLoadMethod () {
199
+ if (!this.lazy || !this.queryMethod) {
200
+ return
201
+ }
202
+ return (parentNode, resolveData) => {
203
+ const rs = this.queryMethod({
204
+ parentNode: !parentNode || !parentNode.parent ? null : parentNode
205
+ })
206
+ if (rs && rs.then) {
207
+ rs.then((rs) => {
208
+ resolveData(rs)
209
+ }, () => {
210
+ resolveData([])
211
+ })
212
+ } else {
213
+ resolveData(rs || [])
214
+ }
215
+ }
159
216
  }
160
217
  },
161
218
  watch: {
@@ -177,19 +234,28 @@ export default {
177
234
  }
178
235
  },
179
236
  created () {
180
- if (this.queryMethod) {
181
- this.loading = true
182
- this.queryMethod().then(rs => {
183
- this.innerData = rs
184
- }).finally(() => {
185
- this.loading = false
186
- })
237
+ if (!this.lazy) {
238
+ if (this.queryMethod) {
239
+ this.loading = true
240
+ this.queryMethod().then(rs => {
241
+ this.innerData = rs || []
242
+ }).finally(() => {
243
+ this.loading = false
244
+ })
245
+ }
187
246
  }
188
247
  },
189
248
  mounted () {
190
249
  this.$refs.tree.filter(this.filterKeyword)
191
250
  },
192
251
  methods: {
252
+ handleNodeContextMenu (evt, data, node) {
253
+ this.$emit('node-contextmenu', {
254
+ event: evt,
255
+ data,
256
+ node
257
+ })
258
+ },
193
259
  handleRenderLevelIcon (node) {
194
260
  if (!this.showLevelIcon || !node.level) {
195
261
  return
@@ -224,10 +290,17 @@ export default {
224
290
  })
225
291
  },
226
292
  handleFilterNode (value, data) {
227
- if (typeof this.filterKeyword === 'undefined' || this.filterKeyword === null || this.filterKeyword === '') {
228
- return true
293
+ if (this.filterMethod) {
294
+ return this.filterMethod({
295
+ keyword: value,
296
+ data
297
+ })
298
+ } else {
299
+ if (typeof this.filterKeyword === 'undefined' || this.filterKeyword === null || this.filterKeyword === '') {
300
+ return true
301
+ }
302
+ return (data[this.textField] || '').toString().toLowerCase().indexOf(value) >= 0
229
303
  }
230
- return (data[this.textField] || '').toString().toLowerCase().indexOf(value) >= 0
231
304
  },
232
305
  handleNodeCheck (data, check) {
233
306
  let checkedKeys = check.checkedKeys
@@ -245,6 +318,92 @@ export default {
245
318
  this.$nextTick(() => {
246
319
  this.$refs.tree.setCurrentKey(val)
247
320
  })
321
+ },
322
+ filter (keyword) {
323
+ this.$refs.tree.filter(keyword)
324
+ },
325
+ reloadNode (node) {
326
+ return new Promise((resolve, reject) => {
327
+ if (this.lazy) {
328
+ node = this.getNode(node) || this.$refs.tree.root
329
+ if (!node) {
330
+ return reject(new Error('未找到节点'))
331
+ }
332
+ node.loaded = false
333
+ node.loadData(() => {
334
+ resolve()
335
+ })
336
+ } else {
337
+ if (this.queryMethod) {
338
+ this.loading = true
339
+ this.queryMethod().then(rs => {
340
+ this.innerData = rs || []
341
+ resolve(this.innerData)
342
+ }, err => {
343
+ reject(err)
344
+ }).finally(() => {
345
+ this.loading = false
346
+ })
347
+ }
348
+ }
349
+ })
350
+ },
351
+ expandNode (node) {
352
+ node = this.getNode(node)
353
+ if (!node) {
354
+ return
355
+ }
356
+ if (node.isLeaf) {
357
+ return
358
+ }
359
+ node.expand()
360
+ },
361
+ getNode (node) {
362
+ let result = null
363
+ let nodeId = typeof node === 'object' ? node[this.idField] : node
364
+ const loop = (nodes) => {
365
+ if (!nodes || !nodes.length) {
366
+ return
367
+ }
368
+ return nodes.some(node => {
369
+ if (node.data[this.idField] === nodeId) {
370
+ result = node
371
+ return true
372
+ } else {
373
+ return loop(node.childNodes)
374
+ }
375
+ })
376
+ }
377
+ loop(this.$refs.tree.root.childNodes)
378
+ return result
379
+ },
380
+ remove (node) {
381
+ node = this.getNode(node)
382
+ if (!node) {
383
+ return
384
+ }
385
+ return this.$refs.tree.remove(node)
386
+ },
387
+ append (data, parentNode) {
388
+ return this.$refs.tree.append(data, this.getNode(parentNode))
389
+ },
390
+ update (node, props) {
391
+ node = this.getNode(node)
392
+ if (!node) {
393
+ return
394
+ }
395
+ if (!props) {
396
+ return
397
+ }
398
+ Object.keys(props).forEach(key => {
399
+ this.$set(node.data, key, props[key])
400
+ })
401
+ },
402
+ getData () {
403
+ if (!this.$refs.tree || !this.$refs.tree.store) {
404
+ return []
405
+ }
406
+ return this.$refs.tree.store.root.data
248
407
  }
249
408
  }
250
409
  }
@@ -1,10 +1,21 @@
1
1
  <template>
2
- <video class="ui-video" :autoplay="autoplay" :width="width" :poster="poster" :preload="preload" :height="height" :controls="controls">
2
+ <video
3
+ class="ui-video"
4
+ :autoplay="autoplay"
5
+ :width="width"
6
+ :poster="poster"
7
+ :preload="preload"
8
+ :height="height"
9
+ :controls="controls"
10
+ @error="handleError"
11
+ >
3
12
  <source :src="innerSrc">
4
13
  您的浏览器不支持 video 标签。
5
14
  </video>
6
15
  </template>
7
16
  <script>
17
+ import { formatOssPath } from '../../utils/oss'
18
+
8
19
  export default {
9
20
  name: 'UiVideo',
10
21
  props: {
@@ -40,8 +51,45 @@ export default {
40
51
  }
41
52
  },
42
53
  innerSrc () {
43
- return this.src
54
+ return formatOssPath(this.src)
44
55
  }
56
+ },
57
+ data () {
58
+ return {
59
+ isError: false
60
+ }
61
+ },
62
+ watch: {
63
+ src () {
64
+ this.isError = false
65
+ }
66
+ },
67
+ mounted () {
68
+ this.loopCheckError()
69
+ },
70
+ methods: {
71
+ loopCheckError () {
72
+ if (this.isError) {
73
+ return
74
+ }
75
+ this._checkErrorTimer = setTimeout(() => {
76
+ // 0:没有关于媒体资源的可用信息,或者媒体资源尚未加载。
77
+ // 3: 媒体元素尝试加载资源,但没有找到有效的媒体源(可能是资源 URL 错误、403/404 等网络错误,或所有<source>标签指定的资源都无法加载)。
78
+ if (this.$el.readyState === 0 && this.$el.networkState === 3) {
79
+ this.isError = true
80
+ this.$emit('error')
81
+ } else {
82
+ this.loopCheckError()
83
+ }
84
+ }, 1000)
85
+ },
86
+ handleError () {
87
+ this.isError = true
88
+ this.$emit('error')
89
+ }
90
+ },
91
+ beforeDestroy () {
92
+ clearTimeout(this._checkErrorTimer)
45
93
  }
46
94
  }
47
95
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aochuang/common",
3
- "version": "1.0.1",
3
+ "version": "1.0.126",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -9,7 +9,18 @@
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1"
11
11
  },
12
+ "dependencies": {
13
+ "md5": "^2.3.0",
14
+ "merge-options": "^3.0.4",
15
+ "resize-observer-polyfill": "^1.5.1",
16
+ "x2js": "^3.4.4",
17
+ "vxe-table": "3.8.19",
18
+ "viewerjs": "^1.6.1",
19
+ "sortablejs": "^1.15.0",
20
+ "load-script": "^2.0.0"
21
+ },
12
22
  "peerDependencies": {
23
+ "query-string": "^4.1.0",
13
24
  "element-ui": "git+https://gitee.com/devi001/wk-element.git#v2.15.10"
14
25
  },
15
26
  "author": "",
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <view class="bi-more-button" @click="handleClick">
3
+ <bi-icon name="more-fill"></bi-icon>
4
+ </view>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'BiMoreFill',
10
+ methods: {
11
+ handleClick () {
12
+ this.$emit('click')
13
+ }
14
+ }
15
+ }
16
+ </script>
17
+
18
+ <style lang="less">
19
+ .bi-more-button {
20
+ display: inline-block;
21
+ vertical-align: top;
22
+ }
23
+ </style>
@@ -0,0 +1,217 @@
1
+ <template>
2
+ <view class="bi-popup-select" :class="{'is-border' : border}">
3
+ <view class="bi-popup-select__handle" :style="{'width': width}" @click="handleHandleClick">
4
+ <template v-if="loading">
5
+ <view class="bi-popup-select__handle-loading">
6
+ <ui-loading class="bi-popup-select__handle-loading-icon" size="mini"></ui-loading>
7
+ <view class="bi-popup-select__handle-loading-text">数据加载中...</view>
8
+ </view>
9
+ </template>
10
+ <template v-else>
11
+ <template v-if="isEmpty">
12
+ <view class="bi-popup-select__handle-placeholder">
13
+ {{ placeholder }}
14
+ </view>
15
+ </template>
16
+ <template v-else>
17
+ <view class="bi-popup-select__handle-current">
18
+ <slot name="current"></slot>
19
+ </view>
20
+ </template>
21
+ </template>
22
+ <view class="bi-popup-select__handle-arrow"></view>
23
+ </view>
24
+ <ui-popup
25
+ v-model="showPopup"
26
+ :title="popupTitle"
27
+ >
28
+ <view class="bi-popup-select__main" :style="{height: popupHeight}">
29
+ <view class="bi-popup-select__toolbar">
30
+ <view class="bi-popup-select__toolbar-item">
31
+ <view class="bi-popup-select__toolbar-cancel" @click="handleCancleClick">取消</view>
32
+ </view>
33
+ <view class="bi-popup-select__toolbar-item">
34
+ <view class="bi-popup-select__toolbar-confirm">确定</view>
35
+ </view>
36
+ </view>
37
+ <view class="bi-popup-select__wrap">
38
+ <slot></slot>
39
+ </view>
40
+ </view>
41
+ </ui-popup>
42
+ </view>
43
+ </template>
44
+
45
+ <script>
46
+ import UiLoading from '@aochuang/common/uni-components/loading'
47
+ import UiPopup from '@aochuang/common/uni-components/popup'
48
+
49
+ export default {
50
+ name: 'BiPopupSelect',
51
+ components: {
52
+ UiPopup,
53
+ UiLoading
54
+ },
55
+ props: {
56
+ value: {
57
+ type: [String, Number]
58
+ },
59
+ width: {
60
+ type: String
61
+ },
62
+ border: {
63
+ type: Boolean
64
+ },
65
+ loading: {
66
+ type: Boolean
67
+ },
68
+ placeholder: {
69
+ type: String
70
+ },
71
+ popupTitle: {
72
+ type: String
73
+ },
74
+ popupHeight: {
75
+ type: String,
76
+ default: '40vh'
77
+ }
78
+ },
79
+ data () {
80
+ return {
81
+ showPopup: false
82
+ }
83
+ },
84
+ computed: {
85
+ isEmpty () {
86
+ return this.value === null || this.value === '' || this.value === undefined
87
+ }
88
+ },
89
+ methods: {
90
+ handleHandleClick () {
91
+ if (this.loading) {
92
+ return
93
+ }
94
+ this.showPopup = true
95
+ },
96
+ handleCancleClick () {
97
+ this.showPopup = false
98
+ },
99
+ close () {
100
+ this.showPopup = false
101
+ }
102
+ }
103
+ }
104
+ </script>
105
+
106
+ <style lang="less">
107
+ .bi-popup-select{
108
+ &.is-border {
109
+ .bi-popup-select__handle{
110
+ border: 1px solid #eee;
111
+ border-radius: 3px;
112
+ padding: 0 24px 0 12px;
113
+ }
114
+ }
115
+ }
116
+ .bi-popup-select__handle-loading{
117
+ display: flex;
118
+ flex-direction: row;
119
+ align-items: center;
120
+ color: #999;
121
+ }
122
+ .bi-popup-select__handle-loading-icon {
123
+ margin-right: 5px;
124
+ }
125
+ .bi-popup-select__handle{
126
+ display: flex;
127
+ flex-direction: row;
128
+ align-items: center;
129
+ height: 30px;
130
+ line-height: 30px;
131
+ padding: 1px 24px 1px 1px;
132
+ position: relative;
133
+ box-sizing: border-box;
134
+ }
135
+ .bi-popup-select__handle-arrow{
136
+ width: 18px;
137
+ height: 18px;
138
+ position: relative;
139
+ margin-left: 4px;
140
+ position: absolute;
141
+ right: 4px;
142
+ top: 50%;
143
+ transform: translateY(-50%);
144
+ &:after {
145
+ position: absolute;
146
+ top: 4px;
147
+ left: 6px;
148
+ content: '';
149
+ width: 5px;
150
+ height: 5px;
151
+ border: 1px solid #555;
152
+ display: inline-block;
153
+ transform: rotate(45deg);
154
+ border-left: 0;
155
+ border-top: 0;
156
+ }
157
+ }
158
+ .bi-popup-select__handle-clear{
159
+ width: 18px;
160
+ height: 18px;
161
+ background-color: #eee;
162
+ position: relative;
163
+ border-radius: 50%;
164
+ position: absolute;
165
+ right: 6px;
166
+ top: 50%;
167
+ margin-top: -2px;
168
+ transform: rotate(45deg) translateY(-50%);
169
+ &:after, &:before {
170
+ content: '';
171
+ position: absolute;
172
+ left: 50%;
173
+ top: 50%;
174
+ transform: translate(-50%, -50%);
175
+ background-color: #444;
176
+ }
177
+ &:after {
178
+ width: 10px;
179
+ height: 1px;
180
+ }
181
+ &:before {
182
+ width: 1px;
183
+ height: 10px;
184
+ }
185
+ }
186
+ .bi-popup-select__handle-placeholder{
187
+ color: #999;
188
+ }
189
+ .bi-popup-select__toolbar {
190
+ display: flex;
191
+ flex-direction: row;
192
+ align-items: center;
193
+ justify-content: space-between;
194
+ padding: 12px 0;
195
+ border-bottom: 1px solid #f3f3f3;
196
+ }
197
+ .bi-popup-select__toolbar-confirm {
198
+ font-size: 15px;
199
+ cursor: pointer;
200
+ color: #3c9cff;
201
+ padding: 0 12px;
202
+ }
203
+ .bi-popup-select__toolbar-cancel {
204
+ font-size: 15px;
205
+ cursor: pointer;
206
+ color: #909193;
207
+ padding: 0 12px;
208
+ }
209
+ .bi-popup-select__main{
210
+ display: flex;
211
+ flex-direction: column;
212
+ }
213
+ .bi-popup-select__wrap{
214
+ flex: 1;
215
+ min-height: 0;
216
+ }
217
+ </style>