agilebuilder-ui 1.0.0

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 (392) hide show
  1. package/README.md +7 -0
  2. package/index.html +13 -0
  3. package/package.json +36 -0
  4. package/packages/IntervalSelection/index.js +6 -0
  5. package/packages/IntervalSelection/src/quarterScope.vue +405 -0
  6. package/packages/IntervalSelection/src/sectionDate.vue +475 -0
  7. package/packages/breadcrumb/index.js +6 -0
  8. package/packages/breadcrumb/src/breadcrumb.vue +81 -0
  9. package/packages/department-tree/index.js +6 -0
  10. package/packages/department-tree/src/department-tree.vue +114 -0
  11. package/packages/department-tree-inline/index.js +6 -0
  12. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +494 -0
  13. package/packages/department-tree-inline/src/department-single-tree-inline.vue +367 -0
  14. package/packages/department-tree-inline/src/department-tree-inline.vue +86 -0
  15. package/packages/department-tree-inline/src/department-tree-service.js +344 -0
  16. package/packages/department-tree-inline/src/search-result.vue +238 -0
  17. package/packages/department-user-tree/index.js +6 -0
  18. package/packages/department-user-tree/src/department-user-multiple-tree.vue +133 -0
  19. package/packages/department-user-tree/src/department-user-single-tree.vue +96 -0
  20. package/packages/department-user-tree/src/department-user-tree.vue +115 -0
  21. package/packages/department-user-tree-inline/index.js +9 -0
  22. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +758 -0
  23. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +358 -0
  24. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -0
  25. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -0
  26. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +180 -0
  27. package/packages/department-user-tree-inline/src/search-result.vue +286 -0
  28. package/packages/directives/prevent-reclick.js +22 -0
  29. package/packages/dynamic-source-select/index.js +6 -0
  30. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +124 -0
  31. package/packages/dynamic-source-select/src/dynamic-source-select.vue +857 -0
  32. package/packages/dynamic-source-select/src/events.js +77 -0
  33. package/packages/fs-preview/index.js +6 -0
  34. package/packages/fs-preview/src/fs-preview.vue +303 -0
  35. package/packages/fs-upload/index.js +6 -0
  36. package/packages/fs-upload/src/fs-upload-multi.vue +458 -0
  37. package/packages/fs-upload/src/fs-upload-single.vue +365 -0
  38. package/packages/fs-upload/src/fs-upload.vue +191 -0
  39. package/packages/fs-upload/src/see-big-picture.vue +67 -0
  40. package/packages/fs-upload-list/index.js +6 -0
  41. package/packages/fs-upload-list/src/fs-upload-list.vue +387 -0
  42. package/packages/hamburger/index.js +6 -0
  43. package/packages/hamburger/src/hamburger.vue +50 -0
  44. package/packages/index.js +124 -0
  45. package/packages/multipart-upload/index.js +6 -0
  46. package/packages/multipart-upload/src/index.vue +66 -0
  47. package/packages/multipart-upload/src/multipart-upload-form.vue +395 -0
  48. package/packages/multipart-upload/src/multipart-upload-list.vue +539 -0
  49. package/packages/organization-input/index.js +6 -0
  50. package/packages/organization-input/src/organization-input.vue +579 -0
  51. package/packages/plugins/export-data-new.js +630 -0
  52. package/packages/plugins/export-data.js +431 -0
  53. package/packages/plugins/index.js +15 -0
  54. package/packages/plugins/public-method.js +47 -0
  55. package/packages/remove-department/index.js +6 -0
  56. package/packages/remove-department/src/remove-department.vue +201 -0
  57. package/packages/remove-department/src/remove-dept-service.js +31 -0
  58. package/packages/remove-user/index.js +6 -0
  59. package/packages/remove-user/src/remove-user-service.js +31 -0
  60. package/packages/remove-user/src/remove-user.vue +227 -0
  61. package/packages/remove-workgroup/index.js +6 -0
  62. package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -0
  63. package/packages/remove-workgroup/src/remove-workgroup.vue +184 -0
  64. package/packages/rich-editor/index.js +7 -0
  65. package/packages/rich-editor/index.vue +314 -0
  66. package/packages/rich-editor/tinymce/icons/default/icons.min.js +1 -0
  67. package/packages/rich-editor/tinymce/langs/README.md +3 -0
  68. package/packages/rich-editor/tinymce/langs/zh-Hans.js +1 -0
  69. package/packages/rich-editor/tinymce/license.txt +21 -0
  70. package/packages/rich-editor/tinymce/models/dom/model.min.js +4 -0
  71. package/packages/rich-editor/tinymce/plugins/accordion/plugin.min.js +4 -0
  72. package/packages/rich-editor/tinymce/plugins/advlist/plugin.min.js +4 -0
  73. package/packages/rich-editor/tinymce/plugins/anchor/plugin.min.js +4 -0
  74. package/packages/rich-editor/tinymce/plugins/autolink/plugin.min.js +4 -0
  75. package/packages/rich-editor/tinymce/plugins/autoresize/plugin.min.js +4 -0
  76. package/packages/rich-editor/tinymce/plugins/autosave/plugin.min.js +4 -0
  77. package/packages/rich-editor/tinymce/plugins/charmap/plugin.min.js +4 -0
  78. package/packages/rich-editor/tinymce/plugins/code/plugin.min.js +4 -0
  79. package/packages/rich-editor/tinymce/plugins/codesample/plugin.min.js +4 -0
  80. package/packages/rich-editor/tinymce/plugins/directionality/plugin.min.js +4 -0
  81. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
  82. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
  83. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojis.js +1 -0
  84. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
  85. package/packages/rich-editor/tinymce/plugins/emoticons/plugin.min.js +4 -0
  86. package/packages/rich-editor/tinymce/plugins/fullscreen/plugin.min.js +4 -0
  87. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ar.js +90 -0
  88. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  89. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ca.js +90 -0
  90. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/cs.js +90 -0
  91. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/da.js +90 -0
  92. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/de.js +90 -0
  93. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/el.js +90 -0
  94. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/en.js +90 -0
  95. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/es.js +90 -0
  96. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/eu.js +90 -0
  97. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fa.js +90 -0
  98. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fi.js +90 -0
  99. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  100. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  101. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hi.js +90 -0
  102. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hr.js +90 -0
  103. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  104. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/id.js +90 -0
  105. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/it.js +90 -0
  106. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ja.js +90 -0
  107. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/kk.js +90 -0
  108. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  109. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ms.js +90 -0
  110. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  111. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/nl.js +90 -0
  112. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pl.js +90 -0
  113. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  114. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  115. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ro.js +90 -0
  116. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ru.js +90 -0
  117. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sk.js +90 -0
  118. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  119. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  120. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  121. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/tr.js +90 -0
  122. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/uk.js +90 -0
  123. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/vi.js +90 -0
  124. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  125. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  126. package/packages/rich-editor/tinymce/plugins/help/plugin.min.js +4 -0
  127. package/packages/rich-editor/tinymce/plugins/image/plugin.min.js +4 -0
  128. package/packages/rich-editor/tinymce/plugins/importcss/plugin.min.js +4 -0
  129. package/packages/rich-editor/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
  130. package/packages/rich-editor/tinymce/plugins/link/plugin.min.js +4 -0
  131. package/packages/rich-editor/tinymce/plugins/lists/plugin.min.js +4 -0
  132. package/packages/rich-editor/tinymce/plugins/media/plugin.min.js +4 -0
  133. package/packages/rich-editor/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
  134. package/packages/rich-editor/tinymce/plugins/pagebreak/plugin.min.js +4 -0
  135. package/packages/rich-editor/tinymce/plugins/preview/plugin.min.js +4 -0
  136. package/packages/rich-editor/tinymce/plugins/quickbars/plugin.min.js +4 -0
  137. package/packages/rich-editor/tinymce/plugins/save/plugin.min.js +4 -0
  138. package/packages/rich-editor/tinymce/plugins/searchreplace/plugin.min.js +4 -0
  139. package/packages/rich-editor/tinymce/plugins/table/plugin.min.js +4 -0
  140. package/packages/rich-editor/tinymce/plugins/template/plugin.min.js +4 -0
  141. package/packages/rich-editor/tinymce/plugins/visualblocks/plugin.min.js +4 -0
  142. package/packages/rich-editor/tinymce/plugins/visualchars/plugin.min.js +4 -0
  143. package/packages/rich-editor/tinymce/plugins/wordcount/plugin.min.js +4 -0
  144. package/packages/rich-editor/tinymce/skins/content/dark/content.js +2 -0
  145. package/packages/rich-editor/tinymce/skins/content/dark/content.min.css +1 -0
  146. package/packages/rich-editor/tinymce/skins/content/default/content.js +2 -0
  147. package/packages/rich-editor/tinymce/skins/content/default/content.min.css +1 -0
  148. package/packages/rich-editor/tinymce/skins/content/document/content.js +2 -0
  149. package/packages/rich-editor/tinymce/skins/content/document/content.min.css +1 -0
  150. package/packages/rich-editor/tinymce/skins/content/tinymce-5/content.js +2 -0
  151. package/packages/rich-editor/tinymce/skins/content/tinymce-5/content.min.css +1 -0
  152. package/packages/rich-editor/tinymce/skins/content/tinymce-5-dark/content.js +2 -0
  153. package/packages/rich-editor/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
  154. package/packages/rich-editor/tinymce/skins/content/writer/content.js +2 -0
  155. package/packages/rich-editor/tinymce/skins/content/writer/content.min.css +1 -0
  156. package/packages/rich-editor/tinymce/skins/ui/oxide/content.inline.js +2 -0
  157. package/packages/rich-editor/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
  158. package/packages/rich-editor/tinymce/skins/ui/oxide/content.js +2 -0
  159. package/packages/rich-editor/tinymce/skins/ui/oxide/content.min.css +1 -0
  160. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.js +2 -0
  161. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.min.css +1 -0
  162. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
  163. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  164. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.inline.js +2 -0
  165. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
  166. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.js +2 -0
  167. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  168. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.js +2 -0
  169. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  170. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  171. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  172. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.inline.js +2 -0
  173. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
  174. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.js +2 -0
  175. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
  176. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.js +2 -0
  177. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  178. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  179. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  180. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.js +2 -0
  181. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  182. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.js +2 -0
  183. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
  184. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.js +2 -0
  185. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  186. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  187. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  188. package/packages/rich-editor/tinymce/themes/silver/theme.min.js +4 -0
  189. package/packages/rich-editor/tinymce/tinymce.d.ts +3238 -0
  190. package/packages/rich-editor/tinymce/tinymce.min.js +4 -0
  191. package/packages/rich-editor/tinymce/zh_CN.js +418 -0
  192. package/packages/rich-editor/viewer.vue +105 -0
  193. package/packages/scan-code-input/index.js +6 -0
  194. package/packages/scan-code-input/src/events.js +34 -0
  195. package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -0
  196. package/packages/scan-code-input/src/scan-code-input.vue +132 -0
  197. package/packages/secret-info/index.js +7 -0
  198. package/packages/secret-info/index.vue +100 -0
  199. package/packages/super-grid/index.js +7 -0
  200. package/packages/super-grid/src/apis.js +1193 -0
  201. package/packages/super-grid/src/columns-config.vue +429 -0
  202. package/packages/super-grid/src/components/grid-icon.vue +162 -0
  203. package/packages/super-grid/src/components/hyperlinks.vue +114 -0
  204. package/packages/super-grid/src/custom-formatter.js +430 -0
  205. package/packages/super-grid/src/dynamic-input.vue +1473 -0
  206. package/packages/super-grid/src/eventBus.js +10 -0
  207. package/packages/super-grid/src/events.js +56 -0
  208. package/packages/super-grid/src/formValidatorUtil.js +300 -0
  209. package/packages/super-grid/src/formatter.js +196 -0
  210. package/packages/super-grid/src/group-column.vue +99 -0
  211. package/packages/super-grid/src/header-context-menu.vue +82 -0
  212. package/packages/super-grid/src/index-column.vue +69 -0
  213. package/packages/super-grid/src/normal-column.vue +1239 -0
  214. package/packages/super-grid/src/public-methods.js +30 -0
  215. package/packages/super-grid/src/row-operation.vue +193 -0
  216. package/packages/super-grid/src/search-button.vue +79 -0
  217. package/packages/super-grid/src/search-condition-input.vue +74 -0
  218. package/packages/super-grid/src/search-condition-list.vue +70 -0
  219. package/packages/super-grid/src/search-form-advancedQuery.vue +833 -0
  220. package/packages/super-grid/src/search-form-dialog.vue +77 -0
  221. package/packages/super-grid/src/search-form-item.vue +496 -0
  222. package/packages/super-grid/src/search-form-number.vue +111 -0
  223. package/packages/super-grid/src/search-form-open.vue +178 -0
  224. package/packages/super-grid/src/search-form-ordinarySearch.vue +248 -0
  225. package/packages/super-grid/src/search-form.vue +767 -0
  226. package/packages/super-grid/src/search-methods.js +591 -0
  227. package/packages/super-grid/src/selection-column.vue +46 -0
  228. package/packages/super-grid/src/store.js +3 -0
  229. package/packages/super-grid/src/super-grid-service.js +729 -0
  230. package/packages/super-grid/src/super-grid.vue +3025 -0
  231. package/packages/super-grid/src/utils.js +880 -0
  232. package/packages/super-grid/src/view-image-dialog.vue +190 -0
  233. package/packages/super-nine-grid/index.js +7 -0
  234. package/packages/super-nine-grid/src/apis.js +108 -0
  235. package/packages/super-nine-grid/src/custom-formatter.js +73 -0
  236. package/packages/super-nine-grid/src/formatter.js +134 -0
  237. package/packages/super-nine-grid/src/search-form-number.vue +35 -0
  238. package/packages/super-nine-grid/src/search-form.vue +704 -0
  239. package/packages/super-nine-grid/src/search-methods.js +151 -0
  240. package/packages/super-nine-grid/src/store.js +3 -0
  241. package/packages/super-nine-grid/src/super-grid-service.js +108 -0
  242. package/packages/super-nine-grid/src/super-nine-grid.vue +1211 -0
  243. package/packages/super-nine-grid/src/utils.js +264 -0
  244. package/packages/svg-icon/index.js +6 -0
  245. package/packages/svg-icon/src/svg-icon.vue +43 -0
  246. package/packages/utils/date-util.js +292 -0
  247. package/packages/utils/dom.js +227 -0
  248. package/packages/utils/gogocodeTransfer.js +59 -0
  249. package/packages/utils/memory-cache-utils.js +117 -0
  250. package/packages/utils/utils.js +180 -0
  251. package/packages/utils/value-set.js +97 -0
  252. package/packages/valid-code/index.js +7 -0
  253. package/packages/valid-code/src/valid-code.vue +104 -0
  254. package/packages/workflow-button/index.js +6 -0
  255. package/packages/workflow-button/src/workflow-button.vue +569 -0
  256. package/packages/workflow-history-list/index.js +6 -0
  257. package/packages/workflow-history-list/src/api.js +7 -0
  258. package/packages/workflow-history-list/src/workflow-history-list.vue +302 -0
  259. package/packages/workgroup-tree/index.js +6 -0
  260. package/packages/workgroup-tree/src/workgroup-tree.vue +87 -0
  261. package/packages/workgroup-tree-inline/index.js +6 -0
  262. package/packages/workgroup-tree-inline/src/search-result.vue +226 -0
  263. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +539 -0
  264. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -0
  265. package/packages/workgroup-user-tree/index.js +6 -0
  266. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +104 -0
  267. package/packages/workgroup-user-tree-inline/index.js +9 -0
  268. package/packages/workgroup-user-tree-inline/src/search-result.vue +270 -0
  269. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -0
  270. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +681 -0
  271. package/packages/year-range-picker/index.js +6 -0
  272. package/packages/year-range-picker/src/year-range-picker.vue +53 -0
  273. package/public/vite.svg +1 -0
  274. package/src/api/sso-service.js +193 -0
  275. package/src/api/tab.js +36 -0
  276. package/src/api/user-service.js +11 -0
  277. package/src/assets/401/401.gif +0 -0
  278. package/src/assets/404/404-cloud.png +0 -0
  279. package/src/assets/404/404.png +0 -0
  280. package/src/assets/cloud.png +0 -0
  281. package/src/assets/nonemessage.png +0 -0
  282. package/src/directives/permission/index.js +13 -0
  283. package/src/directives/permission/permission.js +20 -0
  284. package/src/i18n/i18n.js +16 -0
  285. package/src/i18n/langs/cn.js +266 -0
  286. package/src/i18n/langs/en.js +276 -0
  287. package/src/index.js +93 -0
  288. package/src/permission.js +242 -0
  289. package/src/plugins.js +18 -0
  290. package/src/router/index.js +92 -0
  291. package/src/store/getters.js +15 -0
  292. package/src/store/index.js +19 -0
  293. package/src/store/modules/app.js +54 -0
  294. package/src/store/modules/permission.js +143 -0
  295. package/src/store/modules/tab-content.js +36 -0
  296. package/src/store/modules/user.js +365 -0
  297. package/src/styles/display-layout.scss +34 -0
  298. package/src/styles/element-ui.scss +29 -0
  299. package/src/styles/index.scss +157 -0
  300. package/src/styles/mixin.scss +27 -0
  301. package/src/styles/theme/black/font-style.scss +70 -0
  302. package/src/styles/theme/black/index.scss +306 -0
  303. package/src/styles/theme/black/sidebar.scss +189 -0
  304. package/src/styles/theme/blue/font-style.scss +46 -0
  305. package/src/styles/theme/blue/index.scss +172 -0
  306. package/src/styles/theme/blue/sidebar.scss +171 -0
  307. package/src/styles/theme/blue2/font-style.scss +70 -0
  308. package/src/styles/theme/blue2/index.scss +188 -0
  309. package/src/styles/theme/blue2/sidebar.scss +201 -0
  310. package/src/styles/theme/dark-blue/button.scss +78 -0
  311. package/src/styles/theme/dark-blue/card.scss +63 -0
  312. package/src/styles/theme/dark-blue/checkbox.scss +10 -0
  313. package/src/styles/theme/dark-blue/dark-blue-var.scss +9 -0
  314. package/src/styles/theme/dark-blue/dialog.scss +17 -0
  315. package/src/styles/theme/dark-blue/element-variables.scss +7 -0
  316. package/src/styles/theme/dark-blue/font.scss +71 -0
  317. package/src/styles/theme/dark-blue/form.scss +51 -0
  318. package/src/styles/theme/dark-blue/index.scss +277 -0
  319. package/src/styles/theme/dark-blue/input.scss +15 -0
  320. package/src/styles/theme/dark-blue/message.scss +8 -0
  321. package/src/styles/theme/dark-blue/pagination.scss +18 -0
  322. package/src/styles/theme/dark-blue/radio.scss +13 -0
  323. package/src/styles/theme/dark-blue/scrollbar-style.scss +32 -0
  324. package/src/styles/theme/dark-blue/sidebar.scss +268 -0
  325. package/src/styles/theme/dark-blue/tab.scss +83 -0
  326. package/src/styles/theme/dark-blue/table.scss +60 -0
  327. package/src/styles/theme/dark-blue/tree.scss +57 -0
  328. package/src/styles/theme/dark-blue/var.scss +1028 -0
  329. package/src/styles/theme/gray/card-style.scss +54 -0
  330. package/src/styles/theme/gray/font-style.scss +70 -0
  331. package/src/styles/theme/gray/index.scss +172 -0
  332. package/src/styles/theme/gray/input-style.scss +19 -0
  333. package/src/styles/theme/gray/scrollbar-style.scss +32 -0
  334. package/src/styles/theme/gray/sidebar.scss +243 -0
  335. package/src/styles/theme/gray/tab-style.scss +81 -0
  336. package/src/styles/transition.scss +47 -0
  337. package/src/utils/auth-api.js +259 -0
  338. package/src/utils/auth.js +98 -0
  339. package/src/utils/calculator/calculator-factory-wf.js +558 -0
  340. package/src/utils/calculator/calculator-factory.js +145 -0
  341. package/src/utils/calculator/calculator-util.js +166 -0
  342. package/src/utils/common-util.js +474 -0
  343. package/src/utils/eventBus.js +10 -0
  344. package/src/utils/iconUtils.js +37 -0
  345. package/src/utils/index.js +102 -0
  346. package/src/utils/jump-page-utils.js +824 -0
  347. package/src/utils/local-storage.js +33 -0
  348. package/src/utils/menu.js +19 -0
  349. package/src/utils/permission.js +31 -0
  350. package/src/utils/permissionAuth.js +121 -0
  351. package/src/utils/range-selector.js +204 -0
  352. package/src/utils/request.js +280 -0
  353. package/src/utils/restful-interface-utils.js +57 -0
  354. package/src/utils/util.js +910 -0
  355. package/src/utils/validate.js +34 -0
  356. package/src/utils/watermark.js +108 -0
  357. package/src/utils/workflow-util.js +104 -0
  358. package/src/views/404.vue +248 -0
  359. package/src/views/dsc-component/Sidebar/Item.vue +81 -0
  360. package/src/views/dsc-component/Sidebar/Link.vue +38 -0
  361. package/src/views/dsc-component/Sidebar/SidebarItem.vue +197 -0
  362. package/src/views/dsc-component/Sidebar/index.vue +229 -0
  363. package/src/views/dsc-component/tabs/tab-content.vue +215 -0
  364. package/src/views/error-page/401.vue +106 -0
  365. package/src/views/error-page/404.vue +248 -0
  366. package/src/views/layout/EmptyLayout.vue +3 -0
  367. package/src/views/layout/Layout.vue +81 -0
  368. package/src/views/layout/NewLayout.vue +18 -0
  369. package/src/views/layout/components/AppMain.vue +39 -0
  370. package/src/views/layout/components/Breadcrumb/index.vue +158 -0
  371. package/src/views/layout/components/Menubar/Item.vue +79 -0
  372. package/src/views/layout/components/Menubar/Link.vue +38 -0
  373. package/src/views/layout/components/Menubar/SidebarItem.vue +261 -0
  374. package/src/views/layout/components/Menubar/index.vue +210 -0
  375. package/src/views/layout/components/Sidebar/Item.vue +53 -0
  376. package/src/views/layout/components/Sidebar/Link.vue +38 -0
  377. package/src/views/layout/components/Sidebar/SidebarItem.vue +135 -0
  378. package/src/views/layout/components/Sidebar/index.vue +141 -0
  379. package/src/views/layout/components/iframe-page.vue +38 -0
  380. package/src/views/layout/components/index.js +4 -0
  381. package/src/views/layout/components/tabs/tab-content.vue +214 -0
  382. package/src/views/layout/mixin/ResizeHandler.js +41 -0
  383. package/src/views/layout/tab-content-iframe-index.vue +38 -0
  384. package/src/views/layout/tab-content-index.vue +92 -0
  385. package/src/views/login/authredirect.vue +10 -0
  386. package/src/views/login/index.vue +296 -0
  387. package/src/views/login/update-password.vue +243 -0
  388. package/src/views/redirect/index.vue +14 -0
  389. package/src/views/svg-icon/index.js +6 -0
  390. package/src/views/svg-icon/src/svg-icon.vue +46 -0
  391. package/src/views/wf-history/tache-subprocess-history.vue +45 -0
  392. package/vite.config.js +37 -0
