@aochuang/common 1.0.0 → 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 (417) hide show
  1. package/common/index.js +13 -0
  2. package/common/loading/index.js +7 -0
  3. package/common/loading/loading.vue +71 -0
  4. package/common/resizable/index.js +3 -0
  5. package/common/resizable/resizable.vue +260 -0
  6. package/common/scroll-load-more/index.js +3 -0
  7. package/common/scroll-load-more/scroll-load-more.vue +397 -0
  8. package/common/static-map/index.js +3 -0
  9. package/common/static-map/static-map.vue +87 -0
  10. package/common/tips/index.js +7 -0
  11. package/common/tips/tips.vue +82 -0
  12. package/common/tooltip/index.js +7 -0
  13. package/common/tooltip/popper.js +18 -0
  14. package/common/tooltip/tooltip.vue +75 -0
  15. package/common/viewer/index.js +4 -0
  16. package/common/viewer/util.js +40 -0
  17. package/common/viewer/viewer.vue +607 -0
  18. package/common/viewer-pedestal/index.js +3 -0
  19. package/common/viewer-pedestal/viewer-pedestal.vue +70 -0
  20. package/common/voice/index.js +21 -0
  21. package/common/voice/util.js +18 -0
  22. package/common/voice/voice-player-aac.js +584 -0
  23. package/common/voice/voice-player-audio.js +159 -0
  24. package/common/voice/voice-player.js +309 -0
  25. package/common/voice/voice.vue +274 -0
  26. package/common/voice-player/index.js +3 -0
  27. package/common/voice-player/voice-player.vue +785 -0
  28. package/common/waterfall/index.js +3 -0
  29. package/common/waterfall/waterfall.vue +169 -0
  30. package/common/wechat-emoji/emoji/666.png +0 -0
  31. package/common/wechat-emoji/emoji/Emm.png +0 -0
  32. package/common/wechat-emoji/emoji/OK.png +0 -0
  33. package/common/wechat-emoji/emoji//344/272/262/344/272/262.png +0 -0
  34. package/common/wechat-emoji/emoji//344/276/277/344/276/277.png +0 -0
  35. package/common/wechat-emoji/emoji//345/201/267/347/254/221.png +0 -0
  36. package/common/wechat-emoji/emoji//345/202/262/346/205/242.png +0 -0
  37. package/common/wechat-emoji/emoji//345/206/215/350/247/201.png +0 -0
  38. package/common/wechat-emoji/emoji//345/207/213/350/260/242.png +0 -0
  39. package/common/wechat-emoji/emoji//345/210/240/351/231/244.png +0 -0
  40. package/common/wechat-emoji/emoji//345/212/240/346/262/271.png +0 -0
  41. package/common/wechat-emoji/emoji//345/213/276/345/274/225.png +0 -0
  42. package/common/wechat-emoji/emoji//345/217/221/345/221/206.png +0 -0
  43. package/common/wechat-emoji/emoji//345/217/221/346/200/222.png +0 -0
  44. package/common/wechat-emoji/emoji//345/217/221/346/212/226.png +0 -0
  45. package/common/wechat-emoji/emoji//345/217/257/346/200/234.png +0 -0
  46. package/common/wechat-emoji/emoji//345/217/263/345/223/274/345/223/274.png +0 -0
  47. package/common/wechat-emoji/emoji//345/217/271/346/260/224.png +0 -0
  48. package/common/wechat-emoji/emoji//345/220/203/347/223/234.png +0 -0
  49. package/common/wechat-emoji/emoji//345/220/210/345/215/201.png +0 -0
  50. package/common/wechat-emoji/emoji//345/220/220.png +0 -0
  51. package/common/wechat-emoji/emoji//345/220/220/350/210/214/345/244/264.png +0 -0
  52. package/common/wechat-emoji/emoji//345/221/262/347/211/231.png +0 -0
  53. package/common/wechat-emoji/emoji//345/222/222/351/252/202.png +0 -0
  54. package/common/wechat-emoji/emoji//345/222/226/345/225/241.png +0 -0
  55. package/common/wechat-emoji/emoji//345/223/207.png +0 -0
  56. package/common/wechat-emoji/emoji//345/223/210/346/254/240.png +0 -0
  57. package/common/wechat-emoji/emoji//345/225/244/351/205/222.png +0 -0
  58. package/common/wechat-emoji/emoji//345/230/230.png +0 -0
  59. package/common/wechat-emoji/emoji//345/230/264/345/224/207.png +0 -0
  60. package/common/wechat-emoji/emoji//345/230/277/345/223/210.png +0 -0
  61. package/common/wechat-emoji/emoji//345/233/247.png +0 -0
  62. package/common/wechat-emoji/emoji//345/233/260.png +0 -0
  63. package/common/wechat-emoji/emoji//345/235/217/347/254/221.png +0 -0
  64. package/common/wechat-emoji/emoji//345/244/247/345/223/255.png +0 -0
  65. package/common/wechat-emoji/emoji//345/244/251/345/225/212.png +0 -0
  66. package/common/wechat-emoji/emoji//345/244/252/351/230/263.png +0 -0
  67. package/common/wechat-emoji/emoji//345/244/261/346/234/233.png +0 -0
  68. package/common/wechat-emoji/emoji//345/245/213/346/226/227.png +0 -0
  69. package/common/wechat-emoji/emoji//345/245/270/347/254/221.png +0 -0
  70. package/common/wechat-emoji/emoji//345/245/275/347/232/204.png +0 -0
  71. package/common/wechat-emoji/emoji//345/247/224/345/261/210.png +0 -0
  72. package/common/wechat-emoji/emoji//345/256/263/347/276/236.png +0 -0
  73. package/common/wechat-emoji/emoji//345/260/264/345/260/254.png +0 -0
  74. package/common/wechat-emoji/emoji//345/267/246/345/223/274/345/223/274.png +0 -0
  75. package/common/wechat-emoji/emoji//345/272/206/347/245/235.png +0 -0
  76. package/common/wechat-emoji/emoji//345/274/261.png +0 -0
  77. package/common/wechat-emoji/emoji//345/274/272.png +0 -0
  78. package/common/wechat-emoji/emoji//345/276/227/346/204/217.png +0 -0
  79. package/common/wechat-emoji/emoji//345/276/256/347/254/221.png +0 -0
  80. package/common/wechat-emoji/emoji//345/277/203/347/242/216.png +0 -0
  81. package/common/wechat-emoji/emoji//345/277/253/345/223/255/344/272/206.png +0 -0
  82. package/common/wechat-emoji/emoji//346/200/204/347/201/253.png +0 -0
  83. package/common/wechat-emoji/emoji//346/201/220/346/203/247.png +0 -0
  84. package/common/wechat-emoji/emoji//346/202/240/351/227/262.png +0 -0
  85. package/common/wechat-emoji/emoji//346/203/212/346/201/220.png +0 -0
  86. package/common/wechat-emoji/emoji//346/203/212/350/256/266.png +0 -0
  87. package/common/wechat-emoji/emoji//346/204/211/345/277/253.png +0 -0
  88. package/common/wechat-emoji/emoji//346/206/250/347/254/221.png +0 -0
  89. package/common/wechat-emoji/emoji//346/211/223/350/204/270.png +0 -0
  90. package/common/wechat-emoji/emoji//346/212/223/347/213/202.png +0 -0
  91. package/common/wechat-emoji/emoji//346/212/240/351/274/273.png +0 -0
  92. package/common/wechat-emoji/emoji//346/212/261/346/213/263.png +0 -0
  93. package/common/wechat-emoji/emoji//346/213/245/346/212/261.png +0 -0
  94. package/common/wechat-emoji/emoji//346/213/263/345/244/264.png +0 -0
  95. package/common/wechat-emoji/emoji//346/215/202/350/204/270.png +0 -0
  96. package/common/wechat-emoji/emoji//346/217/241/346/211/213.png +0 -0
  97. package/common/wechat-emoji/emoji//346/222/207/345/230/264.png +0 -0
  98. package/common/wechat-emoji/emoji//346/223/246/346/261/227.png +0 -0
  99. package/common/wechat-emoji/emoji//346/225/262/346/211/223.png +0 -0
  100. package/common/wechat-emoji/emoji//346/227/240/350/257/255.png +0 -0
  101. package/common/wechat-emoji/emoji//346/227/272/346/237/264.png +0 -0
  102. package/common/wechat-emoji/emoji//346/231/225.png +0 -0
  103. package/common/wechat-emoji/emoji//346/234/210/344/272/256.png +0 -0
  104. package/common/wechat-emoji/emoji//346/234/272/346/231/272.png +0 -0
  105. package/common/wechat-emoji/emoji//346/261/227.png +0 -0
  106. package/common/wechat-emoji/emoji//346/265/201/346/261/227.png +0 -0
  107. package/common/wechat-emoji/emoji//346/265/201/346/263/252.png +0 -0
  108. package/common/wechat-emoji/emoji//347/202/270/345/274/271.png +0 -0
  109. package/common/wechat-emoji/emoji//347/203/237/350/212/261.png +0 -0
  110. package/common/wechat-emoji/emoji//347/210/206/347/253/271.png +0 -0
  111. package/common/wechat-emoji/emoji//347/210/261/345/277/203.png +0 -0
  112. package/common/wechat-emoji/emoji//347/214/252/345/244/264.png +0 -0
  113. package/common/wechat-emoji/emoji//347/216/253/347/221/260.png +0 -0
  114. package/common/wechat-emoji/emoji//347/224/237/347/227/205.png +0 -0
  115. package/common/wechat-emoji/emoji//347/226/221/351/227/256.png +0 -0
  116. package/common/wechat-emoji/emoji//347/231/274.png +0 -0
  117. package/common/wechat-emoji/emoji//347/231/275/347/234/274.png +0 -0
  118. package/common/wechat-emoji/emoji//347/232/261/347/234/211.png +0 -0
  119. package/common/wechat-emoji/emoji//347/235/241.png +0 -0
  120. package/common/wechat-emoji/emoji//347/240/264/346/266/225/344/270/272/347/254/221.png +0 -0
  121. package/common/wechat-emoji/emoji//347/244/274/347/211/251.png +0 -0
  122. package/common/wechat-emoji/emoji//347/244/276/344/274/232/347/244/276/344/274/232.png +0 -0
  123. package/common/wechat-emoji/emoji//347/246/217.png +0 -0
  124. package/common/wechat-emoji/emoji//347/254/221/350/204/270.png +0 -0
  125. package/common/wechat-emoji/emoji//347/272/242/345/214/205.png +0 -0
  126. package/common/wechat-emoji/emoji//347/277/273/347/231/275/347/234/274.png +0 -0
  127. package/common/wechat-emoji/emoji//350/200/266.png +0 -0
  128. package/common/wechat-emoji/emoji//350/203/234/345/210/251.png +0 -0
  129. package/common/wechat-emoji/emoji//350/204/270/347/272/242.png +0 -0
  130. package/common/wechat-emoji/emoji//350/211/262.png +0 -0
  131. package/common/wechat-emoji/emoji//350/213/246/346/266/251.png +0 -0
  132. package/common/wechat-emoji/emoji//350/217/234/345/210/200.png +0 -0
  133. package/common/wechat-emoji/emoji//350/233/213/347/263/225.png +0 -0
  134. package/common/wechat-emoji/emoji//350/241/260.png +0 -0
  135. package/common/wechat-emoji/emoji//350/243/202/345/274/200.png +0 -0
  136. package/common/wechat-emoji/emoji//350/245/277/347/223/234.png +0 -0
  137. package/common/wechat-emoji/emoji//350/256/251/346/210/221/347/234/213/347/234/213.png +0 -0
  138. package/common/wechat-emoji/emoji//350/260/203/347/232/256.png +0 -0
  139. package/common/wechat-emoji/emoji//350/267/263/350/267/263.png +0 -0
  140. package/common/wechat-emoji/emoji//350/275/254/345/234/210.png +0 -0
  141. package/common/wechat-emoji/emoji//351/204/231/350/247/206.png +0 -0
  142. package/common/wechat-emoji/emoji//351/227/255/345/230/264.png +0 -0
  143. package/common/wechat-emoji/emoji//351/230/264/351/231/251.png +0 -0
  144. package/common/wechat-emoji/emoji//351/232/276/350/277/207.png +0 -0
  145. package/common/wechat-emoji/emoji//351/252/267/351/253/205.png +0 -0
  146. package/common/wechat-emoji/emoji//351/254/274/350/204/270.png +0 -0
  147. package/common/wechat-emoji/emoji//351/270/241.png +0 -0
  148. package/common/wechat-emoji/emoji//351/274/223/346/216/214.png +0 -0
  149. package/common/wechat-emoji/index.js +14 -0
  150. package/common/wechat-emoji/order.json +111 -0
  151. package/common/wechat-emoji/utils.js +52 -0
  152. package/common/wechat-emoji/wechat-emoji.vue +74 -0
  153. package/common/wechat-emoji-select/index.js +3 -0
  154. package/common/wechat-emoji-select/wechat-emoji-select.vue +67 -0
  155. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-boolean.vue +33 -0
  156. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-date-range.vue +30 -0
  157. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-date.vue +41 -0
  158. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-datetime-range.vue +34 -0
  159. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-datetime.vue +41 -0
  160. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-number-range.vue +67 -0
  161. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-number.vue +35 -0
  162. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-string.vue +41 -0
  163. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item-value.vue +73 -0
  164. package/components/advanced-filter/advanced-filter-condition-item/advanced-filter-condition-item.vue +226 -0
  165. package/components/advanced-filter/advanced-filter-condition-toggle.vue +112 -0
  166. package/components/advanced-filter/advanced-filter-condition.vue +352 -0
  167. package/components/advanced-filter/advanced-filter-permanent-item.vue +10 -0
  168. package/components/advanced-filter/advanced-filter-permanent.vue +10 -0
  169. package/components/advanced-filter/advanced-filter-scene-form.vue +95 -0
  170. package/components/advanced-filter/advanced-filter-scene-item.vue +64 -0
  171. package/components/advanced-filter/advanced-filter-scene-manage.vue +264 -0
  172. package/components/advanced-filter/advanced-filter-scene-transfer.vue +283 -0
  173. package/components/advanced-filter/advanced-filter-scene.vue +199 -0
  174. package/components/advanced-filter/advanced-filter.vue +119 -0
  175. package/components/advanced-filter/index.js +35 -0
  176. package/components/advanced-filter/utils.js +132 -0
  177. package/components/autocomplete/autocomplete.vue +121 -0
  178. package/components/autocomplete/index.js +7 -0
  179. package/components/avatar/avatar.png +0 -0
  180. package/components/avatar/avatar.vue +216 -0
  181. package/components/avatar/index.js +7 -0
  182. package/components/brick-wall/brick-wall-skeleton.vue +125 -0
  183. package/components/brick-wall/brick-wall.vue +293 -0
  184. package/components/brick-wall/index.js +7 -0
  185. package/components/button/button.vue +550 -0
  186. package/components/button/index.js +7 -0
  187. package/components/button/utils.js +20 -0
  188. package/components/cascader/cascader.vue +184 -0
  189. package/components/cascader/index.js +7 -0
  190. package/components/cascader/util.js +50 -0
  191. package/components/checkbox/checkbox.vue +114 -0
  192. package/components/checkbox/index.js +7 -0
  193. package/components/checkbox-button/index.js +8 -0
  194. package/components/checkbox-group/checkbox-group.vue +11 -0
  195. package/components/checkbox-group/index.js +7 -0
  196. package/components/date-picker/date-picker.vue +307 -0
  197. package/components/date-picker/index.js +7 -0
  198. package/components/dialog/dialog.vue +187 -0
  199. package/components/dialog/index.js +14 -0
  200. package/components/dialog/utils.js +20 -0
  201. package/components/drawer/drawer.vue +186 -0
  202. package/components/drawer/index.js +14 -0
  203. package/components/drawer/utils.js +36 -0
  204. package/components/dropdown/dropdown-item.vue +71 -0
  205. package/components/dropdown/dropdown.vue +326 -0
  206. package/components/dropdown/index.js +16 -0
  207. package/components/empty/empty.vue +89 -0
  208. package/components/empty/index.js +7 -0
  209. package/components/filter/filter-group.vue +44 -0
  210. package/components/filter/filter-item.vue +122 -0
  211. package/components/filter/filter-more.vue +114 -0
  212. package/components/filter/filter.vue +407 -0
  213. package/components/filter/index.js +20 -0
  214. package/components/filter/refresh-line.svg +1 -0
  215. package/components/filter/util.js +5 -0
  216. package/components/form/form-cell.vue +231 -0
  217. package/components/form/form-group.vue +147 -0
  218. package/components/form/form-row.vue +51 -0
  219. package/components/form/form.vue +287 -0
  220. package/components/form/index.js +24 -0
  221. package/components/grid/grid-card-view/grid-card-view.vue +157 -0
  222. package/components/grid/grid-column.vue +137 -0
  223. package/components/grid/grid-filter/grid-filter-group.vue +41 -0
  224. package/components/grid/grid-filter/grid-filter-item.vue +68 -0
  225. package/components/grid/grid-filter/grid-filter.vue +115 -0
  226. package/components/grid/grid-filter/util.js +7 -0
  227. package/components/grid/grid-filter-operate/grid-filter-operate-item.vue +55 -0
  228. package/components/grid/grid-filter-operate/grid-filter-operate.vue +46 -0
  229. package/components/grid/grid-sort/grid-sort-proxy.js +27 -0
  230. package/components/grid/grid-sort/grid-sort.vue +205 -0
  231. package/components/grid/grid-sort/icons/asc.png +0 -0
  232. package/components/grid/grid-sort/icons/desc.png +0 -0
  233. package/components/grid/grid-sort/index.js +7 -0
  234. package/components/grid/grid-table-view/grid-table-view.vue +178 -0
  235. package/components/grid/grid-table.vue +549 -0
  236. package/components/grid/grid-toolbar/grid-batch-toolbar-proxy.js +21 -0
  237. package/components/grid/grid-toolbar/grid-batch-toolbar.vue +129 -0
  238. package/components/grid/grid-toolbar/grid-global-toolbar-proxy.js +21 -0
  239. package/components/grid/grid-toolbar/grid-global-toolbar.vue +37 -0
  240. package/components/grid/grid-toolbar/grid-more-toolbar-proxy.js +21 -0
  241. package/components/grid/grid-toolbar/grid-more-toolbar.vue +138 -0
  242. package/components/grid/grid-toolbar/grid-row-toolbar.vue +279 -0
  243. package/components/grid/grid-view-select.vue +78 -0
  244. package/components/grid/grid.vue +1114 -0
  245. package/components/grid/icons/more-line.svg +1 -0
  246. package/components/grid/icons/refresh.svg +14 -0
  247. package/components/grid/index.js +60 -0
  248. package/components/grid/util.js +31 -0
  249. package/components/icon/demo.css +539 -0
  250. package/components/icon/demo_index.html +9112 -0
  251. package/components/icon/icon.vue +96 -0
  252. package/components/icon/iconfont.css +1567 -0
  253. package/components/icon/iconfont.eot +0 -0
  254. package/components/icon/iconfont.js +1 -0
  255. package/components/icon/iconfont.json +2725 -0
  256. package/components/icon/iconfont.svg +455 -0
  257. package/components/icon/iconfont.ttf +0 -0
  258. package/components/icon/iconfont.woff +0 -0
  259. package/components/icon/iconfont.woff2 +0 -0
  260. package/components/icon/index.js +7 -0
  261. package/components/image/image.vue +377 -0
  262. package/components/image/index.js +14 -0
  263. package/components/image/util.js +107 -0
  264. package/components/index.js +157 -0
  265. package/components/loading/index.js +7 -0
  266. package/components/loading/loading.vue +130 -0
  267. package/components/menu/index.js +20 -0
  268. package/components/menu/menu-group.vue +245 -0
  269. package/components/menu/menu-item.vue +269 -0
  270. package/components/menu/menu.vue +64 -0
  271. package/components/message/index.js +19 -0
  272. package/components/message/message.js +31 -0
  273. package/components/message/message.less +6 -0
  274. package/components/message-box/index.js +14 -0
  275. package/components/message-box/message-box.js +140 -0
  276. package/components/message-box/message-box.less +5 -0
  277. package/components/pagination/index.js +7 -0
  278. package/components/pagination/pagination.vue +197 -0
  279. package/components/panel/index.js +7 -0
  280. package/components/panel/panel.vue +44 -0
  281. package/components/popover/index.js +7 -0
  282. package/components/popover/popover.vue +163 -0
  283. package/components/popup-select/index.js +7 -0
  284. package/components/popup-select/popup-select.vue +114 -0
  285. package/components/radio/index.js +7 -0
  286. package/components/radio/radio.vue +92 -0
  287. package/components/radio-button/index.js +7 -0
  288. package/components/radio-button/radio-button.vue +20 -0
  289. package/components/radio-group/index.js +7 -0
  290. package/components/radio-group/radio-group.vue +22 -0
  291. package/components/searchbox/index.js +7 -0
  292. package/components/searchbox/searchbox.vue +272 -0
  293. package/components/select/index.js +11 -0
  294. package/components/select/select-load-more.vue +53 -0
  295. package/components/select/select.vue +578 -0
  296. package/components/skeleton/index.js +16 -0
  297. package/components/skeleton/skeleton-rows.vue +52 -0
  298. package/components/skeleton/skeleton.vue +72 -0
  299. package/components/sortable/index.js +11 -0
  300. package/components/sortable/sortable-item.vue +77 -0
  301. package/components/sortable/sortable.vue +67 -0
  302. package/components/spinner/index.js +7 -0
  303. package/components/spinner/spinner.vue +121 -0
  304. package/components/spinner-range/index.js +7 -0
  305. package/components/spinner-range/spinner-range.vue +97 -0
  306. package/components/spinner-textarea/index.js +7 -0
  307. package/components/spinner-textarea/spinner-textarea.vue +65 -0
  308. package/components/switch/index.js +7 -0
  309. package/components/switch/switch.vue +105 -0
  310. package/components/tabbar/index.js +9 -0
  311. package/components/tabbar/tabbar-item.vue +162 -0
  312. package/components/tabbar/tabbar.vue +49 -0
  313. package/components/tabs/index.js +12 -0
  314. package/components/tabs/tabs.vue +120 -0
  315. package/components/tag/index.js +9 -0
  316. package/components/tag/tag.less +39 -0
  317. package/components/text/index.js +7 -0
  318. package/components/text/text.vue +69 -0
  319. package/components/textarea/index.js +7 -0
  320. package/components/textarea/textarea.vue +245 -0
  321. package/components/textbox/index.js +7 -0
  322. package/components/textbox/textbox.vue +275 -0
  323. package/components/time-picker/index.js +7 -0
  324. package/components/time-picker/time-picker.vue +84 -0
  325. package/components/toolbar/index.js +16 -0
  326. package/components/toolbar/toolbar-item.vue +43 -0
  327. package/components/toolbar/toolbar.vue +81 -0
  328. package/components/tooltip/index.js +9 -0
  329. package/components/tooltip/tooltip.vue +86 -0
  330. package/components/transfer/index.js +7 -0
  331. package/components/transfer/transfer-element.vue +109 -0
  332. package/components/transfer/transfer-load-more.vue +53 -0
  333. package/components/transfer/transfer.vue +260 -0
  334. package/components/tree/index.js +7 -0
  335. package/components/tree/tree.vue +485 -0
  336. package/components/tree/utils.js +122 -0
  337. package/components/video/index.js +7 -0
  338. package/components/video/video.vue +101 -0
  339. package/package.json +15 -1
  340. package/uni-common/more-button/more-button.vue +23 -0
  341. package/uni-common/popup-select/popup-select.vue +217 -0
  342. package/uni-common/portray/portray.vue +54 -0
  343. package/uni-common/refresh-view/refresh-view.vue +94 -0
  344. package/uni-common/scroll-load-more/scroll-load-more.vue +201 -0
  345. package/uni-common/tree-popup-select/index.js +3 -0
  346. package/uni-common/tree-popup-select/tree-popup-select-panel.vue +92 -0
  347. package/uni-common/tree-popup-select/tree-popup-select.vue +124 -0
  348. package/uni-common/tree-popup-select/util.js +19 -0
  349. package/uni-common/wechat-emoji/index.js +13 -0
  350. package/uni-common/wechat-emoji/order.json +438 -0
  351. package/uni-common/wechat-emoji/utils.js +52 -0
  352. package/uni-common/wechat-emoji/wechat-emoji.vue +74 -0
  353. package/uni-components/avatar/avatar.vue +81 -0
  354. package/uni-components/badge/badge.vue +57 -0
  355. package/uni-components/empty/empty.vue +27 -0
  356. package/uni-components/exception/exception.vue +47 -0
  357. package/uni-components/icon/demo.css +539 -0
  358. package/uni-components/icon/demo_index.html +1591 -0
  359. package/uni-components/icon/icon.vue +48 -0
  360. package/uni-components/icon/iconfont.css +259 -0
  361. package/uni-components/icon/iconfont.js +1 -0
  362. package/uni-components/icon/iconfont.json +436 -0
  363. package/uni-components/icon/iconfont.ttf +0 -0
  364. package/uni-components/icon/iconfont.woff +0 -0
  365. package/uni-components/icon/iconfont.woff2 +0 -0
  366. package/uni-components/icon/index.js +3 -0
  367. package/uni-components/image/image.vue +38 -0
  368. package/uni-components/image/index.js +3 -0
  369. package/uni-components/loading/index.js +3 -0
  370. package/uni-components/loading/loading.vue +30 -0
  371. package/uni-components/message/message-item.vue +29 -0
  372. package/uni-components/message/message.js +80 -0
  373. package/uni-components/message/message.vue +30 -0
  374. package/uni-components/message-box/message-box-item.vue +54 -0
  375. package/uni-components/message-box/message-box.js +91 -0
  376. package/uni-components/message-box/message-box.vue +52 -0
  377. package/uni-components/picker/picker.vue +270 -0
  378. package/uni-components/popup/index.js +3 -0
  379. package/uni-components/popup/popup.vue +143 -0
  380. package/uni-components/search/index.js +3 -0
  381. package/uni-components/search/search.vue +86 -0
  382. package/uni-components/skeleton/skeleton-chat.vue +85 -0
  383. package/uni-components/skeleton/skeleton-contact.vue +84 -0
  384. package/uni-components/skeleton/skeleton-detail.vue +84 -0
  385. package/uni-components/skeleton/skeleton.vue +32 -0
  386. package/uni-components/tabbar/tabbar-item.vue +33 -0
  387. package/uni-components/tabbar/tabbar.vue +87 -0
  388. package/uni-components/tree/index.js +3 -0
  389. package/uni-components/tree/tree-select-loading.vue +48 -0
  390. package/uni-components/tree/tree-select-node.vue +202 -0
  391. package/uni-components/tree/tree-select-store.js +520 -0
  392. package/uni-components/tree/tree-select.vue +210 -0
  393. package/uni-components/tree/utils.js +33 -0
  394. package/uni-components/video/index.js +3 -0
  395. package/uni-components/video/video.vue +29 -0
  396. package/uni-components/voice/index.js +3 -0
  397. package/uni-components/voice/voice.vue +24 -0
  398. package/uni-components/waterfall/index.js +3 -0
  399. package/uni-components/waterfall/util.js +72 -0
  400. package/uni-components/waterfall/waterfall.vue +147 -0
  401. package/utils/data.js +128 -0
  402. package/utils/date.js +495 -0
  403. package/utils/dom.js +37 -0
  404. package/utils/emitter.js +3 -0
  405. package/utils/event.js +92 -0
  406. package/utils/file.js +76 -0
  407. package/utils/json.js +40 -0
  408. package/utils/network-detector.js +258 -0
  409. package/utils/oss.js +11 -0
  410. package/utils/resize-event.js +35 -0
  411. package/utils/share-message.js +81 -0
  412. package/utils/share-websocket.js +127 -0
  413. package/utils/string.js +59 -0
  414. package/utils/time-task.js +60 -0
  415. package/utils/url.js +46 -0
  416. package/utils/util.js +427 -0
  417. package/utils/utils.js +0 -0
