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,857 @@
1
+ <template>
2
+ <span class="select-top-span">
3
+ <el-select
4
+ ref="dynamicDataSourceRef"
5
+ :allow-create="allowCreate"
6
+ :clearable="clearable"
7
+ :filterable="remote"
8
+ :loading="loading"
9
+ :model-value="value"
10
+ :placeholder="placeholder"
11
+ :remote="remote"
12
+ :remote-method="remoteMethod"
13
+ :reserve-keyword="true"
14
+ :size="size"
15
+ :style="fullWidth ? { width: '100%', height: '100%' } : {}"
16
+ :title="getClassOptionTitle(value)"
17
+ :value-key="valueAttribute"
18
+ default-first-option
19
+ v-bind="myProps"
20
+ @blur="blurEvent($event)"
21
+ @change="changeEvent"
22
+ @clear="clear"
23
+ @focus="focus"
24
+ @visible-change="visibleChange"
25
+ @remove-tag="removeTag(remote, $event)"
26
+ >
27
+ <template v-if="descriptionAttribute">
28
+ <div v-if="optionWidth > 0" :style="{ width: optionWidth + 'px' }">
29
+ <el-option
30
+ v-for="item in optionItems"
31
+ :key="item.value"
32
+ :label="item._label_"
33
+ :title="item._label_ + item._description_"
34
+ :value="item[valueAttribute]"
35
+ >
36
+ <div style="display: flex">
37
+ <span>{{ item._label_ }}</span>
38
+ <span
39
+ style="color: #8492a6; font-size: 13px; margin-left: 30px"
40
+ >{{ item._description_ }}</span
41
+ >
42
+ </div>
43
+ </el-option>
44
+ </div>
45
+ <el-option
46
+ v-for="item in optionItems"
47
+ :key="item.value"
48
+ v-else
49
+ :label="item._label_"
50
+ :title="item._label_ + item._description_"
51
+ :value="item[valueAttribute]"
52
+ >
53
+ <span style="float: left">{{ item._label_ }}</span>
54
+ <span
55
+ style="
56
+ float: right;
57
+ color: #8492a6;
58
+ font-size: 13px;
59
+ margin-left: 30px;
60
+ "
61
+ >{{ item._description_ }}</span
62
+ >
63
+ </el-option>
64
+ </template>
65
+ <template v-else>
66
+ <div
67
+ v-if="optionWidth > 0"
68
+ :style="{ width: optionWidth + 'px', position: 'relative' }"
69
+ >
70
+ <el-option
71
+ v-for="item in optionItems"
72
+ :key="item.value"
73
+ :label="item._label_"
74
+ :value="item[valueAttribute]"
75
+ />
76
+ </div>
77
+ <el-option
78
+ v-for="item in optionItems"
79
+ :key="item.value"
80
+ v-else
81
+ :label="item._label_"
82
+ :value="item[valueAttribute]"
83
+ />
84
+ </template>
85
+ </el-select>
86
+ </span>
87
+ </template>
88
+
89
+ <script>
90
+ import {$on} from '../../utils/gogocodeTransfer'
91
+ import dynamicSourceSelectService from './dynamic-source-select-service'
92
+ import events from './events'
93
+ import eventBus from '../../../src/utils/eventBus'
94
+ import {getEntityFieldValue, getPropNameWhenJoinTable, setEntityFieldValue} from '../../../src/utils/util'
95
+
96
+ export default {
97
+ name: 'DynamicSourceSelect',
98
+ components: {},
99
+ model: {
100
+ prop: 'value',
101
+ event: 'input',
102
+ },
103
+ props: {
104
+ // 字段配置 只有列表行编辑时候才用
105
+ column: {
106
+ type: Object,
107
+ default: null,
108
+ },
109
+ value: {
110
+ type: [String, Boolean, Number, Array],
111
+ default: null,
112
+ },
113
+ baseProps: {
114
+ type: Object,
115
+ default: null,
116
+ },
117
+ entity: {
118
+ type: Object,
119
+ default: null,
120
+ },
121
+ // dynamicDataSourceCode、valueSetOptions、isSql(默认是false,在配置系统中使用时需要是true)、additionalParameter( json字符串)
122
+ options: {
123
+ type: Object,
124
+ default: null,
125
+ },
126
+ // 列表组件行编辑使用,sql查询时数据表名称,用于自定义系统中列表组件中字段多表查询带有别名时,将点"."改成两个下划线"__"时使用
127
+ tableName: {
128
+ type: String,
129
+ default: null,
130
+ },
131
+ // 列表组件行编辑使用,是否是关联表,用于确定属性名是否需要拼接tableName
132
+ isJoinTable: {
133
+ type: Boolean,
134
+ default: false,
135
+ },
136
+ // 子表行编辑时,父表单数据
137
+ parent: {
138
+ type: Object,
139
+ default: null,
140
+ },
141
+ // 所在的列表编码
142
+ listCode: {
143
+ type: String,
144
+ default: null,
145
+ },
146
+ // 所在的表单编码
147
+ formCode: {
148
+ type: String,
149
+ default: null,
150
+ },
151
+ listToolbarFormData: {
152
+ type: Object,
153
+ default: () => {
154
+ return {}
155
+ },
156
+ },
157
+ fullWidth: {
158
+ type: Boolean,
159
+ default: true,
160
+ },
161
+ clearable: {
162
+ type: Boolean,
163
+ default: true,
164
+ },
165
+ size: {
166
+ type: String,
167
+ default: 'default',
168
+ },
169
+ allowCreate: {
170
+ type: Boolean,
171
+ default: false,
172
+ },
173
+ analysisArea: {
174
+ type: Number,
175
+ default: null,
176
+ // 1 为工具栏解析
177
+ },
178
+ placeholder: {
179
+ type: String,
180
+ default: null,
181
+ },
182
+ // 下拉框配置宽度
183
+ optionWidth: {
184
+ default: 0,
185
+ },
186
+ },
187
+ // 是否是页面预览, 从页面管理传递
188
+ inject: {
189
+ isPageInfo: {value: 'isPageInfo', default: false},
190
+ },
191
+ data() {
192
+ const myProps = Object.assign({}, this.baseProps)
193
+ let markValue
194
+ if (this.entity) {
195
+ markValue = JSON.stringify(this.entity)
196
+ }
197
+ let lastValues = []
198
+ if (this.baseProps.multiple !== undefined && this.baseProps.multiple === true) {
199
+ if (this.value !== undefined && this.value !== null && this.value && Array.isArray(this.value)) {
200
+ lastValues = JSON.parse(JSON.stringify(this.value))
201
+ }
202
+ }
203
+ return {
204
+ /**
205
+ * 用于回显动态数据源选择的默认值,因为初始进入编辑状态时,没有获取映射关系,
206
+ * 如果当前字段是保存的label值则无法确定当前选项组的值对应哪一个,导致row中的对应字段变成了空值,所以备份一份
207
+ * 然后在获取动态数据源选项组后,给上默认值
208
+ */
209
+ markValue,
210
+ optionItems: [],
211
+ myProps,
212
+ valueSetOptions: [], // 字段映射集合配置
213
+ dynamicDataSourceCode: '', // 动态数据源编码
214
+ loading: false, // 是否在加载
215
+ valueAttribute: null, // 选项值字段,即控制下拉框组件的value-key属性的
216
+ remote: false, // 是否是远程搜索
217
+ additionalParameterStr: this.options.additionalParameter, // 附加参数json字符串
218
+ isLoaded: false, // 动态数据源是否直接显示静态页面
219
+ watchAttr: null, // 监控的entity属性名,多个属性名逗号分隔。即当该属性修改时,需要走后台重新获得当前下拉选的选项集合
220
+ backendUrl: null, // 后台访问路径
221
+ descriptionAttribute: null,
222
+ queryParam: {}, // 请求参数,
223
+ lastValues // 最后一次的value值,用于判断是否是增加元素
224
+ }
225
+ },
226
+ watch: {
227
+ baseProps: {
228
+ deep: true,
229
+ handler(newModels) {
230
+ this.myProps = Object.assign({}, newModels)
231
+ },
232
+ },
233
+ },
234
+ created() {
235
+ if (this.options && this.options.dynamicDataSourceCode) {
236
+ this.dynamicDataSourceCode = this.options.dynamicDataSourceCode.trim()
237
+ const param = {
238
+ _listCode: this.listCode,
239
+ _formCode: this.formCode,
240
+ _tableName: this.tableName,
241
+ }
242
+ if (this.parent) {
243
+ param.parent = this.parent
244
+ }
245
+ if (!this.isPageInfo) {
246
+ this.packageDynamicDataSourceInfo(this.dynamicDataSourceCode, param)
247
+ .then((dynamicDataSourceDto) => {
248
+ // console.log('UI获取的数据', dynamicDataSourceDto)
249
+ if (dynamicDataSourceDto.backendUrl) {
250
+ this.backendUrl = dynamicDataSourceDto.backendUrl
251
+ }
252
+ if (
253
+ dynamicDataSourceDto.fuzzyQuery !== undefined &&
254
+ dynamicDataSourceDto.fuzzyQuery === true
255
+ ) {
256
+ // 是否启用远程搜索
257
+ this.remote = true
258
+ }
259
+ if (this.options && this.options.valueSetOptions) {
260
+ this.valueSetOptions = this.options.valueSetOptions
261
+ }
262
+ if (
263
+ this.options &&
264
+ this.options.isSql !== undefined &&
265
+ this.options.isSql !== null
266
+ ) {
267
+ this.isSql = this.options.isSql
268
+ }
269
+ if (this.watchAttr) {
270
+ let initWatchValue
271
+ const watchAttrs = this.watchAttr.split(',')
272
+ watchAttrs.forEach((attr) => {
273
+ // 初始化下拉选内容
274
+ if (this.entity) {
275
+ initWatchValue = this.entity[attr]
276
+ }
277
+ this.$watch('entity.' + attr, function (newValue, oldValue) {
278
+ this.watchAttrValueChange(newValue)
279
+ // this.inputValue('')
280
+ const items = this.optionItems.filter(
281
+ (item) => item[this.valueAttribute] === newValue
282
+ )
283
+ if (!items) {
284
+ this.inputValue('')
285
+ }
286
+ })
287
+ })
288
+ this.watchAttrValueChange(initWatchValue)
289
+ }
290
+ this.isLoaded = true
291
+ // // 解决当监控值变化时,数据源重新加载后select输入框中显示的值和下拉中的值不一致问题
292
+ // if (this.baseProps.multiple !== undefined && this.baseProps.multiple === true) {
293
+ // this.$nextTick(() => {
294
+ // // this.$refs['dynamicDataSourceRef'].setSelected()
295
+ // })
296
+ // }
297
+ // 默认选中处理
298
+ if (dynamicDataSourceDto.defaultSelect) {
299
+ // 多选处理
300
+ if (this.baseProps.multiple) {
301
+ this.$emit('set-default-value', [
302
+ this.optionItems[0][this.valueAttribute],
303
+ ])
304
+ } else {
305
+ // 单选处理
306
+ if (this.optionItems.length > 0) {
307
+ this.$emit(
308
+ 'set-default-value',
309
+ this.optionItems[0][this.valueAttribute]
310
+ )
311
+ }
312
+ }
313
+ }
314
+ // console.log('判断参数',this.analysisArea);
315
+ // console.log('判断参数',this.remote);
316
+ if (this.analysisArea !== 1 && this.remote) {
317
+ // 传递初始化查询供重置用
318
+ const that = this
319
+ $on(eventBus, 'remoteMethod', () => {
320
+ that.remoteMethod('')
321
+ })
322
+ // console.log('传递了参数');
323
+ }
324
+ this.$emit('load-completed', dynamicDataSourceDto)
325
+ })
326
+ .catch((error) => {
327
+ console.log(error)
328
+ this.$emit('load-completed', {
329
+ code: this.dynamicDataSourceCode,
330
+ error: error,
331
+ })
332
+ this.isLoaded = true
333
+ })
334
+ }
335
+ } else {
336
+ this.isLoaded = true
337
+ }
338
+ },
339
+ methods: {
340
+ ...dynamicSourceSelectService,
341
+ ...events,
342
+ blurEvent(event) {
343
+ // // 解决当监控值变化时,数据源重新加载后select输入框中显示的值和下拉中的值不一致问题
344
+ // if (this.baseProps.multiple !== undefined && this.baseProps.multiple === false) {
345
+ // this.$nextTick(() => {
346
+ // // this.$refs['dynamicDataSourceRef'].setSelected()
347
+ // })
348
+ // }
349
+ this.$emit('blur', event)
350
+ },
351
+ changeEvent(newValue){
352
+ this.inputValue(newValue)
353
+ this.$emit('change', newValue)
354
+ },
355
+ /**
356
+ * @description: 获取提示标题
357
+ * @Date: 2023-08-04 10:04:42
358
+ * @param {*}
359
+ * @return {*}
360
+ */
361
+ getClassOptionTitle(val) {
362
+ if (val !== null && val !== undefined && val !== '' && val.length > 0) {
363
+ let selectTittle = ''
364
+ if (typeof val === 'string') {
365
+ // 单选
366
+ if (this.descriptionAttribute) {
367
+ this.optionItems.forEach((item) => {
368
+ if (item[this.valueAttribute] === val) {
369
+ selectTittle = item._label_ + item._description_
370
+ }
371
+ })
372
+ } else {
373
+ this.optionItems.forEach((Ttem) => {
374
+ if (Ttem[this.valueAttribute] === val) {
375
+ selectTittle = Ttem._label_
376
+ }
377
+ })
378
+ }
379
+ } else {
380
+ // 多选
381
+ if (this.descriptionAttribute) {
382
+ this.optionItems.forEach((item) => {
383
+ val.forEach((Vtem) => {
384
+ if (item[this.valueAttribute] === Vtem) {
385
+ selectTittle = selectTittle + item._label_ + ','
386
+ }
387
+ })
388
+ })
389
+ selectTittle = selectTittle.slice(0, selectTittle.length - 1)
390
+ } else {
391
+ this.optionItems.forEach((Ttem) => {
392
+ val.forEach((Vtem) => {
393
+ if (Ttem[this.valueAttribute] === Vtem) {
394
+ selectTittle = selectTittle + Ttem._label_ + ','
395
+ }
396
+ })
397
+ })
398
+ selectTittle = selectTittle.slice(0, selectTittle.length - 1)
399
+ }
400
+ }
401
+ return selectTittle
402
+ }
403
+ },
404
+ // 必须有该方法,否则无法给字段赋值
405
+ inputValue(newValue) {
406
+ this.$emit('update:value', newValue)
407
+ if (newValue === null || newValue === undefined || newValue === '') {
408
+ this.remoteQueryMethod(newValue)
409
+ }
410
+ this.setValues(newValue)
411
+ },
412
+ packageDynamicDataSourceInfo(dynamicDataSourceCode, param) {
413
+ return new Promise((resolve, reject) => {
414
+ this.findDynamicDataSourceByCode(
415
+ dynamicDataSourceCode,
416
+ this.entity,
417
+ param,
418
+ this.additionalParameterStr,
419
+ this.backendUrl
420
+ )
421
+ .then((dynamicDataSourceDto) => {
422
+ if (dynamicDataSourceDto) {
423
+ if (dynamicDataSourceDto.options) {
424
+ this.optionItems = dynamicDataSourceDto.options
425
+ // if (this.watchAttr) {
426
+ // // 解决当监控值变化时,数据源重新加载后select输入框中显示的值和下拉中的值不一致问题
427
+ // if (
428
+ // this.baseProps.multiple !== undefined &&
429
+ // this.baseProps.multiple === true
430
+ // ) {
431
+ // this.$nextTick(() => {
432
+ // // this.$refs['dynamicDataSourceRef'].setSelected()
433
+ // })
434
+ // }
435
+ // }
436
+ //
437
+ if (this.column) {
438
+ // 只有行编辑时处理
439
+ // 设置选项组数据、 选项组值字段、 映射关系
440
+ if (
441
+ this.column.prop !== dynamicDataSourceDto.valueAttribute
442
+ ) {
443
+ this.column['_dynamic-source-data-' + this.column.prop] = {
444
+ valueSetOptions: this.options.valueSetOptions,
445
+ optionItems: this.optionItems,
446
+ valueAttribute: dynamicDataSourceDto.valueAttribute,
447
+ }
448
+ }
449
+ for (
450
+ let i = 0;
451
+ i < this.options.valueSetOptions.length;
452
+ i++
453
+ ) {
454
+ const valueSetOption = this.options.valueSetOptions[i]
455
+ if (
456
+ dynamicDataSourceDto.valueAttribute ===
457
+ valueSetOption.columnName
458
+ ) {
459
+ if (this.markValue) {
460
+ const muMarkValue = JSON.parse(this.markValue)
461
+ if (
462
+ muMarkValue &&
463
+ muMarkValue[valueSetOption.valueColumn.dbColumnName]
464
+ ) {
465
+ let targeValue = (
466
+ muMarkValue[
467
+ valueSetOption.valueColumn.dbColumnName
468
+ ] + ''
469
+ ).split(',')
470
+ if (this.column.componentType === 'select') {
471
+ // 如果是单选
472
+ targeValue = targeValue[0]
473
+ }
474
+ // 不需要再赋值了 如果当前字段不上动态数据源的值字段,那就表示不需要回显
475
+ // if (valueSetOption.valueColumn.dbColumnName === this.column.prop) {
476
+ // this.$emit('set-value', {
477
+ // value: targeValue,
478
+ // targetColumnName: this.column.prop,
479
+ // options: this.optionItems,
480
+ // valueAttribute: this.valueAttribute
481
+ // })
482
+ // }
483
+ }
484
+ }
485
+ break
486
+ }
487
+ }
488
+ }
489
+ } else {
490
+ this.optionItems = []
491
+ }
492
+ if (dynamicDataSourceDto.valueAttribute) {
493
+ this.valueAttribute = dynamicDataSourceDto.valueAttribute
494
+ }
495
+ if (dynamicDataSourceDto.descriptionAttribute) {
496
+ this.descriptionAttribute =
497
+ dynamicDataSourceDto.descriptionAttribute
498
+ }
499
+ this.valueAttribute = this.getValueAttribute()
500
+ this.watchAttr = dynamicDataSourceDto.watchAttr
501
+ this.$emit('load-completed', dynamicDataSourceDto)
502
+ resolve(dynamicDataSourceDto)
503
+ } else {
504
+ resolve()
505
+ }
506
+ })
507
+ .catch((error) => {
508
+ reject(error)
509
+ })
510
+ })
511
+ },
512
+ // 远程搜索方法
513
+ remoteQuery(searchText, watchAttrValue) {
514
+ if (
515
+ (searchText !== null && searchText !== undefined) ||
516
+ (watchAttrValue !== null && watchAttrValue !== undefined)
517
+ ) {
518
+ const param = {
519
+ _listCode: this.listCode,
520
+ _formCode: this.formCode,
521
+ _tableName: this.tableName,
522
+ }
523
+ if (searchText !== null && searchText !== undefined) {
524
+ param.searchText = searchText
525
+ }
526
+ if (watchAttrValue !== null && watchAttrValue !== undefined) {
527
+ // 监控的属性值改变了远程搜索方法
528
+ if (
529
+ Object.prototype.toString.apply(watchAttrValue) === '[object Array]'
530
+ ) {
531
+ param.watchAttrValue = watchAttrValue.join(',')
532
+ } else {
533
+ param.watchAttrValue = watchAttrValue + ''
534
+ }
535
+ } else if (this.entity) {
536
+ // 搜索时下拉选项的集合
537
+ const watchValue = this.entity[this.watchAttr]
538
+ if (watchValue !== null && watchValue !== undefined) {
539
+ if (
540
+ Object.prototype.toString.apply(watchValue) === '[object Array]'
541
+ ) {
542
+ param.watchAttrValue = watchValue.join(',')
543
+ } else {
544
+ param.watchAttrValue = watchValue + ''
545
+ }
546
+ }
547
+ }
548
+ if (this.parent) {
549
+ param.parent = this.parent
550
+ }
551
+ this.loading = true
552
+ this.packageDynamicDataSourceInfo(this.dynamicDataSourceCode, param)
553
+ .then((dynamicDataSourceDto) => {
554
+ // 解决当监控值变化时,数据源重新加载后select输入框中显示的值和下拉中的值不一致问题
555
+ // if (this.baseProps.multiple !== undefined && this.baseProps.multiple === true) {
556
+ // this.$nextTick(() => {
557
+ // // this.$refs['dynamicDataSourceRef'].setSelected()
558
+ // })
559
+ // }
560
+ this.loading = false
561
+ })
562
+ .catch((error) => {
563
+ console.log(error)
564
+ this.loading = false
565
+ })
566
+ }
567
+ },
568
+ // 远程搜索方法
569
+ remoteQueryMethod(searchText) {
570
+ if (Array.isArray(this.value)) {
571
+ if (this.value.length === 0) {
572
+ this.remoteQuery(searchText, null)
573
+ }
574
+ } else {
575
+ this.remoteQuery(searchText, null)
576
+ }
577
+ },
578
+ /**
579
+ * 输入框输入查询值时搜索方法,
580
+ * 不使用remoteQueryMethod, 解决输入框第一次输入时可查询,第二次输入时没有触发查询方法问题
581
+ * @param {*} searchText
582
+ */
583
+ remoteMethod(searchText) {
584
+ this.remoteQuery(searchText, null)
585
+ },
586
+ // 监控的属性值改变了远程搜索方法
587
+ watchAttrValueChange(watchAttrValues) {
588
+ this.remoteQuery(null, watchAttrValues)
589
+ },
590
+ getValueAttribute() {
591
+ return !this.valueAttribute || this.valueAttribute === '[label]'
592
+ ? '_label_'
593
+ : this.valueAttribute
594
+ },
595
+ setValues(newValue) {
596
+ if (this.valueSetOptions && this.valueSetOptions.length > 0) {
597
+ if (this.baseProps.multiple !== undefined && this.baseProps.multiple === true) {
598
+ // 多选时
599
+ this.setColumnValueWhenMulti(newValue)
600
+ } else {
601
+ // 单选时
602
+ this.valueSetOptions.forEach((columnInfo) => {
603
+ const sourceColumnName = columnInfo.columnName
604
+ let value
605
+ if (this.optionItems && sourceColumnName) {
606
+ value = this.getTargetColumnValue(newValue, sourceColumnName)
607
+ }
608
+ let targetColumnName = null
609
+ const targetColumnInfo = columnInfo.valueColumn
610
+ if (targetColumnInfo) {
611
+ targetColumnName = targetColumnInfo.name
612
+ if (this.isSql === true) {
613
+ targetColumnName = targetColumnInfo.dbColumnName
614
+ targetColumnName = getPropNameWhenJoinTable(
615
+ targetColumnName,
616
+ this.isJoinTable,
617
+ this.tableName
618
+ )
619
+ }
620
+ }
621
+ if (
622
+ this.entity &&
623
+ targetColumnName &&
624
+ targetColumnName !== null &&
625
+ targetColumnName !== ''
626
+ ) {
627
+ setEntityFieldValue(this.entity, targetColumnName, value)
628
+ }
629
+ const item = this.getSelectedOptionItem(newValue)
630
+ this.$emit('set-value', {
631
+ value: value,
632
+ sourceColumnName: sourceColumnName,
633
+ targetColumnName: targetColumnName,
634
+ options: this.optionItems,
635
+ valueAttribute: this.valueAttribute,
636
+ selectedItem: item,
637
+ })
638
+ })
639
+ }
640
+ }
641
+ },
642
+ // 设置字段的值
643
+ setColumnValue(sourceColumnName, value, columnInfo) {
644
+ let targetColumnName = null
645
+ const targetColumnInfo = columnInfo.valueColumn
646
+ if (targetColumnInfo) {
647
+ targetColumnName = targetColumnInfo.name
648
+ if (this.isSql === true) {
649
+ targetColumnName = targetColumnInfo.dbColumnName
650
+ targetColumnName = getPropNameWhenJoinTable(
651
+ targetColumnName,
652
+ this.isJoinTable,
653
+ this.tableName
654
+ )
655
+ }
656
+ }
657
+ if (
658
+ this.entity &&
659
+ targetColumnName &&
660
+ targetColumnName !== null &&
661
+ targetColumnName !== ''
662
+ ) {
663
+ setEntityFieldValue(this.entity, targetColumnName, value)
664
+ }
665
+ this.$emit('set-value', {
666
+ value: value,
667
+ sourceColumnName: sourceColumnName,
668
+ targetColumnName: targetColumnName,
669
+ options: this.optionItems,
670
+ valueAttribute: this.valueAttribute
671
+ })
672
+ },
673
+ // 多选下拉框时处理增加tag、减少tag时,映射字段赋值问题
674
+ setColumnValueWhenMulti(newValue) {
675
+ // 是否添加tag
676
+ let isAddTag = false
677
+ let removeTag
678
+ this.valueSetOptions.forEach(columnInfo => {
679
+ const sourceColumnName = columnInfo.columnName
680
+ if (sourceColumnName === this.valueAttribute) {
681
+ // 是当前下拉选组件对应的字段时,才需要走该方法
682
+ // 字段的值
683
+ let value
684
+ if (this.optionItems && sourceColumnName) {
685
+ value = this.getTargetColumnValue(newValue, sourceColumnName)
686
+ }
687
+ this.setColumnValue(sourceColumnName, value, columnInfo)
688
+ if (this.lastValues.length < newValue.length) {
689
+ // 表示是增加tag
690
+ isAddTag = true
691
+ } else if (this.lastValues.length > newValue.length) {
692
+ // 表示减少tag
693
+ isAddTag = false
694
+ const totalArr = [...this.lastValues, ...newValue]
695
+ const totalSet = new Set(totalArr)
696
+ const arr = Array.from(totalSet)
697
+ const removeTagArr = [...arr.filter(item => !this.lastValues.includes(item)), ...arr.filter(item => !newValue.includes(item))]
698
+ if (removeTagArr && removeTagArr.length > 0) {
699
+ removeTag = removeTagArr[0]
700
+ }
701
+ }
702
+ this.lastValues = JSON.parse(JSON.stringify(newValue))
703
+ // 跳出forEach循环
704
+
705
+ }
706
+ })
707
+ if (isAddTag) {
708
+ // 表示是增加tag
709
+ const isRemove = false
710
+ const lastSelectTag = newValue[newValue.length - 1]
711
+ const items = this.optionItems.filter(
712
+ item => item[this.valueAttribute] === lastSelectTag
713
+ )
714
+ if (items && items.length > 0) {
715
+ this.setTagValue(null, isRemove, items[0])
716
+ }
717
+ } else {
718
+ // 表示是减少tag
719
+ const isRemove = true
720
+ this.setTagValue(removeTag, isRemove)
721
+ }
722
+ },
723
+ // 根据tag参数设置映射字段的值
724
+ setTagValue(tag, isRemove, selectItem) {
725
+ if (this.valueSetOptions && this.valueSetOptions.length > 0) {
726
+ this.valueSetOptions.forEach(columnInfo => {
727
+ const sourceColumnName = columnInfo.columnName
728
+ if (sourceColumnName !== this.valueAttribute) {
729
+ let targetColumnName = null
730
+ const targetColumnInfo = columnInfo.valueColumn
731
+ if (targetColumnInfo) {
732
+ targetColumnName = targetColumnInfo.name
733
+ if (this.isSql === true) {
734
+ targetColumnName = targetColumnInfo.dbColumnName
735
+ targetColumnName = getPropNameWhenJoinTable(
736
+ targetColumnName,
737
+ this.isJoinTable,
738
+ this.tableName
739
+ )
740
+ }
741
+ }
742
+ let value
743
+ if (targetColumnName) {
744
+ const originalValue = getEntityFieldValue(this.entity, targetColumnName)
745
+ if (isRemove) {
746
+ // 移除tag
747
+ const index = this.value.indexOf(tag)
748
+ if (originalValue !== undefined && originalValue !== null && originalValue !== '') {
749
+ const originalVals = originalValue.split(',')
750
+ originalVals.splice(index, 1)
751
+ value = originalVals.join(',')
752
+ }
753
+ } else {
754
+ // 添加tag
755
+ let addValue
756
+ if (selectItem) {
757
+ addValue = selectItem[sourceColumnName]
758
+ }
759
+ if (originalValue !== undefined && originalValue !== null && originalValue !== '') {
760
+ value = originalValue + ',' + addValue
761
+ } else {
762
+ value = addValue
763
+ }
764
+ }
765
+ }
766
+ if (
767
+ this.entity &&
768
+ targetColumnName &&
769
+ targetColumnName !== null &&
770
+ targetColumnName !== ''
771
+ ) {
772
+ setEntityFieldValue(this.entity, targetColumnName, value)
773
+ }
774
+ this.$emit('set-value', {
775
+ value: value,
776
+ sourceColumnName: sourceColumnName,
777
+ targetColumnName: targetColumnName,
778
+ options: this.optionItems,
779
+ valueAttribute: this.valueAttribute
780
+ })
781
+ }
782
+ })
783
+ }
784
+ },
785
+ // 获得目的字段的值
786
+ getTargetColumnValue(newValue, sourceColumnName) {
787
+ if (newValue) {
788
+ let value = ''
789
+ if (
790
+ this.baseProps.multiple !== undefined &&
791
+ this.baseProps.multiple === true &&
792
+ Array.isArray(newValue)
793
+ ) {
794
+ // 多选值处理,数组信息,使用逗号分开的格式设置其它字段的值
795
+ let i = 0
796
+ newValue.forEach((itemValue) => {
797
+ const items = this.optionItems.filter(
798
+ (item) => item[this.valueAttribute] === itemValue
799
+ )
800
+ if (items && items.length > 0) {
801
+ value += items[0][sourceColumnName]
802
+ if (i < newValue.length - 1) {
803
+ // 最后一个元素不加逗号
804
+ value += ','
805
+ }
806
+ i++
807
+ }
808
+ })
809
+ } else {
810
+ // 单选
811
+ const items = this.optionItems.filter(
812
+ (item) => item[this.valueAttribute] === newValue
813
+ )
814
+ if (items && items.length > 0) {
815
+ value = items[0][sourceColumnName]
816
+ }
817
+ }
818
+ return value
819
+ }
820
+ },
821
+ // 移除所有tag和clear时候清除markValue的值解决清除选项时关联字段清空了但是当前动态数据源控件仍然有值问题
822
+ clearMarkValue() {
823
+ if (this.markValue && this.entity) {
824
+ const muMarkValue = JSON.parse(this.markValue)
825
+ for (let i = 0; i < this.options.valueSetOptions.length; i++) {
826
+ const valueSetOption = this.options.valueSetOptions[i]
827
+ muMarkValue[valueSetOption.valueColumn.dbColumnName] = null
828
+ }
829
+ this.markValue = JSON.stringify(muMarkValue)
830
+ }
831
+ },
832
+ },
833
+ emits: [
834
+ 'set-default-value',
835
+ 'load-completed',
836
+ 'update:value',
837
+ 'set-value',
838
+ 'update:value',
839
+ 'focus',
840
+ 'blur',
841
+ 'visible-change',
842
+ 'change'
843
+ ],
844
+ }
845
+ </script>
846
+
847
+ <style>
848
+ .select-top-span {
849
+ width: 100%;
850
+ }
851
+ </style>
852
+
853
+ <style lang="scss" scoped>
854
+ :deep(.el-select-dropdown__item) {
855
+ display: inline-block;
856
+ }
857
+ </style>