@@ -0,0 +1,758 @@
1
+ <template>
2
+ <div>
3
+ <el-container style="height: 395px">
4
+ <el-aside width="430px">
5
+ <el-container style="height: 390px">
6
+ <el-header style="font-size: 12px; height: 35px">
7
+ <el-autocomplete
8
+ v-model="filterText"
9
+ :fetch-suggestions="querySearch"
10
+ :placeholder="$t('departmentUserTree.pleaseEnterUserInformation')"
11
+ class="inline-input inline-input-custom searchDepartmentUser"
12
+ size="default"
13
+ @select="handleSelect"
14
+ @keyup.enter="clickSearch"
15
+ >
16
+ <template v-slot:append>
17
+ <el-button :icon="ElIconSearch" @click="clickSearch"/>
18
+ </template>
19
+ </el-autocomplete>
20
+ </el-header>
21
+ <el-main style="padding: 10px">
22
+ <div
23
+ v-if="!searchValue"
24
+ style="
25
+ padding-top: 5px;
26
+ overflow: auto;
27
+ width: auto;
28
+ display: inline-block !important;
29
+ "
30
+ >
31
+ <el-tree
32
+ ref="deparmentUserTree"
33
+ :check-on-click-node="true"
34
+ :load="loadNode"
35
+ :props="defaultProps"
36
+ lazy
37
+ node-key="nodeId"
38
+ show-checkbox
39
+ @check="handleCheckNode"
40
+ @check-change="handleCheckChange"
41
+ >
42
+ <template #default="{ node, data }">
43
+ <span>
44
+ <el-icon>
45
+ <Menu v-if="node.data.id === -1 || node.data.branch"/>
46
+ <Tickets v-else-if="node.data.id === -2 || node.data.id === -3"/>
47
+ <User v-else-if="node.data.nodeType === 'USER'"/>
48
+ <Calendar v-else/>
49
+ </el-icon>
50
+ <span :title="node.label">
51
+ {{ node.label }}
52
+ </span>
53
+ </span>
54
+ </template>
55
+ </el-tree>
56
+ <!-- @node-click="handleNodeClick" 移除节点点击,不然会造成节点不可选择时,点击也会选择节点 -->
57
+ </div>
58
+
59
+ <div
60
+ v-if="searchValue && searchValue.length > 0"
61
+ style="height: 100%; overflow: hidden"
62
+ >
63
+ <user-result
64
+ :contain-branch="containBranch"
65
+ :grid-data="searchResult"
66
+ :height="height"
67
+ :is-search-result="true"
68
+ :multiple="true"
69
+ :select-result="selectResult"
70
+ @addUser="selectUser"
71
+ />
72
+ </div>
73
+ </el-main>
74
+ </el-container>
75
+ </el-aside>
76
+
77
+ <el-container>
78
+ <el-aside width="2px">
79
+ <table
80
+ border="1px"
81
+ cellpadding="0"
82
+ cellspacing="0"
83
+ style="
84
+ height: 100%;
85
+ border-left-style: solid;
86
+ border-bottom-style: none;
87
+ border-right-style: none;
88
+ border-top-style: none;
89
+ border-left-color: #cccccc;
90
+ "
91
+ />
92
+ </el-aside>
93
+ <el-main style="padding: 10px">
94
+ <div style="text-align: left; font-size: 16px">
95
+ {{ $t('departmentUserTree.selectedPeople') }}:
96
+ </div>
97
+ <div :style="'padding-top: 5px;height:90%;overflow: hidden;'">
98
+ <user-result
99
+ :contain-branch="containBranch"
100
+ :grid-data="selectResult"
101
+ :height="height"
102
+ :is-search-result="false"
103
+ :multiple="true"
104
+ @removeUser="removeUser"
105
+ />
106
+ </div>
107
+ </el-main>
108
+ </el-container>
109
+ </el-container>
110
+ </div>
111
+ </template>
112
+
113
+ <script>
114
+ import {Calendar, Menu, Search as ElIconSearch, Tickets, User} from '@element-plus/icons-vue'
115
+ import {$emit} from '../../utils/gogocodeTransfer'
116
+ import localStorage from '../../../src/utils/local-storage'
117
+ import UserResult from './search-result.vue'
118
+ import utils from '../../utils/utils'
119
+ import departmentUserTreeMultiService from './department-user-tree-multi-service'
120
+ import memoryCacheUtils from '../../utils/memory-cache-utils'
121
+
122
+ export default {
123
+ data() {
124
+ return {
125
+ filterText: '',
126
+ defaultProps: {
127
+ id: 'id',
128
+ label: 'showName',
129
+ children: 'children',
130
+ isLeaf: 'leaf',
131
+ disabled: 'disabled',
132
+ },
133
+ searchParam: {
134
+ userField: null,
135
+ searchValue: null,
136
+ treeType: 'MAN_DEPARTMENT_TREE',
137
+ departmentInfo: null,
138
+ },
139
+ // 当前租户内是否包含分支机构。获得当前选中用户名称时,如果有分支,则需要将分支名称返回给用户,例如:张三(分支1)
140
+ containBranch: false,
141
+ // 公司节点的id
142
+ tenantNodeId: -1,
143
+ // 用于保存所有查询出的节点id
144
+ allSearchNodeIds: [],
145
+ // 用于保存allSearchNodeIds中所有已加载子节点的id集合
146
+ allExpandNodeIds: [],
147
+ // 多选树时,是否点击当前的节点
148
+ isClickNode: false,
149
+ // 查询的备选值
150
+ restaurants: [],
151
+ // 查询条件
152
+ searchValue: null,
153
+ // 用户的查询结果
154
+ searchResult: [],
155
+ // 已选用户结果
156
+ selectResult: [],
157
+ searchStoreKey: 'searchDepartmentUser',
158
+ // 公司根节点信息
159
+ tenantInfo: {},
160
+ memoryCacheKey: 'DEPARTMENT_USER_MEMORY_KEY',
161
+ // 记忆选择数据, 搜索框获得焦点后,下拉显示最近选中的10个人,倒序排列,最后选中的在最上面显示。
162
+ memoryCacheData: [],
163
+ ElIconSearch,
164
+ }
165
+ },
166
+ name: 'InlineDepartmentUserMultiTree',
167
+ components: {
168
+ UserResult,
169
+ Menu,
170
+ Tickets,
171
+ User,
172
+ Calendar
173
+ },
174
+ props: {
175
+ // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
176
+ departmentInfo: {
177
+ type: Array,
178
+ default: null,
179
+ },
180
+ // 弹框的高度
181
+ height: {
182
+ type: String,
183
+ default: '300px',
184
+ },
185
+ // 是否需要显示虚拟用户
186
+ isNeedVirtualUser: {
187
+ type: Boolean,
188
+ default: false,
189
+ },
190
+ // 多选用户树时,已选择用户id或登录名集合,多个之间以逗号隔开
191
+ selectUserInfo: {
192
+ type: [String, Number],
193
+ default: null,
194
+ },
195
+ // 移除用户时,用户属性名称:id、loginName、email、telephone,默认是loginName
196
+ searchField: {
197
+ type: String,
198
+ default: 'loginName',
199
+ },
200
+ // 多选树时结果之间的分隔符,默认是逗号分隔
201
+ separator: {
202
+ type: String,
203
+ default: ',',
204
+ },
205
+ },
206
+ computed: {},
207
+ watch: {
208
+ filterText(val) {
209
+ if (!val) {
210
+ this.searchValue = val
211
+ // 清空查询内容时,重新加载整个树
212
+ if (this.departmentInfo && this.departmentInfo.length > 0) {
213
+ // 加载指定部门时,展开公司节点
214
+ this.loadPointDepartments()
215
+ } else {
216
+ // 加载整个组织结构树时,展开公司节点
217
+ this.loadDepartment(this.tenantNodeId, this.tenantNodeId + '')
218
+ }
219
+ }
220
+ },
221
+ },
222
+ created() {
223
+ this.initSelectUsers(
224
+ this.searchField,
225
+ this.selectUserInfo,
226
+ this.separator
227
+ ).then((selectUsers) => {
228
+ if (selectUsers) {
229
+ this.selectResult = selectUsers
230
+ }
231
+ })
232
+ },
233
+ mounted() {
234
+ var searchDepartmentUser = localStorage.getObject(this.searchStoreKey)
235
+ if (searchDepartmentUser) {
236
+ this.restaurants = searchDepartmentUser
237
+ } else {
238
+ this.restaurants = []
239
+ }
240
+ this.getMemoryCacheData('departmentUser')
241
+ },
242
+ methods: {
243
+ ...utils,
244
+ ...departmentUserTreeMultiService,
245
+ ...memoryCacheUtils,
246
+ // 将查询结果中指定用户添加到已选择用户集合中
247
+ selectUser(index, user) {
248
+ if (!this.isContainAllUser()) {
249
+ const containUsers = this.selectResult.filter(this.filterUser(user))
250
+ if (containUsers && containUsers.length === 0) {
251
+ // 如果已选结果中不包含当前用户,则添加
252
+ // 将查询结果中的用户复制到已选择用户集合中
253
+ user.tenantCode = this.tenantInfo.code
254
+ user.tenantName = this.tenantInfo.tenantName
255
+ this.selectResult.push(user)
256
+ // 搜索选中记忆
257
+ this.setMemoryCacheData(user, 'departmentUser')
258
+ }
259
+ } else {
260
+ this.alertByAllUser()
261
+ }
262
+ },
263
+ // 从已选择用户集合中移除指定用户,并添加到查询结果集合中
264
+ removeUser(index, user) {
265
+ // 表示是在组织结构树页面,需要将树的人员节点的选中状态去掉
266
+ if (user.nodeId) {
267
+ const nodeId = user.nodeId
268
+ if (this.$refs.deparmentUserTree && nodeId) {
269
+ this.$refs.deparmentUserTree.setChecked(nodeId, false)
270
+ }
271
+ } else {
272
+ if (this.$refs.deparmentUserTree) {
273
+ // 通过查询结果添加的用户,在返回到组织结构树时,也选中了该用户,在移除该用户时,需要去掉复选框的选中状态
274
+ const checkedKeys = this.$refs.deparmentUserTree.getCheckedKeys()
275
+ const currentCheckedUserNodeIds = checkedKeys.filter(
276
+ this.filterUserNode(user)
277
+ )
278
+ if (currentCheckedUserNodeIds.length > 0) {
279
+ // 表示当前用户是选中的状态,需要去掉
280
+ currentCheckedUserNodeIds.forEach((userNodeId) => {
281
+ this.$refs.deparmentUserTree.setChecked(userNodeId, false)
282
+ })
283
+ }
284
+ }
285
+ }
286
+ this.selectResult = this.removeRow(this.selectResult, user)
287
+ if (!this.selectResult || this.selectResult.length === 0) {
288
+ // 已选结果面板没有内容,则左侧树节点也不要有选中节点了
289
+ if (this.$refs.deparmentUserTree) {
290
+ this.$refs.deparmentUserTree.setCheckedKeys([])
291
+ }
292
+ }
293
+ },
294
+ filterUserNode(queryUser) {
295
+ return (userNodeId) => {
296
+ // 用户节点的id的分隔符,USER~departmentId~userId
297
+ const nodeIdSeparator = '~'
298
+ const userId = userNodeId.substring(
299
+ userNodeId.lastIndexOf(nodeIdSeparator) + 1
300
+ )
301
+ return userId === queryUser.id + ''
302
+ }
303
+ },
304
+ // handleSelect(item) {
305
+ // this.handleSelectUtil(item, localStorage)
306
+ // },
307
+ search(value) {
308
+ this.searchValue = value
309
+ let mySearchValue = value
310
+ if (mySearchValue) {
311
+ mySearchValue = mySearchValue.trim()
312
+ }
313
+ this.searchParam.searchValue = mySearchValue
314
+ this.searchParam.departmentInfo = this.departmentInfo
315
+ // TODO: 查询的信息,不需要该属性了,默认自动匹配姓名、登录名等
316
+ // this.searchParam.userField = this.searchField
317
+ // 后台查询部门,并拼接树节点
318
+ this.filterAppendNodes(value)
319
+ },
320
+ // 点击查询按钮调用的方法
321
+ clickSearch() {
322
+ this.storeSeachValue(localStorage, this.searchStoreKey, this.filterText)
323
+ this.search(this.filterText)
324
+ },
325
+ handleCheckChange(data, checked, childrenChecked) {
326
+ if (this.isUserNode(data)) {
327
+ // 是否是人员节点
328
+ if (checked) {
329
+ // 当前节点是否被选中
330
+ const user = JSON.parse(data.data)
331
+ const selectUser = this.packageSelectUser(user)
332
+ if (selectUser) {
333
+ this.selectResult.push(selectUser)
334
+ // 搜索选中记忆
335
+ this.setMemoryCacheData(user, 'departmentUser')
336
+ }
337
+ }
338
+ }
339
+ },
340
+ // 封装已选人员结果
341
+ packageSelectUser(user) {
342
+ if (!this.isContainAllUser()) {
343
+ const containUsers = this.selectResult.filter(this.filterUser(user))
344
+ if (containUsers && containUsers.length === 0) {
345
+ user.tenantName = this.tenantInfo.tenantName
346
+ user.tenantCode = this.tenantInfo.code
347
+ // 表示集合中不存在该用户,则封装该用户
348
+ var selectUser = {
349
+ id: user.id,
350
+ name: user.name,
351
+ zhName: user.name,
352
+ loginName: user.loginName,
353
+ email: user.email,
354
+ telephone: user.telephone,
355
+ mainDepartmentName: user.mainDepartmentName,
356
+ subCompanyName: user.subCompanyName,
357
+ user: user,
358
+ enName: user.enName,
359
+ superiorDeptNameFullPath: user.superiorDeptNameFullPath
360
+ }
361
+ return selectUser
362
+ }
363
+ return null
364
+ } else {
365
+ this.alertByAllUser()
366
+ }
367
+ },
368
+ isContainAllUser() {
369
+ if (this.selectResult.length > 0) {
370
+ return this.selectResult[0].id === this.tenantNodeId
371
+ }
372
+ return false
373
+ },
374
+ // 选中了组织结构树的根节点
375
+ packageAllUserToResult() {
376
+ if (!this.isContainAllUser()) {
377
+ // 表示集合中不存在该用户,则封装该用户
378
+ var allUser = {
379
+ id: this.tenantNodeId,
380
+ name: '所有用户',
381
+ }
382
+ return allUser
383
+ }
384
+ return null
385
+ },
386
+ // 判断用户是否存在的过滤器
387
+ filterUser(queryUser) {
388
+ return (user) => {
389
+ return user.id === queryUser.id
390
+ }
391
+ },
392
+ // 点击复选框时处理
393
+ handleCheckNode(data, checkObj) {
394
+ if (checkObj.checkedKeys.indexOf(data.nodeId) > -1) {
395
+ if (!this.isContainAllUser()) {
396
+ // 如果没有选择所有用户,则可以继续选择用户
397
+ this.checkedNodeToSelectResult(data)
398
+ } else {
399
+ // 如果已选择所有用户,提示用户,先移除所有用户
400
+ this.alertByAllUser()
401
+ }
402
+ } else {
403
+ this.cancelChildCheckedNodes(data)
404
+ }
405
+ },
406
+ // 由于选择了所有用户,再次选择时的提示信息
407
+ alertByAllUser() {
408
+ this.$alert(
409
+ this.$t(
410
+ 'imatrixUIMessage.pleaseRemoveallpersonnelBeforeSelectingSpecificPersonnel'
411
+ ),
412
+ this.$t('imatrixUIMessage.tips'),
413
+ {
414
+ confirmButtonText: this.$t('imatrixUIPublicModel.sure'),
415
+ }
416
+ ).then(() => {
417
+ if (this.$refs.deparmentUserTree) {
418
+ this.$refs.deparmentUserTree.setCheckedKeys([])
419
+ }
420
+ })
421
+ },
422
+ // 选中树节点处理
423
+ checkedNodeToSelectResult(data) {
424
+ if (this.isSelectTenantNode(data.id)) {
425
+ // 如果选中了公司节点,表示选择了所有人
426
+ const selectUser = this.packageAllUserToResult()
427
+ if (selectUser) {
428
+ this.selectResult = []
429
+ selectUser.nodeId = this.tenantNodeId + ''
430
+ this.selectResult.push(selectUser)
431
+ }
432
+ } else {
433
+ this.checkedNode(data)
434
+ }
435
+ },
436
+ // 取消当前节点及其子节点的选中状态
437
+ cancelCheckedNodeAndChildren(data) {
438
+ if (data.id !== this.tenantNodeId) {
439
+ // 如果当前节点不是公司节点,需要将公司节点的选中状态去掉
440
+ this.$refs.deparmentUserTree.setChecked(this.tenantNodeId + '', false)
441
+ }
442
+ const children = data.children
443
+ if (children) {
444
+ children.forEach((nodeData) => {
445
+ // 取消节点的选中状态
446
+ this.$refs.deparmentUserTree.setChecked(nodeData.nodeId, false)
447
+ // 递归取消子子节点的选中状态
448
+ this.cancelCheckedNodeAndChildren(nodeData)
449
+ })
450
+ }
451
+ },
452
+ // 勾选节点时的操作
453
+ checkedNode(data) {
454
+ // 勾选当前节点
455
+ const isExpand =
456
+ this.$refs.deparmentUserTree.store.nodesMap[data.nodeId].expanded
457
+ if (isExpand) {
458
+ // 如果已展开,不需要再走后台获得其子节点。只需要选中已有子节点
459
+ // 选中当前节点及其子节点
460
+ this.checkedChildrenUserNodes(data, data.children)
461
+ } else {
462
+ // 当前节点未展开。则再判断是否需要走后台加载叶子节点
463
+ if (!data.leaf) {
464
+ // 不是叶子节点
465
+ if (data.children) {
466
+ // 如果已经加载过该父节点的子节点,则只需展开,并选中人员节点
467
+ this.staticCheckedUserNodes(data)
468
+ } else {
469
+ // 没有加载过该父节点的子节点时,需要走后台获得该父节点的子节点,并展开子节点
470
+ this.dynamicCheckedUserNodes(data)
471
+ }
472
+ }
473
+ }
474
+ },
475
+ // 取消当前节点的子节点的勾选状态
476
+ cancelChildCheckedNodes(data) {
477
+ const children = data.children
478
+ if (children) {
479
+ children.forEach((nodeData) => {
480
+ // 取消节点的选中状态
481
+ this.$refs.deparmentUserTree.setChecked(nodeData.nodeId, false)
482
+ // 递归取消子节点的孩子节点的选中状态
483
+ this.cancelChildCheckedNodes(nodeData)
484
+ })
485
+ }
486
+ },
487
+ // 勾选指定节点及其下的所有用户节点
488
+ checkedChildrenUserNodes(data, children) {
489
+ // 勾选指定节点
490
+ // 勾选指定节点下的用户节点
491
+ if (children) {
492
+ const childrenDepartmentIds = []
493
+ children.forEach((childData) => {
494
+ if (childData.nodeType === 'USER') {
495
+ // 勾选用户节点
496
+ this.$refs.deparmentUserTree.setChecked(childData.nodeId, true)
497
+ const user = JSON.parse(childData.data)
498
+ const selectUser = this.packageSelectUser(user)
499
+ if (selectUser) {
500
+ selectUser.nodeId = childData.nodeId
501
+ this.selectResult.push(selectUser)
502
+ }
503
+ } else if (childData.nodeType === 'DEPARTMENT') {
504
+ this.$refs.deparmentUserTree.setChecked(childData.nodeId, true)
505
+ childrenDepartmentIds.push(childData.id)
506
+ } else {
507
+ this.$refs.deparmentUserTree.setChecked(childData.nodeId, false)
508
+ }
509
+ if (
510
+ this.$refs.deparmentUserTree.store.nodesMap[childData.nodeId]
511
+ .expanded
512
+ ) {
513
+ // 如果当前子节点已展开,则选中子节点的孩子节点中的用户节点
514
+ this.checkedChildrenUserNodes(childData)
515
+ }
516
+ })
517
+ // 封装所有子部门及孙子部门的用户
518
+ this.packageChildrenDepartmentUsers(childrenDepartmentIds)
519
+ }
520
+ if (data.id === this.tenantNodeId) {
521
+ // 如果是公司节点,清除其它所有节点的选中状态,只选中公司节点,表示选择了所有用户
522
+ this.$refs.deparmentUserTree.setCheckedKeys([])
523
+ }
524
+ // 选中当前点击的节点,即使当前点击的是非用户节点也要选中
525
+ this.$refs.deparmentUserTree.setChecked(data.nodeId, true)
526
+ },
527
+ // 封装所有子部门及孙子部门的用户
528
+ packageChildrenDepartmentUsers(childrenDepartmentIds) {
529
+ if (childrenDepartmentIds && childrenDepartmentIds.length > 0) {
530
+ this.getChildrenDepartmentUsers(childrenDepartmentIds).then((users) => {
531
+ users.forEach((user) => {
532
+ const selectUser = this.packageSelectUser(user)
533
+ if (selectUser) {
534
+ this.selectResult.push(selectUser)
535
+ }
536
+ })
537
+ })
538
+ }
539
+ },
540
+ // 选中非叶子类型的部门节点时,已加载过该节点下的子节点,只需展开该部门,且选中用户节点
541
+ staticCheckedUserNodes(data) {
542
+ // 展开当前选中的节点
543
+ this.$refs.deparmentUserTree.store.nodesMap[data.nodeId].expanded = true
544
+ // 选中用户节点
545
+ this.checkedChildrenUserNodes(data, data.children)
546
+ },
547
+ // 多选树时,点击节点处理复选框的选中状态
548
+ handleNodeClick(data, node, nodeTree) {
549
+ var checkedKeys = []
550
+ if (this.$refs.deparmentUserTree) {
551
+ checkedKeys = this.$refs.deparmentUserTree.getCheckedKeys()
552
+ }
553
+ if (checkedKeys.indexOf(data.nodeId) > -1) {
554
+ // 表示当前节点是选中状态,则需要取消其选中状态
555
+ // 取消当前节点的勾选状态
556
+ this.$refs.deparmentUserTree.setChecked(data.nodeId, false)
557
+ // 取消当前节点的子节点的勾选状态
558
+ this.cancelChildCheckedNodes(data)
559
+ // 取消选中状态时,保持节点是展开的状态,不要折叠
560
+ this.$refs.deparmentUserTree.store.nodesMap[data.nodeId].expanded = true
561
+ } else {
562
+ // 表示当前节点不是选中的状态,需要勾选该节点
563
+ if (!this.isContainAllUser()) {
564
+ if (this.isSelectTenantNode(data.id)) {
565
+ // 如果选中了公司节点,表示选择了所有人
566
+ const selectUser = this.packageAllUserToResult()
567
+ if (selectUser) {
568
+ this.selectResult = []
569
+ selectUser.nodeId = this.tenantNodeId + ''
570
+ this.selectResult.push(selectUser)
571
+ }
572
+ this.staticCheckedUserNodes(data)
573
+ } else {
574
+ // 点击树节点时添加并展开节点会走loadNode方法,因为设置了树组件的expand-on-click-node属性为true
575
+ const children = data.children
576
+ if (children && children.length > 0) {
577
+ // 表示加载过该节点,直接选中即可
578
+ this.staticCheckedUserNodes(data)
579
+ } else if (data.nodeType && data.nodeType === 'USER') {
580
+ // 表示是用户节点需要选中该节点
581
+ this.$refs.deparmentUserTree.setChecked(data.nodeId, true)
582
+ } else {
583
+ // 表示没有加载过该节点,是首次加载,需要走后台
584
+ // 会走loadNode方法,因为设置了树组件的expand-on-click-node属性为true
585
+ this.isClickNode = true
586
+ }
587
+ }
588
+ } else {
589
+ // 如果已选择所有用户,提示用户,先移除所有用户
590
+ // 当前节点的当前展开状态
591
+ const currentExpand =
592
+ this.$refs.deparmentUserTree.store.nodesMap[data.nodeId].expanded
593
+ // 当前节点的原展开状态
594
+ const originalExpand = !currentExpand
595
+ // 保持当前节点的原展开状态
596
+ this.$refs.deparmentUserTree.store.nodesMap[data.nodeId].expanded =
597
+ originalExpand
598
+ this.alertByAllUser()
599
+ }
600
+ }
601
+ },
602
+ isUserNode(data) {
603
+ // 当前节点不是公司节点,节点类型是用户类型时,表示点击的是用户节点
604
+ return (
605
+ data.id !== this.tenantNodeId &&
606
+ data.nodeType &&
607
+ data.nodeType === 'USER'
608
+ )
609
+ },
610
+ confirmSelectUser() {
611
+ // 选中的用户结果
612
+ var selectNodeInfo = {
613
+ userIds: [],
614
+ userNames: [],
615
+ userZhNames: [],
616
+ userEnNames: [],
617
+ loginNames: [],
618
+ emails: [],
619
+ telephones: [],
620
+ users: [],
621
+ }
622
+ // 是否需要显示提示框,默认不显示
623
+ var showTip = false
624
+ if (this.selectResult.length === 0) {
625
+ // 没有选择任何节点
626
+ showTip = true
627
+ } else {
628
+ for (var i = 0; i < this.selectResult.length; i++) {
629
+ var userData = this.selectResult[i]
630
+ // 不存在该用户则放到结果集合中,去掉重复使用
631
+ selectNodeInfo.userIds.push(userData.id)
632
+ selectNodeInfo.loginNames.push(userData.loginName)
633
+ if (userData.email && userData.email !== '') {
634
+ selectNodeInfo.emails.push(userData.email)
635
+ }
636
+ if (userData.telephone && userData.telephone !== '') {
637
+ selectNodeInfo.telephones.push(userData.telephone)
638
+ }
639
+ if (userData.user) {
640
+ selectNodeInfo.users.push(userData.user)
641
+ } else {
642
+ selectNodeInfo.users.push(userData)
643
+ }
644
+ var name = userData.name
645
+ selectNodeInfo.userZhNames.push(name)
646
+ if (userData.enName && userData.enName.trim() !== '') {
647
+ selectNodeInfo.userEnNames.push(userData.enName)
648
+ name = name + '(' + userData.enName + ')'
649
+ } else {
650
+ selectNodeInfo.userEnNames.push('')
651
+ }
652
+ // if (this.containBranch && userData.subCompanyName) {
653
+ // // 如果包含分支机构,则拼接分支机构名称
654
+ // name = name + '(' + userData.subCompanyName + ')'
655
+ // }
656
+ selectNodeInfo.userNames.push(name)
657
+ }
658
+ }
659
+ if (selectNodeInfo.userIds.length > 0) {
660
+ selectNodeInfo.containBranch = this.containBranch
661
+ $emit(this, 'result', selectNodeInfo)
662
+ } else {
663
+ showTip = true
664
+ }
665
+ if (showTip) {
666
+ this.$alert(
667
+ this.$t('imatrixUIMessage.pleaseSelectPersonnel'),
668
+ this.$t('imatrixUIMessage.tips'),
669
+ {
670
+ confirmButtonText: this.$t('imatrixUIPublicModel.sure'),
671
+ }
672
+ )
673
+ }
674
+ },
675
+ // 是否选中了公司节点
676
+ isSelectTenantNode(dataId) {
677
+ return (
678
+ dataId === this.tenantNodeId &&
679
+ (!this.departmentInfo || this.departmentInfo.length === 0)
680
+ )
681
+ },
682
+ // 初始化树 或 点击三角展开节点时动态加载子节点
683
+ loadNode(node, resolve) {
684
+ var parentId = 0
685
+ var parentNodeId = '0'
686
+ if (node.level === 0) {
687
+ // 表示初始化树
688
+ parentId = 0
689
+ parentNodeId = parentId + ''
690
+ } else {
691
+ parentId = node.data.id
692
+ parentNodeId = node.data.nodeId
693
+ }
694
+ var checkedKeys = []
695
+ if (this.$refs.deparmentUserTree) {
696
+ checkedKeys = this.$refs.deparmentUserTree.getCheckedKeys()
697
+ }
698
+ // 初始化部门人员树
699
+ this.initLoadDepartment(
700
+ parentId,
701
+ node,
702
+ resolve,
703
+ checkedKeys,
704
+ parentNodeId
705
+ )
706
+ },
707
+ // 给节点添加自定义图标
708
+ // renderContent(h, {node, data, store}) {
709
+ // var className
710
+ // if (node.data.id === -1 || node.data.branch) {
711
+ // // node.id ===-1表示公司节点,node.branch表示是分支机构节点
712
+ // className = 'Menu'
713
+ // } else if (node.data.id === -2 || node.data.id === -3) {
714
+ // // node.id ===-2表示集团公司无部门用户节点,node.id ===-3表示是分支机构无部门用户节点
715
+ // className = 'Tickets'
716
+ // } else if (node.data.nodeType === 'USER') {
717
+ // className = 'User'
718
+ // } else {
719
+ // className = 'Date'
720
+ // }
721
+ // return h(
722
+ // 'span',
723
+ // h('el-icon', h(className)),
724
+ // h('span', {title: node.label}, node.label)
725
+ // )
726
+ // // return (
727
+ // // `<span>
728
+ // // <i class={className}></i>
729
+ // // <span title={node.label}>{node.label}</span>
730
+ // // </span>`
731
+ // // )
732
+ // },
733
+ },
734
+ emits: ['result'],
735
+ }
736
+ </script>
737
+
738
+ <style>
739
+ .searchResult {
740
+ color: red;
741
+ }
742
+
743
+ .inline-select-custom {
744
+ width: 100px;
745
+ }
746
+
747
+ .inline-input-custom {
748
+ width: 98%;
749
+ }
750
+
751
+ .searchDepartmentUser {
752
+ width: 250px;
753
+ }
754
+
755
+ .el-autocomplete-suggestion.el-popper {
756
+ min-width: 300px;
757
+ }
758
+ </style>