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,910 @@
1
+ import i18n from '../i18n/i18n'
2
+ import { executeExpression } from './calculator/calculator-util'
3
+ import { getLangByShort } from './common-util'
4
+
5
+ export function getI18n() {
6
+ if (!window.$locale) {
7
+ i18n.locale = 'cn'
8
+ } else {
9
+ i18n.locale = window.$locale
10
+ }
11
+ return i18n.global
12
+ }
13
+
14
+ export function getLanguageWithLocale() {
15
+ let currentLocale = window.$locale
16
+ if (!currentLocale || currentLocale === 'zh') {
17
+ currentLocale = 'cn'
18
+ }
19
+ return getLangByShort(currentLocale)
20
+ }
21
+
22
+ /**
23
+ * 根据动态数据源获得下拉选的选项集合
24
+ * @param {*} dynamicSourceCode 动态数据源编码
25
+ * @param {*} searchText 查询的文本
26
+ * @param {*} entity 实体信息
27
+ * @returns
28
+ */
29
+ export function findOptionsByDynamicDataSource(
30
+ dynamicSourceCode,
31
+ searchText,
32
+ entity,
33
+ additionalParameterStr,
34
+ searchParam
35
+ ) {
36
+ return new Promise((resolve, reject) => {
37
+ findDynamicDataSourceByCode(
38
+ dynamicSourceCode,
39
+ searchText,
40
+ entity,
41
+ additionalParameterStr,
42
+ searchParam
43
+ )
44
+ .then((dynamicDataSourceDto) => {
45
+ let options = []
46
+ if (dynamicDataSourceDto && dynamicDataSourceDto.options) {
47
+ const setOptions = dynamicDataSourceDto.options
48
+ let valueAttribute
49
+ if (dynamicDataSourceDto.valueAttribute) {
50
+ valueAttribute = dynamicDataSourceDto.valueAttribute
51
+ }
52
+ if (!valueAttribute || valueAttribute === '[label]') {
53
+ valueAttribute = '_label_'
54
+ }
55
+ setOptions.forEach((item) => {
56
+ // 值
57
+ const value = item[valueAttribute]
58
+ // 显示的标签
59
+ const label = item['_label_']
60
+ options.push({
61
+ label,
62
+ value,
63
+ })
64
+ })
65
+ }
66
+ if (!options) {
67
+ options = []
68
+ }
69
+ resolve(options)
70
+ })
71
+ .catch((error) => {
72
+ reject(error)
73
+ })
74
+ })
75
+ }
76
+
77
+ /**
78
+ * 根据动态数据源获得下拉选的选项对象集合
79
+ * @param {*} dynamicSourceCode 动态数据源编码
80
+ * @param {*} searchText 查询的文本
81
+ * @param {*} entity 实体信息
82
+ * @returns
83
+ */
84
+ export function findDynamicDataSourceByCode(
85
+ dynamicSourceCode,
86
+ searchText,
87
+ entity,
88
+ additionalParameterStr,
89
+ searchParam
90
+ ) {
91
+ let watchAttrValue
92
+ let parentEntity
93
+ let listCode
94
+ let formCode
95
+ let tableName
96
+ if (searchParam) {
97
+ watchAttrValue = searchParam.watchAttrValue
98
+ if (watchAttrValue === undefined || watchAttrValue === null) {
99
+ watchAttrValue = ''
100
+ }
101
+ parentEntity = searchParam.parent
102
+ listCode = searchParam._listCode
103
+ formCode = searchParam._formCode
104
+ tableName = searchParam._tableName
105
+ }
106
+ const params = {
107
+ searchText,
108
+ watchAttrValue,
109
+ parent: parentEntity
110
+
111
+ }
112
+ if (additionalParameterStr && typeof (additionalParameterStr) === 'object') {
113
+ params.additionalParamMap = additionalParameterStr
114
+ } else if (additionalParameterStr && typeof (additionalParameterStr) === 'string') {
115
+ params.additionalParamMap = JSON.parse(additionalParameterStr)
116
+ }
117
+ if (params.additionalParamMap === undefined) {
118
+ params.additionalParamMap = {}
119
+ }
120
+ if (listCode) {
121
+ params.additionalParamMap._listCode = listCode
122
+ }
123
+ if (formCode) {
124
+ params.additionalParamMap._formCode = formCode
125
+ }
126
+ if (tableName) {
127
+ params.additionalParamMap._tableName = tableName
128
+ }
129
+ if (entity && entity !== null) {
130
+ params.entity = entity
131
+ }
132
+ const backendUrl = window.$vueApp.config.globalProperties.baseURL
133
+
134
+ return new Promise((resolve, reject) => {
135
+ // 页面设计不请求动态数据源
136
+ if (window.$vueApp.config.globalProperties.systemCode !== undefined && window.$vueApp.config.globalProperties.systemCode === 'agilebuidler') {
137
+ resolve()
138
+ } else {
139
+ window.$vueApp.config.globalProperties.$http.post(backendUrl + '/common/dynamic-data-source/' + dynamicSourceCode, params).then(result => {
140
+ if (result.backendUrl) {
141
+ // result.backendUrl表示需要使用动态数据源所属的系统路径重新获得一次数据
142
+ window.$vueApp.config.globalProperties.$http.post(result.backendUrl + '/common/dynamic-data-source/' + dynamicSourceCode, params).then(finallyResult => {
143
+ resolve(finallyResult)
144
+ }).catch(error => {
145
+ reject(error)
146
+ })
147
+ } else {
148
+ resolve(result)
149
+ }
150
+ }).catch(error => {
151
+ reject(error)
152
+ })
153
+ }
154
+ })
155
+ }
156
+
157
+ /**
158
+ * 解析是否可见的条件,例如:按钮是否按钮;列表单元格内容是否可见
159
+ * @param {*} conditionListJson
160
+ * @param {*} entity
161
+ * @param {*} additionalParameter
162
+ * @param {*} contextParameter
163
+ * @param {*} isSql
164
+ * @param {*} tableName
165
+ * @returns
166
+ */
167
+ export function analysisCondition(
168
+ conditionListJson,
169
+ entity,
170
+ additionalParameter,
171
+ contextParameter,
172
+ isSql,
173
+ tableName,
174
+ parentFormData
175
+ ) {
176
+ // console.log('analysisCondition判断条件conditionListJson', conditionListJson)
177
+ // console.log('analysisCondition判断条件entity', entity)
178
+ // console.log('analysisCondition判断条件additionalParameter', additionalParameter)
179
+ // console.log('analysisCondition判断条件contextParameter', contextParameter)
180
+ // console.log('analysisCondition判断条件isSql', isSql)
181
+ // console.log('analysisCondition判断条件tableName', tableName)
182
+ // console.log('analysisCondition判断条件parentFormData', parentFormData)
183
+ if (
184
+ conditionListJson === undefined ||
185
+ conditionListJson === '' ||
186
+ conditionListJson === null
187
+ ) {
188
+ // 如果条件不存在,则默认返回true
189
+ return true
190
+ }
191
+ if (typeof isSql === 'undefined' || isSql === null) {
192
+ // 默认是定制开发时
193
+ isSql = false
194
+ }
195
+ // 页面附加参数
196
+ let additionalParameterMap = {}
197
+ if (
198
+ additionalParameter &&
199
+ typeof additionalParameter === 'string' &&
200
+ additionalParameter !== ''
201
+ ) {
202
+ additionalParameterMap = JSON.parse(additionalParameter)
203
+ } else if (additionalParameter && typeof additionalParameter === 'object') {
204
+ additionalParameterMap = additionalParameter
205
+ }
206
+ // 环境变量,例如:当前用户id、当前用户登录名等
207
+ let contextParameterMap = {}
208
+ if (
209
+ contextParameter &&
210
+ typeof contextParameter === 'string' &&
211
+ contextParameter !== ''
212
+ ) {
213
+ contextParameterMap = JSON.parse(contextParameter)
214
+ } else if (contextParameter && typeof contextParameter === 'object') {
215
+ contextParameterMap = contextParameter
216
+ }
217
+ let conditionList = []
218
+ if (
219
+ conditionListJson &&
220
+ typeof conditionListJson === 'string' &&
221
+ conditionListJson !== ''
222
+ ) {
223
+ // conditionList = eval('('+conditionListJson+')')
224
+ conditionList = JSON.parse(conditionListJson)
225
+ } else if (conditionListJson && Array.isArray(conditionListJson)) {
226
+ conditionList = conditionListJson
227
+ }
228
+ return parseCondition(
229
+ entity,
230
+ conditionList,
231
+ isSql,
232
+ tableName,
233
+ additionalParameterMap,
234
+ contextParameterMap,
235
+ parentFormData
236
+ )
237
+ }
238
+
239
+ function parseCondition(
240
+ entity,
241
+ conditionList,
242
+ isSql,
243
+ tableName,
244
+ additionalParamMap,
245
+ contextParameterMap,
246
+ parentFormData
247
+ ) {
248
+ if (
249
+ conditionList === undefined ||
250
+ conditionList === null ||
251
+ conditionList.length === 0
252
+ ) {
253
+ // 表示没有设置条件,默认是true
254
+ return true
255
+ }
256
+ // 条件封装的表达式
257
+ let conditions = ''
258
+ for (let i = 0; i < conditionList.length; i++) {
259
+ const condition = conditionList[i]
260
+ let propName = condition.propName
261
+ let propDbName = condition.propDbName
262
+ if ((!propName || propName === '') && (!propDbName || propDbName === '')) {
263
+ // 没有属性和字段名表示是无效的条件
264
+ continue
265
+ }
266
+ let leftValue
267
+ if (isSql && propDbName) {
268
+ if (propDbName.indexOf('parent_+_') !== -1) {
269
+ propDbName = propDbName.replace('parent_+_', '')
270
+ // 再获取属于那张表
271
+ const propDbNameArr = propDbName.split('_+_')
272
+ propDbName = propDbNameArr[1]
273
+ leftValue = getValue(parentFormData, propDbName, isSql)
274
+ } else {
275
+ leftValue = getValue(entity, propDbName, isSql)
276
+ }
277
+ if (leftValue === undefined || leftValue === null) {
278
+ if (
279
+ tableName &&
280
+ propDbName.toLowerCase().startsWith(tableName.toLowerCase() + '.')
281
+ ) {
282
+ // 表示是当前表的字段
283
+ const myProp = propDbName.substring(propDbName.indexOf('.'))
284
+ leftValue = getValue(entity, myProp, isSql)
285
+ }
286
+ }
287
+ } else {
288
+ if (propName.indexOf('parent_+_') !== -1) {
289
+ propName = propName.replace('parent_+_', '')
290
+ const propNameArr = propName.split('_+_')
291
+ propName = propNameArr[1]
292
+ leftValue = getValue(parentFormData, propName, isSql)
293
+ } else {
294
+ leftValue = getValue(entity, propName, isSql)
295
+ }
296
+ if (propDbName && (leftValue === undefined || leftValue === null)) {
297
+ leftValue = getValue(entity, propDbName, isSql)
298
+ }
299
+ }
300
+ const operator = condition.operator
301
+ const propValue = condition.propValue
302
+ const dataType = condition.dataType
303
+ const variableIsNullStr = condition.variableIsNull
304
+ // 解析单个条件的值
305
+ // 判断value类型
306
+ let value = getPropValue(
307
+ propValue,
308
+ entity,
309
+ additionalParamMap,
310
+ contextParameterMap
311
+ )
312
+ if (variableIsNullStr && variableIsNullStr === 'null') {
313
+ if (value === undefined || value === '') {
314
+ value = null
315
+ }
316
+ }
317
+ let conditionResult = executeExpression(
318
+ leftValue,
319
+ operator,
320
+ value,
321
+ dataType
322
+ )
323
+ const leftBracket = condition.leftBracket
324
+ const rightBracket = condition.rightBracket
325
+ let joinSign = condition.joinSign
326
+ if (leftBracket && leftBracket !== null && leftBracket !== '') {
327
+ conditions = conditions + leftBracket
328
+ conditions = conditions + ' '
329
+ // conditions.append(leftBracket).append(' ')
330
+ }
331
+ if (variableIsNullStr && variableIsNullStr !== 'null') {
332
+ if (value === undefined || value === null || value + '' === '') {
333
+ if (variableIsNullStr === '1=1') {
334
+ conditionResult = true
335
+ } else {
336
+ conditionResult = false
337
+ }
338
+ }
339
+ }
340
+ conditions += conditionResult + ' '
341
+ if (rightBracket && rightBracket !== null && rightBracket !== '') {
342
+ conditions = conditions + rightBracket
343
+ conditions = conditions + ' '
344
+ // conditions.append(rightBracket).append(' ')
345
+ }
346
+ if (i < conditionList.length - 1) {
347
+ // 最后一个不拼接“连接符”
348
+ if (joinSign && joinSign !== null && joinSign !== '') {
349
+ const joinSignIgnoreCase = joinSign.toLowerCase()
350
+ if (joinSignIgnoreCase === 'and') {
351
+ joinSign = joinSignIgnoreCase.replace('and', '&&')
352
+ } else if (joinSignIgnoreCase === 'or') {
353
+ joinSign = joinSignIgnoreCase.replace('or', '||')
354
+ }
355
+ conditions += joinSign + ' '
356
+ }
357
+ }
358
+ }
359
+ console.log('parseCondition----conditions=', conditions)
360
+ if (conditions) {
361
+ // eslint-disable-next-line no-eval
362
+ return eval('(' + conditions + ')')
363
+ } else {
364
+ return true
365
+ }
366
+ }
367
+
368
+ const REPLACE_DOT = '__'
369
+
370
+ function getValue(entityData, fieldName, isSql) {
371
+ let value = null
372
+ if (entityData && entityData !== null) {
373
+ if (fieldName && fieldName !== null) {
374
+ value = getValueByField(entityData, fieldName)
375
+ if (value === undefined || value === null) {
376
+ if (isSql) {
377
+ if (value === undefined || value == null) {
378
+ if (fieldName.indexOf('.') > 0) {
379
+ // 将“.”替换为'__',列表组件中的entity中如果是'.',传过来的实体信息中的字段属性会是“__”
380
+ fieldName = fieldName.replace('.', REPLACE_DOT)
381
+ value = getValueByField(entityData, fieldName)
382
+ }
383
+ }
384
+ }
385
+ }
386
+ }
387
+ }
388
+ return value
389
+ }
390
+
391
+ export function getValueByField(entityData, fieldName) {
392
+ if (entityData && entityData !== null) {
393
+ let value
394
+ if (fieldName.indexOf('.') > 0) {
395
+ // 表示是子表字段
396
+ value = getSubEntityValue(entityData, fieldName)
397
+ } else {
398
+ value = entityData[fieldName.toUpperCase()]
399
+ if (value === undefined) {
400
+ value = entityData[fieldName.toLowerCase()]
401
+ }
402
+ }
403
+ return value
404
+ }
405
+ }
406
+
407
+ function getSubEntityValue(entityData, fieldName) {
408
+ let value = null
409
+ let subEntityData = entityData
410
+ const fieldNames = fieldName.split('\\.')
411
+ for (let i = 0; i < fieldNames.length; i++) {
412
+ const field = fieldNames[i]
413
+ if (i === fieldNames.length) {
414
+ value = getSubEntityFieldValue(subEntityData, field)
415
+ } else {
416
+ subEntityData = getSubEntityFieldValue(subEntityData, field)
417
+ }
418
+ }
419
+ return value
420
+ }
421
+
422
+ /**
423
+ * 获得关联表字段的值。
424
+ * 处理sql 或 实体情况。
425
+ * @param subEntityData
426
+ * @param fieldName
427
+ * @return
428
+ */
429
+ function getSubEntityFieldValue(subEntityData, fieldName) {
430
+ if (subEntityData === undefined || subEntityData === null) {
431
+ return null
432
+ }
433
+ return subEntityData[fieldName]
434
+ }
435
+
436
+ function getContextValue(contextParameterMap, propValue) {
437
+ let value = getLastNDate(propValue)
438
+ if (contextParameterMap) {
439
+ value = contextParameterMap[propValue]
440
+ }
441
+ return value
442
+ }
443
+ /**
444
+ * 获得最近n天的开始日期和结束日期集合
445
+ * @param {*} propValue currentTime/currentWeek/currentMonth/currentQuarter/currentYear/lastNDay:n
446
+ * @returns [startDate,endDate],例如:[2024/2/26 00:00:00,2023/3/3 23:59:59]
447
+ */
448
+ export function getLastNDate(propValue) {
449
+ let value
450
+ if (propValue &&
451
+ propValue === 'currentTime') {
452
+ // 当前时间
453
+ value = new Date()
454
+ }
455
+ if (propValue &&
456
+ propValue === 'currentWeek') {
457
+ // 本周
458
+ value = getCurrentWeek()
459
+ }
460
+ if (propValue &&
461
+ propValue === 'currentMonth') {
462
+ // 本月
463
+ value = getCurrentMonth()
464
+ }
465
+ if (propValue &&
466
+ propValue === 'currentQuarter') {
467
+ // 本季度
468
+ value = getCurrentQuarter()
469
+ }
470
+ if (propValue &&
471
+ propValue === 'currentYear') {
472
+ // 本年
473
+ value = getCurrentYear()
474
+ }
475
+ if (propValue &&
476
+ propValue.indexOf('lastNDay') >= 0) {
477
+ // 最近n天 lastNDay:n,例如:lastNDay:5,表示最近5天
478
+ const n = propValue.substring(propValue.indexOf(':') + 1)
479
+ value = getLastNDay(parseInt(n))
480
+ }
481
+ return value
482
+ }
483
+ /**
484
+ * 获得当前周的周一和周日的的日期
485
+ * 例如:[2024/2/26 00:00:00,2023/3/3 23:59:59]
486
+ * @returns
487
+ */
488
+ function getCurrentWeek() {
489
+ const new_Date = new Date() //获取本周一周日期
490
+ const timesStamp = new_Date.getTime();
491
+ const currenDay = new_Date.getDay();
492
+ // 周一
493
+ const monday = new Date(timesStamp + 24 * 60 * 60 * 1000 * (0 - (currenDay + 6) % 7))
494
+ // 周日
495
+ const sunday = new Date(timesStamp + 24 * 60 * 60 * 1000 * (6 - (currenDay + 6) % 7))
496
+ const startDate = monday.toLocaleDateString() + " " + monday.toLocaleTimeString()
497
+ const endDate = sunday.toLocaleDateString() + " " + sunday.toLocaleTimeString()
498
+ console.log(`getCurrentMonth从 ${startDate} 开始,到 ${endDate} 结束`);
499
+ return [monday, sunday]
500
+ }
501
+ /**
502
+ * 获得当前月第1天和最后1天的日期
503
+ * 例如:[2023/1/1 00:00:00,2023/1/31 23:59:59]
504
+ * @returns [xxx,xxx]
505
+ */
506
+ function getCurrentMonth() {
507
+ // 创建一个新的Date对象,表示当前时间
508
+ const currentDate = new Date();
509
+
510
+ // 获取当前年份和月份
511
+ const year = currentDate.getFullYear(); // 获取完整的四位年份
512
+ const month = currentDate.getMonth() + 1; // getMonth返回值范围为0-11,因此加上1得到真正的月份
513
+
514
+ // 设置起始日期为本月第一天
515
+ currentDate.setDate(1);
516
+
517
+ // 将起始日期格式化成字符串形式(YYYY-MM-DD)
518
+ const startDateStr = `${year}/${month < 10 ? '0' : ''}${month}/01`;
519
+
520
+ // 设置结束日期为下个月第一天的前一天
521
+ currentDate.setMonth(currentDate.getMonth() + 2);
522
+ currentDate.setDate(0);
523
+
524
+ // 将结束日期格式化成字符串形式(YYYY-MM-DD)
525
+ const endDateStr = `${currentDate.getFullYear()}/${currentDate.getMonth() < 9 ? '0' : ''}${(currentDate.getMonth() + 1)}/01`;
526
+ const startDate11 = new Date(Date.parse(startDateStr))
527
+ const endDate11 = new Date(new Date(Date.parse(endDateStr)).getTime() - 1000)
528
+ const startDate = startDate11.toLocaleDateString() + " " + startDate11.toLocaleTimeString()
529
+ const endDate = endDate11.toLocaleDateString() + " " + endDate11.toLocaleTimeString()
530
+ console.log(`getCurrentMonth从 ${startDate} 开始,到 ${endDate} 结束`);
531
+ return [startDate11, endDate11]
532
+ }
533
+ /**
534
+ * 获得当前季度第1天和最后一天的日期
535
+ * 例如:[2023/1/1 00:00:00,2023/3/31 23:59:59]
536
+ * @returns
537
+ */
538
+ function getCurrentQuarter() {
539
+ const currentDate = new Date();
540
+ const quarterStartIndex = (currentDate.getMonth() + 3) % 12;
541
+ let firstDayOfQuarter; // 存放第一天的Date对象
542
+ if (currentDate.getMonth() < quarterStartIndex + 2) {
543
+ firstDayOfQuarter = new Date(currentDate.getFullYear(), quarterStartIndex, 1);
544
+ } else {
545
+ firstDayOfQuarter = new Date(currentDate.getFullYear() + 1, quarterStartIndex, 1);
546
+ }
547
+
548
+ let lastDayOfQuarter; // 存放最后一天的Date对象
549
+ if (firstDayOfQuarter.getMonth() === 11) {
550
+ lastDayOfQuarter = new Date(firstDayOfQuarter.getFullYear() + 1, 0, 0);
551
+ } else {
552
+ lastDayOfQuarter = new Date(firstDayOfQuarter.getFullYear(), firstDayOfQuarter.getMonth() + 3, 0);
553
+ }
554
+ lastDayOfQuarter = new Date(lastDayOfQuarter.getTime() + (24 * 60 * 60 * 1000) - 1000)
555
+ const startDate = firstDayOfQuarter.toLocaleDateString() + " " + firstDayOfQuarter.toLocaleTimeString()
556
+ const endDate = lastDayOfQuarter.toLocaleDateString() + " " + lastDayOfQuarter.toLocaleTimeString()
557
+ console.log(`getCurrentQuarter从 ${startDate} 开始,到 ${endDate} 结束`);
558
+ return [firstDayOfQuarter, lastDayOfQuarter]
559
+ }
560
+ /**
561
+ * 获得本年的第1天和最后一天的日期
562
+ * 例如:[2023/1/1 00:00:00,2023/12/31 23:59:59]
563
+ * @returns
564
+ */
565
+ function getCurrentYear() {
566
+ // 创建一个新的日期对象
567
+ const currentYear = new Date().getFullYear(); // 获取当前年份
568
+
569
+ // 设置为当前年的1月1号(第一天)
570
+ let firstDayOfCurrentYear = new Date(currentYear, 0);
571
+ firstDayOfCurrentYear.setMonth(0, 1); // 将月份设置为0表示1月
572
+
573
+ // 设置为下一年的12月31号(最后一天)
574
+ let lastDayOfCurrentYear = new Date(currentYear + 1, 0);
575
+ lastDayOfCurrentYear = lastDayOfCurrentYear.getTime() - 1000
576
+ lastDayOfCurrentYear = new Date(lastDayOfCurrentYear)
577
+ const startDate = firstDayOfCurrentYear.toLocaleDateString() + " " + firstDayOfCurrentYear.toLocaleTimeString()
578
+ const endDate = lastDayOfCurrentYear.toLocaleDateString() + " " + lastDayOfCurrentYear.toLocaleTimeString()
579
+ console.log(`getCurrentYear从 ${startDate} 开始,到 ${endDate} 结束`);
580
+ return [firstDayOfCurrentYear, lastDayOfCurrentYear]
581
+ }
582
+ /**
583
+ * 获得最近n天的日期[n天前,当前日期]。
584
+ * 例如:[2024/2/25 00:00:00,2024/2/29 23:59:59]
585
+ * @param {} n
586
+ */
587
+ function getLastNDay(n) {
588
+ let currentDate = new Date(); // 创建一个表示今天的Date对象
589
+ let year = currentDate.getFullYear(); // 获取完整的四位年份
590
+ let month = currentDate.getMonth() + 1; // getMonth返回值范围为0-11,因此加上1得到真正的月份
591
+ let date = currentDate.getDate(); // getMonth返回值范围为0-11,因此加上1得到真正的月份
592
+ let startDateStr = `${year}/${month < 10 ? '0' : ''}${month}/${date}`;
593
+ currentDate = new Date(Date.parse(startDateStr))
594
+ currentDate.setDate(currentDate.getDate() + 1)
595
+ currentDate = new Date(currentDate.getTime() - 1000)
596
+
597
+ let lastNDay = new Date(); // 创建一个表示今天的Date对象
598
+ lastNDay.setDate(lastNDay.getDate() - (n - 1));
599
+ const lastNYear = lastNDay.getFullYear(); // 获取完整的四位年份
600
+ const lastNMonth = lastNDay.getMonth() + 1; // getMonth返回值范围为0-11,因此加上1得到真正的月份
601
+ const lastNDate = lastNDay.getDate(); // getMonth返回值范围为0-11,因此加上1得到真正的月份
602
+ const endtDateStr = `${lastNYear}/${lastNMonth < 10 ? '0' : ''}${lastNMonth}/${lastNDate}`;
603
+ lastNDay = new Date(Date.parse(endtDateStr))
604
+
605
+ const startDate = lastNDay.toLocaleDateString() + " " + lastNDay.toLocaleTimeString()
606
+ const endDate = currentDate.toLocaleDateString() + " " + currentDate.toLocaleTimeString()
607
+ console.log(`getLastNDay从 ${startDate} 开始,到 ${endDate} 结束`);
608
+ retur[lastNDay, currentDate]
609
+ }
610
+ export function getPropValue(
611
+ propValue,
612
+ entity,
613
+ additionalParamMap,
614
+ contextParameterMap,
615
+ parentEntity,
616
+ subEntity,
617
+ task
618
+ ) {
619
+ let value = null
620
+ if (propValue && propValue !== null && propValue !== '') {
621
+ if (propValue === 'null') {
622
+ value = null
623
+ } else if (
624
+ propValue.includes('${context.') ||
625
+ propValue.includes('${request.') ||
626
+ propValue.includes('${obj.')
627
+ ) {
628
+ // 填写的固定值
629
+ if (propValue.includes('${context.')) {
630
+ propValue = propValue.replace('${context.', '').replace('}', '')
631
+ value = getContextValue(contextParameterMap, propValue)
632
+ } else if (
633
+ propValue.includes('${request.') &&
634
+ propValue !== '${request.term}'
635
+ ) {
636
+ // ${request.term}表示页面中手动输入的值
637
+ propValue = propValue.replace('${request.', '').replace('}', '')
638
+ if (
639
+ additionalParamMap &&
640
+ additionalParamMap != null &&
641
+ Object.keys(additionalParamMap).indexOf(propValue) >= 0 &&
642
+ additionalParamMap[propValue] &&
643
+ additionalParamMap[propValue] !== null
644
+ ) {
645
+ value = additionalParamMap[propValue]
646
+ } else {
647
+ value = null
648
+ }
649
+ } else if (propValue.includes('${obj.')) {
650
+ if (entity === undefined || entity == null) {
651
+ value = null
652
+ } else {
653
+ const propName = propValue.replace('${obj.', '').replace('}', '')
654
+ value = getEntityFieldValue(entity, propName)
655
+ }
656
+ }
657
+ } else if (propValue.includes('${parent.')) {
658
+ if (parentEntity === undefined || parentEntity == null) {
659
+ value = null
660
+ } else {
661
+ const propName = propValue.replace('${parent.', '').replace('}', '')
662
+ value = getEntityFieldValue(parentEntity, propName)
663
+ }
664
+ } else if (propValue.includes('${task.')) {
665
+ if (task === undefined || task == null) {
666
+ value = null
667
+ } else {
668
+ const propName = propValue.replace('${task.', '').replace('}', '')
669
+ value = getEntityFieldValue(task, propName)
670
+ }
671
+ } else if (propValue.includes('${subObj.')) {
672
+ if (subEntity === undefined || subEntity == null) {
673
+ value = null
674
+ } else {
675
+ const propName = propValue.replace('${subObj.', '').replace('}', '')
676
+ value = getEntityFieldValue(subEntity, propName)
677
+ }
678
+ } else if (propValue.includes('${input.')) {
679
+ value = propValue.replace('${input.', '').replace('}', '')
680
+ } else {
681
+ value = propValue
682
+ }
683
+ }
684
+ return value
685
+ }
686
+
687
+ /**
688
+ * 解析条件,例如:${obj.menu_code}-#-#${input.---}-#-#${context.currentTransactor}
689
+ * @param {*} conditionValue
690
+ * @param {*} entity
691
+ * @param {*} additionalParameter
692
+ * @param {*} contextParameter
693
+ * @returns
694
+ */
695
+ export function analysisValue(
696
+ conditionValue,
697
+ entity,
698
+ additionalParameter,
699
+ contextParameter
700
+ ) {
701
+ if (!conditionValue) {
702
+ return
703
+ }
704
+ let label = ''
705
+ const split = conditionValue.split('-#-#')
706
+ if (split != null && split.length > 0) {
707
+ split.forEach((item) => {
708
+ let value = getPropValue(
709
+ item,
710
+ entity,
711
+ additionalParameter,
712
+ contextParameter
713
+ )
714
+ if (!value || value === null) {
715
+ value = ''
716
+ }
717
+ label += value
718
+ })
719
+ }
720
+ return label
721
+ }
722
+
723
+ /**
724
+ * 设置entity中某属性的值,处理子对象的情况。使用该方法,性能可能有问题
725
+ * @param {*} entity
726
+ * @param {*} prop
727
+ * @param {*} value
728
+ */
729
+ export function setEntityFieldValue(entity, prop, value) {
730
+ if (prop && entity) {
731
+ if (prop && prop.indexOf('.') > 0) {
732
+ const parentObj = getParentObjectUtil(prop, entity)
733
+ if (parentObj) {
734
+ const subProp = prop.substring(prop.lastIndexOf('.') + 1)
735
+ if (parentObj[subProp] === undefined) {
736
+ // 动态对象属性赋值,防止属性不存在,导致属性无法赋值问题
737
+ parentObj[prop.substring(prop.lastIndexOf('.') + 1)] = value
738
+ } else {
739
+ // 静态对象属性赋值,提高性能
740
+ parentObj[subProp] = value
741
+ }
742
+ }
743
+ } else {
744
+ if (entity[prop] === undefined || entity[prop] === null) {
745
+ // 动态对象属性赋值,防止属性不存在,导致属性无法赋值问题
746
+ entity[prop] = value
747
+ } else {
748
+ // 静态对象属性赋值,提高性能
749
+ entity[prop] = value
750
+ }
751
+ }
752
+ }
753
+ }
754
+
755
+ /**
756
+ * 获得字段的值,不需要处理大小写转换
757
+ * @param {*} entity
758
+ * @param {*} prop
759
+ * @returns
760
+ */
761
+ export function getEntityFieldValueWithOutCase(entity, prop) {
762
+ if (prop && prop.indexOf('.') > 0) {
763
+ const parentOjbect = getParentObjectUtil(prop, entity)
764
+ const modelName = prop.substring(prop.lastIndexOf('.') + 1)
765
+ return parentOjbect[modelName]
766
+ } else {
767
+ return entity[prop]
768
+ }
769
+ }
770
+
771
+ /**
772
+ * 获得实体entity中某属性的值,处理子表对象的情况
773
+ * @param {*} entity
774
+ * @param {*} prop
775
+ * @returns
776
+ */
777
+ export function getEntityFieldValue(entity, prop, isLowerCase) {
778
+ let value = getEntityFieldValueWithCase(entity, prop)
779
+ if (value === undefined || value === null) {
780
+ // 兼容mysql数据库
781
+ value = getEntityFieldValueWithCase(entity, prop.toLowerCase())
782
+ }
783
+ if (value === undefined || (value === null && isLowerCase === undefined)) {
784
+ // 兼容oracle数据库
785
+ value = getEntityFieldValueWithCase(entity, prop.toUpperCase())
786
+ }
787
+ return value
788
+ }
789
+
790
+ function getEntityFieldValueWithCase(entity, prop) {
791
+ if (prop && prop.indexOf('.') > 0) {
792
+ const parentOjbect = getParentObjectUtil(prop, entity)
793
+ const modelName = prop.substring(prop.lastIndexOf('.') + 1)
794
+ return parentOjbect[modelName]
795
+ } else {
796
+ return entity[prop]
797
+ }
798
+ }
799
+
800
+ export function getParentObjectUtil(prop, entity) {
801
+ const nestedProp = prop.split('.')
802
+ // 属性只有一个时父对象就是models
803
+ if (nestedProp.length === 1) {
804
+ return entity
805
+ } else {
806
+ let parentObject
807
+ // 属性超过2个时先找到最后一层属性的父对象
808
+ for (let i = 0; i < nestedProp.length - 1; i++) {
809
+ if (i === 0) {
810
+ parentObject = getParentModelProp(nestedProp[i], entity)
811
+ } else {
812
+ parentObject = getParentModelProp(nestedProp[i], parentObject)
813
+ }
814
+ }
815
+ return parentObject
816
+ }
817
+ }
818
+
819
+ function getParentModelProp(prop, parentObj) {
820
+ let myPparentObject = getParentModelPropWithCase(prop, parentObj)
821
+ if (myPparentObject === undefined) {
822
+ // 兼容mysql数据库
823
+ myPparentObject = getParentModelPropWithCase(prop.toLowerCase(), parentObj)
824
+ }
825
+ if (myPparentObject === undefined) {
826
+ // 兼容oracle数据库
827
+ myPparentObject = getParentModelPropWithCase(prop.toUpperCase(), parentObj)
828
+ }
829
+ return myPparentObject
830
+ }
831
+
832
+ function getParentModelPropWithCase(prop, parentObj) {
833
+ if (!parentObj) {
834
+ parentObj = {}
835
+ }
836
+ if (!parentObj[prop] && !parentObj[prop.toUpperCase()]) {
837
+ parentObj[prop] = {}
838
+ }
839
+ return parentObj[prop]
840
+ }
841
+
842
+ /**
843
+ * 获得系统信息
844
+ * @param {*}} systemCode
845
+ * @returns
846
+ */
847
+ export function findSystemInfoByCode(systemCode) {
848
+ return new Promise((resolve, reject) => {
849
+ if (!systemCode) {
850
+ systemCode = window.$vueApp.config.globalProperties.systemCode
851
+ }
852
+
853
+ window.$vueApp.config.globalProperties.$http
854
+ .get(
855
+ window.$vueApp.config.globalProperties.baseAPI +
856
+ '/component/business-systems/' +
857
+ systemCode
858
+ )
859
+ .then((system) => {
860
+ if (system) {
861
+ resolve({
862
+ zh_CN: system.name,
863
+ en_US: system.enName,
864
+ frontendUrl: system.frontendUrl,
865
+ })
866
+ } else {
867
+ resolve('系统:' + systemCode + '不存在')
868
+ }
869
+ })
870
+ .catch((error) => {
871
+ reject(error)
872
+ })
873
+ })
874
+ }
875
+
876
+ export function getPropNameWhenJoinTable(prop, isJoinTable, tableName) {
877
+ if (prop && isJoinTable !== undefined && isJoinTable === true) {
878
+ // 关联表时将点改成下划线,如果没点,则表示是主表字段,拼接主表tableName,因为列表组件中是这样处理的
879
+ const replaceDot = '__'
880
+ if (prop.indexOf('.') > 0) {
881
+ prop = prop.replace('.', replaceDot)
882
+ } else {
883
+ if (
884
+ tableName &&
885
+ tableName !== null &&
886
+ tableName !== '' &&
887
+ prop.indexOf(tableName + replaceDot) < 0
888
+ ) {
889
+ // 如果属性名没有拼接表名才需要拼接
890
+ prop = tableName + replaceDot + prop
891
+ }
892
+ }
893
+ }
894
+ return prop
895
+ }
896
+
897
+ export function isImage(fileName) {
898
+ // const fileType = fileName.substring(fileName.lastIndexOf('.'), fileName.length).toLowerCase()
899
+ // const imageTypes = ['.jpg', '.JPG', '.png', '.bmp', '.BMP', '.jpeg', '.gif', '.psd', '.tif', '.tga', '.svg', '.eps']
900
+ // const index = imageTypes.indexOf(fileType)
901
+ if (
902
+ /\.(jpg|JPG|jpeg|JPEG|png|PNG|gif|GIF|bmp|BMP|psd|PSD|tif|TIF)$/.test(
903
+ fileName
904
+ )
905
+ ) {
906
+ return true
907
+ } else {
908
+ return false
909
+ }
910
+ }