imatrix-ui 0.0.1-dsn

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