@@ -0,0 +1,1114 @@
1
+ <template>
2
+ <div
3
+ class="ui-grid"
4
+ :class="[currentViewName ? ('ui-grid-view--' + currentViewName) : '']"
5
+ :style="gridStyle"
6
+ >
7
+ <div v-if="ready && showWrap" ref="wrap" class="ui-grid__wrap">
8
+ <div ref="header" class="ui-grid__header" v-show="exportFieldsShow">
9
+ <div class="ui-grid__filter">
10
+ <ui-filter ref="filter" v-model="filterPropsValue" :ready="filterReady" :imediate="imediate" :tableLoading="tableLoading" @change="handleFilterChange">
11
+ <template v-if="simpleFilterGroups && simpleFilterGroups.length">
12
+ <ui-filter-group
13
+ v-for="group in simpleFilterGroups"
14
+ :key="group.id"
15
+ v-bind="group.props"
16
+ >
17
+ <template v-if="group.children && group.children.length">
18
+ <ui-filter-item
19
+ v-for="item in group.children"
20
+ :key="item.id"
21
+ class="ui-grid__filter-item"
22
+ v-bind="item.props"
23
+ >
24
+ <component :is="handleRenderFilterItem(item)" :data-key="item.data && item.data.key"></component>
25
+ </ui-filter-item>
26
+ </template>
27
+ </ui-filter-group>
28
+ </template>
29
+ <template v-if="simpleFilterNotGroupItems && simpleFilterNotGroupItems.length">
30
+ <ui-filter-item
31
+ v-for="item in simpleFilterNotGroupItems"
32
+ :key="item.id"
33
+ class="ui-grid__filter-item"
34
+ v-bind="item.props"
35
+ >
36
+ <component :is="handleRenderFilterItem(item)" :data-key="item.data && item.data.key"></component>
37
+ </ui-filter-item>
38
+ </template>
39
+ <ui-filter-item v-if="filterOperateProps && filterOperateProps.items && filterOperateProps.items.length">
40
+ <ui-dropdown
41
+ label="按搜索条件"
42
+ :loading="tableLoading"
43
+ >
44
+ <ui-dropdown-item
45
+ v-for="item in filterOperateProps.items"
46
+ :key="item.id"
47
+ :label="item.props.label"
48
+ :value="item.props.value"
49
+ :divided="item.props.divided"
50
+ :icon="item.props.icon"
51
+ :type="item.props.type"
52
+ @click="handleFilterOperateItemClick(item)"
53
+ ></ui-dropdown-item>
54
+ </ui-dropdown>
55
+ </ui-filter-item>
56
+ </ui-filter>
57
+ </div>
58
+ <div class="ui-grid__global">
59
+ <div v-if="globalToolbarProps && globalToolbarProps.items && globalToolbarProps.items.length" class="ui-grid__global-toolbar">
60
+ <grid-global-toolbar
61
+ v-bind="globalToolbarProps"
62
+ ></grid-global-toolbar>
63
+ </div>
64
+ <div v-if="viewPanelData && viewPanelData.length" class="ui-grid__views">
65
+ <grid-view-select
66
+ :current="currentViewName"
67
+ :items="viewPanelData"
68
+ @change="handleViewPanelChange"
69
+ ></grid-view-select>
70
+ </div>
71
+ <div v-if="sortProps && sortProps.items && sortProps.items.length" class="ui-grid__sort">
72
+ <grid-sort
73
+ v-bind="sortProps"
74
+ @change="handleBealoneSortChange"
75
+ ></grid-sort>
76
+ </div>
77
+ <div v-if="moreToolbarProps && moreToolbarProps.items && moreToolbarProps.items.length" class="ui-grid__more-toolbar">
78
+ <grid-more-toolbar
79
+ v-bind="moreToolbarProps"
80
+ ></grid-more-toolbar>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <div v-if="showBatchToolbar" ref="batch" class="ui-grid__batch">
86
+ <div class="ui-grid__batch-inner">
87
+ <grid-batch-toolbar
88
+ :data="tableData"
89
+ :selecteds="selecteds"
90
+ v-bind="batchToolbarProps"
91
+ @clear-selection="handleClearSelection"
92
+ @batch-success="handleBatchSuccess"
93
+ ></grid-batch-toolbar>
94
+ </div>
95
+ </div>
96
+ <template v-if="!enableMultipleView">
97
+ <div class="ui-grid__table" :style="tableStyle">
98
+ <grid-table
99
+ ref="table"
100
+ :row-height="rowHeight"
101
+ :key="tableKey"
102
+ :default-sort="defaultSort"
103
+ :show-index="showIndex"
104
+ :border="border"
105
+ :id-field="innerIdField"
106
+ :parent-field="parentField"
107
+ :multiple="innerMultiple"
108
+ :selectable="innerSelectable"
109
+ :data="tableData"
110
+ :height="tableHeight"
111
+ :row-class-name="rowClassName"
112
+ :max-height="tableMaxHeight"
113
+ :empty-text="emptyText"
114
+ :show-summary="showSummary"
115
+ :show-pagination="showPagination"
116
+ :page-index="tablePageIndex"
117
+ :page-size="tablePageSize"
118
+ :remote-sort="remoteSort"
119
+ :show-header="showHeader"
120
+ :row-check-method="rowCheckMethod"
121
+ :row-visible-method="rowVisibleMethod"
122
+ :check-strictly="checkStrictly"
123
+ :selectable-all="selectableAll"
124
+ @loaded="handleDataLoaded"
125
+ @selection-change="handleSelectionChange"
126
+ @select-change="handleSelectChange"
127
+ @sort-change="handleTableSortChange"
128
+ @column-resize-change="handleColumnResizeChange"
129
+ @hover-row-change="handleHoverRowChange"
130
+ @hook:mounted="handleTableMounted"
131
+ >
132
+ <slot></slot>
133
+ <vxe-column
134
+ v-if="rowToolbar && rowToolbar.length"
135
+ title="操作"
136
+ fixed="right"
137
+ field="__rowToolbar"
138
+ :width="rowToolbarWidth"
139
+ >
140
+ <template slot-scope="{ row, $rowIndex }">
141
+ <div style="display: flex;">
142
+ <grid-row-toolbar :row="row" :row-index="$rowIndex" :items="rowToolbar"></grid-row-toolbar>
143
+ <slot name="AIIcon" :row="row"></slot>
144
+ </div>
145
+ </template>
146
+ </vxe-column>
147
+ <slot name="append"></slot>
148
+ </grid-table>
149
+ <transition>
150
+ <div
151
+ v-if="tableLoading"
152
+ class="ui-grid__loading"
153
+ >
154
+ <ui-loading type="primary" size="medium"></ui-loading>
155
+ </div>
156
+ </transition>
157
+ <slot name="outer"></slot>
158
+ </div>
159
+ </template>
160
+ <template v-else>
161
+ <div class="ui-grid__content">
162
+ <slot></slot>
163
+ <transition>
164
+ <div
165
+ v-if="tableLoading"
166
+ class="ui-grid__loading"
167
+ >
168
+ <ui-loading type="primary" size="medium"></ui-loading>
169
+ </div>
170
+ </transition>
171
+ </div>
172
+ </template>
173
+ <div v-if="showPagination" ref="pagination" class="ui-grid__pagination">
174
+ <div class="ui-grid__pagination-inner">
175
+ <div class="ui-grid__pagination-check" v-if="!selectable && innerMultiple">
176
+ <span
177
+ class="ui-grid__pagination-check-input"
178
+ @click.stop
179
+ >
180
+ <vex-checkbox
181
+ :value="innerCheckAll"
182
+ :indeterminate="innerIndeterminate"
183
+ @input="handleCheckAllChange"
184
+ >全选 / 已选中{{ selecteds.length }}项</vex-checkbox>
185
+ </span>
186
+ </div>
187
+ <div class="ui-grid__pagination-control">
188
+ <ui-pagination
189
+ :page-index="tablePageIndex"
190
+ :page-size="tablePageSize"
191
+ :page-size-list="pageSizeList"
192
+ :total="tableTotal"
193
+ :title="title"
194
+ :allow-select-page-size="allowSelectPageSize"
195
+ :showPrevOrNext="showPrevOrNext"
196
+ @page-change="handlePageChange"
197
+ >
198
+ </ui-pagination>
199
+ </div>
200
+ </div>
201
+ </div>
202
+ </div>
203
+ </template>
204
+ <script>
205
+ import { Filter, FilterGroup, FilterItem } from '../filter'
206
+ import GridTable from './grid-table'
207
+ import GridColumn from './grid-column.vue'
208
+ import GridRowToolbar from './grid-toolbar/grid-row-toolbar'
209
+ import GridGlobalToolbar from './grid-toolbar/grid-global-toolbar'
210
+ import GridBatchToolbar from './grid-toolbar/grid-batch-toolbar'
211
+ import GridMoreToolbar from './grid-toolbar/grid-more-toolbar'
212
+ import GridViewSelect from './grid-view-select'
213
+ import GridTableView from './grid-table-view/grid-table-view'
214
+ import GridCardView from './grid-card-view/grid-card-view'
215
+ import { Dropdown, DropdownItem } from '../dropdown'
216
+ import { GridSort } from './grid-sort'
217
+ import Pagination from '../pagination'
218
+ import Loading from '../loading'
219
+ import { Checkbox as VexCheckbox, Column } from 'vxe-table'
220
+ import { dispatch, getStorage, setStorage } from './util'
221
+ import { addResizeListener, removeResizeListener } from '../../utils/resize-event'
222
+
223
+ export default {
224
+ name: 'UiGrid',
225
+ components: {
226
+ VexCheckbox,
227
+ UiDropdown: Dropdown,
228
+ UiDropdownItem: DropdownItem,
229
+ UiLoading: Loading,
230
+ UiFilter: Filter,
231
+ UiFilterItem: FilterItem,
232
+ UiFilterGroup: FilterGroup,
233
+ UiPagination: Pagination,
234
+ VxeColumn: Column,
235
+ GridSort,
236
+ GridColumn,
237
+ GridViewSelect,
238
+ GridTableView,
239
+ GridCardView,
240
+ GridRowToolbar,
241
+ GridGlobalToolbar,
242
+ GridBatchToolbar,
243
+ GridMoreToolbar,
244
+ GridTable
245
+ },
246
+ inject: {
247
+ UiPage: {
248
+ default: null
249
+ },
250
+ UiDialog: {
251
+ default: null
252
+ }
253
+ },
254
+ provide() {
255
+ return {
256
+ UiGrid: this
257
+ }
258
+ },
259
+ props: {
260
+ id: {
261
+ type: String
262
+ },
263
+ height: {
264
+ type: String,
265
+ default: '100%'
266
+ },
267
+ tableKey: {
268
+ type: String
269
+ },
270
+ maxHeight: {
271
+ type: String
272
+ },
273
+ selectable: {
274
+ type: Boolean,
275
+ default: false
276
+ },
277
+ multiple: {
278
+ type: Boolean,
279
+ default: false
280
+ },
281
+ emptyText: {
282
+ type: String
283
+ },
284
+ data: {
285
+ type: Array
286
+ },
287
+ rowToolbar: {
288
+ type: Array
289
+ },
290
+ showHeader: {
291
+ type: Boolean,
292
+ default: true
293
+ },
294
+ idField: {
295
+ type: String
296
+ },
297
+ parentField: {
298
+ type: String
299
+ },
300
+ rowToolbarWidth: {
301
+ type: [String, Number],
302
+ default: '120px'
303
+ },
304
+ loading: {
305
+ type: Boolean,
306
+ default: false
307
+ },
308
+ queryMethod: {
309
+ type: Function
310
+ },
311
+ showPagination: {
312
+ type: Boolean,
313
+ default: true
314
+ },
315
+ showIndex: {
316
+ type: Boolean
317
+ },
318
+ title: {
319
+ type: String
320
+ },
321
+ total: {
322
+ type: Number
323
+ },
324
+ border: {
325
+ type: Boolean,
326
+ default: false
327
+ },
328
+ showSummary: {
329
+ type: Boolean,
330
+ default: false
331
+ },
332
+ autoLoad: {
333
+ type: Boolean,
334
+ default: true
335
+ },
336
+ rowHeight: {
337
+ type: String
338
+ },
339
+ rowClassName: {
340
+ type: [String, Function]
341
+ },
342
+ remoteSort: {
343
+ type: Boolean,
344
+ default: true
345
+ },
346
+ /**
347
+ * {
348
+ * field: null,
349
+ * order: null
350
+ * }
351
+ */
352
+ defaultSort: {
353
+ type: [Object, Array]
354
+ },
355
+ checkStrictly: {
356
+ type: Boolean,
357
+ default: false
358
+ },
359
+ selectableAll: {
360
+ type: Boolean,
361
+ default: true
362
+ },
363
+ rowCheckMethod: {
364
+ type: Function
365
+ },
366
+ rowVisibleMethod: {
367
+ type: Function
368
+ },
369
+ imediate: {
370
+ type: Boolean,
371
+ default: true
372
+ },
373
+ enableMultipleView: {
374
+ type: Boolean,
375
+ default: false
376
+ },
377
+ allowSelectPageSize: {
378
+ type: Boolean,
379
+ default: true
380
+ },
381
+ // 显示 上一页 下一页
382
+ showPrevOrNext: {
383
+ type: Boolean,
384
+ default: false
385
+ },
386
+ exportFieldsShow: {
387
+ type: Boolean,
388
+ default: true
389
+ },
390
+ pageSizeList: {
391
+ type: Array,
392
+ default: () => [20, 50, 100, 200]
393
+ }
394
+ },
395
+ data() {
396
+ return {
397
+ ready: false,
398
+ filterReady: false,
399
+ selecteds: [],
400
+ globalToolbarProps: {},
401
+ batchToolbarProps: {},
402
+ moreToolbarProps: {},
403
+ filterOperateProps: {
404
+ items: []
405
+ },
406
+ sortProps: {
407
+ items: [],
408
+ value: null
409
+ },
410
+ filterProps: {
411
+ items: [],
412
+ groups: [],
413
+ value: null
414
+ },
415
+ showColumnSetting: false,
416
+ tableColumns: [],
417
+ tablePageIndex: 1,
418
+ tablePageSize: 20,
419
+ tableLoading: this.loading,
420
+ tableTotal: 0,
421
+ tableData: [],
422
+ tableStyle: null,
423
+ tableMaxHeight: null,
424
+ innerIdField: this.idField,
425
+ innerMultiple: this.multiple,
426
+ hoverRow: null,
427
+ viewPanelData: [],
428
+ currentViewName: 'table',
429
+ $control: null
430
+ }
431
+ },
432
+ computed: {
433
+ showWrap() {
434
+ if (this.globalToolbarProps && this.globalToolbarProps.items && this.globalToolbarProps.items.length) {
435
+ return true
436
+ }
437
+ if (this.moreToolbarProps && this.moreToolbarProps.items && this.moreToolbarProps.items.length) {
438
+ return true
439
+ }
440
+ if (this.simpleFilterItems && this.simpleFilterItems.length) {
441
+ return true
442
+ }
443
+ return false
444
+ },
445
+ gridStyle() {
446
+ const style = {}
447
+ if (this.height && this.height !== 'auto') {
448
+ style.height = this.height
449
+ }
450
+ if (this.height && this.maxHeight) {
451
+ style['max-height'] = this.maxHeight
452
+ }
453
+ return style
454
+ },
455
+ simpleFilterGroups() {
456
+ if (!this.filterProps || !this.filterProps.groups) {
457
+ return
458
+ }
459
+ return this.filterProps.groups.map(v => {
460
+ const vv = Object.assign({}, v)
461
+ vv.children = this.simpleFilterItems.filter(item => item.groupId === v.id)
462
+ return vv
463
+ })
464
+ },
465
+ simpleFilterItems() {
466
+ if (!this.filterProps || !this.filterProps.items) {
467
+ return
468
+ }
469
+ return (this.filterProps.items || []).filter(v => v.type !== 'advance')
470
+ },
471
+ simpleFilterNotGroupItems() {
472
+ if (!this.filterProps || !this.filterProps.items) {
473
+ return
474
+ }
475
+ return (this.filterProps.items || []).filter(v => !v.groupId)
476
+ },
477
+ innerShowSort() {
478
+ return !!(this.sortProps && this.sortProps.items && this.sortProps.items.length)
479
+ },
480
+ exportColumns() {
481
+ return this.tableColumns.filter(v => v.props.exportable)
482
+ },
483
+ tableHeight () {
484
+ if (this.maxHeight) {
485
+ return ''
486
+ }
487
+ if (!this.height || this.height === 'auto') {
488
+ return 'auto'
489
+ }
490
+ return '100%'
491
+ },
492
+ innerSelectable () {
493
+ if (this.multiple === true) {
494
+ return true
495
+ }
496
+ return !!this.selectable
497
+ },
498
+ innerIndeterminate() {
499
+ return !!(this.selecteds.length && this.selecteds.length < this.tableData.length)
500
+ },
501
+ innerCheckAll () {
502
+ return this.selecteds.length && this.selecteds.length >= this.tableData.length
503
+ },
504
+ tableViewContent () {
505
+ const tableView = this.viewPanelData.find(v => v.name === 'table')
506
+ if (!tableView) {
507
+ return
508
+ }
509
+ const rs = tableView.render()
510
+ console.log(rs)
511
+ return {
512
+ functional: true,
513
+ render (h) {
514
+ return h('div', rs)
515
+ }
516
+ }
517
+ },
518
+ showBatchToolbar () {
519
+ return this.batchToolbarProps.items && this.batchToolbarProps.items.length && !!this.selecteds.length
520
+ },
521
+ cacheCurrentViewNameKey () {
522
+ if (!this.id) {
523
+ return
524
+ }
525
+ return 'bi-grid-current-view-name-' + this.id
526
+ },
527
+ filterPropsValue: {
528
+ get () {
529
+ return this.filterProps.value
530
+ },
531
+ set (val) {
532
+ this.filterProps.value = val
533
+ }
534
+ }
535
+ },
536
+ watch: {
537
+ data(data) {
538
+ // this.tableData = data
539
+ if (this.showPagination) {
540
+ this._setData({
541
+ total: data.length,
542
+ results: data
543
+ })
544
+ } else {
545
+ this._setData(data)
546
+ }
547
+ },
548
+ loading(val) {
549
+ this.tableLoading = val
550
+ },
551
+ idField (val) {
552
+ this.innerIdField = val
553
+ },
554
+ multiple (val) {
555
+ this.setMultiple(val)
556
+ }
557
+ },
558
+ created() {
559
+ this.cacheColumns = []
560
+ if (this.$route && this.$route.query && this.$route.query.pageindex) {
561
+ this.tablePageIndex = Number(this.$route.query.pageindex)
562
+ }
563
+ if (this.data && this.data.length) {
564
+ this._setData(this.data)
565
+ }
566
+ if (this.cacheCurrentViewNameKey) {
567
+ const currentViewName = getStorage(this.cacheCurrentViewNameKey)
568
+ if (currentViewName) {
569
+ this.currentViewName = currentViewName
570
+ }
571
+ }
572
+ dispatch(this, 'UiGridCreated', {
573
+ setIdField: (idField) => {
574
+ this.setIdField(idField)
575
+ },
576
+ setMultiple: (multiple) => {
577
+ this.setMultiple(multiple)
578
+ }
579
+ })
580
+ },
581
+ mounted() {
582
+ if (this.$refs.table) {
583
+ this.$control = this.$refs.table
584
+ }
585
+ this.ready = true
586
+ this.doLayout()
587
+ // 稍微晚一点执行,页面可能还需要加载一些数据
588
+ this.loadTimer = setTimeout(() => {
589
+ if (this.autoLoad) {
590
+ this.loadData()
591
+ }
592
+ this.filterReady = true
593
+ })
594
+ addResizeListener(this.$el.parentNode, () => {
595
+ this.doLayout()
596
+ })
597
+ },
598
+ beforeDestroy() {
599
+ clearTimeout(this.timer)
600
+ clearTimeout(this.loadTimer)
601
+ clearTimeout(this._timer)
602
+ removeResizeListener(this.$el.parentNode)
603
+ },
604
+ methods: {
605
+ handleViewPanelChange ({ item }) {
606
+ this.currentViewName = item.name
607
+ if (this.selecteds.length) {
608
+ this.selecteds = []
609
+ this.$emit('selection-change', {
610
+ selection: this.selecteds,
611
+ data: this.tableData
612
+ })
613
+ }
614
+ if (this.cacheCurrentViewNameKey) {
615
+ setStorage(this.cacheCurrentViewNameKey, item.name)
616
+ }
617
+ },
618
+ handleCheckAllChange(value) {
619
+ if (value) {
620
+ this.selecteds = this.tableData
621
+ this.setSelectionRows(this.tableData, true)
622
+ } else {
623
+ this.selecteds = []
624
+ this.setSelectionRows(this.tableData, false)
625
+ }
626
+ this.$emit('selection-change', {
627
+ selection: this.selecteds,
628
+ data: this.tableData
629
+ })
630
+ },
631
+ setIdField (idField) {
632
+ this.innerIdField = idField
633
+ },
634
+ setMultiple (multiple) {
635
+ this.innerMultiple = multiple
636
+ },
637
+ handleFilterOperateItemClick (item) {
638
+ item && item.click && item.click({
639
+ data: this.tableData,
640
+ total: this.showPagination ? this.tableTotal : this.tableData.length
641
+ })
642
+ },
643
+ handleHoverRowChange (evt) {
644
+ this.hoverRow = evt.row
645
+ },
646
+ handleColumnResizeChange (evt) {
647
+ this.$emit('column-resize-change', evt)
648
+ },
649
+ handleDataLoaded () {
650
+ this.$emit('loaded', {
651
+ data: this.tableData
652
+ })
653
+ },
654
+ handleBealoneSortChange (evt) {
655
+ this.$set(this.sortProps, 'value', evt.value)
656
+ if (!this.remoteSort) {
657
+ return
658
+ }
659
+ this.loadData()
660
+ },
661
+ handleTableSortChange() {
662
+ this.isChangeSort = true
663
+ if (!this.remoteSort) {
664
+ return
665
+ }
666
+ this.loadData()
667
+ },
668
+ handleRenderFilterItem(item) {
669
+ return {
670
+ functional: true,
671
+ render: (h, c) => {
672
+ return item.render(h, c)
673
+ }
674
+ }
675
+ },
676
+ handleClearSelection() {
677
+ this.selecteds = []
678
+ this.$control && this.$control.clearSelection()
679
+ },
680
+ handleBatchSuccess() {
681
+ this.loadData()
682
+ },
683
+ handleSelectionChange({ selection }) {
684
+ this.selecteds = selection || []
685
+ this.$emit('selection-change', {
686
+ selection,
687
+ data: this.tableData
688
+ })
689
+ },
690
+ handleSelectChange ({ row }) {
691
+ this.$emit('current-change', {
692
+ row,
693
+ data: this.tableData
694
+ })
695
+ },
696
+ handlePageChange(e) {
697
+ this.tablePageSize = e.pageSize
698
+ this.tablePageIndex = e.pageIndex
699
+ this.loadData()
700
+ },
701
+ handleFilterChange() {
702
+ if (!this.autoLoad) {
703
+ return
704
+ }
705
+ this.reload()
706
+ },
707
+ handleRefreshClick() {
708
+ if (this.tableLoading) {
709
+ return
710
+ }
711
+ this.loadData()
712
+ },
713
+ getFilters() {
714
+ if (this.$refs.filter) {
715
+ return this.$refs.filter.getFilters()
716
+ }
717
+ return {}
718
+ },
719
+ getSort() {
720
+ let sort = null
721
+ if (this.$control) {
722
+ sort = this.$control.getSortColumns().reduce((rs, v) => {
723
+ rs[v.field] = v.order
724
+ return rs
725
+ }, {})
726
+ }
727
+ if (this.sortProps && this.sortProps.value) {
728
+ if (!sort) {
729
+ sort = {}
730
+ }
731
+ sort[this.sortProps.value.prop] = this.sortProps.value.order
732
+ }
733
+ // 排序改变过的,就不用默认的了
734
+ if (!this.isChangeSort) {
735
+ if ((!sort || !Object.keys(sort).length) && this.defaultSort) {
736
+ let defaultSort = this.defaultSort
737
+ if (defaultSort && !Array.isArray(defaultSort)) {
738
+ defaultSort = [defaultSort]
739
+ }
740
+ sort = defaultSort.reduce((rs, v) => {
741
+ rs[v.field] = v.order
742
+ return rs
743
+ }, {})
744
+ }
745
+ }
746
+ return sort
747
+ },
748
+ reload() {
749
+ this.tablePageIndex = 1
750
+ return this.loadData()
751
+ },
752
+ loadData() {
753
+ return new Promise((resolve, reject) => {
754
+ if (typeof this.queryMethod === 'function') {
755
+ let ps = {}
756
+ const fs = this.getFilters()
757
+ if (this.showPagination) {
758
+ ps = {
759
+ pageIndex: this.tablePageIndex - 1,
760
+ pageSize: this.tablePageSize
761
+ }
762
+ }
763
+ const options = {
764
+ filter: fs,
765
+ page: ps
766
+ }
767
+ const sort = this.getSort()
768
+ if (sort) {
769
+ const sortKey = Object.keys(sort)[0]
770
+ const orderMap = {
771
+ 'asc': 2,
772
+ 'desc': 1
773
+ }
774
+ options.order = {
775
+ sortField: sortKey,
776
+ order: orderMap[sort[sortKey]]
777
+ }
778
+ }
779
+ const rs = this.queryMethod(options)
780
+ if (rs && rs.then) {
781
+ this.tableLoading = true
782
+ rs.then((data) => {
783
+ this.tableLoading = false
784
+ this._setData(data)
785
+ resolve(data)
786
+ }, (err) => {
787
+ this.tableLoading = false
788
+ reject(err)
789
+ })
790
+ } else {
791
+ this._setData(rs)
792
+ }
793
+ } else {
794
+ resolve()
795
+ }
796
+ })
797
+ },
798
+ _setData(result) {
799
+ if (this.showPagination) {
800
+ let total = 0
801
+ let data = []
802
+ if (result) {
803
+ total = parseInt(result.total) || 0
804
+ data = result.results || []
805
+ }
806
+ this.tableData = data
807
+ this.tableTotal = total
808
+ } else {
809
+ this.tableData = result || []
810
+ }
811
+ this.selecteds = []
812
+ this.$control && this.$control.clearSelection()
813
+ if (this.multiple) {
814
+ this.$emit('selection-change', {
815
+ selection: [],
816
+ data: this.tableData
817
+ })
818
+ }
819
+ this.$emit('filled', {
820
+ data: this.tableData
821
+ })
822
+ },
823
+ toggleRowSelection(row, isSelected) {
824
+ this.$control && this.$control.toggleRowSelection(row, isSelected)
825
+ },
826
+ setCurrentRow(row) {
827
+ this.$control && this.$control.setCurrentRow(row)
828
+ },
829
+ setSelectionRows (rows, isSelected = true) {
830
+ this.$control && this.$control.setCheckboxRow(rows, isSelected)
831
+ },
832
+ setSelectRow (row) {
833
+ this.$control && this.$control.setRadioRow(row)
834
+ },
835
+ doLayout () {
836
+ let tableMaxHeight = null
837
+ if (this.maxHeight) {
838
+ const parentHeight = this.$el.parentNode.clientHeight || 0
839
+ const wrapHeight = this.$refs.wrap ? this.$refs.wrap.offsetHeight : 0
840
+ const paginationHeight = this.$refs.pagination ? this.$refs.pagination.offsetHeight : 0
841
+ if (this.maxHeight.indexOf('%')) {
842
+ tableMaxHeight = parentHeight - wrapHeight - paginationHeight * (parseInt(this.maxHeight) / 100) + ''
843
+ } else {
844
+ tableMaxHeight = this.maxHeight - wrapHeight - paginationHeight + ''
845
+ }
846
+ }
847
+ this.tableMaxHeight = tableMaxHeight
848
+ },
849
+ addViewPanel (data) {
850
+ if (!data || !data.name) {
851
+ throw new Error('缺少必须参数')
852
+ }
853
+ if (this.viewPanelData.some(v => v.name === data.name)) {
854
+ return
855
+ }
856
+ this.viewPanelData.push(data)
857
+ },
858
+ removeViewPanel (name) {
859
+ let index = -1
860
+ this.viewPanelData.some((v, i) => {
861
+ if (v.name === name) {
862
+ index = i
863
+ return true
864
+ }
865
+ })
866
+ if (index < 0) {
867
+ return
868
+ }
869
+ this.viewPanelData.splice(index, 1)
870
+ },
871
+ handleGridViewSelectionChange (evt) {
872
+ this.selecteds = evt.selection || []
873
+ this.$emit('selection-change', {
874
+ selection: evt.selection,
875
+ data: this.tableData
876
+ })
877
+ },
878
+ handleCardViewSelectionChange (evt) {
879
+ this.selecteds = evt.selection || []
880
+ this.$emit('selection-change', {
881
+ selection: evt.selection,
882
+ data: this.tableData
883
+ })
884
+ },
885
+ handleTableMounted () {
886
+ this.$control = this.$refs.table
887
+ }
888
+ }
889
+ }
890
+ </script>
891
+ <style lang="less">
892
+ body {
893
+ .is--checked.vxe-checkbox,
894
+ .is--checked.vxe-checkbox .vxe-checkbox--icon,
895
+ .is--checked.vxe-custom--checkbox-option,
896
+ .is--checked.vxe-custom--checkbox-option .vxe-checkbox--icon,
897
+ .is--checked.vxe-export--panel-column-option,
898
+ .is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,
899
+ .is--checked.vxe-table--filter-option,
900
+ .is--checked.vxe-table--filter-option .vxe-checkbox--icon,
901
+ .is--indeterminate.vxe-checkbox,
902
+ .is--indeterminate.vxe-checkbox .vxe-checkbox--icon,
903
+ .is--indeterminate.vxe-custom--checkbox-option,
904
+ .is--indeterminate.vxe-custom--checkbox-option .vxe-checkbox--icon,
905
+ .is--indeterminate.vxe-export--panel-column-option,
906
+ .is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,
907
+ .is--indeterminate.vxe-table--filter-option,
908
+ .is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,
909
+ .vxe-table--render-default .is--checked.vxe-cell--checkbox,
910
+ .vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,
911
+ .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,
912
+ .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon {
913
+ color: #0052cc;
914
+ }
915
+ .vxe-table--render-default .vxe-cell--checkbox.is--disabled .vxe-checkbox--icon{
916
+ color: #dcdfe6;
917
+ }
918
+ }
919
+ .ui-grid{
920
+ position: relative;
921
+ display: flex;
922
+ flex-direction: column;
923
+ [class*=vxe-], [class*=vxe-] :after, [class*=vxe-] :before, [class*=vxe-]:after, [class*=vxe-]:before{
924
+ box-sizing: border-box;
925
+ }
926
+ .ui-grid-pagination{
927
+ padding-top: 0;
928
+ padding-bottom: 0;
929
+ }
930
+ }
931
+ .ui-grid__wrap {
932
+ padding-bottom: 12px;
933
+ position: relative;
934
+ }
935
+ .ui-grid__header{
936
+ display: flex;
937
+ flex-direction: row;
938
+ align-items: center;
939
+ justify-content: space-between;
940
+ min-height: 28px;
941
+ position: relative;
942
+ z-index: 3;
943
+ }
944
+ .ui-grid__sort{
945
+ padding-top: 4px;
946
+ padding-bottom: 4px;
947
+ }
948
+ .ui-grid__filter{
949
+ // display: flex;
950
+ // flex-direction: row;
951
+ // align-items: center;
952
+ flex: 1;
953
+ }
954
+ .ui-grid__filter-item{
955
+ vertical-align: top;
956
+ margin-right: 12px;
957
+ }
958
+ .ui-grid__pagination-inner{
959
+ padding: 9px 0 0;
960
+ background-color: #fff;
961
+ position: relative;
962
+ z-index: 3;
963
+ display: flex;
964
+ flex-direction: row;
965
+ align-items: center;
966
+ }
967
+ .ui-grid__pagination-control{
968
+ flex: 1;
969
+ min-width: 0;
970
+ }
971
+ .ui-grid__global{
972
+ display: flex;
973
+ flex-direction: row;
974
+ justify-content: flex-end;
975
+ align-items: center;
976
+ }
977
+ .ui-grid-global-toolbar{
978
+ .ui-toolbar-item{
979
+ line-height: 1;
980
+ }
981
+ }
982
+ .ui-grid__more-toolbar,
983
+ .ui-grid__global-toolbar{
984
+ display: inline-block;
985
+ margin-left: 12px;
986
+ }
987
+ .ui-grid__batch{
988
+ margin-bottom: 12px;
989
+ }
990
+ .ui-grid__loading{
991
+ position: absolute;
992
+ top: 0;
993
+ right: 0;
994
+ bottom: 0;
995
+ left: 0;
996
+ z-index: 100;
997
+ background-color: #fff;
998
+ display: flex;
999
+ flex-direction: column;
1000
+ justify-content: center;
1001
+ align-items: center;
1002
+ opacity: .8;
1003
+ line-height: 1em;
1004
+ &.v-enter{
1005
+ opacity: 0;
1006
+ }
1007
+ &.v-enter-active{
1008
+ transition: all .3s;
1009
+ }
1010
+ &.v-enter-active{
1011
+ opacity: 0.8;
1012
+ }
1013
+ &.v-leave{
1014
+ opacity: 0.8;
1015
+ }
1016
+ &.v-leave-active{
1017
+ transition: all .3s;
1018
+ }
1019
+ &.v-leave-active{
1020
+ opacity: 0;
1021
+ }
1022
+ }
1023
+ @keyframes grid-refreshing{
1024
+ 0% {
1025
+ transform: rotate(0);
1026
+ }
1027
+ 100% {
1028
+ transform: rotate(1turn);
1029
+ }
1030
+ }
1031
+ .ui-grid__refresh{
1032
+ margin-left: 12px;
1033
+ width: 28px;
1034
+ height: 28px;
1035
+ line-height: 28px;
1036
+ cursor: pointer;
1037
+ border-radius: 4px;
1038
+ transition: all .25s;
1039
+ text-align: center;
1040
+ &:hover {
1041
+ background-color: #f8f8f9;
1042
+ }
1043
+ &:after {
1044
+ content: '';
1045
+ width: 18px;
1046
+ height: 18px;
1047
+ display: inline-block;
1048
+ vertical-align: top;
1049
+ margin-top: 5px;
1050
+ background: url('./icons/refresh.svg') no-repeat 50% 50%;
1051
+ background-size: 16px;
1052
+ }
1053
+ &.is-loading {
1054
+ &:after {
1055
+ animation: grid-refreshing 1s linear infinite;
1056
+ }
1057
+ }
1058
+ }
1059
+ .ui-grid__table{
1060
+ position: relative;
1061
+ flex: 1;
1062
+ min-height: 0;
1063
+ }
1064
+ .ui-grid__content{
1065
+ position: relative;
1066
+ flex: 1;
1067
+ min-height: 0;
1068
+ display: flex;
1069
+ flex-direction: column;
1070
+ }
1071
+ .ui-grid__pagination-check{
1072
+ display: flex;
1073
+ flex-direction: row;
1074
+ align-items: center;
1075
+ padding: 0 20px;
1076
+ position: relative;
1077
+ margin-right: 2px;
1078
+ height: 18px;
1079
+ line-height: 18px;
1080
+ &:after {
1081
+ content: '';
1082
+ position: absolute;
1083
+ width: 1px;
1084
+ height: 18px;
1085
+ background-color: #eee;
1086
+ top: 50%;
1087
+ margin-top: -9px;
1088
+ right: 0;
1089
+ }
1090
+ }
1091
+ .ui-grid__pagination-check-input{
1092
+ height: 18px;
1093
+ line-height: 18px;
1094
+ display: inline-block;
1095
+ .vxe-checkbox{
1096
+ vertical-align: top;
1097
+ }
1098
+ .vxe-checkbox:not(.is--disabled)>input:focus+.vxe-checkbox--icon{
1099
+ box-shadow: none;
1100
+ }
1101
+ }
1102
+ .ui-grid__sort{
1103
+ margin-left: 12px;
1104
+ }
1105
+ .ui-grid-view--card {
1106
+ .ui-grid__pagination{
1107
+ border-top: 1px solid #eee;
1108
+ margin-top: 12px;
1109
+ .ui-grid__pagination-check{
1110
+ padding-left: 0;
1111
+ }
1112
+ }
1113
+ }
1114
+ </style>