eoss-ui 0.3.97

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 (378) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/README.md +30 -0
  3. package/lib/button-group.js +2857 -0
  4. package/lib/button.js +2884 -0
  5. package/lib/card.js +603 -0
  6. package/lib/cascader.js +373 -0
  7. package/lib/checkbox-group.js +3099 -0
  8. package/lib/clients.js +375 -0
  9. package/lib/config/api.js +205 -0
  10. package/lib/data-table-form.js +3848 -0
  11. package/lib/data-table.js +6315 -0
  12. package/lib/date-picker.js +2821 -0
  13. package/lib/dialog.js +3730 -0
  14. package/lib/enterprise.js +372 -0
  15. package/lib/eoss-ui.common.js +65365 -0
  16. package/lib/error-page.js +293 -0
  17. package/lib/flow-group.js +4200 -0
  18. package/lib/flow-list.js +4350 -0
  19. package/lib/flow.js +12893 -0
  20. package/lib/form.js +15635 -0
  21. package/lib/handle-user.js +2900 -0
  22. package/lib/handler.js +3118 -0
  23. package/lib/index.js +1 -0
  24. package/lib/input-number.js +2743 -0
  25. package/lib/input.js +2935 -0
  26. package/lib/label.js +411 -0
  27. package/lib/login.js +5048 -0
  28. package/lib/main.js +5816 -0
  29. package/lib/mainComp.js +6530 -0
  30. package/lib/menu.js +529 -0
  31. package/lib/nav.js +3048 -0
  32. package/lib/notify.js +1079 -0
  33. package/lib/page.js +3036 -0
  34. package/lib/pagination.js +354 -0
  35. package/lib/player.js +2904 -0
  36. package/lib/qr-code.js +2860 -0
  37. package/lib/radio-group.js +3091 -0
  38. package/lib/select-ganged.js +3242 -0
  39. package/lib/select.js +3295 -0
  40. package/lib/selector-panel.js +4425 -0
  41. package/lib/selector.js +3722 -0
  42. package/lib/sizer.js +3067 -0
  43. package/lib/steps.js +2943 -0
  44. package/lib/switch.js +2784 -0
  45. package/lib/table-form.js +6211 -0
  46. package/lib/tabs-panel.js +274 -0
  47. package/lib/tabs.js +4988 -0
  48. package/lib/theme-chalk/base.css +1 -0
  49. package/lib/theme-chalk/button-group.css +1 -0
  50. package/lib/theme-chalk/button.css +0 -0
  51. package/lib/theme-chalk/card.css +1 -0
  52. package/lib/theme-chalk/cascader.css +0 -0
  53. package/lib/theme-chalk/checkbox-group.css +1 -0
  54. package/lib/theme-chalk/clients.css +1 -0
  55. package/lib/theme-chalk/data-table-form.css +1 -0
  56. package/lib/theme-chalk/data-table.css +1 -0
  57. package/lib/theme-chalk/date-picker.css +1 -0
  58. package/lib/theme-chalk/dialog.css +1 -0
  59. package/lib/theme-chalk/enterprise.css +1 -0
  60. package/lib/theme-chalk/error-page.css +1 -0
  61. package/lib/theme-chalk/flow-chart.css +0 -0
  62. package/lib/theme-chalk/flow-group.css +1 -0
  63. package/lib/theme-chalk/flow-list.css +1 -0
  64. package/lib/theme-chalk/flow.css +1 -0
  65. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  66. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  67. package/lib/theme-chalk/form.css +1 -0
  68. package/lib/theme-chalk/handle-user.css +1 -0
  69. package/lib/theme-chalk/handler.css +1 -0
  70. package/lib/theme-chalk/icon.css +1 -0
  71. package/lib/theme-chalk/index.css +1 -0
  72. package/lib/theme-chalk/input-number.css +0 -0
  73. package/lib/theme-chalk/input.css +1 -0
  74. package/lib/theme-chalk/label.css +1 -0
  75. package/lib/theme-chalk/login.css +1 -0
  76. package/lib/theme-chalk/main.css +1 -0
  77. package/lib/theme-chalk/mainComp.css +0 -0
  78. package/lib/theme-chalk/menu.css +1 -0
  79. package/lib/theme-chalk/nav.css +1 -0
  80. package/lib/theme-chalk/notify.css +0 -0
  81. package/lib/theme-chalk/page.css +1 -0
  82. package/lib/theme-chalk/pagination.css +1 -0
  83. package/lib/theme-chalk/player.css +1 -0
  84. package/lib/theme-chalk/qr-code.css +1 -0
  85. package/lib/theme-chalk/radio-group.css +1 -0
  86. package/lib/theme-chalk/radio.css +1 -0
  87. package/lib/theme-chalk/select-ganged.css +1 -0
  88. package/lib/theme-chalk/select.css +0 -0
  89. package/lib/theme-chalk/selector-panel.css +1 -0
  90. package/lib/theme-chalk/selector.css +1 -0
  91. package/lib/theme-chalk/sizer.css +1 -0
  92. package/lib/theme-chalk/steps.css +1 -0
  93. package/lib/theme-chalk/switch.css +1 -0
  94. package/lib/theme-chalk/table-form.css +0 -0
  95. package/lib/theme-chalk/tabs-panel.css +0 -0
  96. package/lib/theme-chalk/tabs.css +1 -0
  97. package/lib/theme-chalk/tips.css +1 -0
  98. package/lib/theme-chalk/toolbar.css +1 -0
  99. package/lib/theme-chalk/tree-group.css +1 -0
  100. package/lib/theme-chalk/tree.css +1 -0
  101. package/lib/theme-chalk/upload.css +1 -0
  102. package/lib/theme-chalk/wujie.css +0 -0
  103. package/lib/theme-chalk/wxlogin.css +1 -0
  104. package/lib/tips.js +2830 -0
  105. package/lib/toolbar.js +531 -0
  106. package/lib/tree-group.js +3373 -0
  107. package/lib/tree.js +3482 -0
  108. package/lib/upload.js +3913 -0
  109. package/lib/utils/bus.js +9 -0
  110. package/lib/utils/date-util.js +318 -0
  111. package/lib/utils/http.js +58 -0
  112. package/lib/utils/rules.js +19 -0
  113. package/lib/utils/store.js +22 -0
  114. package/lib/utils/util.js +2056 -0
  115. package/lib/wujie.js +2845 -0
  116. package/lib/wxlogin.js +2799 -0
  117. package/package.json +151 -0
  118. package/packages/button/index.js +5 -0
  119. package/packages/button/src/main.vue +264 -0
  120. package/packages/button-group/index.js +5 -0
  121. package/packages/button-group/src/main.vue +130 -0
  122. package/packages/card/index.js +5 -0
  123. package/packages/card/src/main.vue +144 -0
  124. package/packages/cascader/index.js +5 -0
  125. package/packages/cascader/src/main.vue +144 -0
  126. package/packages/checkbox-group/index.js +5 -0
  127. package/packages/checkbox-group/src/main.vue +285 -0
  128. package/packages/clients/index.js +5 -0
  129. package/packages/clients/src/main.vue +50 -0
  130. package/packages/data-table/index.js +5 -0
  131. package/packages/data-table/src/children.vue +40 -0
  132. package/packages/data-table/src/column.vue +796 -0
  133. package/packages/data-table/src/main copy.vue +1383 -0
  134. package/packages/data-table/src/main.vue +1229 -0
  135. package/packages/data-table/src/mixins/table.js +12 -0
  136. package/packages/data-table/src/sizer.vue +160 -0
  137. package/packages/data-table-form/index.js +5 -0
  138. package/packages/data-table-form/src/colgroup.vue +17 -0
  139. package/packages/data-table-form/src/main.vue +167 -0
  140. package/packages/data-table-form/src/table.vue +192 -0
  141. package/packages/data-table-form/src/tbody.vue +219 -0
  142. package/packages/data-table-form/src/thead.vue +68 -0
  143. package/packages/date-picker/index.js +5 -0
  144. package/packages/date-picker/src/main.vue +185 -0
  145. package/packages/dialog/index.js +5 -0
  146. package/packages/dialog/src/main.vue +442 -0
  147. package/packages/enterprise/index.js +5 -0
  148. package/packages/enterprise/src/main.vue +66 -0
  149. package/packages/error-page/index.js +5 -0
  150. package/packages/error-page/src/main.vue +44 -0
  151. package/packages/flow/index.js +5 -0
  152. package/packages/flow/src/component/CommonOpinions.vue +290 -0
  153. package/packages/flow/src/component/CustomPreset.vue +311 -0
  154. package/packages/flow/src/component/FileList.vue +97 -0
  155. package/packages/flow/src/component/Preset.vue +253 -0
  156. package/packages/flow/src/component/SendMsg.vue +221 -0
  157. package/packages/flow/src/component/TimeLimit.vue +190 -0
  158. package/packages/flow/src/component/taskUnionExamine.vue +507 -0
  159. package/packages/flow/src/form.vue +120 -0
  160. package/packages/flow/src/main.vue +2107 -0
  161. package/packages/flow/src/processForm.vue +866 -0
  162. package/packages/flow/src/processReject.vue +262 -0
  163. package/packages/flow/src/selectUser.vue +425 -0
  164. package/packages/flow/src/startTaskRead.vue +556 -0
  165. package/packages/flow/src/table.vue +51 -0
  166. package/packages/flow-group/index.js +5 -0
  167. package/packages/flow-group/src/main.vue +540 -0
  168. package/packages/flow-list/index.js +5 -0
  169. package/packages/flow-list/src/flow-table.vue +445 -0
  170. package/packages/flow-list/src/main.vue +456 -0
  171. package/packages/form/index.js +5 -0
  172. package/packages/form/src/main.vue +4429 -0
  173. package/packages/form/src/table.vue +1196 -0
  174. package/packages/handle-user/index.js +5 -0
  175. package/packages/handle-user/src/main.vue +122 -0
  176. package/packages/handler/index.js +5 -0
  177. package/packages/handler/src/main.vue +306 -0
  178. package/packages/input/index.js +5 -0
  179. package/packages/input/src/main.vue +307 -0
  180. package/packages/input-number/index.js +5 -0
  181. package/packages/input-number/src/main.vue +106 -0
  182. package/packages/label/index.js +5 -0
  183. package/packages/label/src/main.vue +208 -0
  184. package/packages/login/index.js +5 -0
  185. package/packages/login/src/main.vue +1193 -0
  186. package/packages/login/src/resetPassword.vue +332 -0
  187. package/packages/main/index.js +5 -0
  188. package/packages/main/src/main.vue +1496 -0
  189. package/packages/main/src/message.vue +239 -0
  190. package/packages/main/src/notice.vue +145 -0
  191. package/packages/main/src/settings.vue +105 -0
  192. package/packages/main/src/userinfo.vue +430 -0
  193. package/packages/mainComp/index.js +5 -0
  194. package/packages/mainComp/src/async-component/index.vue +85 -0
  195. package/packages/mainComp/src/main.vue +1934 -0
  196. package/packages/mainComp/src/message.vue +239 -0
  197. package/packages/mainComp/src/notice.vue +152 -0
  198. package/packages/mainComp/src/settings.vue +105 -0
  199. package/packages/mainComp/src/userinfo.vue +423 -0
  200. package/packages/menu/index.js +5 -0
  201. package/packages/menu/src/main.vue +401 -0
  202. package/packages/nav/index.js +5 -0
  203. package/packages/nav/src/main.vue +250 -0
  204. package/packages/notify/index.js +5 -0
  205. package/packages/notify/src/main.vue +538 -0
  206. package/packages/page/index.js +5 -0
  207. package/packages/page/src/main.vue +167 -0
  208. package/packages/pagination/index.js +5 -0
  209. package/packages/pagination/src/main.vue +77 -0
  210. package/packages/player/index.js +5 -0
  211. package/packages/player/src/main.vue +194 -0
  212. package/packages/qr-code/index.js +5 -0
  213. package/packages/qr-code/src/main.vue +154 -0
  214. package/packages/radio/index.js +5 -0
  215. package/packages/radio/src/main.vue +259 -0
  216. package/packages/radio-group/index.js +6 -0
  217. package/packages/radio-group/src/main.vue +267 -0
  218. package/packages/select/index.js +5 -0
  219. package/packages/select/src/main.vue +683 -0
  220. package/packages/select-ganged/index.js +5 -0
  221. package/packages/select-ganged/src/main.vue +686 -0
  222. package/packages/selector/index.js +5 -0
  223. package/packages/selector/src/main.vue +588 -0
  224. package/packages/selector-panel/index.js +5 -0
  225. package/packages/selector-panel/src/main.vue +968 -0
  226. package/packages/selector-panel/src/selection.vue +142 -0
  227. package/packages/selector-panel/src/tree.vue +129 -0
  228. package/packages/sizer/index.js +5 -0
  229. package/packages/sizer/src/main.vue +254 -0
  230. package/packages/steps/index.js +5 -0
  231. package/packages/steps/src/main.vue +175 -0
  232. package/packages/switch/index.js +5 -0
  233. package/packages/switch/src/main.vue +154 -0
  234. package/packages/table-form/index.js +5 -0
  235. package/packages/tabs/index.js +5 -0
  236. package/packages/tabs/src/main.vue +749 -0
  237. package/packages/tabs-panel/index.js +5 -0
  238. package/packages/tabs-panel/src/main.vue +18 -0
  239. package/packages/theme-chalk/README.md +33 -0
  240. package/packages/theme-chalk/lib/base.css +1 -0
  241. package/packages/theme-chalk/lib/button-group.css +1 -0
  242. package/packages/theme-chalk/lib/button.css +0 -0
  243. package/packages/theme-chalk/lib/card.css +1 -0
  244. package/packages/theme-chalk/lib/cascader.css +0 -0
  245. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  246. package/packages/theme-chalk/lib/clients.css +1 -0
  247. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  248. package/packages/theme-chalk/lib/data-table.css +1 -0
  249. package/packages/theme-chalk/lib/date-picker.css +1 -0
  250. package/packages/theme-chalk/lib/dialog.css +1 -0
  251. package/packages/theme-chalk/lib/enterprise.css +1 -0
  252. package/packages/theme-chalk/lib/error-page.css +1 -0
  253. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  254. package/packages/theme-chalk/lib/flow-group.css +1 -0
  255. package/packages/theme-chalk/lib/flow-list.css +1 -0
  256. package/packages/theme-chalk/lib/flow.css +1 -0
  257. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  258. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  259. package/packages/theme-chalk/lib/form.css +1 -0
  260. package/packages/theme-chalk/lib/handle-user.css +1 -0
  261. package/packages/theme-chalk/lib/handler.css +1 -0
  262. package/packages/theme-chalk/lib/icon.css +1 -0
  263. package/packages/theme-chalk/lib/index.css +1 -0
  264. package/packages/theme-chalk/lib/input-number.css +0 -0
  265. package/packages/theme-chalk/lib/input.css +1 -0
  266. package/packages/theme-chalk/lib/label.css +1 -0
  267. package/packages/theme-chalk/lib/login.css +1 -0
  268. package/packages/theme-chalk/lib/main.css +1 -0
  269. package/packages/theme-chalk/lib/mainComp.css +0 -0
  270. package/packages/theme-chalk/lib/menu.css +1 -0
  271. package/packages/theme-chalk/lib/nav.css +1 -0
  272. package/packages/theme-chalk/lib/notify.css +0 -0
  273. package/packages/theme-chalk/lib/page.css +1 -0
  274. package/packages/theme-chalk/lib/pagination.css +1 -0
  275. package/packages/theme-chalk/lib/player.css +1 -0
  276. package/packages/theme-chalk/lib/qr-code.css +1 -0
  277. package/packages/theme-chalk/lib/radio-group.css +1 -0
  278. package/packages/theme-chalk/lib/radio.css +1 -0
  279. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  280. package/packages/theme-chalk/lib/select.css +0 -0
  281. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  282. package/packages/theme-chalk/lib/selector.css +1 -0
  283. package/packages/theme-chalk/lib/sizer.css +1 -0
  284. package/packages/theme-chalk/lib/steps.css +1 -0
  285. package/packages/theme-chalk/lib/switch.css +1 -0
  286. package/packages/theme-chalk/lib/table-form.css +0 -0
  287. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  288. package/packages/theme-chalk/lib/tabs.css +1 -0
  289. package/packages/theme-chalk/lib/tips.css +1 -0
  290. package/packages/theme-chalk/lib/toolbar.css +1 -0
  291. package/packages/theme-chalk/lib/tree-group.css +1 -0
  292. package/packages/theme-chalk/lib/tree.css +1 -0
  293. package/packages/theme-chalk/lib/upload.css +1 -0
  294. package/packages/theme-chalk/lib/wujie.css +0 -0
  295. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  296. package/packages/theme-chalk/package.json +35 -0
  297. package/packages/theme-chalk/src/base.scss +165 -0
  298. package/packages/theme-chalk/src/button-group.scss +9 -0
  299. package/packages/theme-chalk/src/button.scss +0 -0
  300. package/packages/theme-chalk/src/card.scss +55 -0
  301. package/packages/theme-chalk/src/cascader.scss +0 -0
  302. package/packages/theme-chalk/src/checkbox-group.scss +8 -0
  303. package/packages/theme-chalk/src/clients.scss +72 -0
  304. package/packages/theme-chalk/src/common/var.scss +1516 -0
  305. package/packages/theme-chalk/src/data-table-form.scss +55 -0
  306. package/packages/theme-chalk/src/data-table.scss +202 -0
  307. package/packages/theme-chalk/src/date-picker.scss +8 -0
  308. package/packages/theme-chalk/src/dialog.scss +52 -0
  309. package/packages/theme-chalk/src/enterprise.scss +5 -0
  310. package/packages/theme-chalk/src/error-page.scss +18 -0
  311. package/packages/theme-chalk/src/flow-chart.scss +0 -0
  312. package/packages/theme-chalk/src/flow-group.scss +101 -0
  313. package/packages/theme-chalk/src/flow-list.scss +41 -0
  314. package/packages/theme-chalk/src/flow.scss +285 -0
  315. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  316. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  317. package/packages/theme-chalk/src/form.scss +451 -0
  318. package/packages/theme-chalk/src/handle-user.scss +40 -0
  319. package/packages/theme-chalk/src/handler.scss +131 -0
  320. package/packages/theme-chalk/src/icon.scss +1714 -0
  321. package/packages/theme-chalk/src/index.scss +50 -0
  322. package/packages/theme-chalk/src/input-number.scss +0 -0
  323. package/packages/theme-chalk/src/input.scss +3 -0
  324. package/packages/theme-chalk/src/label.scss +24 -0
  325. package/packages/theme-chalk/src/login.scss +490 -0
  326. package/packages/theme-chalk/src/main.scss +483 -0
  327. package/packages/theme-chalk/src/mainComp.scss +0 -0
  328. package/packages/theme-chalk/src/menu.scss +201 -0
  329. package/packages/theme-chalk/src/mixins/color.scss +117 -0
  330. package/packages/theme-chalk/src/mixins/mixins.scss +25 -0
  331. package/packages/theme-chalk/src/nav.scss +73 -0
  332. package/packages/theme-chalk/src/notify.scss +0 -0
  333. package/packages/theme-chalk/src/page.scss +3 -0
  334. package/packages/theme-chalk/src/pagination.scss +14 -0
  335. package/packages/theme-chalk/src/player.scss +9 -0
  336. package/packages/theme-chalk/src/qr-code.scss +17 -0
  337. package/packages/theme-chalk/src/radio-group.scss +9 -0
  338. package/packages/theme-chalk/src/radio.scss +3 -0
  339. package/packages/theme-chalk/src/select-ganged.scss +9 -0
  340. package/packages/theme-chalk/src/select.scss +0 -0
  341. package/packages/theme-chalk/src/selector-panel.scss +203 -0
  342. package/packages/theme-chalk/src/selector.scss +85 -0
  343. package/packages/theme-chalk/src/sizer.scss +36 -0
  344. package/packages/theme-chalk/src/steps.scss +88 -0
  345. package/packages/theme-chalk/src/switch.scss +3 -0
  346. package/packages/theme-chalk/src/table-form.scss +1 -0
  347. package/packages/theme-chalk/src/tabs-panel.scss +0 -0
  348. package/packages/theme-chalk/src/tabs.scss +91 -0
  349. package/packages/theme-chalk/src/tips.scss +7 -0
  350. package/packages/theme-chalk/src/toolbar.scss +121 -0
  351. package/packages/theme-chalk/src/tree-group.scss +64 -0
  352. package/packages/theme-chalk/src/tree.scss +140 -0
  353. package/packages/theme-chalk/src/upload.scss +131 -0
  354. package/packages/theme-chalk/src/wujie.scss +0 -0
  355. package/packages/theme-chalk/src/wxlogin.scss +3 -0
  356. package/packages/tips/index.js +5 -0
  357. package/packages/tips/src/main.vue +126 -0
  358. package/packages/toolbar/index.js +5 -0
  359. package/packages/toolbar/src/main.vue +377 -0
  360. package/packages/tree/index.js +5 -0
  361. package/packages/tree/src/main.vue +636 -0
  362. package/packages/tree-group/index.js +5 -0
  363. package/packages/tree-group/src/main.vue +435 -0
  364. package/packages/upload/index.js +5 -0
  365. package/packages/upload/src/main.vue +1033 -0
  366. package/packages/upload/src/picture.js +15 -0
  367. package/packages/wujie/index.js +5 -0
  368. package/packages/wujie/src/main.vue +137 -0
  369. package/packages/wxlogin/index.js +5 -0
  370. package/packages/wxlogin/src/main.vue +110 -0
  371. package/src/config/api.js +211 -0
  372. package/src/index.js +167 -0
  373. package/src/utils/bus.js +3 -0
  374. package/src/utils/date-util.js +312 -0
  375. package/src/utils/http.js +50 -0
  376. package/src/utils/rules.js +18 -0
  377. package/src/utils/store.js +21 -0
  378. package/src/utils/util.js +2105 -0
@@ -0,0 +1,636 @@
1
+ <template>
2
+ <div
3
+ v-if="!hide"
4
+ v-show="display"
5
+ class="es-tree"
6
+ v-loading="loading"
7
+ element-loading-text="加载中..."
8
+ element-loading-spinner="el-icon-loading"
9
+ element-loading-background="rgba(0, 0, 0, 0.65)"
10
+ >
11
+ <div v-if="title" class="es-tree-title">{{ title }}</div>
12
+ <div class="es-tree-search" v-if="showSearch || $slots.filtrate">
13
+ <div class="es-tree-filtrate">
14
+ <slot name="filtrate"></slot>
15
+ </div>
16
+ <template v-if="showSearch">
17
+ <es-select
18
+ v-if="search.type && search.type === 'select'"
19
+ class="es-tree-search-item"
20
+ size="medium"
21
+ :label-key="labelKey"
22
+ :value-key="valueKey"
23
+ v-bind="search"
24
+ v-model="searchValue"
25
+ @change="handleChange"
26
+ ></es-select>
27
+ <es-input
28
+ v-else
29
+ v-model="searchValue"
30
+ class="es-tree-search-item"
31
+ size="medium"
32
+ :placeholder="search.placeholder"
33
+ >
34
+ <template slot="append">
35
+ <el-button
36
+ v-if="isRemote"
37
+ icon="el-icon-search"
38
+ type="primary"
39
+ size="medium"
40
+ @click="handleSearch"
41
+ ></el-button>
42
+ </template>
43
+ </es-input>
44
+ </template>
45
+ </div>
46
+ <div class="es-tree-content">
47
+ <el-scrollbar class="es-scrollbar">
48
+ <el-tree
49
+ ref="oaTree"
50
+ v-bind="{ ...$attrs, ...config }"
51
+ :class="{ 'es-filter-tree': true, 'es-unset': !tips }"
52
+ :empty-text="!loading ? '暂无数据' : ''"
53
+ :node-key="nodeKey"
54
+ :indent="12"
55
+ :data="treeData"
56
+ :props="defaultProps"
57
+ :filter-node-method="filterNode"
58
+ :expand-on-click-node="false"
59
+ :highlight-current="true"
60
+ :show-checkbox="showCheckbox"
61
+ v-on="{
62
+ ...$listeners,
63
+ 'node-click': handleNodeClick,
64
+ 'check-change': handleCheckChange,
65
+ 'node-expand': handleExpand
66
+ }"
67
+ >
68
+ <tree-label
69
+ :node="node"
70
+ :data="data"
71
+ slot-scope="{ node, data }"
72
+ :tips="tips"
73
+ :icon="icon"
74
+ ></tree-label>
75
+ </el-tree>
76
+ </el-scrollbar>
77
+ </div>
78
+ </div>
79
+ </template>
80
+
81
+ <script>
82
+ import { getOrgMainTree } from 'eoss-ui/src/config/api.js';
83
+ import util from 'eoss-ui/src/utils/util';
84
+ export default {
85
+ name: 'EsTree',
86
+ inheritAttrs: false,
87
+ components: {
88
+ treeLabel: {
89
+ functional: true,
90
+ props: {
91
+ node: Object,
92
+ data: Object,
93
+ tips: Boolean,
94
+ icon: Boolean
95
+ },
96
+ render: (h, res) => {
97
+ let label = h(
98
+ 'div',
99
+ {
100
+ class: [
101
+ {
102
+ 'es-icon-node': res.props.icon,
103
+ 'es-tree-parent': !res.props.node.isLeaf,
104
+ 'es-icon-open': res.props.node.expanded
105
+ },
106
+ res.props.data.attributes &&
107
+ res.props.data.attributes.isentity === '0'
108
+ ? 'es-icon-group'
109
+ : res.props.data.attributes && res.props.data.attributes.orgType
110
+ ? res.props.data.attributes.orgType
111
+ : res.props.data.iconSkin
112
+ ? 'es-icon-' + res.props.data.iconSkin
113
+ : ''
114
+ ]
115
+ },
116
+ [h('div', { class: 'es-tree-label' }, [res.props.node.label])]
117
+ );
118
+ if (res.props.tips) {
119
+ return h(
120
+ 'el-tooltip',
121
+ {
122
+ props: {
123
+ content: res.props.node.label,
124
+ placement: 'right',
125
+ auto: true
126
+ }
127
+ },
128
+ [label]
129
+ );
130
+ }
131
+ return label;
132
+ }
133
+ }
134
+ },
135
+ inject: {
136
+ esPage: {
137
+ default: ''
138
+ }
139
+ },
140
+ props: {
141
+ host: {
142
+ type: String,
143
+ default: ''
144
+ },
145
+ title: {
146
+ type: String,
147
+ default: ''
148
+ },
149
+ display: {
150
+ type: Boolean,
151
+ default: true
152
+ },
153
+ hide: {
154
+ type: Boolean,
155
+ default: false
156
+ },
157
+ // 选择项本地数据
158
+ data: Array,
159
+ icon: {
160
+ type: Boolean,
161
+ default: true
162
+ },
163
+ props: Object,
164
+ // 选择项远程地址
165
+ url: {
166
+ type: String,
167
+ default: getOrgMainTree
168
+ },
169
+ system: {
170
+ type: Boolean,
171
+ default: false
172
+ },
173
+ tips: {
174
+ type: Boolean,
175
+ default: true
176
+ },
177
+ labelKey: String,
178
+ valueKey: String,
179
+ search: {
180
+ type: Object,
181
+ default() {
182
+ return {
183
+ // text (文本框),select (下拉选择)
184
+ type: 'text',
185
+ // 搜索关键字,请求时作为参数名
186
+ name: 'querykeywords',
187
+ value: '',
188
+ // 下拉选择框的选项数据
189
+ data: '',
190
+ placeholder: ''
191
+ };
192
+ }
193
+ },
194
+ showSearch: {
195
+ type: Boolean,
196
+ default: false
197
+ },
198
+ //是否远程
199
+ remote: {
200
+ type: Boolean,
201
+ default: true
202
+ },
203
+ //展开节点回调函数
204
+ onExpand: Function,
205
+ //懒加载
206
+ lazy: {
207
+ type: Boolean,
208
+ default: true
209
+ },
210
+ onChange: Function,
211
+ onSearch: Function,
212
+
213
+ // 排序字段
214
+ sort: {
215
+ type: String,
216
+ default: ''
217
+ },
218
+ // 排序方式 asc (升序), desc (降序)
219
+ order: {
220
+ type: String,
221
+ default: 'asc'
222
+ },
223
+ iconClass: {
224
+ type: String,
225
+ default: ''
226
+ },
227
+ config: {
228
+ type: Object,
229
+ default() {
230
+ return {};
231
+ }
232
+ },
233
+ showCheckbox: {
234
+ type: Boolean,
235
+ default: false
236
+ },
237
+ multiple: {
238
+ type: Boolean,
239
+ default: false
240
+ },
241
+ limit: {
242
+ type: Number,
243
+ default: 0
244
+ },
245
+ // 父节点配置项
246
+ parent: {
247
+ type: Object,
248
+ default() {
249
+ return {
250
+ click: true,
251
+ // 是否允许父节点显示选择框
252
+ checked: ''
253
+ };
254
+ }
255
+ },
256
+ load: {
257
+ type: Function,
258
+ default() {
259
+ return () => {};
260
+ }
261
+ },
262
+ // 树形数据请求方法
263
+ method: {
264
+ type: String,
265
+ default: 'get'
266
+ },
267
+ nodeKey: {
268
+ type: String,
269
+ default: 'id'
270
+ },
271
+ param: {
272
+ type: Object,
273
+ default() {
274
+ return {
275
+ showarea: 0,
276
+ orgType: 'org',
277
+ nocheck: true,
278
+ id: 'all',
279
+ isroot: true,
280
+ synchro: true,
281
+ pvd: true,
282
+ levels: 1,
283
+ showlevelsub: true
284
+ };
285
+ }
286
+ },
287
+ where: {
288
+ type: Object,
289
+ default() {
290
+ return {};
291
+ }
292
+ },
293
+ onLoadsub: Function,
294
+ parseParams: Function,
295
+ onNodeClick: Function,
296
+ onCheckChange: Function,
297
+ changeData: [String, Array, Object]
298
+ },
299
+ data() {
300
+ return {
301
+ loading: false,
302
+ searchValue: '',
303
+ expandedKeys: [],
304
+ treeList: []
305
+ };
306
+ },
307
+ computed: {
308
+ treeData() {
309
+ if (this.data !== undefined) {
310
+ this.loading = false;
311
+ return this.data;
312
+ } else {
313
+ return this.treeList;
314
+ }
315
+ },
316
+ defaultProps() {
317
+ if (this.props !== undefined) {
318
+ return this.props;
319
+ }
320
+ return {
321
+ label: 'name',
322
+ children: 'children'
323
+ };
324
+ },
325
+ isRemote() {
326
+ if (this.data !== undefined && this.data.length) {
327
+ return false;
328
+ }
329
+ return this.remote;
330
+ }
331
+ },
332
+ watch: {
333
+ searchValue: {
334
+ deep: true,
335
+ handler(val) {
336
+ if (!this.isRemote && val !== this.search.value) {
337
+ this.$refs.oaTree.filter(val);
338
+ }
339
+ }
340
+ }
341
+ },
342
+ created() {
343
+ if (Object.prototype.hasOwnProperty.call(this.search, 'value')) {
344
+ this.searchValue = this.search.value;
345
+ }
346
+ this.getTreeData();
347
+ },
348
+ mounted() {},
349
+ methods: {
350
+ // 树节点展开
351
+ handleExpand(data, node) {
352
+ if (this.onExpand) {
353
+ this.onExpand(data, node);
354
+ } else {
355
+ if (this.remote) {
356
+ this.loadsub(data, node);
357
+ }
358
+ this.$emit('node-expand', data, node);
359
+ }
360
+ },
361
+ //获取树节点
362
+ getTreeData(param) {
363
+ this.loading = true;
364
+ let params = util.extend({}, this.param, this.where, param);
365
+ if (!this.url || !this.isRemote) return;
366
+ util
367
+ .ajax({
368
+ url: this.url,
369
+ method: this.method,
370
+ data: params,
371
+ params: params
372
+ })
373
+ .then(res => {
374
+ this.loading = false;
375
+ if (res.rCode === 0) {
376
+ this.treeList = JSON.parse(JSON.stringify(res.results));
377
+ this.expandedKeys = this.treeList.filter(item => {
378
+ if (item.open) {
379
+ return item.id;
380
+ }
381
+ });
382
+ }
383
+ })
384
+ .catch(err => {
385
+ if (err.message && err.message !== 'canceled') {
386
+ this.$message.error(err.message);
387
+ }
388
+ });
389
+ },
390
+ //请求子节点数据
391
+ loadsub(data, node) {
392
+ if (data.state !== '' && (!data.children || data.children.length === 0)) {
393
+ let params = util.extend({}, this.param, this.where, {
394
+ id: data.id,
395
+ orgType: data.orgType,
396
+ isentity: data.isentity,
397
+ layerlevel: data.layerlevel
398
+ });
399
+ if (this.parseParams) {
400
+ params = this.parseParams({ data, params, node });
401
+ }
402
+ if (this.onLoadsub) {
403
+ this.onLoadsub({ data, params, node })
404
+ .then(res => {
405
+ this.loading = false;
406
+ this.$set(data, 'children', JSON.parse(JSON.stringify(res)));
407
+ })
408
+ .catch(e => {});
409
+ } else {
410
+ util
411
+ .ajax({
412
+ method: this.method,
413
+ url: this.url,
414
+ data: params,
415
+ params: params
416
+ })
417
+ .then(res => {
418
+ if (res.rCode === 0) {
419
+ this.loading = false;
420
+ let results = JSON.parse(JSON.stringify(res.results));
421
+ if (Array.isArray(results)) {
422
+ if (data.id === results[0].id) {
423
+ this.$set(data, 'children', results[0].children);
424
+ } else {
425
+ this.$set(data, 'children', results);
426
+ }
427
+ } else if (data.id === results.id) {
428
+ this.$set(data, 'children', results.children);
429
+ } else {
430
+ console.error('tree数据格式错误');
431
+ }
432
+ }
433
+ })
434
+ .catch(err => {
435
+ this.loading = false;
436
+ if (err.message && err.message !== 'canceled') {
437
+ this.$message.error(err.message);
438
+ }
439
+ });
440
+ }
441
+ }
442
+ },
443
+ handleChange() {
444
+ if (this.onChange !== undefined) {
445
+ this.onChange(this.search);
446
+ } else {
447
+ let obj = {};
448
+ obj[this.search.name] = this.searchValue;
449
+ this.getTreeData(obj);
450
+ }
451
+ },
452
+ handleSearch() {
453
+ let obj = {};
454
+ obj[this.search.name] = this.searchValue;
455
+ if (this.onSearch !== undefined) {
456
+ this.onSearch(obj);
457
+ } else {
458
+ this.getTreeData(obj);
459
+ }
460
+ },
461
+
462
+ loadNode(node, resolve) {
463
+ this.$emit('load', node, resolve);
464
+ },
465
+ sortTree(arr) {
466
+ return arr.sort((a, b) => {
467
+ if (this.order === 'asc' && a[this.sort]) {
468
+ return a[this.sort] - b[this.sort];
469
+ } else {
470
+ return b[this.sort] - a[this.sort];
471
+ }
472
+ });
473
+ },
474
+ //筛选本地数据
475
+ filterNode(value, data) {
476
+ if (!value) return true;
477
+ return String(data[this.search.name]).indexOf(value) !== -1;
478
+ },
479
+ check(data, options) {
480
+ if (this.limit) {
481
+ if (options.checkedKeys.length > this.limit) {
482
+ const checkedKeys = options.checkedKeys.splice(0, 10);
483
+ this.setCheckedKeys(checkedKeys);
484
+ this.$message({
485
+ showClose: true,
486
+ message: '已达最大选择个数',
487
+ type: 'waring'
488
+ });
489
+ }
490
+ }
491
+ this.$emit('check', data, options);
492
+ },
493
+ getOptionItemLabel(item) {
494
+ if (this.search.optionLabelKey) return item[this.optionLabelKey];
495
+ if (this.search.key) return item[this.optionLabelKey];
496
+ return item.label;
497
+ },
498
+ getOptionItemValue(item) {
499
+ if (this.search.optionValueKey) return item[this.optionValueKey];
500
+ return item.value;
501
+ },
502
+ handleNodeClick(data, node, component) {
503
+ if (this.esPage && this.changeData) {
504
+ let changeData = {};
505
+ if (util.isObject(this.changeData)) {
506
+ for (let i in this.changeData) {
507
+ if (util.isObject(this.changeData[i])) {
508
+ let key = Object.keys(this.changeData[i])[0];
509
+ changeData[i] = data[key][this.changeData[i][key]];
510
+ } else {
511
+ changeData[i] = data[this.changeData[i]];
512
+ }
513
+ }
514
+ } else if (Array.isArray(this.changeData)) {
515
+ this.changeData.forEach(item => {
516
+ changeData[item] = data[item];
517
+ });
518
+ } else {
519
+ changeData[this.changeData] = data[this.changeData];
520
+ }
521
+ this.esPage.handleChangeData(changeData);
522
+ }
523
+ if (this.onNodeClick) {
524
+ this.onNodeClick(this, data, node, component);
525
+ } else {
526
+ this.$emit('node-click', data, node, component);
527
+ }
528
+ },
529
+ handleCheckChange(data, checked, indeterminate) {
530
+ if (this.esPage && this.changeData) {
531
+ let checkeds = this.getCheckedNodes();
532
+ let changeData = {};
533
+ if (util.isObject(this.changeData)) {
534
+ for (let i in this.changeData) {
535
+ changeData[i] = checkeds.map(item => {
536
+ return item[this.changeData[i]];
537
+ });
538
+ }
539
+ } else if (Array.isArray(this.changeData)) {
540
+ this.changeData.forEach(item => {
541
+ changeData[item] = checkeds.map(ele => {
542
+ return ele[this.changeData[i]];
543
+ });
544
+ });
545
+ } else {
546
+ changeData[this.changeData] = checkeds;
547
+ }
548
+ this.esPage.handleChangeData(changeData);
549
+ }
550
+ if (this.onCheckChange) {
551
+ this.onCheckChange(data, checked, indeterminate, this);
552
+ } else {
553
+ this.$emit('check-change', data, checked, indeterminate, this);
554
+ }
555
+ },
556
+ filter(parms = this.search) {
557
+ return this.$refs.oaTree.filter(parms);
558
+ },
559
+ updateKeyChildren(key, data) {
560
+ return this.$refs.oaTree.updateKeyChildren(key, data);
561
+ },
562
+ getCheckedNodes(leafOnly = false, includeHalfChecked = false) {
563
+ return this.$refs.oaTree.getCheckedNodes(leafOnly, includeHalfChecked);
564
+ },
565
+ setCheckedNodes(nodes) {
566
+ return this.$refs.oaTree.setCheckedNodes(nodes);
567
+ },
568
+ getCheckedKeys(leafOnly = false) {
569
+ return this.$refs.oaTree.getCheckedKeys(leafOnly);
570
+ },
571
+ setCheckedKeys(keys, leafOnly) {
572
+ return this.$refs.oaTree.setCheckedKeys(keys, leafOnly);
573
+ },
574
+ setChecked(key, checked, deep) {
575
+ return this.$refs.oaTree.setChecked(key, checked, deep);
576
+ },
577
+ getHalfCheckedNodes() {
578
+ return this.$refs.oaTree.getHalfCheckedNodes();
579
+ },
580
+ getHalfCheckedKeys() {
581
+ return this.$refs.oaTree.getHalfCheckedKeys();
582
+ },
583
+ getCurrentKey() {
584
+ return this.$refs.oaTree.getCurrentKey();
585
+ },
586
+ getCurrentNode() {
587
+ let nodes = this.$refs.oaTree.getCurrentNode();
588
+ return nodes;
589
+ },
590
+ setCurrentKey(key) {
591
+ return this.$refs.oaTree.setCurrentKey(key);
592
+ },
593
+ setCurrentNode(node) {
594
+ return this.$refs.oaTree.setCurrentNode(node);
595
+ },
596
+ getNode(data) {
597
+ return this.$refs.oaTree.getNode(data);
598
+ },
599
+ remove(node) {
600
+ return this.$refs.oaTree.remove(node);
601
+ },
602
+ append(data, parentNode) {
603
+ return this.$refs.oaTree.append(data, parentNode);
604
+ },
605
+ insertBefore(node, refNode) {
606
+ return this.$refs.oaTree.insertBefore(node, refNode);
607
+ },
608
+ insertAfter(data, refNode) {
609
+ return this.$refs.oaTree.insertAfter(data, refNode);
610
+ },
611
+ getKeys(data, result) {
612
+ data.forEach(item => {
613
+ result.push(item.id);
614
+ if (
615
+ Object.prototype.hasOwnProperty.call(item, 'children') &&
616
+ item.children.length
617
+ ) {
618
+ this.getKeys(item.children, result);
619
+ }
620
+ });
621
+ },
622
+ handleCheck(keys) {
623
+ if (keys) {
624
+ if (!Array.isArray(keys)) {
625
+ console.error('请传入数组类型');
626
+ return false;
627
+ }
628
+ } else {
629
+ keys = [];
630
+ this.getKeys(this.treeData, keys);
631
+ }
632
+ this.setCheckedKeys(keys);
633
+ }
634
+ }
635
+ };
636
+ </script>
@@ -0,0 +1,5 @@
1
+ import EsTreeGroup from './src/main';
2
+
3
+ EsTreeGroup.install = Vue => Vue.component(EsTreeGroup.name, EsTreeGroup);
4
+
5
+ export default EsTreeGroup;