epx-frame 3.5.0-shpgy.1

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 (1223) hide show
  1. package/.browserslistrc +4 -0
  2. package/.dockerignore +2 -0
  3. package/.editorconfig +5 -0
  4. package/.env.dev +6 -0
  5. package/.env.development +4 -0
  6. package/.env.localize +7 -0
  7. package/.env.ppe +6 -0
  8. package/.env.prd +6 -0
  9. package/.env.pre +6 -0
  10. package/.env.production +6 -0
  11. package/.env.simple +8 -0
  12. package/.eslintignore +2 -0
  13. package/.eslintrc.js +24 -0
  14. package/Dockerfile +12 -0
  15. package/README.md +108 -0
  16. package/babel.config.js +26 -0
  17. package/build/webpack.component.js +54 -0
  18. package/build/webpack.dev.js +114 -0
  19. package/build/webpack.prod.js +133 -0
  20. package/nginx.conf +38 -0
  21. package/package.json +93 -0
  22. package/public/403.html +77 -0
  23. package/public/cmaps/78-EUC-H.bcmap +0 -0
  24. package/public/cmaps/78-EUC-V.bcmap +0 -0
  25. package/public/cmaps/78-H.bcmap +0 -0
  26. package/public/cmaps/78-RKSJ-H.bcmap +0 -0
  27. package/public/cmaps/78-RKSJ-V.bcmap +0 -0
  28. package/public/cmaps/78-V.bcmap +0 -0
  29. package/public/cmaps/78ms-RKSJ-H.bcmap +0 -0
  30. package/public/cmaps/78ms-RKSJ-V.bcmap +0 -0
  31. package/public/cmaps/83pv-RKSJ-H.bcmap +0 -0
  32. package/public/cmaps/90ms-RKSJ-H.bcmap +0 -0
  33. package/public/cmaps/90ms-RKSJ-V.bcmap +0 -0
  34. package/public/cmaps/90msp-RKSJ-H.bcmap +0 -0
  35. package/public/cmaps/90msp-RKSJ-V.bcmap +0 -0
  36. package/public/cmaps/90pv-RKSJ-H.bcmap +0 -0
  37. package/public/cmaps/90pv-RKSJ-V.bcmap +0 -0
  38. package/public/cmaps/Add-H.bcmap +0 -0
  39. package/public/cmaps/Add-RKSJ-H.bcmap +0 -0
  40. package/public/cmaps/Add-RKSJ-V.bcmap +0 -0
  41. package/public/cmaps/Add-V.bcmap +0 -0
  42. package/public/cmaps/Adobe-CNS1-0.bcmap +0 -0
  43. package/public/cmaps/Adobe-CNS1-1.bcmap +0 -0
  44. package/public/cmaps/Adobe-CNS1-2.bcmap +0 -0
  45. package/public/cmaps/Adobe-CNS1-3.bcmap +0 -0
  46. package/public/cmaps/Adobe-CNS1-4.bcmap +0 -0
  47. package/public/cmaps/Adobe-CNS1-5.bcmap +0 -0
  48. package/public/cmaps/Adobe-CNS1-6.bcmap +0 -0
  49. package/public/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  50. package/public/cmaps/Adobe-GB1-0.bcmap +0 -0
  51. package/public/cmaps/Adobe-GB1-1.bcmap +0 -0
  52. package/public/cmaps/Adobe-GB1-2.bcmap +0 -0
  53. package/public/cmaps/Adobe-GB1-3.bcmap +0 -0
  54. package/public/cmaps/Adobe-GB1-4.bcmap +0 -0
  55. package/public/cmaps/Adobe-GB1-5.bcmap +0 -0
  56. package/public/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  57. package/public/cmaps/Adobe-Japan1-0.bcmap +0 -0
  58. package/public/cmaps/Adobe-Japan1-1.bcmap +0 -0
  59. package/public/cmaps/Adobe-Japan1-2.bcmap +0 -0
  60. package/public/cmaps/Adobe-Japan1-3.bcmap +0 -0
  61. package/public/cmaps/Adobe-Japan1-4.bcmap +0 -0
  62. package/public/cmaps/Adobe-Japan1-5.bcmap +0 -0
  63. package/public/cmaps/Adobe-Japan1-6.bcmap +0 -0
  64. package/public/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  65. package/public/cmaps/Adobe-Korea1-0.bcmap +0 -0
  66. package/public/cmaps/Adobe-Korea1-1.bcmap +0 -0
  67. package/public/cmaps/Adobe-Korea1-2.bcmap +0 -0
  68. package/public/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  69. package/public/cmaps/B5-H.bcmap +0 -0
  70. package/public/cmaps/B5-V.bcmap +0 -0
  71. package/public/cmaps/B5pc-H.bcmap +0 -0
  72. package/public/cmaps/B5pc-V.bcmap +0 -0
  73. package/public/cmaps/CNS-EUC-H.bcmap +0 -0
  74. package/public/cmaps/CNS-EUC-V.bcmap +0 -0
  75. package/public/cmaps/CNS1-H.bcmap +0 -0
  76. package/public/cmaps/CNS1-V.bcmap +0 -0
  77. package/public/cmaps/CNS2-H.bcmap +0 -0
  78. package/public/cmaps/CNS2-V.bcmap +3 -0
  79. package/public/cmaps/ETHK-B5-H.bcmap +0 -0
  80. package/public/cmaps/ETHK-B5-V.bcmap +0 -0
  81. package/public/cmaps/ETen-B5-H.bcmap +0 -0
  82. package/public/cmaps/ETen-B5-V.bcmap +0 -0
  83. package/public/cmaps/ETenms-B5-H.bcmap +3 -0
  84. package/public/cmaps/ETenms-B5-V.bcmap +0 -0
  85. package/public/cmaps/EUC-H.bcmap +0 -0
  86. package/public/cmaps/EUC-V.bcmap +0 -0
  87. package/public/cmaps/Ext-H.bcmap +0 -0
  88. package/public/cmaps/Ext-RKSJ-H.bcmap +0 -0
  89. package/public/cmaps/Ext-RKSJ-V.bcmap +0 -0
  90. package/public/cmaps/Ext-V.bcmap +0 -0
  91. package/public/cmaps/GB-EUC-H.bcmap +0 -0
  92. package/public/cmaps/GB-EUC-V.bcmap +0 -0
  93. package/public/cmaps/GB-H.bcmap +4 -0
  94. package/public/cmaps/GB-V.bcmap +0 -0
  95. package/public/cmaps/GBK-EUC-H.bcmap +0 -0
  96. package/public/cmaps/GBK-EUC-V.bcmap +0 -0
  97. package/public/cmaps/GBK2K-H.bcmap +0 -0
  98. package/public/cmaps/GBK2K-V.bcmap +0 -0
  99. package/public/cmaps/GBKp-EUC-H.bcmap +0 -0
  100. package/public/cmaps/GBKp-EUC-V.bcmap +0 -0
  101. package/public/cmaps/GBT-EUC-H.bcmap +0 -0
  102. package/public/cmaps/GBT-EUC-V.bcmap +0 -0
  103. package/public/cmaps/GBT-H.bcmap +0 -0
  104. package/public/cmaps/GBT-V.bcmap +0 -0
  105. package/public/cmaps/GBTpc-EUC-H.bcmap +0 -0
  106. package/public/cmaps/GBTpc-EUC-V.bcmap +0 -0
  107. package/public/cmaps/GBpc-EUC-H.bcmap +0 -0
  108. package/public/cmaps/GBpc-EUC-V.bcmap +0 -0
  109. package/public/cmaps/H.bcmap +0 -0
  110. package/public/cmaps/HKdla-B5-H.bcmap +0 -0
  111. package/public/cmaps/HKdla-B5-V.bcmap +0 -0
  112. package/public/cmaps/HKdlb-B5-H.bcmap +0 -0
  113. package/public/cmaps/HKdlb-B5-V.bcmap +0 -0
  114. package/public/cmaps/HKgccs-B5-H.bcmap +0 -0
  115. package/public/cmaps/HKgccs-B5-V.bcmap +0 -0
  116. package/public/cmaps/HKm314-B5-H.bcmap +0 -0
  117. package/public/cmaps/HKm314-B5-V.bcmap +0 -0
  118. package/public/cmaps/HKm471-B5-H.bcmap +0 -0
  119. package/public/cmaps/HKm471-B5-V.bcmap +0 -0
  120. package/public/cmaps/HKscs-B5-H.bcmap +0 -0
  121. package/public/cmaps/HKscs-B5-V.bcmap +0 -0
  122. package/public/cmaps/Hankaku.bcmap +0 -0
  123. package/public/cmaps/Hiragana.bcmap +0 -0
  124. package/public/cmaps/KSC-EUC-H.bcmap +0 -0
  125. package/public/cmaps/KSC-EUC-V.bcmap +0 -0
  126. package/public/cmaps/KSC-H.bcmap +0 -0
  127. package/public/cmaps/KSC-Johab-H.bcmap +0 -0
  128. package/public/cmaps/KSC-Johab-V.bcmap +0 -0
  129. package/public/cmaps/KSC-V.bcmap +0 -0
  130. package/public/cmaps/KSCms-UHC-H.bcmap +0 -0
  131. package/public/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  132. package/public/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  133. package/public/cmaps/KSCms-UHC-V.bcmap +0 -0
  134. package/public/cmaps/KSCpc-EUC-H.bcmap +0 -0
  135. package/public/cmaps/KSCpc-EUC-V.bcmap +0 -0
  136. package/public/cmaps/Katakana.bcmap +0 -0
  137. package/public/cmaps/LICENSE +36 -0
  138. package/public/cmaps/NWP-H.bcmap +0 -0
  139. package/public/cmaps/NWP-V.bcmap +0 -0
  140. package/public/cmaps/RKSJ-H.bcmap +0 -0
  141. package/public/cmaps/RKSJ-V.bcmap +0 -0
  142. package/public/cmaps/Roman.bcmap +0 -0
  143. package/public/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  144. package/public/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  145. package/public/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  146. package/public/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  147. package/public/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  148. package/public/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  149. package/public/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  150. package/public/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  151. package/public/cmaps/UniGB-UCS2-H.bcmap +0 -0
  152. package/public/cmaps/UniGB-UCS2-V.bcmap +0 -0
  153. package/public/cmaps/UniGB-UTF16-H.bcmap +0 -0
  154. package/public/cmaps/UniGB-UTF16-V.bcmap +0 -0
  155. package/public/cmaps/UniGB-UTF32-H.bcmap +0 -0
  156. package/public/cmaps/UniGB-UTF32-V.bcmap +0 -0
  157. package/public/cmaps/UniGB-UTF8-H.bcmap +0 -0
  158. package/public/cmaps/UniGB-UTF8-V.bcmap +0 -0
  159. package/public/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  160. package/public/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  161. package/public/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  162. package/public/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  163. package/public/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  164. package/public/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  165. package/public/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  166. package/public/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  167. package/public/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  168. package/public/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  169. package/public/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  170. package/public/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  171. package/public/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  172. package/public/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  173. package/public/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  174. package/public/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  175. package/public/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  176. package/public/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  177. package/public/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  178. package/public/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  179. package/public/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  180. package/public/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  181. package/public/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  182. package/public/cmaps/UniKS-UCS2-H.bcmap +0 -0
  183. package/public/cmaps/UniKS-UCS2-V.bcmap +0 -0
  184. package/public/cmaps/UniKS-UTF16-H.bcmap +0 -0
  185. package/public/cmaps/UniKS-UTF16-V.bcmap +0 -0
  186. package/public/cmaps/UniKS-UTF32-H.bcmap +0 -0
  187. package/public/cmaps/UniKS-UTF32-V.bcmap +0 -0
  188. package/public/cmaps/UniKS-UTF8-H.bcmap +0 -0
  189. package/public/cmaps/UniKS-UTF8-V.bcmap +0 -0
  190. package/public/cmaps/V.bcmap +0 -0
  191. package/public/cmaps/WP-Symbol.bcmap +0 -0
  192. package/public/favicon.ico +0 -0
  193. package/public/font/font_2530548_ikl5ryc86u.css +535 -0
  194. package/public/font/font_2530548_ikl5ryc86u.ttf +0 -0
  195. package/public/font/font_2530548_ikl5ryc86u.woff +0 -0
  196. package/public/font/font_2530548_ikl5ryc86u.woff2 +0 -0
  197. package/public/font/font_2612462_d2s6adyaymf.css +93 -0
  198. package/public/font/font_2612462_d2s6adyaymf.ttf +0 -0
  199. package/public/font/font_2612462_d2s6adyaymf.woff +0 -0
  200. package/public/font/font_2612462_d2s6adyaymf.woff2 +0 -0
  201. package/public/img/banner.png +0 -0
  202. package/public/img/icons/android-chrome-192x192.png +0 -0
  203. package/public/img/icons/android-chrome-512x512.png +0 -0
  204. package/public/img/icons/android-chrome-maskable-192x192.png +0 -0
  205. package/public/img/icons/android-chrome-maskable-512x512.png +0 -0
  206. package/public/img/icons/apple-touch-icon-120x120.png +0 -0
  207. package/public/img/icons/apple-touch-icon-152x152.png +0 -0
  208. package/public/img/icons/apple-touch-icon-180x180.png +0 -0
  209. package/public/img/icons/apple-touch-icon-60x60.png +0 -0
  210. package/public/img/icons/apple-touch-icon-76x76.png +0 -0
  211. package/public/img/icons/apple-touch-icon.png +0 -0
  212. package/public/img/icons/favicon-16x16.png +0 -0
  213. package/public/img/icons/favicon-32x32.png +0 -0
  214. package/public/img/icons/msapplication-icon-144x144.png +0 -0
  215. package/public/img/icons/mstile-150x150.png +0 -0
  216. package/public/img/icons/safari-pinned-tab.svg +149 -0
  217. package/public/img/success.png +0 -0
  218. package/public/img/tip.png +0 -0
  219. package/public/index.html +132 -0
  220. package/public/js/babel-standalone.min.js +25 -0
  221. package/public/js/config.js +0 -0
  222. package/public/js/jquery-3.6.0.min.js +2 -0
  223. package/public/js/pdf.worker.js +45929 -0
  224. package/public/js/signature_pad.min.js +6 -0
  225. package/public/js/tinymce/icons/default/icons.js +170 -0
  226. package/public/js/tinymce/icons/default/icons.min.js +1 -0
  227. package/public/js/tinymce/jquery.tinymce.min.js +92 -0
  228. package/public/js/tinymce/langs/readme.md +3 -0
  229. package/public/js/tinymce/langs/zh_CN.js +419 -0
  230. package/public/js/tinymce/license.txt +504 -0
  231. package/public/js/tinymce/plugins/advlist/plugin.js +281 -0
  232. package/public/js/tinymce/plugins/advlist/plugin.min.js +9 -0
  233. package/public/js/tinymce/plugins/anchor/plugin.js +216 -0
  234. package/public/js/tinymce/plugins/anchor/plugin.min.js +9 -0
  235. package/public/js/tinymce/plugins/autolink/plugin.js +185 -0
  236. package/public/js/tinymce/plugins/autolink/plugin.min.js +9 -0
  237. package/public/js/tinymce/plugins/autoresize/plugin.js +171 -0
  238. package/public/js/tinymce/plugins/autoresize/plugin.min.js +9 -0
  239. package/public/js/tinymce/plugins/autosave/plugin.js +214 -0
  240. package/public/js/tinymce/plugins/autosave/plugin.min.js +9 -0
  241. package/public/js/tinymce/plugins/bbcode/plugin.js +99 -0
  242. package/public/js/tinymce/plugins/bbcode/plugin.min.js +9 -0
  243. package/public/js/tinymce/plugins/charmap/plugin.js +1706 -0
  244. package/public/js/tinymce/plugins/charmap/plugin.min.js +9 -0
  245. package/public/js/tinymce/plugins/code/plugin.js +92 -0
  246. package/public/js/tinymce/plugins/code/plugin.min.js +9 -0
  247. package/public/js/tinymce/plugins/codesample/plugin.js +1717 -0
  248. package/public/js/tinymce/plugins/codesample/plugin.min.js +9 -0
  249. package/public/js/tinymce/plugins/colorpicker/plugin.js +22 -0
  250. package/public/js/tinymce/plugins/colorpicker/plugin.min.js +9 -0
  251. package/public/js/tinymce/plugins/contextmenu/plugin.js +22 -0
  252. package/public/js/tinymce/plugins/contextmenu/plugin.min.js +9 -0
  253. package/public/js/tinymce/plugins/data/plugin.min.js +209 -0
  254. package/public/js/tinymce/plugins/directionality/plugin.js +314 -0
  255. package/public/js/tinymce/plugins/directionality/plugin.min.js +9 -0
  256. package/public/js/tinymce/plugins/emoticons/js/emojiimages.js +9424 -0
  257. package/public/js/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
  258. package/public/js/tinymce/plugins/emoticons/js/emojis.js +9423 -0
  259. package/public/js/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
  260. package/public/js/tinymce/plugins/emoticons/plugin.js +564 -0
  261. package/public/js/tinymce/plugins/emoticons/plugin.min.js +9 -0
  262. package/public/js/tinymce/plugins/fullpage/plugin.js +544 -0
  263. package/public/js/tinymce/plugins/fullpage/plugin.min.js +9 -0
  264. package/public/js/tinymce/plugins/fullscreen/plugin.js +851 -0
  265. package/public/js/tinymce/plugins/fullscreen/plugin.min.js +9 -0
  266. package/public/js/tinymce/plugins/help/plugin.js +846 -0
  267. package/public/js/tinymce/plugins/help/plugin.min.js +9 -0
  268. package/public/js/tinymce/plugins/hr/plugin.js +46 -0
  269. package/public/js/tinymce/plugins/hr/plugin.min.js +9 -0
  270. package/public/js/tinymce/plugins/image/plugin.js +1660 -0
  271. package/public/js/tinymce/plugins/image/plugin.min.js +9 -0
  272. package/public/js/tinymce/plugins/imagetools/plugin.js +1304 -0
  273. package/public/js/tinymce/plugins/imagetools/plugin.min.js +9 -0
  274. package/public/js/tinymce/plugins/importcss/plugin.js +337 -0
  275. package/public/js/tinymce/plugins/importcss/plugin.min.js +9 -0
  276. package/public/js/tinymce/plugins/insertdatetime/plugin.js +177 -0
  277. package/public/js/tinymce/plugins/insertdatetime/plugin.min.js +9 -0
  278. package/public/js/tinymce/plugins/legacyoutput/plugin.js +199 -0
  279. package/public/js/tinymce/plugins/legacyoutput/plugin.min.js +9 -0
  280. package/public/js/tinymce/plugins/link/plugin.js +1219 -0
  281. package/public/js/tinymce/plugins/link/plugin.min.js +9 -0
  282. package/public/js/tinymce/plugins/lists/plugin.js +2163 -0
  283. package/public/js/tinymce/plugins/lists/plugin.min.js +9 -0
  284. package/public/js/tinymce/plugins/media/plugin.js +1315 -0
  285. package/public/js/tinymce/plugins/media/plugin.min.js +9 -0
  286. package/public/js/tinymce/plugins/nonbreaking/plugin.js +101 -0
  287. package/public/js/tinymce/plugins/nonbreaking/plugin.min.js +9 -0
  288. package/public/js/tinymce/plugins/noneditable/plugin.js +117 -0
  289. package/public/js/tinymce/plugins/noneditable/plugin.min.js +9 -0
  290. package/public/js/tinymce/plugins/pagebreak/plugin.js +107 -0
  291. package/public/js/tinymce/plugins/pagebreak/plugin.min.js +9 -0
  292. package/public/js/tinymce/plugins/pagelink/plugin.min.js +171 -0
  293. package/public/js/tinymce/plugins/paper/plugin.min.js +80 -0
  294. package/public/js/tinymce/plugins/paste/plugin.js +1707 -0
  295. package/public/js/tinymce/plugins/paste/plugin.min.js +9 -0
  296. package/public/js/tinymce/plugins/preview/plugin.js +127 -0
  297. package/public/js/tinymce/plugins/preview/plugin.min.js +9 -0
  298. package/public/js/tinymce/plugins/print/plugin.js +53 -0
  299. package/public/js/tinymce/plugins/print/plugin.min.js +9 -0
  300. package/public/js/tinymce/plugins/quickbars/plugin.js +488 -0
  301. package/public/js/tinymce/plugins/quickbars/plugin.min.js +9 -0
  302. package/public/js/tinymce/plugins/save/plugin.js +119 -0
  303. package/public/js/tinymce/plugins/save/plugin.min.js +9 -0
  304. package/public/js/tinymce/plugins/searchreplace/plugin.js +1167 -0
  305. package/public/js/tinymce/plugins/searchreplace/plugin.min.js +9 -0
  306. package/public/js/tinymce/plugins/spellchecker/plugin.js +737 -0
  307. package/public/js/tinymce/plugins/spellchecker/plugin.min.js +9 -0
  308. package/public/js/tinymce/plugins/tabfocus/plugin.js +128 -0
  309. package/public/js/tinymce/plugins/tabfocus/plugin.min.js +9 -0
  310. package/public/js/tinymce/plugins/table/plugin.min.js +9805 -0
  311. package/public/js/tinymce/plugins/table/plugin.min.js1 +9 -0
  312. package/public/js/tinymce/plugins/template/plugin.js +562 -0
  313. package/public/js/tinymce/plugins/template/plugin.min.js +9 -0
  314. package/public/js/tinymce/plugins/textattribute/plugin.min.js +76 -0
  315. package/public/js/tinymce/plugins/textcolor/plugin.js +22 -0
  316. package/public/js/tinymce/plugins/textcolor/plugin.min.js +9 -0
  317. package/public/js/tinymce/plugins/textpattern/plugin.js +1392 -0
  318. package/public/js/tinymce/plugins/textpattern/plugin.min.js +9 -0
  319. package/public/js/tinymce/plugins/toc/plugin.js +235 -0
  320. package/public/js/tinymce/plugins/toc/plugin.min.js +9 -0
  321. package/public/js/tinymce/plugins/visualblocks/plugin.js +104 -0
  322. package/public/js/tinymce/plugins/visualblocks/plugin.min.js +9 -0
  323. package/public/js/tinymce/plugins/visualchars/plugin.js +541 -0
  324. package/public/js/tinymce/plugins/visualchars/plugin.min.js +9 -0
  325. package/public/js/tinymce/plugins/wordcount/plugin.js +416 -0
  326. package/public/js/tinymce/plugins/wordcount/plugin.min.js +9 -0
  327. package/public/js/tinymce/readme.md +77 -0
  328. package/public/js/tinymce/skins/content/dark/content.css +59 -0
  329. package/public/js/tinymce/skins/content/dark/content.min.css +7 -0
  330. package/public/js/tinymce/skins/content/dark/content.min.css.map +1 -0
  331. package/public/js/tinymce/skins/content/default/content.css +49 -0
  332. package/public/js/tinymce/skins/content/default/content.min.css +7 -0
  333. package/public/js/tinymce/skins/content/default/content.min.css.map +1 -0
  334. package/public/js/tinymce/skins/content/document/content.css +54 -0
  335. package/public/js/tinymce/skins/content/document/content.min.css +7 -0
  336. package/public/js/tinymce/skins/content/document/content.min.css.map +1 -0
  337. package/public/js/tinymce/skins/content/writer/content.css +50 -0
  338. package/public/js/tinymce/skins/content/writer/content.min.css +7 -0
  339. package/public/js/tinymce/skins/content/writer/content.min.css.map +1 -0
  340. package/public/js/tinymce/skins/ui/oxide/content.css +693 -0
  341. package/public/js/tinymce/skins/ui/oxide/content.inline.css +687 -0
  342. package/public/js/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
  343. package/public/js/tinymce/skins/ui/oxide/content.inline.min.css.map +1 -0
  344. package/public/js/tinymce/skins/ui/oxide/content.min.css +7 -0
  345. package/public/js/tinymce/skins/ui/oxide/content.min.css.map +1 -0
  346. package/public/js/tinymce/skins/ui/oxide/content.mobile.css +29 -0
  347. package/public/js/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
  348. package/public/js/tinymce/skins/ui/oxide/content.mobile.min.css.map +1 -0
  349. package/public/js/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  350. package/public/js/tinymce/skins/ui/oxide/skin.css +2937 -0
  351. package/public/js/tinymce/skins/ui/oxide/skin.min.css +7 -0
  352. package/public/js/tinymce/skins/ui/oxide/skin.min.css.map +1 -0
  353. package/public/js/tinymce/skins/ui/oxide/skin.mobile.css +673 -0
  354. package/public/js/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
  355. package/public/js/tinymce/skins/ui/oxide/skin.mobile.min.css.map +1 -0
  356. package/public/js/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  357. package/public/js/tinymce/skins/ui/oxide-dark/content.css +675 -0
  358. package/public/js/tinymce/skins/ui/oxide-dark/content.inline.css +687 -0
  359. package/public/js/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
  360. package/public/js/tinymce/skins/ui/oxide-dark/content.inline.min.css.map +1 -0
  361. package/public/js/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
  362. package/public/js/tinymce/skins/ui/oxide-dark/content.min.css.map +1 -0
  363. package/public/js/tinymce/skins/ui/oxide-dark/content.mobile.css +29 -0
  364. package/public/js/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
  365. package/public/js/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map +1 -0
  366. package/public/js/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  367. package/public/js/tinymce/skins/ui/oxide-dark/skin.css +2937 -0
  368. package/public/js/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
  369. package/public/js/tinymce/skins/ui/oxide-dark/skin.min.css.map +1 -0
  370. package/public/js/tinymce/skins/ui/oxide-dark/skin.mobile.css +673 -0
  371. package/public/js/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
  372. package/public/js/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.map +1 -0
  373. package/public/js/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  374. package/public/js/tinymce/themes/mobile/theme.js +13612 -0
  375. package/public/js/tinymce/themes/mobile/theme.min.js +9 -0
  376. package/public/js/tinymce/themes/silver/theme.js +31769 -0
  377. package/public/js/tinymce/themes/silver/theme.min.js +9 -0
  378. package/public/js/tinymce/tinymce.d.ts +2916 -0
  379. package/public/js/tinymce/tinymce.min.js +9 -0
  380. package/public/luckysheet/iconfont.css +456 -0
  381. package/public/luckysheet/luckysheet.css +1 -0
  382. package/public/luckysheet/luckysheet.umd.js +27 -0
  383. package/public/luckysheet/plugin.js +1 -0
  384. package/public/luckysheet/plugins.css +10 -0
  385. package/public/luckysheet/pluginsCss.css +1 -0
  386. package/public/robots.txt +2 -0
  387. package/public/signature.html +445 -0
  388. package/sh.exe.stackdump +11 -0
  389. package/src/App.vue +31 -0
  390. package/src/api/README.md +1 -0
  391. package/src/api/config.js +187 -0
  392. package/src/api/createHttp.js +160 -0
  393. package/src/api/index.js +32 -0
  394. package/src/assets/bdrz/banlizhong.png +0 -0
  395. package/src/assets/bdrz/chenggong.png +0 -0
  396. package/src/assets/bdrz/danwei.png +0 -0
  397. package/src/assets/bdrz/hedui.png +0 -0
  398. package/src/assets/bdrz/laoziguanli.png +0 -0
  399. package/src/assets/bdrz/location.png +0 -0
  400. package/src/assets/bdrz/locationl.png +0 -0
  401. package/src/assets/bdrz/phone.png +0 -0
  402. package/src/assets/bdrz/phonel.png +0 -0
  403. package/src/assets/bdrz/shouzhi.png +0 -0
  404. package/src/assets/bdrz/time.png +0 -0
  405. package/src/assets/bdrz/timel.png +0 -0
  406. package/src/assets/bdrz/wancheng.png +0 -0
  407. package/src/assets/bdrz/zuobiao.png +0 -0
  408. package/src/assets/customTranslate/customTranslate.js +13 -0
  409. package/src/assets/customTranslate/translations.js +218 -0
  410. package/src/assets/data/card.png +0 -0
  411. package/src/assets/data/code.png +0 -0
  412. package/src/assets/home/apply.png +0 -0
  413. package/src/assets/home/banner1.png +0 -0
  414. package/src/assets/home/banner11.png +0 -0
  415. package/src/assets/home/banner12.png +0 -0
  416. package/src/assets/home/banner2.png +0 -0
  417. package/src/assets/home/banner3.png +0 -0
  418. package/src/assets/home/benke.png +0 -0
  419. package/src/assets/home/chengguo.png +0 -0
  420. package/src/assets/home/gaojirencaisousuo.png +0 -0
  421. package/src/assets/home/hangyebiaozhun.png +0 -0
  422. package/src/assets/home/huojiang.png +0 -0
  423. package/src/assets/home/icon-test.png +0 -0
  424. package/src/assets/home/kaoshi.png +0 -0
  425. package/src/assets/home/kejichengguo.png +0 -0
  426. package/src/assets/home/keyanxiangmu.png +0 -0
  427. package/src/assets/home/lunwendao.png +0 -0
  428. package/src/assets/home/message.png +0 -0
  429. package/src/assets/home/my-yanjiubaogao.png +0 -0
  430. package/src/assets/home/nodata.png +0 -0
  431. package/src/assets/home/people.png +0 -0
  432. package/src/assets/home/qita.png +0 -0
  433. package/src/assets/home/schoollogo.png +0 -0
  434. package/src/assets/home/search.png +0 -0
  435. package/src/assets/home/shenbaoguanli.png +0 -0
  436. package/src/assets/home/shouye.png +0 -0
  437. package/src/assets/home/title.png +0 -0
  438. package/src/assets/home/todo.png +0 -0
  439. package/src/assets/home/wave0.png +0 -0
  440. package/src/assets/home/wave1.png +0 -0
  441. package/src/assets/home/wave2.png +0 -0
  442. package/src/assets/home/wodeshuju(1).png +0 -0
  443. package/src/assets/home/xinxizhongxin.png +0 -0
  444. package/src/assets/home/yanjiusheng.png +0 -0
  445. package/src/assets/home/yeji.png +0 -0
  446. package/src/assets/home/zhengjiuniandukaohe.png +0 -0
  447. package/src/assets/home/zhengshu.png +0 -0
  448. package/src/assets/home/zhidao.png +0 -0
  449. package/src/assets/home/zhuanli.png +0 -0
  450. package/src/assets/home/zhuanye.png +0 -0
  451. package/src/assets/home/zhuzuoquan.png +0 -0
  452. package/src/assets/images/add.png +0 -0
  453. package/src/assets/images/app.png +0 -0
  454. package/src/assets/images/apply_bg.png +0 -0
  455. package/src/assets/images/auto.png +0 -0
  456. package/src/assets/images/book.png +0 -0
  457. package/src/assets/images/clear.png +0 -0
  458. package/src/assets/images/contact_bg.png +0 -0
  459. package/src/assets/images/data/benke.png +0 -0
  460. package/src/assets/images/data/chengguo.png +0 -0
  461. package/src/assets/images/data/chubanwu.png +0 -0
  462. package/src/assets/images/data/erjidanwei.png +0 -0
  463. package/src/assets/images/data/hangyebiaozhun.png +0 -0
  464. package/src/assets/images/data/huojiang(1).png +0 -0
  465. package/src/assets/images/data/huojiang(2).png +0 -0
  466. package/src/assets/images/data/icon-test.png +0 -0
  467. package/src/assets/images/data/jianzhi.png +0 -0
  468. package/src/assets/images/data/jiaozhigong.png +0 -0
  469. package/src/assets/images/data/keyanxiangmu.png +0 -0
  470. package/src/assets/images/data/keyanxiangmu/346/213/267/350/264/2352.png +0 -0
  471. package/src/assets/images/data/lunwen(1).png +0 -0
  472. package/src/assets/images/data/lunwendao.png +0 -0
  473. package/src/assets/images/data/lunwendao/346/213/267/350/264/2352.png +0 -0
  474. package/src/assets/images/data/pingtai.png +0 -0
  475. package/src/assets/images/data/pingtai/346/213/267/350/264/235.png +0 -0
  476. package/src/assets/images/data/shengbujijiaoxuechengguojiang.png +0 -0
  477. package/src/assets/images/data/wudachengguozhuanhuazhongxin.png +0 -0
  478. package/src/assets/images/data/xueke(1).png +0 -0
  479. package/src/assets/images/data/yanjiusheng.png +0 -0
  480. package/src/assets/images/data/zhidao.png +0 -0
  481. package/src/assets/images/data/zhuanli.png +0 -0
  482. package/src/assets/images/data/zhuzuoquan.png +0 -0
  483. package/src/assets/images/error.png +0 -0
  484. package/src/assets/images/file.png +0 -0
  485. package/src/assets/images/hall_banner.png +0 -0
  486. package/src/assets/images/hr.png +0 -0
  487. package/src/assets/images/index/benke.png +0 -0
  488. package/src/assets/images/index/chengguo.png +0 -0
  489. package/src/assets/images/index/gaojirencaisousuo.png +0 -0
  490. package/src/assets/images/index/hangyebiaozhun.png +0 -0
  491. package/src/assets/images/index/huojiang.png +0 -0
  492. package/src/assets/images/index/icon-test.png +0 -0
  493. package/src/assets/images/index/kaoshi.png +0 -0
  494. package/src/assets/images/index/kejichengguo.png +0 -0
  495. package/src/assets/images/index/keyanxiangmu.png +0 -0
  496. package/src/assets/images/index/lunwendao.png +0 -0
  497. package/src/assets/images/index/my-yanjiubaogao.png +0 -0
  498. package/src/assets/images/index/qita.png +0 -0
  499. package/src/assets/images/index/shenbaoguanli.png +0 -0
  500. package/src/assets/images/index/wodeshuju(1).png +0 -0
  501. package/src/assets/images/index/xinxizhongxin.png +0 -0
  502. package/src/assets/images/index/yanjiusheng.png +0 -0
  503. package/src/assets/images/index/yeji.png +0 -0
  504. package/src/assets/images/index/zhengjiuniandukaohe.png +0 -0
  505. package/src/assets/images/index/zhengshu.png +0 -0
  506. package/src/assets/images/index/zhidao.png +0 -0
  507. package/src/assets/images/index/zhuanli.png +0 -0
  508. package/src/assets/images/index/zhuanye.png +0 -0
  509. package/src/assets/images/index/zhuzuoquan.png +0 -0
  510. package/src/assets/images/index//344/270/232/345/212/241/347/224/263/346/212/245/344/270/200/347/253/231/345/274/217/345/212/236/347/220/206.png +0 -0
  511. package/src/assets/images/index//345/276/205/345/212/236.png +0 -0
  512. package/src/assets/images/index//346/244/255/345/234/2064/346/213/267/350/264/2355.png +0 -0
  513. package/src/assets/images/index//346/244/255/345/234/2065/346/213/267/350/264/235.png +0 -0
  514. package/src/assets/images/index//346/266/210/346/201/257.png +0 -0
  515. package/src/assets/images/index//347/224/263/350/257/267.png +0 -0
  516. package/src/assets/images/index//351/273/230/350/256/244/345/255/246/346/240/241logo.png +0 -0
  517. package/src/assets/images/jian.png +0 -0
  518. package/src/assets/images/login.jpg +0 -0
  519. package/src/assets/images/logo.png +0 -0
  520. package/src/assets/images/m_hall_banner.png +0 -0
  521. package/src/assets/images/mlogin.png +0 -0
  522. package/src/assets/images/module.png +0 -0
  523. package/src/assets/images/offical/111.png +0 -0
  524. package/src/assets/images/offical/haiwaigaocengcirencai.png +0 -0
  525. package/src/assets/images/offical/jiaoxue(1).png +0 -0
  526. package/src/assets/images/offical/niandukaohe-weikaohe.png +0 -0
  527. package/src/assets/images/offical/pinqikaohe.png +0 -0
  528. package/src/assets/images/offical/renshiguanlixinxi_yingongchuguo.png +0 -0
  529. package/src/assets/images/offical/shengbujijiaoxuechengguojiang.png +0 -0
  530. package/src/assets/images/offical/shujucaiji.png +0 -0
  531. package/src/assets/images/offical/yeji(1).png +0 -0
  532. package/src/assets/images/offical/zhuanye.png +0 -0
  533. package/src/assets/images/offical//345/244/232/350/276/271/345/275/2421/346/213/267/350/264/23510.png +0 -0
  534. package/src/assets/images/qq.png +0 -0
  535. package/src/assets/images/role_select.png +0 -0
  536. package/src/assets/images/staff.png +0 -0
  537. package/src/assets/images/success.png +0 -0
  538. package/src/assets/images/theme/aurorablue.png +0 -0
  539. package/src/assets/images/theme/classicblue.png +0 -0
  540. package/src/assets/images/theme/deepblue.png +0 -0
  541. package/src/assets/images/theme/forestgreen.png +0 -0
  542. package/src/assets/images/theme/orange.png +0 -0
  543. package/src/assets/images/theme/palevioletred.png +0 -0
  544. package/src/assets/images/theme/purple.png +0 -0
  545. package/src/assets/images/theme/skyblue.png +0 -0
  546. package/src/assets/images/theme/tiffanyblue.png +0 -0
  547. package/src/assets/images/user_bg.png +0 -0
  548. package/src/assets/images/weixin.png +0 -0
  549. package/src/assets/login/bgimg.jpg +0 -0
  550. package/src/assets/moren.png +0 -0
  551. package/src/assets/wage/baseBanner.png +0 -0
  552. package/src/frame/base/AppModuleTreeFind.vue +51 -0
  553. package/src/frame/base/AttributeSubAdd.vue +29 -0
  554. package/src/frame/base/ChooseApplication.vue +176 -0
  555. package/src/frame/base/ChooseApplicationSet.vue +165 -0
  556. package/src/frame/base/ClientAppItem.vue +217 -0
  557. package/src/frame/base/ClientApplication.vue +446 -0
  558. package/src/frame/base/ClientApplicationList.vue +180 -0
  559. package/src/frame/base/ClientModule.vue +65 -0
  560. package/src/frame/base/ClientModuleIndex.vue +413 -0
  561. package/src/frame/base/ClientTreePage.vue +29 -0
  562. package/src/frame/base/ConfigModuleIndex.vue +82 -0
  563. package/src/frame/base/CurrentClientApplication.vue +33 -0
  564. package/src/frame/base/DeptTreeFind.vue +51 -0
  565. package/src/frame/base/EntityList.vue +71 -0
  566. package/src/frame/base/ModuleTreeFind.vue +51 -0
  567. package/src/frame/base/PageList.vue +47 -0
  568. package/src/frame/base/PermissManage.vue +95 -0
  569. package/src/frame/base/RoleAccredit.vue +961 -0
  570. package/src/frame/base/ServiceAccredit.vue +956 -0
  571. package/src/frame/base/ServiceMenu.vue +380 -0
  572. package/src/frame/base/ServiceOperate.vue +929 -0
  573. package/src/frame/base/ServiceTreePage.vue +31 -0
  574. package/src/frame/components/AddUsedInterface.vue +154 -0
  575. package/src/frame/components/Alert.vue +35 -0
  576. package/src/frame/components/AppList.vue +254 -0
  577. package/src/frame/components/Apply/ApplyIndex.vue +207 -0
  578. package/src/frame/components/AttributeList.vue +612 -0
  579. package/src/frame/components/Banner.vue +25 -0
  580. package/src/frame/components/CardO.vue +112 -0
  581. package/src/frame/components/CheckForm.vue +20 -0
  582. package/src/frame/components/ClientAdminFormItem.vue +49 -0
  583. package/src/frame/components/ClientFormItem.vue +45 -0
  584. package/src/frame/components/ClientList.vue +135 -0
  585. package/src/frame/components/CodeDetail.vue +374 -0
  586. package/src/frame/components/CodeManage.vue +755 -0
  587. package/src/frame/components/ComponentFind.vue +356 -0
  588. package/src/frame/components/ComponentList.vue +521 -0
  589. package/src/frame/components/ConfigParamFormItem.vue +193 -0
  590. package/src/frame/components/CreatePage.vue +329 -0
  591. package/src/frame/components/DataLog.vue +91 -0
  592. package/src/frame/components/DblogList.vue +158 -0
  593. package/src/frame/components/DeptFind.vue +126 -0
  594. package/src/frame/components/DropDown/DropDownMenu.vue +267 -0
  595. package/src/frame/components/DropDown/DropDownMenuItem.vue +489 -0
  596. package/src/frame/components/DynamicUserList.vue +69 -0
  597. package/src/frame/components/EditListTable.vue +774 -0
  598. package/src/frame/components/EntityCheckboxFind.vue +88 -0
  599. package/src/frame/components/EntityRelationAdd.vue +201 -0
  600. package/src/frame/components/EntityRelationAddFormItem.vue +100 -0
  601. package/src/frame/components/EntityRightFormItem.vue +616 -0
  602. package/src/frame/components/EntityRightSubList.vue +588 -0
  603. package/src/frame/components/EntityTreeManage.vue +852 -0
  604. package/src/frame/components/EntityViewFields.vue +401 -0
  605. package/src/frame/components/EntityViewSubList.vue +976 -0
  606. package/src/frame/components/ExportSystemConfig.vue +103 -0
  607. package/src/frame/components/FieldAddFormItem.vue +35 -0
  608. package/src/frame/components/Footer.vue +120 -0
  609. package/src/frame/components/FormulaEditor.vue +1216 -0
  610. package/src/frame/components/HallNav.vue +450 -0
  611. package/src/frame/components/HeaderNav.vue +417 -0
  612. package/src/frame/components/IconCard.vue +158 -0
  613. package/src/frame/components/IconFontLibrary.vue +59 -0
  614. package/src/frame/components/IconFontList.vue +75 -0
  615. package/src/frame/components/IdentifyList.vue +33 -0
  616. package/src/frame/components/ImportSystemConfig.vue +206 -0
  617. package/src/frame/components/InterfaceSubList.vue +295 -0
  618. package/src/frame/components/JsPanel.vue +103 -0
  619. package/src/frame/components/LanguageImportPage.vue +598 -0
  620. package/src/frame/components/LanguageSetting.vue +449 -0
  621. package/src/frame/components/List/LinkItem.vue +98 -0
  622. package/src/frame/components/List/List.vue +17 -0
  623. package/src/frame/components/List/ListItem.vue +52 -0
  624. package/src/frame/components/ListTable.vue +796 -0
  625. package/src/frame/components/MEntitySubList.vue +199 -0
  626. package/src/frame/components/MenuTreeFind.vue +107 -0
  627. package/src/frame/components/MessageList.vue +137 -0
  628. package/src/frame/components/MessageRuleFormItem.vue +61 -0
  629. package/src/frame/components/MessageRuleReceiverFormItem.vue +173 -0
  630. package/src/frame/components/MessageTemplate.vue +791 -0
  631. package/src/frame/components/MetaList.vue +65 -0
  632. package/src/frame/components/Mine.vue +114 -0
  633. package/src/frame/components/Nav.vue +599 -0
  634. package/src/frame/components/NavFormCatalogItem.vue +9 -0
  635. package/src/frame/components/NumList.vue +108 -0
  636. package/src/frame/components/OperateLog.vue +168 -0
  637. package/src/frame/components/PageCatalog.vue +454 -0
  638. package/src/frame/components/PageChart.vue +306 -0
  639. package/src/frame/components/PageSwipes.vue +179 -0
  640. package/src/frame/components/PersonFormItem.vue +92 -0
  641. package/src/frame/components/Popup.vue +181 -0
  642. package/src/frame/components/PrintFormList.vue +495 -0
  643. package/src/frame/components/PublishEntity.vue +87 -0
  644. package/src/frame/components/ReportFormList.vue +247 -0
  645. package/src/frame/components/ReportList.vue +493 -0
  646. package/src/frame/components/RightSubList.vue +253 -0
  647. package/src/frame/components/RoleAddUser.vue +50 -0
  648. package/src/frame/components/RoleApplicationCard.vue +299 -0
  649. package/src/frame/components/RoleApplicationList.vue +766 -0
  650. package/src/frame/components/RoleApplicationSet.vue +845 -0
  651. package/src/frame/components/RuleText.vue +98 -0
  652. package/src/frame/components/Search.vue +270 -0
  653. package/src/frame/components/ServiceFormItem.vue +29 -0
  654. package/src/frame/components/SubAdd.vue +0 -0
  655. package/src/frame/components/SystemNav.vue +18 -0
  656. package/src/frame/components/TaskNumCard.vue +26 -0
  657. package/src/frame/components/TimerRuleFormItem.vue +227 -0
  658. package/src/frame/components/TodoList.vue +429 -0
  659. package/src/frame/components/UpdateSystemConfig.vue +186 -0
  660. package/src/frame/components/UserCard.vue +110 -0
  661. package/src/frame/components/UserFind.vue +438 -0
  662. package/src/frame/components/UserFormItem.vue +666 -0
  663. package/src/frame/components/UserList.vue +17 -0
  664. package/src/frame/components/UserManage.vue +716 -0
  665. package/src/frame/components/ValidateRuleFormItem.vue +40 -0
  666. package/src/frame/components/ViewFieldDefine.vue +554 -0
  667. package/src/frame/components/attribute/Form.vue +439 -0
  668. package/src/frame/components/authorization/AddApiPermiss.vue +179 -0
  669. package/src/frame/components/authorization/AddAuthorization.vue +135 -0
  670. package/src/frame/components/authorization/AddEntityFind.vue +68 -0
  671. package/src/frame/components/authorization/AddNoApi.vue +143 -0
  672. package/src/frame/components/authorization/AddRoleScope.vue +291 -0
  673. package/src/frame/components/authorization/ApiShareOtherList.vue +353 -0
  674. package/src/frame/components/authorization/ApiSystemList.vue +315 -0
  675. package/src/frame/components/authorization/AuthorizationRoleSystem.vue +213 -0
  676. package/src/frame/components/authorization/EntityConstraintFormItem.vue +255 -0
  677. package/src/frame/components/authorization/OtherShareApiList.vue +248 -0
  678. package/src/frame/components/authorization/PermissRoleAuthorization.vue +583 -0
  679. package/src/frame/components/authorization/PermissRoleTabs.vue +117 -0
  680. package/src/frame/components/authorization/RoleLevel.vue +113 -0
  681. package/src/frame/components/authorization/RoleLevelScope.vue +247 -0
  682. package/src/frame/components/card/CardList.vue +78 -0
  683. package/src/frame/components/card/CardListItem.vue +147 -0
  684. package/src/frame/components/card/Title.vue +38 -0
  685. package/src/frame/components/chart/CircularPie.vue +11 -0
  686. package/src/frame/components/chart/Column.vue +11 -0
  687. package/src/frame/components/chart/HoriColumn.vue +11 -0
  688. package/src/frame/components/chart/Line.vue +11 -0
  689. package/src/frame/components/chart/Pie.vue +11 -0
  690. package/src/frame/components/custom-bpmn/CustomContextPad.js +58 -0
  691. package/src/frame/components/custom-bpmn/CustomPalette.js +257 -0
  692. package/src/frame/components/custom-bpmn/CustomRenderer.js +115 -0
  693. package/src/frame/components/custom-bpmn/CustomRendererBpmn.js +45 -0
  694. package/src/frame/components/custom-bpmn/PropertiesView.vue +4046 -0
  695. package/src/frame/components/custom-bpmn/img/chaxun.png +0 -0
  696. package/src/frame/components/custom-bpmn/img/fasong.png +0 -0
  697. package/src/frame/components/custom-bpmn/img/gengxin.png +0 -0
  698. package/src/frame/components/custom-bpmn/img/jiagong.png +0 -0
  699. package/src/frame/components/custom-bpmn/img/jiekou.png +0 -0
  700. package/src/frame/components/custom-bpmn/img/shanchu.png +0 -0
  701. package/src/frame/components/custom-bpmn/img/tongbu.png +0 -0
  702. package/src/frame/components/custom-bpmn/img/xinzeng.png +0 -0
  703. package/src/frame/components/custom-bpmn/img/xunhuanend.png +0 -0
  704. package/src/frame/components/custom-bpmn/img/xunhuanstart.png +0 -0
  705. package/src/frame/components/custom-bpmn/img/ywgz.png +0 -0
  706. package/src/frame/components/custom-bpmn/index.js +6 -0
  707. package/src/frame/components/custom-bpmn/palette.js +18 -0
  708. package/src/frame/components/custom-bpmn/util.js +5 -0
  709. package/src/frame/components/expand/AddForm.vue +91 -0
  710. package/src/frame/components/expand/AddFormItem.vue +144 -0
  711. package/src/frame/components/filter/Filter.vue +744 -0
  712. package/src/frame/components/filter/FilterItem.vue +516 -0
  713. package/src/frame/components/form/Cascader.vue +79 -0
  714. package/src/frame/components/form/CheckBox.vue +88 -0
  715. package/src/frame/components/form/Date.vue +154 -0
  716. package/src/frame/components/form/DateRange.vue +108 -0
  717. package/src/frame/components/form/Field.vue +91 -0
  718. package/src/frame/components/form/File.vue +415 -0
  719. package/src/frame/components/form/FormItem.vue +128 -0
  720. package/src/frame/components/form/Hidden.vue +77 -0
  721. package/src/frame/components/form/Input.vue +123 -0
  722. package/src/frame/components/form/List.vue +149 -0
  723. package/src/frame/components/form/Object.vue +225 -0
  724. package/src/frame/components/form/Photo.vue +235 -0
  725. package/src/frame/components/form/Textarea.vue +133 -0
  726. package/src/frame/components/grid/Module.vue +63 -0
  727. package/src/frame/components/grid/ModuleItem.vue +205 -0
  728. package/src/frame/components/hall/AppCollect.vue +189 -0
  729. package/src/frame/components/hall/AppList.vue +407 -0
  730. package/src/frame/components/hall/AppVisitRecord.vue +170 -0
  731. package/src/frame/components/hall/Banner.vue +21 -0
  732. package/src/frame/components/hall/ServiceCard.vue +202 -0
  733. package/src/frame/components/hall/UserCard.vue +112 -0
  734. package/src/frame/components/mscope/Scope.vue +90 -0
  735. package/src/frame/components/mscope/ScopeItem.vue +372 -0
  736. package/src/frame/components/mscope/drawer.vue +43 -0
  737. package/src/frame/components/permiss/AddApi.vue +119 -0
  738. package/src/frame/components/permiss/AddNoEntityApi.vue +131 -0
  739. package/src/frame/components/permiss/AddSystemPermiss.vue +107 -0
  740. package/src/frame/components/permiss/AllocateRole.vue +107 -0
  741. package/src/frame/components/permiss/ApiSubList.vue +193 -0
  742. package/src/frame/components/permiss/FieldScope.vue +138 -0
  743. package/src/frame/components/permiss/ListTable.vue +842 -0
  744. package/src/frame/components/permiss/PermissEdit.vue +61 -0
  745. package/src/frame/components/permiss/PermissManage.vue +96 -0
  746. package/src/frame/components/permiss/PermissManageAdd.vue +203 -0
  747. package/src/frame/components/permiss/RoleMenu.vue +405 -0
  748. package/src/frame/components/permiss/RoleSubList.vue +264 -0
  749. package/src/frame/components/permiss/jurisdiction.vue +425 -0
  750. package/src/frame/components/report/ChartLine.vue +253 -0
  751. package/src/frame/components/report/ChartPie.vue +345 -0
  752. package/src/frame/components/report/Config.vue +709 -0
  753. package/src/frame/components/report/Design.vue +2783 -0
  754. package/src/frame/components/report/Index.vue +115 -0
  755. package/src/frame/components/report/ReportTable.vue +1051 -0
  756. package/src/frame/components/report/StatList.vue +229 -0
  757. package/src/frame/components/right/RoleDataList.vue +291 -0
  758. package/src/frame/components/right/RoleFieldList.vue +348 -0
  759. package/src/frame/components/scope/Scope.vue +497 -0
  760. package/src/frame/components/scope/ScopeDrawer.vue +195 -0
  761. package/src/frame/components/scope/ScopeItem.vue +973 -0
  762. package/src/frame/components/task-list/TaskList.vue +617 -0
  763. package/src/frame/components/task-list/Visual.vue +45 -0
  764. package/src/frame/components/task-list/index.js +3 -0
  765. package/src/frame/components/task-list-page/TaskListPage.vue +26 -0
  766. package/src/frame/components/task-list-page/index.js +8 -0
  767. package/src/frame/components/upLoad.vue +69 -0
  768. package/src/frame/components/viewport/LookViewList.vue +28 -0
  769. package/src/frame/components/viewport/ViewAddForm.vue +151 -0
  770. package/src/frame/components/viewport/ViewDefineList.vue +53 -0
  771. package/src/frame/components/viewport/ViewFiedList.vue +646 -0
  772. package/src/frame/components/viewport/ViewScope.vue +109 -0
  773. package/src/frame/index.js +37 -0
  774. package/src/frame/packages/add-form/AddForm.vue +2128 -0
  775. package/src/frame/packages/add-form/Preview.vue +312 -0
  776. package/src/frame/packages/add-form/index.js +8 -0
  777. package/src/frame/packages/add-form-item/AddFormItem.vue +446 -0
  778. package/src/frame/packages/add-form-item/Preview.vue +92 -0
  779. package/src/frame/packages/add-form-item/index.js +8 -0
  780. package/src/frame/packages/alter/Alert.vue +42 -0
  781. package/src/frame/packages/alter/Visual.vue +58 -0
  782. package/src/frame/packages/alter/index.js +8 -0
  783. package/src/frame/packages/app-index/AppIndex.vue +188 -0
  784. package/src/frame/packages/app-index/index.js +8 -0
  785. package/src/frame/packages/app-nav/AppNav.vue +1553 -0
  786. package/src/frame/packages/app-nav/Preview.vue +13 -0
  787. package/src/frame/packages/app-nav/index.js +8 -0
  788. package/src/frame/packages/app-tabs/Tabs.vue +121 -0
  789. package/src/frame/packages/app-tabs/index.js +8 -0
  790. package/src/frame/packages/apply-form/ApplyForm.vue +68 -0
  791. package/src/frame/packages/apply-form/index.js +3 -0
  792. package/src/frame/packages/approval-index/ApprovalIndex.vue +465 -0
  793. package/src/frame/packages/approval-index/index.js +8 -0
  794. package/src/frame/packages/approval-index-page/ApprovalIndexPage.vue +21 -0
  795. package/src/frame/packages/approval-index-page/index.js +8 -0
  796. package/src/frame/packages/base-page/BasePage.vue +221 -0
  797. package/src/frame/packages/base-page/index.js +8 -0
  798. package/src/frame/packages/button/Button.vue +47 -0
  799. package/src/frame/packages/button/Preview.vue +33 -0
  800. package/src/frame/packages/button/index.js +8 -0
  801. package/src/frame/packages/card/Card.vue +291 -0
  802. package/src/frame/packages/card/index.js +8 -0
  803. package/src/frame/packages/card-form-item/CardFormItem.vue +301 -0
  804. package/src/frame/packages/card-form-item/Visual.vue +101 -0
  805. package/src/frame/packages/card-form-item/index.js +3 -0
  806. package/src/frame/packages/category-list/CategoryList.vue +854 -0
  807. package/src/frame/packages/category-list/index.js +8 -0
  808. package/src/frame/packages/chart/Chart.vue +124 -0
  809. package/src/frame/packages/chart/ChartColumn.vue +365 -0
  810. package/src/frame/packages/chart/ChartFormItem.vue +241 -0
  811. package/src/frame/packages/chart/ChartLine.vue +317 -0
  812. package/src/frame/packages/chart/ChartPie.vue +384 -0
  813. package/src/frame/packages/chart/Funnel.vue +379 -0
  814. package/src/frame/packages/chart/ReportTable.vue +1139 -0
  815. package/src/frame/packages/chart/index.js +23 -0
  816. package/src/frame/packages/check-history/CheckHistory.vue +510 -0
  817. package/src/frame/packages/check-history/Steps.vue +213 -0
  818. package/src/frame/packages/check-history/index.js +8 -0
  819. package/src/frame/packages/component/Component.vue +16 -0
  820. package/src/frame/packages/component/index.js +8 -0
  821. package/src/frame/packages/contacts/Card.vue +133 -0
  822. package/src/frame/packages/contacts/Contacts.vue +167 -0
  823. package/src/frame/packages/contacts/index.js +8 -0
  824. package/src/frame/packages/edit-entity-list/EditEntityList.vue +108 -0
  825. package/src/frame/packages/entity-add-page/EntityAddPage.vue +100 -0
  826. package/src/frame/packages/entity-add-page/index.js +8 -0
  827. package/src/frame/packages/entity-apply-page/EntityApplyPage.vue +60 -0
  828. package/src/frame/packages/entity-apply-page/index.js +3 -0
  829. package/src/frame/packages/entity-list/Config.vue +275 -0
  830. package/src/frame/packages/entity-list/EntityList.scss +88 -0
  831. package/src/frame/packages/entity-list/EntityList.vue +2105 -0
  832. package/src/frame/packages/entity-list/Preview.vue +232 -0
  833. package/src/frame/packages/entity-list/components/EditField.vue +76 -0
  834. package/src/frame/packages/entity-list/components/Field.vue +166 -0
  835. package/src/frame/packages/entity-list/config.js +0 -0
  836. package/src/frame/packages/entity-list/index.js +20 -0
  837. package/src/frame/packages/entity-list-find/EntityListFind.vue +161 -0
  838. package/src/frame/packages/entity-list-find/index.js +8 -0
  839. package/src/frame/packages/entity-list-find-page/EntityListFindPage.vue +72 -0
  840. package/src/frame/packages/entity-list-find-page/index.js +8 -0
  841. package/src/frame/packages/entity-list-page/EntityListPage.vue +91 -0
  842. package/src/frame/packages/entity-list-page/index.js +8 -0
  843. package/src/frame/packages/entity-no-submit-sub-list/EntityNoSubmitSubList.vue +302 -0
  844. package/src/frame/packages/entity-no-submit-sub-list/index.js +8 -0
  845. package/src/frame/packages/entity-sub-grid/EntitySubGrid.vue +46 -0
  846. package/src/frame/packages/entity-sub-grid/EntitySubGridItem.vue +68 -0
  847. package/src/frame/packages/entity-sub-grid/index.js +13 -0
  848. package/src/frame/packages/entity-sub-list/EntitySubList.vue +418 -0
  849. package/src/frame/packages/entity-sub-list/index.js +8 -0
  850. package/src/frame/packages/entity-tree-find/EntitytTreeFind.vue +460 -0
  851. package/src/frame/packages/entity-tree-find/index.js +8 -0
  852. package/src/frame/packages/entity-tree-find-page/EntityTreeFindPage.vue +29 -0
  853. package/src/frame/packages/entity-tree-find-page/index.js +8 -0
  854. package/src/frame/packages/export/Export.vue +530 -0
  855. package/src/frame/packages/export/index.js +8 -0
  856. package/src/frame/packages/footer/Footer.vue +142 -0
  857. package/src/frame/packages/footer/index.js +3 -0
  858. package/src/frame/packages/form/Form.vue +611 -0
  859. package/src/frame/packages/form/index.js +8 -0
  860. package/src/frame/packages/form-item/CheckBox.vue +160 -0
  861. package/src/frame/packages/form-item/Color.vue +135 -0
  862. package/src/frame/packages/form-item/Date.vue +330 -0
  863. package/src/frame/packages/form-item/File.vue +712 -0
  864. package/src/frame/packages/form-item/FormItem.vue +464 -0
  865. package/src/frame/packages/form-item/Hidden.vue +55 -0
  866. package/src/frame/packages/form-item/Html.vue +291 -0
  867. package/src/frame/packages/form-item/Input.vue +320 -0
  868. package/src/frame/packages/form-item/Location.vue +313 -0
  869. package/src/frame/packages/form-item/Number.vue +217 -0
  870. package/src/frame/packages/form-item/Object.vue +1195 -0
  871. package/src/frame/packages/form-item/Password.vue +128 -0
  872. package/src/frame/packages/form-item/Photo.vue +362 -0
  873. package/src/frame/packages/form-item/Radio.vue +157 -0
  874. package/src/frame/packages/form-item/Rule.vue +989 -0
  875. package/src/frame/packages/form-item/Scope.vue +224 -0
  876. package/src/frame/packages/form-item/Select.vue +226 -0
  877. package/src/frame/packages/form-item/Signature.vue +242 -0
  878. package/src/frame/packages/form-item/Switch.vue +124 -0
  879. package/src/frame/packages/form-item/Tag.vue +216 -0
  880. package/src/frame/packages/form-item/Textarea.vue +279 -0
  881. package/src/frame/packages/form-item/index.js +45 -0
  882. package/src/frame/packages/grid/Grid.vue +70 -0
  883. package/src/frame/packages/grid/GridItem.vue +190 -0
  884. package/src/frame/packages/grid/index.js +13 -0
  885. package/src/frame/packages/header/Breadcrumb.vue +55 -0
  886. package/src/frame/packages/header/Header.vue +602 -0
  887. package/src/frame/packages/header/Preview.vue +252 -0
  888. package/src/frame/packages/header/index.js +16 -0
  889. package/src/frame/packages/icon/Icon.vue +47 -0
  890. package/src/frame/packages/icon/index.js +7 -0
  891. package/src/frame/packages/iframe/Iframe.vue +17 -0
  892. package/src/frame/packages/iframe/index.js +8 -0
  893. package/src/frame/packages/image/image.vue +23 -0
  894. package/src/frame/packages/import/Import.vue +832 -0
  895. package/src/frame/packages/import/index.js +8 -0
  896. package/src/frame/packages/layout/Column.vue +47 -0
  897. package/src/frame/packages/layout/ColumnPreview.vue +119 -0
  898. package/src/frame/packages/layout/Config.vue +114 -0
  899. package/src/frame/packages/layout/Layout.vue +62 -0
  900. package/src/frame/packages/layout/Preview.vue +111 -0
  901. package/src/frame/packages/layout/index.js +10 -0
  902. package/src/frame/packages/list/List.vue +426 -0
  903. package/src/frame/packages/list/index.js +8 -0
  904. package/src/frame/packages/list/visual/List.vue +349 -0
  905. package/src/frame/packages/load-page/LoadPage.vue +29 -0
  906. package/src/frame/packages/load-page/index.js +8 -0
  907. package/src/frame/packages/m-entity-add-page/MEntityAddPage.vue +100 -0
  908. package/src/frame/packages/m-entity-add-page/index.js +8 -0
  909. package/src/frame/packages/m-entity-list/MEntityList.vue +1083 -0
  910. package/src/frame/packages/m-entity-list/index.js +3 -0
  911. package/src/frame/packages/m-entity-list-find/MEntityListFind.vue +329 -0
  912. package/src/frame/packages/m-entity-list-find/Visual.vue +105 -0
  913. package/src/frame/packages/m-entity-list-find/index.js +3 -0
  914. package/src/frame/packages/m-entity-tree-find/MEntityTreeFind.vue +339 -0
  915. package/src/frame/packages/m-entity-tree-find/index.js +8 -0
  916. package/src/frame/packages/menu/Menu.vue +174 -0
  917. package/src/frame/packages/menu/MenuItem.vue +94 -0
  918. package/src/frame/packages/menu/index.js +16 -0
  919. package/src/frame/packages/menu-index/MenuIndex.vue +444 -0
  920. package/src/frame/packages/menu-index/index.js +8 -0
  921. package/src/frame/packages/mine/Mine.vue +404 -0
  922. package/src/frame/packages/module-index-page/ModuleIndexPage.vue +250 -0
  923. package/src/frame/packages/module-index-page/index.js +7 -0
  924. package/src/frame/packages/module-list/ModuleList.vue +222 -0
  925. package/src/frame/packages/module-list/index.js +8 -0
  926. package/src/frame/packages/module-list-page/ModuleListPage.vue +24 -0
  927. package/src/frame/packages/module-list-page/index.js +8 -0
  928. package/src/frame/packages/nav-add-form/NavAddForm.vue +626 -0
  929. package/src/frame/packages/nav-add-form/index.js +8 -0
  930. package/src/frame/packages/num/CardNum.vue +267 -0
  931. package/src/frame/packages/num/NumItem.vue +192 -0
  932. package/src/frame/packages/num/NumSubItem.vue +137 -0
  933. package/src/frame/packages/num/Statistic.vue +42 -0
  934. package/src/frame/packages/num/index.js +17 -0
  935. package/src/frame/packages/org-chart/OrgChart.vue +301 -0
  936. package/src/frame/packages/org-chart/index.js +8 -0
  937. package/src/frame/packages/page/Page.vue +322 -0
  938. package/src/frame/packages/page/index.js +8 -0
  939. package/src/frame/packages/page-help/PageHelp.vue +28 -0
  940. package/src/frame/packages/page-help/Preview.vue +35 -0
  941. package/src/frame/packages/page-help/index.js +8 -0
  942. package/src/frame/packages/page-tabs/PageTabs.vue +188 -0
  943. package/src/frame/packages/page-tabs/index.js +8 -0
  944. package/src/frame/packages/progress/Progress.vue +287 -0
  945. package/src/frame/packages/progress/ProgressItem.vue +39 -0
  946. package/src/frame/packages/progress/index.js +13 -0
  947. package/src/frame/packages/progress-chart/ProcessChart.vue +210 -0
  948. package/src/frame/packages/progress-chart/index.js +8 -0
  949. package/src/frame/packages/report-form-list/ReportFormList.vue +0 -0
  950. package/src/frame/packages/router-view/RouterView.vue +229 -0
  951. package/src/frame/packages/router-view/index.js +8 -0
  952. package/src/frame/packages/scope/Scope.vue +594 -0
  953. package/src/frame/packages/scope/ScopeDrawer.vue +201 -0
  954. package/src/frame/packages/scope/ScopeItem.vue +987 -0
  955. package/src/frame/packages/scope/index.js +15 -0
  956. package/src/frame/packages/search/Fields.vue +326 -0
  957. package/src/frame/packages/search/Filter.vue +473 -0
  958. package/src/frame/packages/search/Keyword.vue +106 -0
  959. package/src/frame/packages/search/Mobile.vue +314 -0
  960. package/src/frame/packages/search/Select.vue +238 -0
  961. package/src/frame/packages/search/index.js +22 -0
  962. package/src/frame/packages/step/Step.vue +149 -0
  963. package/src/frame/packages/step/index.js +8 -0
  964. package/src/frame/packages/step-item/StepItem.vue +126 -0
  965. package/src/frame/packages/step-item/index.js +8 -0
  966. package/src/frame/packages/tab-bar/Config.vue +11 -0
  967. package/src/frame/packages/tab-bar/TabBar.vue +25 -0
  968. package/src/frame/packages/tab-bar/index.js +3 -0
  969. package/src/frame/packages/text/Text.vue +25 -0
  970. package/src/frame/packages/text-editor/TextEditor.vue +22 -0
  971. package/src/frame/packages/title/Title.vue +21 -0
  972. package/src/frame/packages/title/index.js +8 -0
  973. package/src/frame/packages/visual-config-page/ComponentLibrary.vue +198 -0
  974. package/src/frame/packages/visual-config-page/ComponentList.vue +565 -0
  975. package/src/frame/packages/visual-config-page/ComponentPreview.vue +153 -0
  976. package/src/frame/packages/visual-config-page/ConfigOption.vue +16 -0
  977. package/src/frame/packages/visual-config-page/ConfigPanel.vue +576 -0
  978. package/src/frame/packages/visual-config-page/PagePreview.vue +53 -0
  979. package/src/frame/packages/visual-config-page/VisualConfigPage.vue +632 -0
  980. package/src/frame/packages/visual-config-page/index.js +24 -0
  981. package/src/frame/popup.js +31 -0
  982. package/src/frame/views/Add.vue +823 -0
  983. package/src/frame/views/App.vue +49 -0
  984. package/src/frame/views/AppRoleSelect.vue +272 -0
  985. package/src/frame/views/AppSubModule.vue +50 -0
  986. package/src/frame/views/BatchEdit.vue +206 -0
  987. package/src/frame/views/Bpmn.vue +553 -0
  988. package/src/frame/views/Container.vue +294 -0
  989. package/src/frame/views/DblogList.vue +348 -0
  990. package/src/frame/views/EntityCheckList.vue +164 -0
  991. package/src/frame/views/EntityCheckPage.vue +44 -0
  992. package/src/frame/views/EntityDetailPage.vue +75 -0
  993. package/src/frame/views/EntityEditApply.vue +136 -0
  994. package/src/frame/views/EntityEditPage.vue +13 -0
  995. package/src/frame/views/EntityFind.vue +135 -0
  996. package/src/frame/views/EntitySingleAdd.vue +31 -0
  997. package/src/frame/views/EntitySubListPage.vue +44 -0
  998. package/src/frame/views/EntityTreeFind.vue +188 -0
  999. package/src/frame/views/EntityTreePage.vue +37 -0
  1000. package/src/frame/views/EntityTreePageOld.vue +536 -0
  1001. package/src/frame/views/Error.vue +29 -0
  1002. package/src/frame/views/ExcelDesign.vue +1795 -0
  1003. package/src/frame/views/ExcelPreview.vue +173 -0
  1004. package/src/frame/views/ExportPage.vue +19 -0
  1005. package/src/frame/views/FormDesign.vue +1049 -0
  1006. package/src/frame/views/IconFontLibraryPage.vue +74 -0
  1007. package/src/frame/views/ImportPage.vue +19 -0
  1008. package/src/frame/views/List.vue +955 -0
  1009. package/src/frame/views/LocalLogin.vue +27 -0
  1010. package/src/frame/views/Login.vue +1059 -0
  1011. package/src/frame/views/MEntityListPage.vue +83 -0
  1012. package/src/frame/views/MEntitySubListPage.vue +44 -0
  1013. package/src/frame/views/MainModule.vue +83 -0
  1014. package/src/frame/views/MenuIndex.vue +444 -0
  1015. package/src/frame/views/MinePage.vue +18 -0
  1016. package/src/frame/views/Module.vue +203 -0
  1017. package/src/frame/views/ModuleIndex.vue +377 -0
  1018. package/src/frame/views/PageAttriTree.vue +419 -0
  1019. package/src/frame/views/PageAttributeTreePage.vue +424 -0
  1020. package/src/frame/views/PageConfig.vue +218 -0
  1021. package/src/frame/views/Permission.vue +695 -0
  1022. package/src/frame/views/PersonalInfo.vue +659 -0
  1023. package/src/frame/views/QyWechat.vue +69 -0
  1024. package/src/frame/views/ReportFormList.vue +146 -0
  1025. package/src/frame/views/ReportFormListPage.vue +91 -0
  1026. package/src/frame/views/RoleTreePage.vue +180 -0
  1027. package/src/frame/views/ServiceHelp.vue +177 -0
  1028. package/src/frame/views/SubModule.vue +67 -0
  1029. package/src/frame/views/SystemIndex.vue +105 -0
  1030. package/src/frame/views/SystemTabs.vue +87 -0
  1031. package/src/frame/views/TaskPage.vue +46 -0
  1032. package/src/frame/views/client/AddForm.vue +64 -0
  1033. package/src/frame/views/client/AppMarket.vue +345 -0
  1034. package/src/frame/views/client/ClientIndex.vue +261 -0
  1035. package/src/frame/views/client/ClientModuleIndexPage.vue +25 -0
  1036. package/src/frame/views/client/CopySystem.vue +179 -0
  1037. package/src/frame/views/client/CreateMethod.vue +133 -0
  1038. package/src/frame/views/client/Login.vue +234 -0
  1039. package/src/frame/views/client/OpenClientManage.vue +53 -0
  1040. package/src/frame/views/client/PageTabsCyclic.vue +121 -0
  1041. package/src/frame/views/client/SelfBuiltSystem.vue +272 -0
  1042. package/src/frame/views/client/StandardProduct.vue +325 -0
  1043. package/src/frame/views/client/SystemList.vue +160 -0
  1044. package/src/frame/views/client/SystemManager.vue +346 -0
  1045. package/src/frame/views/layout/CardList.vue +123 -0
  1046. package/src/frame/views/layout/Grid.vue +95 -0
  1047. package/src/frame/views/match/AddTargetField.vue +118 -0
  1048. package/src/frame/views/match/MatchAddFormItem.vue +34 -0
  1049. package/src/frame/views/match/conversion.vue +209 -0
  1050. package/src/frame/views/match/customize.vue +344 -0
  1051. package/src/frame/views/match/fieldMatch.vue +518 -0
  1052. package/src/frame/views/report/AddFormItem.vue +67 -0
  1053. package/src/frame/views/report/DesignReport.vue +1213 -0
  1054. package/src/frame/views/report/LookReport.vue +221 -0
  1055. package/src/frame/views/report/ReportAdd.vue +237 -0
  1056. package/src/frame/views/report/ReportFormList.vue +235 -0
  1057. package/src/frame/views/report/ReportList.vue +163 -0
  1058. package/src/frame/views/report/ReportTreeFind.vue +188 -0
  1059. package/src/frame/views/visual/Add.vue +1818 -0
  1060. package/src/frame/views/visual/AddForm.vue +228 -0
  1061. package/src/frame/views/visual/AddFormItem.vue +242 -0
  1062. package/src/frame/views/visual/AppIndex.vue +149 -0
  1063. package/src/frame/views/visual/ApplyForm.vue +142 -0
  1064. package/src/frame/views/visual/AttributeList.vue +329 -0
  1065. package/src/frame/views/visual/BasePage.vue +73 -0
  1066. package/src/frame/views/visual/Button.vue +119 -0
  1067. package/src/frame/views/visual/Card.vue +68 -0
  1068. package/src/frame/views/visual/CardNum.vue +74 -0
  1069. package/src/frame/views/visual/CategoryList.vue +566 -0
  1070. package/src/frame/views/visual/Chart.vue +53 -0
  1071. package/src/frame/views/visual/CheckForm.vue +106 -0
  1072. package/src/frame/views/visual/CheckHistory.vue +28 -0
  1073. package/src/frame/views/visual/ClientList.vue +42 -0
  1074. package/src/frame/views/visual/CodeManage.vue +128 -0
  1075. package/src/frame/views/visual/Component.vue +1142 -0
  1076. package/src/frame/views/visual/ComponentList.vue +288 -0
  1077. package/src/frame/views/visual/Config.vue +888 -0
  1078. package/src/frame/views/visual/ConfigItem.vue +218 -0
  1079. package/src/frame/views/visual/ConfigSelectItems.vue +521 -0
  1080. package/src/frame/views/visual/CreatePage.vue +397 -0
  1081. package/src/frame/views/visual/DblogList.vue +137 -0
  1082. package/src/frame/views/visual/EntityAddPage.vue +52 -0
  1083. package/src/frame/views/visual/EntityApplyPage.vue +57 -0
  1084. package/src/frame/views/visual/EntityCheckPage.vue +69 -0
  1085. package/src/frame/views/visual/EntityFindPage.vue +55 -0
  1086. package/src/frame/views/visual/EntityList.vue +442 -0
  1087. package/src/frame/views/visual/EntityListPage.vue +97 -0
  1088. package/src/frame/views/visual/EntityNoSubmitSubList.vue +252 -0
  1089. package/src/frame/views/visual/EntityRightSubList.vue +32 -0
  1090. package/src/frame/views/visual/EntitySubAdd.vue +11 -0
  1091. package/src/frame/views/visual/EntitySubGrid.vue +39 -0
  1092. package/src/frame/views/visual/EntitySubGridItem.vue +96 -0
  1093. package/src/frame/views/visual/EntitySubList.vue +298 -0
  1094. package/src/frame/views/visual/EntityTreeFindPage.vue +36 -0
  1095. package/src/frame/views/visual/EntityTreeManage.vue +144 -0
  1096. package/src/frame/views/visual/EntityTreePage.vue +46 -0
  1097. package/src/frame/views/visual/Grid.vue +46 -0
  1098. package/src/frame/views/visual/GridItem.vue +41 -0
  1099. package/src/frame/views/visual/HeaderNew.vue +326 -0
  1100. package/src/frame/views/visual/Iframe.vue +32 -0
  1101. package/src/frame/views/visual/Image.vue +49 -0
  1102. package/src/frame/views/visual/Import.vue +59 -0
  1103. package/src/frame/views/visual/InterfaceSubList.vue +23 -0
  1104. package/src/frame/views/visual/Layout.vue +0 -0
  1105. package/src/frame/views/visual/ListFirst.vue +613 -0
  1106. package/src/frame/views/visual/LoadPage.vue +42 -0
  1107. package/src/frame/views/visual/MEntityAddPage.vue +71 -0
  1108. package/src/frame/views/visual/MEntityList.vue +472 -0
  1109. package/src/frame/views/visual/MEntityListPage.vue +46 -0
  1110. package/src/frame/views/visual/MEntitySubList.vue +237 -0
  1111. package/src/frame/views/visual/MetaList.vue +23 -0
  1112. package/src/frame/views/visual/Mine.vue +37 -0
  1113. package/src/frame/views/visual/ModuleIndexPage.vue +68 -0
  1114. package/src/frame/views/visual/ModuleList.vue +44 -0
  1115. package/src/frame/views/visual/NavAddForm.vue +144 -0
  1116. package/src/frame/views/visual/NavFormCatalogItem.vue +21 -0
  1117. package/src/frame/views/visual/NumItem.vue +69 -0
  1118. package/src/frame/views/visual/NumStatistic.vue +85 -0
  1119. package/src/frame/views/visual/NumSubItem.vue +63 -0
  1120. package/src/frame/views/visual/OrgChart.vue +121 -0
  1121. package/src/frame/views/visual/PageCatalog.vue +26 -0
  1122. package/src/frame/views/visual/PageConfig.vue +278 -0
  1123. package/src/frame/views/visual/PageTabs.vue +54 -0
  1124. package/src/frame/views/visual/ProcessChart.vue +24 -0
  1125. package/src/frame/views/visual/Progress.vue +39 -0
  1126. package/src/frame/views/visual/ProgressItem.vue +43 -0
  1127. package/src/frame/views/visual/Text.vue +36 -0
  1128. package/src/frame/views/visual/TextEditor.vue +36 -0
  1129. package/src/frame/views/visual/Title.vue +44 -0
  1130. package/src/frame/views/visual/TodoList.vue +18 -0
  1131. package/src/frame/views/visual/TreeFind.vue +39 -0
  1132. package/src/frame/views/visual/UserFormItem.vue +50 -0
  1133. package/src/frame/views/visual/UserManage.vue +36 -0
  1134. package/src/frame/views/visual/chart/CircularPie.vue +7 -0
  1135. package/src/frame/views/visual/chart/Column.vue +73 -0
  1136. package/src/frame/views/visual/chart/HoriColumn.vue +7 -0
  1137. package/src/frame/views/visual/chart/Line.vue +7 -0
  1138. package/src/frame/views/visual/chart/Pie.vue +7 -0
  1139. package/src/frame/views/visual/config/Chart.vue +136 -0
  1140. package/src/frame/views/visual/config/Color.vue +39 -0
  1141. package/src/frame/views/visual/config/DesignReport.vue +20 -0
  1142. package/src/frame/views/visual/config/Event.vue +218 -0
  1143. package/src/frame/views/visual/config/Field.vue +494 -0
  1144. package/src/frame/views/visual/config/Html.vue +26 -0
  1145. package/src/frame/views/visual/config/Image.vue +118 -0
  1146. package/src/frame/views/visual/config/Input.vue +52 -0
  1147. package/src/frame/views/visual/config/List.vue +63 -0
  1148. package/src/frame/views/visual/config/ListField.vue +1229 -0
  1149. package/src/frame/views/visual/config/MField.vue +594 -0
  1150. package/src/frame/views/visual/config/Number.vue +36 -0
  1151. package/src/frame/views/visual/config/Object.vue +106 -0
  1152. package/src/frame/views/visual/config/Operate.vue +1657 -0
  1153. package/src/frame/views/visual/config/OrderField.vue +507 -0
  1154. package/src/frame/views/visual/config/Page.vue +44 -0
  1155. package/src/frame/views/visual/config/Params.vue +104 -0
  1156. package/src/frame/views/visual/config/Radio.vue +54 -0
  1157. package/src/frame/views/visual/config/Row.vue +64 -0
  1158. package/src/frame/views/visual/config/Scope.vue +314 -0
  1159. package/src/frame/views/visual/config/Select.vue +54 -0
  1160. package/src/frame/views/visual/config/Switch.vue +36 -0
  1161. package/src/frame/views/visual/config/Textarea.vue +38 -0
  1162. package/src/frame/views/visual/config/Tree.vue +111 -0
  1163. package/src/frame/views/visual/search/Fields.vue +52 -0
  1164. package/src/frame/views/visual/search/Filter.vue +50 -0
  1165. package/src/frame/views/visual/search/Mobile.vue +54 -0
  1166. package/src/frame/views/visual/step/Index.vue +11 -0
  1167. package/src/frame/views/visual/step/Item.vue +157 -0
  1168. package/src/index.js +369 -0
  1169. package/src/main.js +54 -0
  1170. package/src/plugins/element.js +167 -0
  1171. package/src/plugins/frame.js +12 -0
  1172. package/src/plugins/i18n.js +51 -0
  1173. package/src/plugins/index.js +11 -0
  1174. package/src/plugins/oa.js +3 -0
  1175. package/src/plugins/vant.js +80 -0
  1176. package/src/product/oa/components/AddForm.vue +87 -0
  1177. package/src/product/oa/components/MeetingAddForm.vue +85 -0
  1178. package/src/product/oa/components/MeetingExport.vue +422 -0
  1179. package/src/product/oa/components/MeetingRoomUse.vue +371 -0
  1180. package/src/product/oa/index.js +31 -0
  1181. package/src/registerServiceWorker.js +32 -0
  1182. package/src/router/config.js +416 -0
  1183. package/src/router/index.js +26 -0
  1184. package/src/store/actions.js +46 -0
  1185. package/src/store/export.js +23 -0
  1186. package/src/store/index.js +17 -0
  1187. package/src/store/modules/config.js +201 -0
  1188. package/src/store/modules/file.js +32 -0
  1189. package/src/store/modules/index.js +9 -0
  1190. package/src/store/modules/list.js +130 -0
  1191. package/src/store/modules/meta.js +210 -0
  1192. package/src/store/modules/page.js +75 -0
  1193. package/src/store/modules/router.js +140 -0
  1194. package/src/store/modules/tabs.js +62 -0
  1195. package/src/store/modules/user.js +71 -0
  1196. package/src/styles/index.scss +143 -0
  1197. package/src/styles/theme/element.scss +240 -0
  1198. package/src/styles/theme/utils/config.scss +4 -0
  1199. package/src/styles/theme/utils/function.scss +44 -0
  1200. package/src/styles/theme/utils/mixins.scss +317 -0
  1201. package/src/styles/theme/utils/var.scss +112 -0
  1202. package/src/utils/Config.js +25 -0
  1203. package/src/utils/axios.js +121 -0
  1204. package/src/utils/chartTheme.js +471 -0
  1205. package/src/utils/directives/global.js +127 -0
  1206. package/src/utils/fieldFactory.js +147 -0
  1207. package/src/utils/index.js +21 -0
  1208. package/src/utils/loadComponent.js +39 -0
  1209. package/src/utils/meta.js +355 -0
  1210. package/src/utils/mixins/component.js +368 -0
  1211. package/src/utils/mixins/global.js +985 -0
  1212. package/src/utils/mixins/index.js +11 -0
  1213. package/src/utils/page.js +126 -0
  1214. package/src/utils/util.js +381 -0
  1215. package/src/vant-variables.less +1 -0
  1216. package/src/vue.bus.js +18 -0
  1217. package/start-code-dev.sh +24 -0
  1218. package/start-code-pgy.sh +25 -0
  1219. package/start-code-ppe.sh +23 -0
  1220. package/start-code-prd.sh +25 -0
  1221. package/start-code-pre.sh +25 -0
  1222. package/vue.config.js +101 -0
  1223. package/webpack.config.js +97 -0
@@ -0,0 +1,4046 @@
1
+ <template>
2
+ <div class="properties-panel__container" v-if="element" @click="saveTable">
3
+ <div class="empty" v-if="selectedElements.length > 1">只能选择一个元素</div>
4
+ <div v-else class="properties-panel">
5
+ <!-- 节点标题 -->
6
+ <p class="properties-panel__title">{{selectedElementName}}</p>
7
+ <!-- 节点内容 -->
8
+ <div class="properties-panel__content">
9
+ <!-- 根节点 -->
10
+ <template v-if="element.type==='bpmn:Process'">
11
+ <el-tabs class="properties-panel__tabs" v-model="activeName" type="card">
12
+ <el-tab-pane label="属性" name="attribute">
13
+ <ul class="attribute-list">
14
+ <li class="attribute-item">
15
+ <div class="attribute-input">
16
+ <label class="attribute-input__label">流程编号</label>
17
+ <epx-form-field :values.sync="process" :field-config="{attriName: 'KEY', dataType:'text'}"></epx-form-field>
18
+ </div>
19
+ </li>
20
+ <li class="attribute-item">
21
+ <div class="attribute-input">
22
+ <label class="attribute-input__label">流程名称</label>
23
+ <epx-form-field :values.sync="process" :field-config="{attriName: 'NAME', dataType:'text', state: 'EDIT'}"></epx-form-field>
24
+ </div>
25
+ </li>
26
+ <li class="attribute-item">
27
+ <div class="attribute-input">
28
+ <label class="attribute-input__label">业务对象</label>
29
+ <epx-table-form-item :value="{id: process.ENTITY, name: process['ENTITY#']}" @change="v=> {
30
+ process.ENTITY=v?v.id: null
31
+ process['ENTITY#']=v?v.name: null
32
+ }" :fieldConfigs="{attriName: 'ENTITY', attriLabel: '业务对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT',flag: 'process_entity_find'}"></epx-table-form-item>
33
+ </div>
34
+ </li>
35
+ <li class="attribute-item" v-if="process.ENTITY">
36
+ <div class="attribute-input">
37
+ <label class="attribute-input__label">状态字段</label>
38
+ <epx-table-form-item :value="{id: process.STATUS_FIELD, name: process['STATUS_FIELD#']}" @change="v=> {
39
+ process.STATUS_FIELD=v?v.id: null
40
+ process['STATUS_FIELD#']=v?v.name: null
41
+ }"
42
+ :fieldConfigs="{attriName: 'STATUS_FIELD', attriLabel: '状态字段', dataType:'object', codeKey: 'FM_ATTRIBUTE', state: 'EDIT', flag: 'process_attribute_find', scopeParams: [{ field:'ENTITY_ID',values: process.ENTITY}]}">
43
+ </epx-table-form-item>
44
+ <!-- <epx-form-field :values.sync="process" :field-config="{attriName: 'STATUS_FIELD', dataType:'object', codeKey: 'FM_ATTRIBUTE', state: 'EDIT', scopeParams: [{ field:'ENTITY',values: process.ENTITY}]}"></epx-form-field> -->
45
+ </div>
46
+ </li>
47
+ <li class="attribute-item" v-if="process.ENTITY">
48
+ <div class="attribute-input">
49
+ <label class="attribute-input__label">用户字段</label>
50
+ <epx-table-form-item :value="{id: process.USER_FIELD, name: process['USER_FIELD#']}" @change="v=> {
51
+ process.USER_FIELD=v?v.id: null
52
+ process['USER_FIELD#']=v?v.name: null
53
+ }"
54
+ :fieldConfigs="{attriName: 'USER_FIELD', attriLabel: '用户字段', dataType:'object', codeKey: 'FM_ATTRIBUTE', state: 'EDIT', flag: 'process_attribute_find', scopeParams: [{ field:'ENTITY_ID',values: process.ENTITY}]}">
55
+ </epx-table-form-item>
56
+ </div>
57
+ </li>
58
+ <li class="attribute-item">
59
+ <div class="attribute-input">
60
+ <label class="attribute-input__label">驳回状态</label>
61
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:disagreeStatus', dataType:'list',codeKey: statusCodeKey, state: 'EDIT'}"></epx-form-field>
62
+ </div>
63
+ </li>
64
+ <li class="attribute-item">
65
+ <div class="attribute-input">
66
+ <label class="attribute-input__label">撤销状态</label>
67
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:repealStatus', dataType:'list',codeKey: statusCodeKey, state: 'EDIT'}"></epx-form-field>
68
+ </div>
69
+ </li>
70
+ <li class="attribute-item">
71
+ <div class="attribute-input">
72
+ <label class="attribute-input__label">申请查看页面</label>
73
+ <epx-table-form-item :value="{id: elementValues['camunda:applyViewPage'], name: elementValues['camunda:applyViewPage-name']}" @change="v=> {
74
+ elementValues['camunda:applyViewPage']=v?v.id: null
75
+ elementValues['camunda:applyViewPage-name']=v?v.name: null
76
+ }"
77
+ :fieldConfigs="{attriName: 'camunda:applyViewPage', attriLabel: '申请查看页面', dataType:'object', codeKey: 'FM_PAGE_CONFIG', state: 'EDIT', scopeParams: [{ field: 'SYSTEM', values: this.SYSTEM }]}">
78
+ </epx-table-form-item>
79
+ </div>
80
+ </li>
81
+ </ul>
82
+ </el-tab-pane>
83
+ <el-tab-pane class="tab-pane-content" label="参数" name="inparam" v-if="element.type==='bpmn:Process'">
84
+ <!--列表 -->
85
+ <ul class="message-list">
86
+ <li class="message-item" v-for="(item, index) in inParamData" :key="index">
87
+ <div class="message-content">
88
+ <p class="message-info">
89
+ <label for="">编号:</label>
90
+ <span>{{item['id']}}</span>
91
+ </p>
92
+ <p class="message-info">
93
+ <label for="">名称:</label>
94
+ <span>{{item['name']}}</span>
95
+ </p>
96
+ <p class="message-info">
97
+ <label for="">类型:</label>
98
+ <span>{{item['type']==='1'?'文本':item.type==='2'?'对象':item.type==='3'?'对象集合':'未设置'}}</span>
99
+ </p>
100
+ <p class="message-info">
101
+ <label for="">输出参数:</label>
102
+ <span>{{item['isOut']==='1'?'是':'否'}}</span>
103
+ </p>
104
+ <p class="message-info">
105
+ <label for="">默认值:</label>
106
+ <span>{{item['value']}}</span>
107
+ </p>
108
+ <p class="message-info">
109
+ <label for="">说明:</label>
110
+ <span>{{item['note']}}</span>
111
+ </p>
112
+ </div>
113
+ <div class="message-operate">
114
+ <i class="message-operate-item el-icon-edit-outline" @click="editInParamData(item)"></i>
115
+ <el-popconfirm title="确认删除?" @confirm="deleteInParam(index)">
116
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
117
+ </el-popconfirm>
118
+ </div>
119
+ </li>
120
+ </ul>
121
+ <el-dialog title="输入参数" :visible.sync="showInParamModal" width="60%">
122
+ <epx-table-form ref="inParamForm" :column="2" v-model="getInParamData" :fieldsConfigs="[
123
+ {attriName: 'uid', attriLabel: 'uid',dataType: 'text', state:'HIDDEN'},
124
+ {attriName: 'metaId', attriLabel: 'children',dataType: 'text', state:'HIDDEN'},
125
+ {attriName: 'id', attriLabel: '编号',dataType: 'text', state:'EDIT'},
126
+ {attriName: 'name', attriLabel: '名称',dataType: 'text', state:'EDIT'},
127
+ {attriName: 'type', attriLabel: '类型',dataType: 'list', codeKey: 'FLOW_PARAMS_TYPE', state:'EDIT'},
128
+ {attriName: 'isOut', attriLabel: '输出参数',dataType: 'list', codeKey: 'PUB_BOOLEAN', state:'EDIT'},
129
+ {attriName: 'value', attriLabel: '默认值',dataType: 'text', state:'EDIT'},
130
+ {attriName: 'note', attriLabel: '说明',dataType: 'text', state:'EDIT'}
131
+ ]">
132
+ </epx-table-form>
133
+ <div v-if="getInParamData.metaId&&getInParamData.type!=='1'" class="attribute-input">
134
+ <label class="attribute-input__label text-left">对象字段</label>
135
+ <span style="marginLeft:14px">{{fieldsText}}</span>
136
+ <div class="choose-field">
137
+ <el-button type="text" @click="chooseFieldsHandler">选择字段</el-button>
138
+ </div>
139
+ </div>
140
+ <div class="dialog-operate-group">
141
+ <el-button type="primary" @click="saveInParam">保存</el-button>
142
+ <el-button @click="showInParamModal=false">返回</el-button>
143
+ </div>
144
+ </el-dialog>
145
+ <div class="add-message-button">
146
+ <el-button type="text" @click="inParamItemUid='';showInParamModal=true;getInParamData={}">+ 添加输入参数</el-button>
147
+ </div>
148
+ </el-tab-pane>
149
+ <el-tab-pane label="触发器" class="tab-pane-content" name="listener">
150
+ <ul class="message-list">
151
+ <li class="message-item" v-for="(item, index) in listenerData" :key="index">
152
+ <div class="message-content">
153
+ <p class="message-info">
154
+ <label for="">监听方式:</label>
155
+ <span>{{item['type#']}}</span>
156
+ </p>
157
+ <p class="message-info">
158
+ <label for="">业务规则:</label>
159
+ <span>{{item['rule#']}}</span>
160
+ </p>
161
+ </div>
162
+ <div class="message-operate">
163
+ <i class="message-operate-item el-icon-edit-outline" @click="listenerIndex= index;listenerItem={...item}; showListenerModal = true"></i>
164
+ <el-popconfirm title="确认删除?" @confirm="deleteListener(index)">
165
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
166
+ </el-popconfirm>
167
+ </div>
168
+ </li>
169
+ </ul>
170
+ <el-dialog title="触发器" :visible.sync="showListenerModal" width="50%">
171
+ <epx-table-form ref="listenerForm" :column="2" v-model="listenerItem" :fieldsConfigs="[
172
+ {
173
+ attriName: 'type', attriLabel: '监听方式',dataType: 'list', codeKey: 'PROCESS_LISTENER_TYPE', state:'EDIT'
174
+ },
175
+ {attriName: 'listener', attriLabel: '触发器', dataType: 'object', codeKey: 'FM_PROCESS_LISTENER', flag: 'process_listener_find', state:'EDIT'},
176
+ {attriName: 'rule', attriLabel: '业务规则', dataType: 'object', codeKey: 'ACT_RE_MODEL', flag: 'v_find', state:'EDIT'}
177
+ ]">
178
+ </epx-table-form>
179
+ <div class="dialog-operate-group">
180
+ <el-button type="primary" @click="saveListener">保存</el-button>
181
+ <el-button @click="showListenerModal=false">返回</el-button>
182
+ </div>
183
+ </el-dialog>
184
+ <div class="add-message-button">
185
+ <el-button type="text" @click="listenerItem={};showListenerModal=true">+ 添加触发器</el-button>
186
+ </div>
187
+ </el-tab-pane>
188
+ <el-tab-pane label="校验器" class="tab-pane-content" name="verify">
189
+ <ul class="message-list">
190
+ <li class="message-item" v-for="(item, index) in verifyData" :key="index">
191
+ <div class="verify">
192
+ <p class="verify-info">
193
+ <label for="">条件提醒:</label>
194
+ <span>{{item['warning']}}</span>
195
+ </p>
196
+ <p class="verify-info">
197
+ <label for="">条件规则:</label>
198
+ <epx-rule class="verify-rule-container" @change="ruleChange($event,item,index)" v-model="item.rule" :selfStyle="false" :extendVariable="ruleVariable"
199
+ :fieldConfigs="{attriName: 'rule', attriLabel: '条件规则', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
200
+ <el-input :value="getChineseValue(item.rule)"></el-input>
201
+ </epx-rule>
202
+ </p>
203
+ </div>
204
+ <div class="message-operate">
205
+ <i class="message-operate-item el-icon-edit-outline" @click="verifyIndex= index;verifyItem={...item}; showVerifyModal = true"></i>
206
+ <el-popconfirm title="确认删除?" @confirm="deleteVerify(index)">
207
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
208
+ </el-popconfirm>
209
+ </div>
210
+ </li>
211
+ </ul>
212
+ <el-dialog title="校验器" :visible.sync="showVerifyModal" width="50%">
213
+ <epx-table-form ref="verifyForm" :column="2" v-model="verifyItem" :fieldsConfigs="[
214
+ {attriName: 'warning', attriLabel: '条件提醒', dataType: 'text', state:'EDIT'}
215
+ ]">
216
+ </epx-table-form>
217
+ <div class="dialog-operate-group">
218
+ <el-button type="primary" @click="saveVerify">保存</el-button>
219
+ <el-button @click="showVerifyModal=false">返回</el-button>
220
+ </div>
221
+ </el-dialog>
222
+ <div class="add-message-button">
223
+ <el-button type="text" @click="verifyItem={};showVerifyModal=true">+ 添加校验器</el-button>
224
+ </div>
225
+ </el-tab-pane>
226
+ </el-tabs>
227
+ </template>
228
+ <template v-else>
229
+ <!-- 节点类型 -->
230
+ <el-tabs class="properties-panel__tabs" v-model="activeName" type="card">
231
+ <el-tab-pane label="属性" name="attribute">
232
+ <!--节点名称 -->
233
+ <template v-if="element.type==='bpmn:StartEvent'">
234
+ <ul class="attribute-list">
235
+ <li class="attribute-item">
236
+ <div class="attribute-input">
237
+ <label class="attribute-input__label">编号</label>
238
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
239
+ </div>
240
+ </li>
241
+ <li class="attribute-item">
242
+ <div class="attribute-input">
243
+ <label class="attribute-input__label">名称</label>
244
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name',attriLabel: '名称', dataType:'text', state: 'EDIT'}"></epx-form-field>
245
+ </div>
246
+ </li>
247
+ <li class="attribute-item">
248
+ <div class="attribute-input">
249
+ <label class="attribute-input__label">发起页面</label>
250
+ <epx-table-form-item :value="{id: elementValues['camunda:assigneePage'], name: elementValues['camunda:assigneePage#']}" @change="v=> {
251
+ elementValues['camunda:assigneePage']=v?v.id: null
252
+ elementValues['camunda:assigneePage#']=v?v.name: null
253
+ }" :fieldConfigs="{attriName: 'camunda:assigneePage', attriLabel: '发起页面', dataType:'object', codeKey: 'FM_PAGE_CONFIG', state: 'EDIT', scopeParams: [{ field: 'SYSTEM', values: this.SYSTEM }]}"></epx-table-form-item>
254
+ </div>
255
+ </li>
256
+ </ul>
257
+ </template>
258
+ <template v-else-if=" element.type==='bpmn:EndEvent'">
259
+ <ul class="attribute-list">
260
+ <li class="attribute-item">
261
+ <div class="attribute-input">
262
+ <label class="attribute-input__label">编号</label>
263
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
264
+ </div>
265
+ </li>
266
+ <li class="attribute-item">
267
+ <div class="attribute-input">
268
+ <label class="attribute-input__label">名称</label>
269
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
270
+ </div>
271
+ </li>
272
+ <li cl ass="attribute-item">
273
+ <div class="attribute-input">
274
+ <label class="attribute-input__label">业务状态</label>
275
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:status', dataType:'list',codeKey: statusCodeKey, state: 'EDIT'}"></epx-form-field>
276
+ </div>
277
+ </li>
278
+ </ul>
279
+ </template>
280
+ <template v-else-if="element.type==='bpmn:SequenceFlow'">
281
+ <ul class="attribute-list">
282
+ <li class="attribute-item">
283
+ <div class="attribute-input">
284
+ <label class="attribute-input__label">编号</label>
285
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
286
+ </div>
287
+ </li>
288
+ <li class="attribute-item">
289
+ <div class="attribute-input">
290
+ <label class="attribute-input__label">名称</label>
291
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
292
+ </div>
293
+ </li>
294
+ <li class="attribute-item">
295
+ <div class="attribute-input attribute-input-top">
296
+ <label class="attribute-input__label">判断条件</label>
297
+ <epx-rule v-model="elementValues['camunda:conditionRule']" :variableList="treeFieldStore" :fieldConfigs="{attriName: 'camunda:conditionRule', attriLabel: '判断条件', dataType:'rule', state: 'EDIT'}"
298
+ :extendVariable="ruleVariable" :ruleMetaId="businessMetaId" :allSub="String(1)"></epx-rule>
299
+ </div>
300
+ </li>
301
+ <li class="attribute-item">
302
+ <div class="attribute-input">
303
+ <label class="attribute-input__label">排序号</label>
304
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:orderNum', dataType:'text', attriLabel: '排序号', state: 'EDIT'}"></epx-form-field>
305
+ </div>
306
+ </li>
307
+ </ul>
308
+ <ul class="message-list">
309
+ <li style="paddingLeft:10px">业务条件:</li>
310
+ <li class="message-item" v-for="(item, index) in verifyData" :key="index">
311
+ <div class="verify">
312
+ <p class="verify-info">
313
+ <label for="">条件提醒:</label>
314
+ <span>{{item['warning']}}</span>
315
+ </p>
316
+ <p class="verify-info">
317
+ <label for="">条件规则:</label>
318
+ <epx-rule class="verify-rule-container" @change="ruleChange($event,item,index)" v-model="item.rule" :selfStyle="false" :extendVariable="ruleVariable"
319
+ :fieldConfigs="{attriName: 'rule', attriLabel: '条件规则', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId" :allSub="String(1)">
320
+ <el-input :value="getChineseValue(item.rule)"></el-input>
321
+ </epx-rule>
322
+ </p>
323
+ </div>
324
+ <div class="message-operate">
325
+ <i class="message-operate-item el-icon-edit-outline" @click="verifyIndex= index;verifyItem={...item}; showVerifyModal = true"></i>
326
+ <el-popconfirm title="确认删除?" @confirm="deleteVerify(index)">
327
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
328
+ </el-popconfirm>
329
+ </div>
330
+ </li>
331
+ <li>
332
+ <el-button type="text" @click="verifyItem={};showVerifyModal=true">+ 添加业务条件</el-button>
333
+ </li>
334
+ </ul>
335
+ <el-dialog title="校验器" :visible.sync="showVerifyModal" width="50%">
336
+ <epx-table-form ref="verifyForm" :column="2" v-model="verifyItem" :fieldsConfigs="[
337
+ {attriName: 'warning', attriLabel: '条件提醒', dataType: 'text', state:'EDIT'}
338
+ ]">
339
+ </epx-table-form>
340
+ <div class="dialog-operate-group">
341
+ <el-button type="primary" @click="saveVerify">保存</el-button>
342
+ <el-button @click="showVerifyModal=false">返回</el-button>
343
+ </div>
344
+ </el-dialog>
345
+ </template>
346
+ <!-- 新增记录 -->
347
+ <template v-else-if="element.typeId==='1' || elementValues['camunda:formTypeId']==='1'">
348
+ <div class="jiedina-header"><i class="el-icon-zoom-in"></i> 新增记录</div>
349
+ <ul class="attribute-list">
350
+ <li class="attribute-item">
351
+ <div class="attribute-input">
352
+ <label class="attribute-input__label">编号</label>
353
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
354
+ </div>
355
+ </li>
356
+ <li class="attribute-item">
357
+ <div class="attribute-input">
358
+ <label class="attribute-input__label">节点类型</label>
359
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
360
+ </div>
361
+ </li>
362
+ <li class="attribute-item" hidden>
363
+ <div class="attribute-input">
364
+ <label class="attribute-input__label">typeId</label>
365
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
366
+ </div>
367
+ </li>
368
+ <li class="attribute-item">
369
+ <div class="attribute-input">
370
+ <label class="attribute-input__label">名称</label>
371
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
372
+ </div>
373
+ </li>
374
+ <li class="attribute-item">
375
+ <div class="attribute-input">
376
+ <label class="attribute-input__label">数据对象</label>
377
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
378
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
379
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
380
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
381
+ </div>
382
+ </li>
383
+ <div class="attribute-input">
384
+ <label class="attribute-input__label">循环参数</label>
385
+ <el-select v-model="loopListParam" placeholder="请选择" @change="v=> {
386
+ elementValues['camunda:loopListParam']=v
387
+ this.getFormDataMetaData()
388
+ }">
389
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
390
+ </el-option>
391
+ </el-select>
392
+ </div>
393
+ <li class="attribute-item">
394
+ <div class="attribute-input">
395
+ <label class="attribute-input__label">数据来源</label>
396
+ <el-radio-group v-model="formDataSources" @change="v=> {
397
+ elementValues['camunda:formDataSources']=v
398
+ this.getFormDataMetaData()
399
+ }" name="camunda:formDataSources">
400
+ <el-radio-button label="1">表单数据</el-radio-button>
401
+ <!-- <el-radio label="2">节点查询数据</el-radio> -->
402
+ <el-radio-button label="3">自定义</el-radio-button>
403
+ </el-radio-group>
404
+ </div>
405
+ </li>
406
+ <template v-if="formDataSources==='3' && formDataMetaData.attributes.length">
407
+ <li class="attribute-item" hidden>
408
+ <div class="attribute-input">
409
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formDataMetaData', dataType:'text', state: 'HIDDEN'}"></epx-form-field>
410
+ </div>
411
+ </li>
412
+ <div class="jiedina-header jiedina-content-header"><span>新增内容</span></div>
413
+ <li class="attribute-item">
414
+ <!-- <div class="attribute-input">
415
+ <label class="attribute-input__label">新增内容</label>
416
+ </div> -->
417
+ <div>
418
+ <div class="attribute-input" v-for="(item, index) in formDataMetaData.attributes" :key="index">
419
+ <label class="attribute-input__label">{{item.label}}</label>
420
+ <div class="attribute-input-type">
421
+ <el-select v-model="formDataMetaData.type[item.name]" placeholder="请选择" @change="formDataMetaData.value[item.name]=''">
422
+ <el-option label="指定值" value="designated"></el-option>
423
+ <el-option label="表单数据" value="form"></el-option>
424
+ <el-option label="动态值" value="dynamic"></el-option>
425
+ <el-option label="流程参数" value="inparam"></el-option>
426
+ <el-option label="循环对象" value="loopData"></el-option>
427
+ </el-select>
428
+ </div>
429
+ <template v-if="formDataMetaData.type[item.name]==='designated'">
430
+ <epx-form-field :values.sync="formDataMetaData.data"
431
+ :field-config="{attriName: item.name, dataType:item.dataType, codeKey:(item.dataType==='object'?item.relatedEntity:item.codeKey),attriLabel: item.label, state: 'ADD'}">
432
+ </epx-form-field>
433
+ </template>
434
+ <template v-else-if="formDataMetaData.type[item.name]==='form'">
435
+ <el-select v-model="formDataMetaData.value[item.name]" placeholder="请选择">
436
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
437
+ </el-option>
438
+ </el-select>
439
+ </template>
440
+ <template v-else-if="formDataMetaData.type[item.name]==='dynamic'">
441
+ <!-- <div> -->
442
+ <epx-rule v-model="formDataMetaData.value[item.name]" :selfStyle="false" :extendVariable="ruleVariable"
443
+ :fieldConfigs="{attriName: `value.${[item.name]}`, attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
444
+ <el-input :value="getChineseValue(formDataMetaData.value[item.name])"></el-input>
445
+ </epx-rule>
446
+ <!-- <el-input v-model="formDataMetaData.value[item.name]" placeholder="请输入内容"></el-input> -->
447
+ <!-- </div> -->
448
+ </template>
449
+ <template v-else-if="formDataMetaData.type[item.name]==='inparam'">
450
+ <div>
451
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
452
+ <el-input class="select__input" slot="reference" :value="formDataMetaData.data[item.name]" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
453
+ <div class="scope-opera__popper">
454
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
455
+ children: 'children',
456
+ label: 'name'
457
+ }" @node-click="selectInParam($event,item.name)">
458
+ <span v-html="node.label" slot-scope="{ node }"></span>
459
+ </el-tree>
460
+ </div>
461
+ </el-popover>
462
+ </div>
463
+ </template>
464
+ <template v-else-if="formDataMetaData.type[item.name]==='loopData'">
465
+ <el-select v-model="formDataMetaData.value[item.name]" placeholder="请选择">
466
+ <el-option v-for="item in formDataField" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
467
+ </el-option>
468
+ </el-select>
469
+ </template>
470
+ </div>
471
+ </div>
472
+ <!-- <div class="dialog-operate-group">
473
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
474
+ </div> -->
475
+ </li>
476
+ <div class="jiedina-header jiedina-content-header"><span>输出参数</span></div>
477
+ <li class="attribute-item">
478
+ <div class="attribute-input">
479
+ <label class="attribute-input__label">结果参数</label>
480
+ <el-select v-model="formDataMetaData.resultParams" placeholder="请选择" @change="addResultParamsChange">
481
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
482
+ </el-option>
483
+ </el-select>
484
+ </div>
485
+ </li>
486
+ </template>
487
+ <div class="dialog-operate-group">
488
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
489
+ </div>
490
+ </ul>
491
+ </template>
492
+ <!--删除-->
493
+ <template v-else-if="element.typeId==='2' || elementValues['camunda:formTypeId']==='2'">
494
+ <div class="jiedina-header"><i class="el-icon-delete"></i> 数据删除</div>
495
+ <ul class="attribute-list">
496
+ <li class="attribute-item">
497
+ <div class="attribute-input">
498
+ <label class="attribute-input__label">编号</label>
499
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
500
+ </div>
501
+ </li>
502
+ <li class="attribute-item">
503
+ <div class="attribute-input">
504
+ <label class="attribute-input__label">节点类型</label>
505
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
506
+ </div>
507
+ </li>
508
+ <li class="attribute-item" hidden>
509
+ <div class="attribute-input">
510
+ <label class="attribute-input__label">typeId</label>
511
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
512
+ </div>
513
+ </li>
514
+ <li class="attribute-item">
515
+ <div class="attribute-input">
516
+ <label class="attribute-input__label">名称</label>
517
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
518
+ </div>
519
+ </li>
520
+ <li class="attribute-item">
521
+ <div class="attribute-input">
522
+ <label class="attribute-input__label">数据对象</label>
523
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
524
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
525
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
526
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
527
+ </div>
528
+ </li>
529
+ <li class="attribute-item">
530
+ <div class="attribute-input attribute-input-top">
531
+ <label class="attribute-input__label">删除范围</label>
532
+ <div>
533
+ <div class="scope-item-line" v-for="(item,index) in updateScopeParams" :key="index"><span class="scope-text">{{item.text}}</span><span
534
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
535
+ <el-button type="text" @click="settingScope">设置</el-button>
536
+ </div>
537
+ <!-- <span style="margin-right:10px">{{updateScopeParamsText}}</span>
538
+ <el-button type="text" @click="settingScope">设置</el-button> -->
539
+ </div>
540
+ </li>
541
+ <div class="dialog-operate-group">
542
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
543
+ </div>
544
+ </ul>
545
+ </template>
546
+ <!--数据更新-->
547
+ <template v-else-if="element.typeId==='3' || elementValues['camunda:formTypeId']==='3'">
548
+ <div class="jiedina-header"><i class="el-icon-refresh-right"></i> 数据更新</div>
549
+ <ul class="attribute-list">
550
+ <li class="attribute-item">
551
+ <div class="attribute-input">
552
+ <label class="attribute-input__label">编号</label>
553
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
554
+ </div>
555
+ </li>
556
+ <li class="attribute-item">
557
+ <div class="attribute-input">
558
+ <label class="attribute-input__label">节点类型</label>
559
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
560
+ </div>
561
+ </li>
562
+ <li class="attribute-item" hidden>
563
+ <div class="attribute-input">
564
+ <label class="attribute-input__label">typeId</label>
565
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
566
+ </div>
567
+ </li>
568
+ <li class="attribute-item">
569
+ <div class="attribute-input">
570
+ <label class="attribute-input__label">名称</label>
571
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
572
+ </div>
573
+ </li>
574
+ <li class="attribute-item">
575
+ <div class="attribute-input">
576
+ <label class="attribute-input__label">数据对象</label>
577
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
578
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
579
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
580
+ this.getFormDataMetaData()
581
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
582
+ </div>
583
+ </li>
584
+ <li class="attribute-item">
585
+ <div class="attribute-input">
586
+ <label class="attribute-input__label">数据来源</label>
587
+ <el-radio-group v-model="formDataSources" @change="v=> {
588
+ elementValues['camunda:formDataSources']=v
589
+ this.getFormDataMetaData()
590
+ }" name="camunda:formDataSources">
591
+ <el-radio-button label="1">表单数据</el-radio-button>
592
+ <!-- <el-radio label="2">节点查询数据</el-radio> -->
593
+ <el-radio-button label="3">自定义</el-radio-button>
594
+ <el-radio-button label="5">循环对象</el-radio-button>
595
+ </el-radio-group>
596
+ </div>
597
+ </li>
598
+
599
+ <template v-if="formDataSources==='3'">
600
+ <li class="attribute-item">
601
+ <div class="attribute-input attribute-input-top">
602
+ <label class="attribute-input__label">更新范围</label>
603
+ <div>
604
+ <div class="scope-item-line" v-for="(item,index) in updateScopeParams" :key="index"><span class="scope-text">{{item.text}}</span><span
605
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
606
+ <el-button type="text" @click="showScopeDialog=true">设置</el-button>
607
+ </div>
608
+ <!-- <span style="margin-right:10px">{{updateScopeParamsText}}</span>
609
+ <el-button type="text" @click="showScopeDialog=true">设置</el-button> -->
610
+ </div>
611
+ </li>
612
+ <li class="attribute-item">
613
+ <div class="attribute-input">
614
+ <label class="attribute-input__label">更新内容</label>
615
+ </div>
616
+ <div v-if="formDataMetaData.attributes.length>0">
617
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in formDataMetaData.attributes" :key="index">
618
+ <label class="attribute-input__label">{{item.label}}</label>
619
+ <div class="attribute-input-type">
620
+ <el-select v-model="formDataMetaData.type[item.name]" placeholder="请选择" @change="formDataMetaData.value[item.name]=''">
621
+ <el-option label="指定值" value="designated"></el-option>
622
+ <el-option label="表单数据" value="form"></el-option>
623
+ <el-option label="动态值" value="dynamic"></el-option>
624
+ <el-option label="流程参数" value="inparam"></el-option>
625
+ </el-select>
626
+ </div>
627
+ <template v-if="formDataMetaData.type[item.name]==='designated'">
628
+ <epx-form-field :values.sync="formDataMetaData.data"
629
+ :field-config="{attriName: item.name, dataType:item.dataType, codeKey:(item.dataType==='object'?item.relatedEntity:item.codeKey),attriLabel: item.label, state: 'ADD'}">
630
+ </epx-form-field>
631
+ </template>
632
+ <template v-else-if="formDataMetaData.type[item.name]==='form'">
633
+ <el-select v-model="formDataMetaData.value[item.name]" placeholder="请选择">
634
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
635
+ </el-option>
636
+ </el-select>
637
+ </template>
638
+ <template v-else-if="formDataMetaData.type[item.name]==='dynamic'">
639
+ <!-- <div> -->
640
+ <epx-rule v-model="formDataMetaData.value[item.name]" :selfStyle="false" :extendVariable="ruleVariable"
641
+ :fieldConfigs="{attriName: `value.${[item.name]}`, attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
642
+ <el-input :value="getChineseValue(formDataMetaData.value[item.name])" placeholder="请点击输入"></el-input>
643
+ </epx-rule>
644
+ <!-- </div> -->
645
+ </template>
646
+ <template v-else-if="formDataMetaData.type[item.name]==='inparam'">
647
+ <div>
648
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
649
+ <el-input class="select__input" slot="reference" :value="formDataMetaData.data[item.name]" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
650
+ <div class="scope-opera__popper">
651
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
652
+ children: 'children',
653
+ label: 'name'
654
+ }" @node-click="selectInParam($event,item.name)">
655
+ <span v-html="node.label" slot-scope="{ node }"></span>
656
+ </el-tree>
657
+ </div>
658
+ </el-popover>
659
+ </div>
660
+ </template>
661
+ <div class="filter-condition__delete">
662
+ <i class="el-icon-close" @click="deleteScopeItem(index)"></i>
663
+ </div>
664
+ </div>
665
+ </div>
666
+ <div class="update-add-field">
667
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
668
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small">+添加字段</el-button>
669
+ <div class="update-add-field__popper">
670
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.attribute.id" @click="addUpdateField(item)">{{item.attriLabel}}</div>
671
+ </div>
672
+ </el-popover>
673
+ </div>
674
+ <div class="dialog-operate-group">
675
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
676
+ </div>
677
+ </li>
678
+ </template>
679
+
680
+ <template v-if="formDataSources==='5'">
681
+ <div class="attribute-input">
682
+ <label class="attribute-input__label">流程参数</label>
683
+ <el-select v-model="loopListParam" placeholder="请选择" @change="v=> {
684
+ elementValues['camunda:loopListParam']=v
685
+ this.getFormDataMetaData()
686
+ }">
687
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
688
+ </el-option>
689
+ </el-select>
690
+ </div>
691
+ <div v-if="formDataMetaData.attributes.length>0">
692
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in formDataMetaData.attributes" :key="index">
693
+ <label class="attribute-input__label">{{item.label}}</label>
694
+ <div class="attribute-input-type">
695
+ <el-select v-model="formDataMetaData.type[item.name]" placeholder="请选择" @change="formDataMetaData.value[item.name]=''">
696
+ <el-option label="指定值" value="designated"></el-option>
697
+ <el-option label="动态值" value="dynamic"></el-option>
698
+ <el-option label="流程参数" value="inparam"></el-option>
699
+ </el-select>
700
+ </div>
701
+ <template v-if="formDataMetaData.type[item.name]==='designated'">
702
+ <epx-form-field :values.sync="formDataMetaData.data"
703
+ :field-config="{attriName: item.name, dataType:item.dataType, codeKey:(item.dataType==='object'?item.relatedEntity:item.codeKey),attriLabel: item.label, state: 'ADD'}">
704
+ </epx-form-field>
705
+ </template>
706
+ <template v-else-if="formDataMetaData.type[item.name]==='dynamic'">
707
+ <!-- <div> -->
708
+ <epx-rule v-model="formDataMetaData.value[item.name]" :selfStyle="false" :extendVariable="ruleVariable"
709
+ :fieldConfigs="{attriName: `value.${[item.name]}`, attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
710
+ <el-input :value="getChineseValue(formDataMetaData.value[item.name])" placeholder="请点击输入"></el-input>
711
+ </epx-rule>
712
+ <!-- <el-input v-model="formDataMetaData.value[item.name]" placeholder="请输入内容"></el-input> -->
713
+ <!-- </div> -->
714
+ </template>
715
+ <template v-else-if="formDataMetaData.type[item.name]==='inparam'">
716
+ <div>
717
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
718
+ <el-input class="select__input" slot="reference" :value="formDataMetaData.data[item.name]" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
719
+ <div class="scope-opera__popper">
720
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
721
+ children: 'children',
722
+ label: 'name'
723
+ }" @node-click="selectInParam($event,item.name)">
724
+ <span v-html="node.label" slot-scope="{ node }"></span>
725
+ </el-tree>
726
+ </div>
727
+ </el-popover>
728
+ </div>
729
+ </template>
730
+ <div class="filter-condition__delete">
731
+ <i class="el-icon-close" @click="deleteScopeItem(index)"></i>
732
+ </div>
733
+ </div>
734
+ </div>
735
+
736
+ <div class="update-add-field">
737
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
738
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small">+添加字段</el-button>
739
+ <div class="update-add-field__popper">
740
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.attribute.id" @click="addUpdateField(item)">{{item.attriLabel}}</div>
741
+ </div>
742
+ </el-popover>
743
+ </div>
744
+
745
+ <div class="dialog-operate-group">
746
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
747
+ </div>
748
+ </template>
749
+
750
+ </ul>
751
+ </template>
752
+ <!-- 数据同步、调用业务规则、发起业务流程 -->
753
+ <template
754
+ v-else-if="element.typeId==='4' || elementValues['camunda:formTypeId']==='4'||element.typeId==='9' || elementValues['camunda:formTypeId']==='9'||element.typeId==='10' || elementValues['camunda:formTypeId']==='10'">
755
+ <div class="jiedina-header"><i class="el-icon-zoom-in"></i> {{getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])}}</div>
756
+ <ul class="attribute-list">
757
+ <li class="attribute-item" hidden>
758
+ <div class="attribute-input">
759
+ <label class="attribute-input__label">typeId</label>
760
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
761
+ </div>
762
+ </li>
763
+ <li class="attribute-item">
764
+ <div class="attribute-input">
765
+ <label class="attribute-input__label">编号</label>
766
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
767
+ </div>
768
+ </li>
769
+ <li class="attribute-item">
770
+ <div class="attribute-input">
771
+ <label class="attribute-input__label">节点类型</label>
772
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
773
+ </div>
774
+ </li>
775
+ <li class="attribute-item">
776
+ <div class="attribute-input">
777
+ <label class="attribute-input__label">名称</label>
778
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
779
+ </div>
780
+ </li>
781
+ <li class="attribute-item" v-if="element.typeId==='4' || elementValues['camunda:formTypeId']==='4'">
782
+ <div class="attribute-input">
783
+ <label class="attribute-input__label">同步方案</label>
784
+ <epx-table-form-item :value="{id: elementValues['camunda:messageTemplate'], name: elementValues['camunda:messageTemplate#']}" @change="v=> {
785
+ this.elementValues['camunda:messageTemplate']=v?v.id: null
786
+ this.elementValues['camunda:messageTemplate#']=v?v.name: null
787
+ }" :fieldConfigs="{attriName: 'camunda:messageTemplate', attriLabel: '同步方案', dataType:'object', codeKey: 'FM_SYNCHRO_SCHEME', state: 'EDIT'}"></epx-table-form-item>
788
+ </div>
789
+ </li>
790
+ <template v-else>
791
+ <li class="attribute-item">
792
+ <div class="attribute-input">
793
+ <label class="attribute-input__label">业务对象</label>
794
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
795
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
796
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
797
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
798
+ </div>
799
+ </li>
800
+ <li class="attribute-item">
801
+ <div class="attribute-input">
802
+ <label class="attribute-input__label">{{element.typeId==='10' || elementValues['camunda:formTypeId']==='10' ? '流程': '业务规则'}}</label>
803
+ <epx-table-form-item :value="{id: elementValues['camunda:messageTemplate'], name: elementValues['camunda:messageTemplate#']}" @change="v=> {
804
+ this.elementValues['camunda:messageTemplate']=v?v.id: null
805
+ this.elementValues['camunda:messageTemplate#']=v?v.name: null
806
+ }" :fieldConfigs="{attriName: 'camunda:messageTemplate', attriLabel: '业务规则', dataType:'object', codeKey: 'ACT_RE_MODEL', state: 'EDIT'}"></epx-table-form-item>
807
+ </div>
808
+ </li>
809
+ </template>
810
+ <li class="attribute-item">
811
+ <div class="attribute-input">
812
+ <label class="attribute-input__label" v-if="element.typeId==='4' || elementValues['camunda:formTypeId']==='4'">同步参数</label>
813
+ <label class="attribute-input__label" v-else>动态参数</label>
814
+ </div>
815
+ <div v-if="sendMessageData.messageParams.length>0">
816
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in sendMessageData.messageParams" :key="index">
817
+ <label class="attribute-input__label">{{item['NAME']}}</label>
818
+ <div class="attribute-input-type">
819
+ <el-select v-model="item.TYPE" placeholder="请选择" @change="item.VALUE=''">
820
+ <el-option label="指定值" value="designated"></el-option>
821
+ <el-option label="表单数据" value="form"></el-option>
822
+ <el-option label="动态值" value="dynamic"></el-option>
823
+ <el-option label="流程参数" value="inparam"></el-option>
824
+ </el-select>
825
+ </div>
826
+ <template v-if="item.TYPE==='designated'">
827
+ <el-input v-model="item.VALUE" placeholder="请输入内容"></el-input>
828
+ </template>
829
+ <template v-else-if="item.TYPE==='form'">
830
+ <el-select v-model="item.VALUE" placeholder="请选择">
831
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
832
+ </el-option>
833
+ </el-select>
834
+ </template>
835
+ <template v-else-if="item.TYPE==='dynamic'">
836
+ <!-- <div> -->
837
+ <epx-rule v-model="item.VALUE" :selfStyle="false" :fieldConfigs="{attriName: 'VALUE', attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}"
838
+ :extendVariable="ruleVariable" :ruleMetaId="businessMetaId">
839
+ <el-input :value="getChineseValue(item.VALUE)" placeholder="请点击输入"></el-input>
840
+ </epx-rule>
841
+ <!-- <el-input v-model="item.VALUE" placeholder="请输入内容"></el-input> -->
842
+ <!-- </div> -->
843
+ </template>
844
+ <!-- <template v-else-if="item.TYPE==='params'">
845
+ <el-select v-model="item.VALUE" placeholder="请选择">
846
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
847
+ </el-option>
848
+ </el-select>
849
+ </template> -->
850
+ <template v-else-if="item.TYPE==='inparam'">
851
+ <div>
852
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
853
+ <el-input class="select__input" slot="reference" :value="item.VALUEC" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
854
+ <div class="scope-opera__popper">
855
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
856
+ children: 'children',
857
+ label: 'name'
858
+ }" @node-click="selectInmessageParams($event,item,index)">
859
+ <span v-html="node.label" slot-scope="{ node }"></span>
860
+ </el-tree>
861
+ </div>
862
+ </el-popover>
863
+ </div>
864
+ </template>
865
+ <div class="send-message-operate">
866
+ <i class="message-operate-item el-icon-edit-outline" @click="editMessageParams(item)"></i>
867
+ <i class="el-icon-close message-operate-item delete" @click="deleteMessageParams(index)"></i>
868
+ </div>
869
+ </div>
870
+ </div>
871
+ <el-dialog title="添加参数" :visible.sync="showMessageParamModal" width="50%">
872
+ <epx-table-form ref="messageParamForm" :column="2" v-model="messageParamData" :fieldsConfigs="[
873
+ {attriName: 'ID', attriLabel: 'ID',dataType: 'text', state:'HIDDEN'},
874
+ {attriName: 'NAME', attriLabel: '参数名称',dataType: 'text', state:'EDIT'},
875
+ {attriName: 'VALUE', attriLabel: '参数值',dataType: 'text', state:'EDIT'},
876
+ {attriName: 'VALUEC', attriLabel: '参数值',dataType: 'text', state:'HIDDEN'},
877
+ ]">
878
+ </epx-table-form>
879
+ <div class="dialog-operate-group">
880
+ <el-button type="primary" @click="saveMessageParam">保存</el-button>
881
+ <el-button @click="showMessageParamModal=false">返回</el-button>
882
+ </div>
883
+ </el-dialog>
884
+ <div class="update-add-field">
885
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small" @click="showMessageParamModal=true; messageParamData = {}">+添加参数</el-button>
886
+ </div>
887
+ </li>
888
+ <div class="dialog-operate-group">
889
+ <el-button type="primary" @click="saveMessageData">保存</el-button>
890
+ </div>
891
+ </ul>
892
+ </template>
893
+ <!-- 数据加工 -->
894
+ <template v-else-if="element.typeId==='5' || elementValues['camunda:formTypeId']==='5'">
895
+ <div class="jiedina-header"><i class="epx-icon-lc-shujujiagong"></i> 数据加工</div>
896
+ <ul class="attribute-list">
897
+ <li class="attribute-item">
898
+ <div class="attribute-input">
899
+ <label class="attribute-input__label">编号</label>
900
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
901
+ </div>
902
+ </li>
903
+ <li class="attribute-item">
904
+ <div class="attribute-input">
905
+ <label class="attribute-input__label">节点类型</label>
906
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
907
+ </div>
908
+ </li>
909
+ <li class="attribute-item" hidden>
910
+ <div class="attribute-input">
911
+ <label class="attribute-input__label">typeId</label>
912
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
913
+ </div>
914
+ </li>
915
+ <li class="attribute-item">
916
+ <div class="attribute-input">
917
+ <label class="attribute-input__label">名称</label>
918
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
919
+ </div>
920
+ </li>
921
+ <div class="attribute-input">
922
+ <label class="attribute-input__label">循环参数</label>
923
+ <el-select v-model="loopListParam" placeholder="请选择" @change="v=> {
924
+ elementValues['camunda:loopListParam']=v
925
+ this.getFormDataMetaData()
926
+ }">
927
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
928
+ </el-option>
929
+ </el-select>
930
+ </div>
931
+ <li class="attribute-item">
932
+ <div class="attribute-input">
933
+ <label class="attribute-input__label">数据来源</label>
934
+ <el-radio-group v-model="formDataSources" @change="v=> {
935
+ elementValues['camunda:formDataSources']=v
936
+ this.getFormDataMetaData()
937
+ }" name="camunda:formDataSources">
938
+ <el-radio-button label="1">表单数据</el-radio-button>
939
+ <el-radio-button label="4">流程参数</el-radio-button>
940
+ <el-radio-button label="5">循环对象</el-radio-button>
941
+ </el-radio-group>
942
+ </div>
943
+ </li>
944
+ <li class="attribute-item">
945
+ <div class="attribute-input">
946
+ <label class="attribute-input__label">数据加工</label>
947
+ </div>
948
+ <template v-if="formDataSources==='1'">
949
+ <div v-if="formDataMetaData.attributes.length>0">
950
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in formDataMetaData.attributes" :key="index">
951
+ <label class="attribute-input__label">{{item.label}}</label>
952
+ <div class="attribute-input-type">
953
+ <el-select v-model="formDataMetaData.type[item.name]" placeholder="请选择" @change="formDataMetaData.value[item.name]=''">
954
+ <el-option label="指定值" value="designated"></el-option>
955
+ <el-option label="动态值" value="dynamic"></el-option>
956
+ <el-option label="流程参数" value="inparam"></el-option>
957
+ </el-select>
958
+ </div>
959
+ <template v-if="formDataMetaData.type[item.name]==='designated'">
960
+ <epx-form-field :values.sync="formDataMetaData.data"
961
+ :field-config="{attriName: item.name, dataType:item.dataType, codeKey:(item.dataType==='object'?item.relatedEntity:item.codeKey),attriLabel: item.label, state: 'ADD'}">
962
+ </epx-form-field>
963
+ </template>
964
+ <template v-else-if="formDataMetaData.type[item.name]==='dynamic'">
965
+ <!-- <div> -->
966
+ <epx-rule v-model="formDataMetaData.value[item.name]" :selfStyle="false" :extendVariable="ruleVarJiaGong"
967
+ :fieldConfigs="{attriName: `value.${[item.name]}`, attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
968
+ <el-input :value="getChineseValue(formDataMetaData.value[item.name])" placeholder="请点击输入"></el-input>
969
+ </epx-rule>
970
+ <!-- <el-input v-model="formDataMetaData.value[item.name]" placeholder="请输入内容"></el-input> -->
971
+ <!-- </div> -->
972
+ </template>
973
+ <template v-else-if="formDataMetaData.type[item.name]==='inparam'">
974
+ <div>
975
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
976
+ <el-input class="select__input" slot="reference" :value="formDataMetaData.data[item.name]" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
977
+ <div class="scope-opera__popper">
978
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
979
+ children: 'children',
980
+ label: 'name'
981
+ }" @node-click="selectInParam($event,item.name)">
982
+ <span v-html="node.label" slot-scope="{ node }"></span>
983
+ </el-tree>
984
+ </div>
985
+ </el-popover>
986
+ </div>
987
+ </template>
988
+ <div class="filter-condition__delete">
989
+ <i class="el-icon-close" @click="deleteScopeItem(index)"></i>
990
+ </div>
991
+ </div>
992
+ </div>
993
+ <div class="update-add-field">
994
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
995
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small">+添加字段</el-button>
996
+ <div class="update-add-field__popper">
997
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.attribute.id" @click="addUpdateField(item)">{{item.attriLabel}}</div>
998
+ </div>
999
+ </el-popover>
1000
+ </div>
1001
+ </template>
1002
+ <template v-if="formDataSources==='4'">
1003
+ <div v-if="formDataMetaData.globalParams.length>0">
1004
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in formDataMetaData.globalParams" :key="index">
1005
+ <label class="attribute-input__label">{{item.name}}</label>
1006
+ <div class="attribute-input-type">
1007
+ <el-select v-model="item.type" placeholder="请选择" @change="item.value=''">
1008
+ <el-option label="指定值" value="designated"></el-option>
1009
+ <el-option label="表单数据" value="form"></el-option>
1010
+ <el-option label="动态值" value="dynamic"></el-option>
1011
+ <el-option label="流程参数" value="inparam"></el-option>
1012
+ <el-option label="循环对象" value="loopData"></el-option>
1013
+ </el-select>
1014
+ </div>
1015
+ <template v-if="item.type==='designated'">
1016
+ <el-input v-model="item.value" placeholder="请输入内容"></el-input>
1017
+ </template>
1018
+ <template v-else-if="item.type==='form'">
1019
+ <el-select v-model="item.value" placeholder="请选择">
1020
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
1021
+ </el-option>
1022
+ </el-select>
1023
+ </template>
1024
+ <template v-else-if="item.type==='dynamic'">
1025
+ <!-- <div> -->
1026
+ <epx-rule v-model="item.value" :selfStyle="false" :fieldConfigs="{attriName: 'value', attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}"
1027
+ :extendVariable="ruleVarJiaGong" :ruleMetaId="businessMetaId">
1028
+ <el-input :value="getChineseValue(item.value)" placeholder="请点击输入"></el-input>
1029
+ </epx-rule>
1030
+ <!-- <el-input v-model="item.value" placeholder="请输入内容"></el-input> -->
1031
+ <!-- </div> -->
1032
+ </template>
1033
+ <template v-else-if="item.type==='inparam'">
1034
+ <div>
1035
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1036
+ <el-input class="select__input" slot="reference" :value="item.valueC" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
1037
+ <div class="scope-opera__popper">
1038
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
1039
+ children: 'children',
1040
+ label: 'name'
1041
+ }" @node-click="selectInglobalParams($event,item,index)">
1042
+ <span v-html="node.label" slot-scope="{ node }"></span>
1043
+ </el-tree>
1044
+ </div>
1045
+ </el-popover>
1046
+ </div>
1047
+ </template>
1048
+ <template v-else-if="item.type==='loopData'">
1049
+ <el-select v-model="item.value" placeholder="请选择">
1050
+ <el-option v-for="item in loopMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
1051
+ </el-option>
1052
+ </el-select>
1053
+ </template>
1054
+ <div class="filter-condition__delete">
1055
+ <i class="el-icon-close" @click="deleteShuJuJiaGong(index)"></i>
1056
+ </div>
1057
+ </div>
1058
+ </div>
1059
+ <div class="update-add-field">
1060
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1061
+ <el-button slot="reference" type="text">+添加字段</el-button>
1062
+ <div class="update-add-field__popper">
1063
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.uid" @click="addShuJuJiaGong(item)">{{item.name}}</div>
1064
+ </div>
1065
+ </el-popover>
1066
+ </div>
1067
+ </template>
1068
+
1069
+ <template v-if="formDataSources==='5'">
1070
+ <div v-if="formDataMetaData.attributes.length>0">
1071
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in formDataMetaData.attributes" :key="index">
1072
+ <label class="attribute-input__label">{{item.label}}</label>
1073
+ <div class="attribute-input-type">
1074
+ <el-select v-model="formDataMetaData.type[item.name]" placeholder="请选择" @change="formDataMetaData.value[item.name]=''">
1075
+ <el-option label="指定值" value="designated"></el-option>
1076
+ <el-option label="动态值" value="dynamic"></el-option>
1077
+ <el-option label="流程参数" value="inparam"></el-option>
1078
+ </el-select>
1079
+ </div>
1080
+ <template v-if="formDataMetaData.type[item.name]==='designated'">
1081
+ <epx-form-field :values.sync="formDataMetaData.data"
1082
+ :field-config="{attriName: item.name, dataType:item.dataType, codeKey:(item.dataType==='object'?item.relatedEntity:item.codeKey),attriLabel: item.label, state: 'ADD'}">
1083
+ </epx-form-field>
1084
+ </template>
1085
+ <template v-else-if="formDataMetaData.type[item.name]==='dynamic'">
1086
+ <!-- <div> -->
1087
+ <epx-rule v-model="formDataMetaData.value[item.name]" :selfStyle="false" :extendVariable="ruleVarJiaGong"
1088
+ :fieldConfigs="{attriName: `value.${[item.name]}`, attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}" :ruleMetaId="businessMetaId">
1089
+ <el-input :value="getChineseValue(formDataMetaData.value[item.name])" placeholder="请点击输入"></el-input>
1090
+ </epx-rule>
1091
+ <!-- <el-input v-model="formDataMetaData.value[item.name]" placeholder="请输入内容"></el-input> -->
1092
+ <!-- </div> -->
1093
+ </template>
1094
+ <template v-else-if="formDataMetaData.type[item.name]==='inparam'">
1095
+ <div>
1096
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1097
+ <el-input class="select__input" slot="reference" :value="formDataMetaData.data[item.name]" suffix-icon="el-icon-search" size="medium" placeholder="参数"></el-input>
1098
+ <div class="scope-opera__popper">
1099
+ <el-tree :data="addRecordParamData" node-key="label" :props="{
1100
+ children: 'children',
1101
+ label: 'name'
1102
+ }" @node-click="selectInParam($event,item.name)">
1103
+ <span v-html="node.label" slot-scope="{ node }"></span>
1104
+ </el-tree>
1105
+ </div>
1106
+ </el-popover>
1107
+ </div>
1108
+ </template>
1109
+ <div class="filter-condition__delete">
1110
+ <i class="el-icon-close" @click="deleteScopeItem(index)"></i>
1111
+ </div>
1112
+ </div>
1113
+ </div>
1114
+
1115
+ <div class="update-add-field">
1116
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1117
+ <el-button slot="reference" type="text">+添加字段</el-button>
1118
+ <div class="update-add-field__popper">
1119
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.attribute.id" @click="addUpdateField(item)">{{item.attriLabel}}</div>
1120
+ </div>
1121
+ </el-popover>
1122
+ </div>
1123
+ </template>
1124
+
1125
+ <div class="dialog-operate-group">
1126
+ <el-button type="primary" @click="saveMetaDataEntity">保存</el-button>
1127
+ </div>
1128
+ </li>
1129
+ </ul>
1130
+ </template>
1131
+ <!-- 数据查询 -->
1132
+ <template v-else-if="element.typeId==='6' || elementValues['camunda:formTypeId']==='6'">
1133
+ <div class="jiedina-header"><i class="el-icon-search"></i> 数据查询</div>
1134
+ <ul class="attribute-list">
1135
+ <li class="attribute-item" hidden>
1136
+ <div class="attribute-input">
1137
+ <label class="attribute-input__label">typeId</label>
1138
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
1139
+ </div>
1140
+ </li>
1141
+ <li class="attribute-item">
1142
+ <div class="attribute-input">
1143
+ <label class="attribute-input__label">编号</label>
1144
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1145
+ </div>
1146
+ </li>
1147
+ <li class="attribute-item">
1148
+ <div class="attribute-input">
1149
+ <label class="attribute-input__label">节点类型</label>
1150
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
1151
+ </div>
1152
+ </li>
1153
+ <li class="attribute-item">
1154
+ <div class="attribute-input">
1155
+ <label class="attribute-input__label">名称</label>
1156
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1157
+ </div>
1158
+ </li>
1159
+ <li class="attribute-item">
1160
+ <div class="attribute-input">
1161
+ <label class="attribute-input__label">数据来源</label>
1162
+ <el-radio-group v-model="formDataSources" @change="dataSearchMetaChange" name="camunda:formDataSources">
1163
+ <el-radio-button label="1">默认对象</el-radio-button>
1164
+ <el-radio-button label="3">指定对象</el-radio-button>
1165
+ </el-radio-group>
1166
+ </div>
1167
+ </li>
1168
+ <li class="attribute-item" v-if="formDataSources==='3'">
1169
+ <div class="attribute-input">
1170
+ <label class="attribute-input__label">数据对象</label>
1171
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
1172
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
1173
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
1174
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
1175
+ </div>
1176
+ </li>
1177
+ <li class="attribute-item">
1178
+ <div class="attribute-input attribute-input-top">
1179
+ <label class="attribute-input__label">查询条件</label>
1180
+ <div>
1181
+ <div class="scope-item-line" v-for="(item,index) in updateScopeParams" :key="index"><span class="scope-text">{{item.text}}</span><span
1182
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
1183
+ <el-button type="text" @click="settingSearchScope">设置</el-button>
1184
+ </div>
1185
+ <!-- <span style="margin-right:10px">{{updateScopeParamsText}}</span>
1186
+ <el-button type="text" @click="settingSearchScope">设置</el-button> -->
1187
+ </div>
1188
+ </li>
1189
+ <div class="jiedina-header jiedina-content-header"><span>获取数据记录</span></div>
1190
+ <li class="attribute-item">
1191
+ <div class="attribute-input">
1192
+ <label class="attribute-input__label">查询结果</label>
1193
+ <el-radio-group v-model="searchResult" @change="v=> {
1194
+ elementValues['camunda:searchResult']=v
1195
+ }">
1196
+ <el-radio-button label="1">单条</el-radio-button>
1197
+ <el-radio-button label="2">多条</el-radio-button>
1198
+ <el-radio-button label="3">字段值</el-radio-button>
1199
+ <el-radio-button label="4">统计值</el-radio-button>
1200
+ </el-radio-group>
1201
+ </div>
1202
+ </li>
1203
+ <li class="attribute-item">
1204
+ <div class="attribute-input__label">关联对象</div>
1205
+ <div class="search-relation">
1206
+ <div class="attribute-input attribute-input-search" v-for="(item,index) in searchData.relationList" :key="item.ID">
1207
+ <div>{{item.TITLE}}</div>
1208
+ <div class="filter-condition__delete">
1209
+ <i class="el-icon-close" @click="deleteRelationItem(index)"></i>
1210
+ </div>
1211
+ </div>
1212
+ </div>
1213
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1214
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small">+添加关联对象</el-button>
1215
+ <div class="update-add-field__popper">
1216
+ <div class="update-add-field__popper_item" v-for="item in relationList" :key="item.ID" @click="addRelationList(item)">{{item.TITLE}}</div>
1217
+ </div>
1218
+ </el-popover>
1219
+ </li>
1220
+ <li class="attribute-item">
1221
+ <div class="attribute-input__label">排序条件</div>
1222
+ <div class="attribute-input attribute-input-search" v-for="(item,index) in searchData.sortCondition" :key="index">
1223
+ <el-select class="attribute-input-type" v-model="item.attriName" placeholder="请选择">
1224
+ <el-option v-for="field in formDataField" :key="field.attribute.id" :label="field.attriLabel" :value="field.attriName">
1225
+ </el-option>
1226
+ </el-select>
1227
+ <el-select class="attribute-input-type" v-model="item.sort" placeholder="请选择">
1228
+ <el-option label="升序" value="asc"></el-option>
1229
+ <el-option label="降序" value="desc"></el-option>
1230
+ </el-select>
1231
+ <div class="filter-condition__delete">
1232
+ <i class="el-icon-close" @click="deleteSortItem(index)"></i>
1233
+ </div>
1234
+ </div>
1235
+ <el-popover ref="popover" trigger="click" :preventOverflowOrder="['left', 'right', 'top', 'bottom']" :tabindex="1">
1236
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small">+添加排序字段</el-button>
1237
+ <div class="update-add-field__popper">
1238
+ <div class="update-add-field__popper_item" v-for="item in formDataField" :key="item.attribute.id" @click="addSearchSortField(item)">{{item.attriLabel}}</div>
1239
+ </div>
1240
+ </el-popover>
1241
+ </li>
1242
+ <li class="attribute-item">
1243
+ <div class="attribute-input">
1244
+ <label class="attribute-input__label">查询字段</label>
1245
+ <el-select class="attribute-input-type" clearable v-model="searchData.searchField" placeholder="请选择">
1246
+ <el-option v-for="field in formDataField" :key="field.attribute.id" :label="field.attriLabel" :value="field.attriName">
1247
+ </el-option>
1248
+ </el-select>
1249
+ </div>
1250
+ </li>
1251
+ <li class="attribute-item">
1252
+ <div class="attribute-input">
1253
+ <label class="attribute-input__label">查询方法</label>
1254
+ <el-select class="attribute-input-type" v-model="searchData.searchMethod" placeholder="请选择">
1255
+ <el-option v-for="field in searchMethods" :key="field.id" :label="field.attriLabel" :value="field.attriName">
1256
+ </el-option>
1257
+ </el-select>
1258
+ </div>
1259
+ </li>
1260
+ <div class="jiedina-header jiedina-content-header"><span>结果参数</span></div>
1261
+ <li class="attribute-item">
1262
+ <div class="attribute-input">
1263
+ <label class="attribute-input__label">结果参数</label>
1264
+ <el-select class="attribute-input-type" v-model="searchData.searchResultParams" placeholder="请选择">
1265
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1266
+ </el-option>
1267
+ </el-select>
1268
+ <!-- <el-button type="text">将查询结果赋值给某全局参数</el-button> -->
1269
+ </div>
1270
+ </li>
1271
+ <div class="dialog-operate-group">
1272
+ <el-button type="primary" @click="saveSearchData">保存</el-button>
1273
+ </div>
1274
+ </ul>
1275
+ </template>
1276
+ <!-- 消息发送 -->
1277
+ <template v-else-if="element.typeId==='7' || elementValues['camunda:formTypeId']==='7'">
1278
+ <div class="jiedina-header"><i class="el-icon-s-comment"></i> 消息发送</div>
1279
+ <ul class="attribute-list">
1280
+ <li class="attribute-item" hidden>
1281
+ <div class="attribute-input">
1282
+ <label class="attribute-input__label">typeId</label>
1283
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
1284
+ </div>
1285
+ </li>
1286
+ <li class="attribute-item">
1287
+ <div class="attribute-input">
1288
+ <label class="attribute-input__label">编号</label>
1289
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1290
+ </div>
1291
+ </li>
1292
+ <li class="attribute-item">
1293
+ <div class="attribute-input">
1294
+ <label class="attribute-input__label">节点类型</label>
1295
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
1296
+ </div>
1297
+ </li>
1298
+ <li class="attribute-item">
1299
+ <div class="attribute-input">
1300
+ <label class="attribute-input__label">名称</label>
1301
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1302
+ </div>
1303
+ </li>
1304
+ <li class="attribute-item">
1305
+ <div class="attribute-input">
1306
+ <label class="attribute-input__label">消息模板</label>
1307
+ <epx-table-form-item :value="{id: elementValues['camunda:messageTemplate'], name: elementValues['camunda:messageTemplate#']}" @change="v=> {
1308
+ this.elementValues['camunda:messageTemplate']=v?v.id: null
1309
+ this.elementValues['camunda:messageTemplate#']=v?v.name: null
1310
+ }" :fieldConfigs="{attriName: 'camunda:messageTemplate', attriLabel: '消息模板', dataType:'object', codeKey: 'FM_MESSAGE_TEMPLATE', state: 'EDIT'}"></epx-table-form-item>
1311
+ </div>
1312
+ </li>
1313
+ <li class="attribute-item">
1314
+ <div class="attribute-input attribute-input-top">
1315
+ <label class="attribute-input__label">提醒对象范围</label>
1316
+ <div>
1317
+ <div class="scope-item-line" v-for="(item,index) in updateScopeParams" :key="index"><span class="scope-text">{{item.text}}</span><span
1318
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
1319
+ <el-button type="text" @click="settingScope">设置</el-button>
1320
+ </div>
1321
+ <!-- <span style="margin-right:10px">{{updateScopeParamsText}}</span>
1322
+ <el-button type="text" @click="settingScope">设置</el-button> -->
1323
+ </div>
1324
+ </li>
1325
+ <li class="attribute-item">
1326
+ <div class="attribute-input">
1327
+ <label class="attribute-input__label">接收账号</label>
1328
+ <div class="attribute-input-type">
1329
+ <el-select v-model="messageReceiver.TYPE" placeholder="请选择" @change="messageReceiver.VALUE=''">
1330
+ <el-option label="指定值" value="designated"></el-option>
1331
+ <el-option label="动态值" value="dynamic"></el-option>
1332
+ <el-option label="流程参数" value="params"></el-option>
1333
+ </el-select>
1334
+ </div>
1335
+ <template v-if="messageReceiver.TYPE==='designated'">
1336
+ <el-input v-model="messageReceiver.VALUE" placeholder="请输入内容"></el-input>
1337
+ </template>
1338
+ <template v-else-if="messageReceiver.TYPE==='dynamic'">
1339
+ <epx-rule v-model="messageReceiver.VALUE" :selfStyle="false" :fieldConfigs="{attriName: 'VALUE', attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}"
1340
+ :extendVariable="ruleVariable" :ruleMetaId="businessMetaId">
1341
+ <el-input :value="getChineseValue(messageReceiver.VALUE)" placeholder="请点击输入"></el-input>
1342
+ </epx-rule>
1343
+ </template>
1344
+ <template v-else-if="messageReceiver.TYPE==='params'">
1345
+ <el-select v-model="messageReceiver.VALUE" placeholder="请选择">
1346
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1347
+ </el-option>
1348
+ </el-select>
1349
+ </template>
1350
+ </div>
1351
+ </li>
1352
+ <li class="attribute-item">
1353
+ <div class="attribute-input">
1354
+ <label class="attribute-input__label">参数设置</label>
1355
+ </div>
1356
+ <div v-if="sendMessageData.messageParams.length>0">
1357
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in sendMessageData.messageParams" :key="index">
1358
+ <label class="attribute-input__label">{{item['NAME']}}</label>
1359
+ <div class="attribute-input-type">
1360
+ <el-select v-model="item.TYPE" placeholder="请选择" @change="item.VALUE=''">
1361
+ <el-option label="指定值" value="designated"></el-option>
1362
+ <el-option label="字段值" value="form"></el-option>
1363
+ <el-option label="动态值" value="dynamic"></el-option>
1364
+ <el-option label="流程参数" value="params"></el-option>
1365
+ </el-select>
1366
+ </div>
1367
+ <template v-if="item.TYPE==='designated'">
1368
+ <el-input v-model="item.VALUE" placeholder="请输入内容"></el-input>
1369
+ </template>
1370
+ <template v-else-if="item.TYPE==='form'">
1371
+ <el-select v-model="item.VALUE" placeholder="请选择">
1372
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
1373
+ </el-option>
1374
+ </el-select>
1375
+ </template>
1376
+ <template v-else-if="item.TYPE==='dynamic'">
1377
+ <!-- <div> -->
1378
+ <!-- <el-input v-model="item.VALUE" placeholder="请输入内容"></el-input> -->
1379
+ <epx-rule v-model="item.VALUE" :selfStyle="false" :fieldConfigs="{attriName: 'VALUE', attriLabel: '判断条件', dataType:'rule',rows:2, state: 'EDIT'}"
1380
+ :extendVariable="ruleVariable" :ruleMetaId="businessMetaId">
1381
+ <el-input :value="getChineseValue(item.VALUE)" placeholder="请点击输入"></el-input>
1382
+ </epx-rule>
1383
+ <!-- </div> -->
1384
+ </template>
1385
+ <template v-else-if="item.TYPE==='params'">
1386
+ <el-select v-model="item.VALUE" placeholder="请选择">
1387
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1388
+ </el-option>
1389
+ </el-select>
1390
+ </template>
1391
+ <div class="send-message-operate">
1392
+ <i class="message-operate-item el-icon-edit-outline" @click="editMessageParams(item)"></i>
1393
+ <i class="el-icon-close message-operate-item delete" @click="deleteMessageParams(index)"></i>
1394
+ </div>
1395
+ </div>
1396
+ </div>
1397
+ <el-dialog title="添加参数" :visible.sync="showMessageParamModal" width="50%">
1398
+ <epx-table-form ref="messageParamForm" :column="2" v-model="messageParamData" :fieldsConfigs="[
1399
+ {attriName: 'ID', attriLabel: 'ID',dataType: 'text', state:'HIDDEN'},
1400
+ {attriName: 'NAME', attriLabel: '参数名称',dataType: 'text', state:'EDIT'},
1401
+ {attriName: 'VALUE', attriLabel: '参数值',dataType: 'text', state:'EDIT'},
1402
+ ]">
1403
+ </epx-table-form>
1404
+ <div class="dialog-operate-group">
1405
+ <el-button type="primary" @click="saveMessageParam">保存</el-button>
1406
+ <el-button @click="showMessageParamModal=false">返回</el-button>
1407
+ </div>
1408
+ </el-dialog>
1409
+ <div class="update-add-field">
1410
+ <el-button slot="reference" style="margin:10px 0" type="primary" plain size="small" @click="showMessageParamModal=true; messageParamData = {}">+添加参数</el-button>
1411
+ </div>
1412
+ </li>
1413
+ <div class="dialog-operate-group">
1414
+ <el-button type="primary" @click="saveMessageData">保存</el-button>
1415
+ </div>
1416
+ </ul>
1417
+ </template>
1418
+ <!-- 调用接口 -->
1419
+ <template v-else-if="element.typeId==='8' || elementValues['camunda:formTypeId']==='8'">
1420
+ <div class="jiedina-header"><i class="epx-icon-lc-tiaoyongjiekou"></i> 调用接口</div>
1421
+ <ul class="attribute-list">
1422
+ <li class="attribute-item" hidden>
1423
+ <div class="attribute-input">
1424
+ <label class="attribute-input__label">typeId</label>
1425
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
1426
+ </div>
1427
+ </li>
1428
+ <li class="attribute-item">
1429
+ <div class="attribute-input">
1430
+ <label class="attribute-input__label">编号</label>
1431
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1432
+ </div>
1433
+ </li>
1434
+ <li class="attribute-item">
1435
+ <div class="attribute-input">
1436
+ <label class="attribute-input__label">节点类型</label>
1437
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
1438
+ </div>
1439
+ </li>
1440
+ <li class="attribute-item">
1441
+ <div class="attribute-input">
1442
+ <label class="attribute-input__label">名称</label>
1443
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1444
+ </div>
1445
+ </li>
1446
+ <!-- <li class="attribute-item">
1447
+ <div class="attribute-input">
1448
+ <label class="attribute-input__label">业务对象</label>
1449
+ <epx-table-form-item :value="{id: elementValues['camunda:formDataMeta'], name: elementValues['camunda:formDataMeta#']}" @change="v=> {
1450
+ this.elementValues['camunda:formDataMeta']=v?v.id: null
1451
+ this.elementValues['camunda:formDataMeta#']=v?v.name: null
1452
+ }" :fieldConfigs="{attriName: 'camunda:formDataMeta', attriLabel: '数据对象', dataType:'object', codeKey: 'FM_ENTITY', state: 'EDIT'}"></epx-table-form-item>
1453
+ </div>
1454
+ </li> -->
1455
+ <li class="attribute-item">
1456
+ <div class="attribute-input">
1457
+ <label class="attribute-input__label">调用接口</label>
1458
+ <epx-table-form-item :value="{id: elementValues['camunda:messageTemplate'], name: elementValues['camunda:messageTemplate#']}" @change="v=> {
1459
+ this.elementValues['camunda:messageTemplate']=v?v.id: null
1460
+ this.elementValues['camunda:messageTemplate#']=v?v.name: null
1461
+ }" :fieldConfigs="{attriName: 'camunda:messageTemplate', attriLabel: '消息模板', dataType:'object', codeKey: 'FM_API_IN', state: 'EDIT'}"></epx-table-form-item>
1462
+ </div>
1463
+ </li>
1464
+ <li class="attribute-item">
1465
+ <div class="attribute-input">
1466
+ <label class="attribute-input__label">输入参数</label>
1467
+ </div>
1468
+ <div v-if="sendMessageData.messageInParams.length>0">
1469
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in sendMessageData.messageInParams" :key="index">
1470
+ <label class="attribute-input__label">{{item['PARAMS']}}</label>
1471
+ <!-- <label class="attribute-input__label">参数{{index+1}}</label> -->
1472
+ <div class="attribute-input-type">
1473
+ <el-select v-model="item.TYPE" placeholder="请选择">
1474
+ <el-option label="指定值" value="designated"></el-option>
1475
+ <el-option label="字段值" value="form"></el-option>
1476
+ <el-option label="流程参数" value="params"></el-option>
1477
+ </el-select>
1478
+ </div>
1479
+ <template v-if="item.TYPE==='designated'">
1480
+ <el-input v-model="item.VALUE" placeholder="请输入内容"></el-input>
1481
+ </template>
1482
+ <template v-else-if="item.TYPE==='form'">
1483
+ <el-select v-model="item.VALUE" placeholder="请选择">
1484
+ <el-option v-for="item in businessMeta" :key="item.attribute.id" :label="item.attriLabel" :value="item.attriName">
1485
+ </el-option>
1486
+ </el-select>
1487
+ </template>
1488
+ <template v-else-if="item.TYPE==='params'">
1489
+ <el-select v-model="item.VALUE" placeholder="请选择">
1490
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1491
+ </el-option>
1492
+ </el-select>
1493
+ </template>
1494
+ <div class="send-message-operate">
1495
+ <!-- <i class="message-operate-item el-icon-edit-outline" @click="editMessageParams(item)"></i> -->
1496
+ <i class="el-icon-close message-operate-item delete" @click="deleteApiParams('messageInParams',index)"></i>
1497
+ </div>
1498
+ </div>
1499
+ </div>
1500
+ <!-- <el-dialog title="添加参数" :visible.sync="showMessageParamModal" width="50%">
1501
+ <epx-table-form ref="messageParamForm" :column="2" v-model="messageParamData" :fieldsConfigs="[
1502
+ {attriName: 'ID', attriLabel: 'ID',dataType: 'text', state:'HIDDEN'},
1503
+ {attriName: 'PARAMS', attriLabel: '参数名称',dataType: 'text', state:'EDIT'},
1504
+ {attriName: 'VALUE', attriLabel: '参数值',dataType: 'text', state:'EDIT'},
1505
+ ]">
1506
+ </epx-table-form>
1507
+ <div class="dialog-operate-group">
1508
+ <el-button type="primary" @click="saveMessageParam">保存</el-button>
1509
+ <el-button @click="showMessageParamModal=false">返回</el-button>
1510
+ </div>
1511
+ </el-dialog>
1512
+ <div class="update-add-field">
1513
+ <el-button slot="reference" type="text" @click="showMessageParamModal=true; messageParamData = {}">+添加参数</el-button>
1514
+ </div> -->
1515
+ </li>
1516
+ <li class="attribute-item">
1517
+ <div class="attribute-input">
1518
+ <label class="attribute-input__label">输出参数</label>
1519
+ </div>
1520
+ <div v-if="sendMessageData.messageOutParams.length>0">
1521
+ <div class="attribute-input attribute-input-update" v-for="(item, index) in sendMessageData.messageOutParams" :key="index">
1522
+ <label class="attribute-input__label">{{item['PARAMS']}}</label>
1523
+ <!-- <label class="attribute-input__label">参数{{index+1}}</label> -->
1524
+ <div class="attribute-input-type">
1525
+ <el-select v-model="item.TYPE" placeholder="请选择">
1526
+ <el-option label="流程参数" value="params"></el-option>
1527
+ </el-select>
1528
+ </div>
1529
+ <el-select v-model="item.VALUE" placeholder="请选择">
1530
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1531
+ </el-option>
1532
+ </el-select>
1533
+ <div class="send-message-operate">
1534
+ <!-- <i class="message-operate-item el-icon-edit-outline" @click="editMessageParams(item)"></i> -->
1535
+ <i class="el-icon-close message-operate-item delete" @click="deleteApiParams('messageOutParams',index)"></i>
1536
+ </div>
1537
+ </div>
1538
+ </div>
1539
+ </li>
1540
+ <div class="dialog-operate-group">
1541
+ <el-button type="primary" @click="saveMessageData">保存</el-button>
1542
+ </div>
1543
+ </ul>
1544
+ </template>
1545
+ <template v-else-if="element.type.includes('Task') && !element.type.includes('manualTask')">
1546
+ <ul class="attribute-list">
1547
+ <li class="attribute-item">
1548
+ <div class="attribute-input">
1549
+ <label class="attribute-input__label">编号</label>
1550
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1551
+ </div>
1552
+ </li>
1553
+ <li class="attribute-item">
1554
+ <div class="attribute-input">
1555
+ <label class="attribute-input__label">名称</label>
1556
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1557
+ </div>
1558
+ </li>
1559
+ <li class="attribute-item">
1560
+ <div class="attribute-input">
1561
+ <label class="attribute-input__label">自定义编号</label>
1562
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:uuid', dataType:'text', attriLabel: '自定义编号', state: 'EDIT'}"></epx-form-field>
1563
+ </div>
1564
+ </li>
1565
+ <li class="attribute-item">
1566
+ <div class="attribute-input">
1567
+ <label class="attribute-input__label">办理页面</label>
1568
+ <epx-table-form-item :value="{id: elementValues['camunda:assigneePage'], name: elementValues['camunda:assigneePage#']}" @change="v=> {
1569
+ elementValues['camunda:assigneePage']=v?v.id: null
1570
+ elementValues['camunda:assigneePage#']=v?v.name: null
1571
+ }" :fieldConfigs="{attriName: 'camunda:assigneePage', attriLabel: '办理页面', dataType:'object', codeKey: 'FM_PAGE_CONFIG', state: 'EDIT',flag: 'process_page_find'}">
1572
+ </epx-table-form-item>
1573
+ <!-- <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:assigneePage', dataType:'object', codeKey: 'FM_PAGE_CONFIG', attriLabel: '办理页面', state: 'EDIT'}"></epx-form-field> -->
1574
+ </div>
1575
+ </li>
1576
+ <li class="attribute-item">
1577
+ <div class="attribute-input">
1578
+ <label class="attribute-input__label">业务状态</label>
1579
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:status', dataType:'list',codeKey: statusCodeKey,attriLabel: '业务状态', state: 'EDIT'}">
1580
+ </epx-form-field>
1581
+ </div>
1582
+ </li>
1583
+ <li class="attribute-item">
1584
+ <div class="attribute-input attribute-input__auditor">
1585
+ <label class="attribute-input__label">审核人</label>
1586
+ <div class="attribute-input__container">
1587
+ <p class="auditor-item" v-for="(item, index) in auditor" :key="index">
1588
+ <span lass="auditor-item__name" v-if="item.type===1">{{item['role#']}}</span>
1589
+ <span lass="auditor-item__name" v-if="item.type===4">{{item['user#']}}</span>
1590
+ <span lass="auditor-item__name" v-if="item.type===5">动态用户</span>
1591
+ <span lass="auditor-item__name" v-if="item.type===3">申请人</span>
1592
+ <span lass="auditor-item__name" v-if="item.type===2">发起人</span>
1593
+ <span lass="auditor-item__name" v-if="item.type===6">指定上级</span>
1594
+ <span lass="auditor-item__name" v-if="item.type===7">连续多级上级</span>
1595
+ <span class="auditor-item__icon">
1596
+ <i class="el-icon-edit" @click="editAuditor(item, index)"></i>
1597
+ <el-popconfirm title="确认删除?" @confirm="deleteAuditor(index)">
1598
+ <i slot="reference" class="el-icon-close"></i>
1599
+ </el-popconfirm>
1600
+ </span>
1601
+ </p>
1602
+ <p>
1603
+ <el-button style="margin:10px 0" type="primary" plain size="small" @click="addCheckPerson"> + 添加审核人</el-button>
1604
+ </p>
1605
+ </div>
1606
+ </div>
1607
+ </li>
1608
+ <li class="attribute-item">
1609
+ <div class="attribute-input">
1610
+ <label class="attribute-input__label">多人审批方式</label>
1611
+ <el-radio-group v-model="spStyle" @change="spStyleChange">
1612
+ <el-radio-button label="1">或签</el-radio-button>
1613
+ <el-radio-button label="2">会签</el-radio-button>
1614
+ <el-radio-button label="3">依次审批/顺签</el-radio-button>
1615
+ </el-radio-group>
1616
+ </div>
1617
+ </li>
1618
+ <li class="attribute-item">
1619
+ <div class="attribute-input">
1620
+ <label class="attribute-input__label">审批操作</label>
1621
+ <el-checkbox-group v-model="spOperate" @change="spOperateChange">
1622
+ <el-checkbox label="agree">同意</el-checkbox>
1623
+ <el-checkbox label="disagree">驳回</el-checkbox>
1624
+ <el-checkbox label="save">保存</el-checkbox>
1625
+ <el-checkbox label="return">退回</el-checkbox>
1626
+ <el-checkbox label="repeal">撤销</el-checkbox>
1627
+ </el-checkbox-group>
1628
+ </div>
1629
+ </li>
1630
+
1631
+ <li class="attribute-item">
1632
+ <div class="attribute-input attribute-input__auditor">
1633
+ <label class="attribute-input__label">抄送人</label>
1634
+ <div class="attribute-input__container">
1635
+ <p class="auditor-item" v-for="(item, index) in notifier" :key="index">
1636
+ <span lass="auditor-item__name" v-if="item.type===1">{{item['role#']}}</span>
1637
+ <span lass="auditor-item__name" v-if="item.type===4">{{item['user#']}}</span>
1638
+ <span lass="auditor-item__name" v-if="item.type===5">动态用户</span>
1639
+ <span lass="auditor-item__name" v-if="item.type===3">申请人</span>
1640
+ <span lass="auditor-item__name" v-if="item.type===2">发起人</span>
1641
+ <span lass="auditor-item__name" v-if="item.type===6">指定上级</span>
1642
+ <span class="auditor-item__icon">
1643
+ <i class="el-icon-edit" @click="editNotify(item, index)"></i>
1644
+ <el-popconfirm title="确认删除?" @confirm="deleteNotifyUser(index)">
1645
+ <i slot="reference" class="el-icon-close"></i>
1646
+ </el-popconfirm>
1647
+ </span>
1648
+ </p>
1649
+ <p>
1650
+ <el-button style="margin:10px 0" type="primary" plain size="small" @click="addNotifyUser"> + 添加抄送人</el-button>
1651
+ </p>
1652
+ </div>
1653
+ </div>
1654
+ </li>
1655
+ <li class="attribute-item">
1656
+ <div class="attribute-input">
1657
+ <label class="attribute-input__label">排序号</label>
1658
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:orderNum', dataType:'text', attriLabel: '排序号', state: 'EDIT'}"></epx-form-field>
1659
+ </div>
1660
+ </li>
1661
+ </ul>
1662
+ </template>
1663
+ <!--网关-->
1664
+ <template v-else-if="element.typeId ==='11'|| element.typeId==='12' || elementValues['camunda:formTypeId']==='11' || elementValues['camunda:formTypeId']==='12'">
1665
+ <ul class="attribute-list">
1666
+ <li class="attribute-item">
1667
+ <div class="attribute-input">
1668
+ <label class="attribute-input__label">编号</label>
1669
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1670
+ </div>
1671
+ </li>
1672
+ <li class="attribute-item">
1673
+ <div class="attribute-input">
1674
+ <label class="attribute-input__label">节点类型</label>
1675
+ <div v-html="getNodeTypeName(element.typeId,elementValues['camunda:formTypeId'])"></div>
1676
+ </div>
1677
+ </li>
1678
+ <li class="attribute-item">
1679
+ <div class="attribute-input">
1680
+ <label class="attribute-input__label">名称</label>
1681
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1682
+ </div>
1683
+ </li>
1684
+ <li class="attribute-item" hidden>
1685
+ <div class="attribute-input">
1686
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'camunda:formTypeId', dataType:'text', value: element.typeId}"></epx-form-field>
1687
+ </div>
1688
+ </li>
1689
+ <li class="attribute-item" hidden>
1690
+ <div class="attribute-input">
1691
+ <label class="attribute-input__label">类型</label>
1692
+ <epx-form-field v-if="element.typeId==='11' || elementValues['camunda:formTypeId']==='11'" :values.sync="elementValues"
1693
+ :field-config="{attriName: 'camunda:loopType', dataType:'text', value: 'start'}" @change="v=> {
1694
+ this.elementValues['camunda:formTypeId']='11'
1695
+ this.loopType='start'
1696
+ }"></epx-form-field>
1697
+ <epx-form-field v-if="element.typeId==='12' || elementValues['camunda:formTypeId']==='12'" :values.sync="elementValues"
1698
+ :field-config="{attriName: 'camunda:loopType', dataType:'text', value: 'end'}" @change="v=> {
1699
+ this.elementValues['camunda:formTypeId']='12'
1700
+ this.loopType='end'
1701
+ }"></epx-form-field>
1702
+ </div>
1703
+ </li>
1704
+ <li class="attribute-item" v-if="element.typeId==='11' || elementValues['camunda:formTypeId']==='11' || loopType ==='start' ">
1705
+ <div class="attribute-input">
1706
+ <label class="attribute-input__label">循环对象</label>
1707
+ <el-select v-model="loopListParam" placeholder="请选择" @change="addLoopListParamChange">
1708
+ <el-option v-for="field in inParamData" :key="field.uid" :label="field.name" :value="field.id">
1709
+ </el-option>
1710
+ </el-select>
1711
+ </div>
1712
+ </li>
1713
+ </ul>
1714
+ </template>
1715
+ <template v-else>
1716
+ <ul class="attribute-list">
1717
+ <li class="attribute-item">
1718
+ <div class="attribute-input">
1719
+ <label class="attribute-input__label">编号</label>
1720
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'id', dataType:'text'}"></epx-form-field>
1721
+ </div>
1722
+ </li>
1723
+ <li class="attribute-item">
1724
+ <div class="attribute-input">
1725
+ <label class="attribute-input__label">名称</label>
1726
+ <epx-form-field :values.sync="elementValues" :field-config="{attriName: 'name', dataType:'text', state: 'EDIT'}"></epx-form-field>
1727
+ </div>
1728
+ </li>
1729
+ </ul>
1730
+ </template>
1731
+ </el-tab-pane>
1732
+ <!-- 消息 -->
1733
+ <el-tab-pane label="消息" class="tab-pane-content" name="message" v-if="element.type.includes('Task') && !element.type.includes('bpmn:ManualTask') ">
1734
+ <!--列表 -->
1735
+ <ul class="message-list">
1736
+ <li class="message-item" v-for="(item, index) in messageData" :key="index">
1737
+ <div class="message-content">
1738
+ <p class="message-info">
1739
+ <label for="">提醒对象:</label>
1740
+ <span>{{item['person#']}}</span>
1741
+ </p>
1742
+ <p class="message-info">
1743
+ <label for="">提醒事件:</label>
1744
+ <span>{{item['remind_event#']}}</span>
1745
+ </p>
1746
+ <p class="message-info">
1747
+ <label for="">消息模板:</label>
1748
+ <span>{{item['template#']}}</span>
1749
+ </p>
1750
+ </div>
1751
+ <div class="message-operate">
1752
+ <i class="message-operate-item el-icon-edit-outline" @click="messageIndex= index; showMessageModal = true"></i>
1753
+ <el-popconfirm title="确认删除?" @confirm="deleteMessage(index)">
1754
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
1755
+ </el-popconfirm>
1756
+ </div>
1757
+ </li>
1758
+ </ul>
1759
+ <el-dialog title="消息" :visible.sync="showMessageModal" width="50%">
1760
+ <epx-table-form ref="messageForm" :column="2" v-model="messageData[messageIndex]" :fieldsConfigs="[
1761
+ {
1762
+ attriName: 'person', attriLabel: '提醒对象',dataType: 'list', codeKey: 'FM_PROCESS_MESSAGE_RECEIVER_TYPE', state:'EDIT'
1763
+ },
1764
+ {attriName: 'remind_event', attriLabel: '提醒事件', dataType: 'list', codeKey: 'PROCESS_LISTENER_TYPE', state:'EDIT'},
1765
+ {attriName: 'template', attriLabel: '消息模板', dataType: 'object', codeKey: 'FM_MESSAGE_TEMPLATE', flag: 'process_templete_find', state:'EDIT'}
1766
+ ]">
1767
+ </epx-table-form>
1768
+ <div class="dialog-operate-group">
1769
+ <el-button type="primary" @click="saveMessage">保存</el-button>
1770
+ <el-button @click="showMessageModal=false">返回</el-button>
1771
+ </div>
1772
+ </el-dialog>
1773
+ <div class="add-message-button">
1774
+ <el-button type="text" @click="showMessageModal=true">+ 添加消息</el-button>
1775
+ </div>
1776
+ </el-tab-pane>
1777
+ <el-tab-pane label="触发器" class="tab-pane-content" name="listener"
1778
+ v-if="element.type==='bpmn:StartEvent' || element.type==='bpmn:EndEvent' || (element.type.includes('Task') && !element.type.includes('bpmn:ManualTask'))">
1779
+ <ul class="message-list">
1780
+ <li class="message-item" v-for="(item, index) in listenerData" :key="index">
1781
+ <div class="message-content">
1782
+ <p class="message-info">
1783
+ <label for="">监听方式:</label>
1784
+ <span>{{item['type#']}}</span>
1785
+ </p>
1786
+ <p class="message-info">
1787
+ <label for="">触发器:</label>
1788
+ <span>{{item['listener#']}}</span>
1789
+ </p>
1790
+ <p class="message-info">
1791
+ <label for="">业务规则:</label>
1792
+ <span>{{item['rule#']}}</span>
1793
+ </p>
1794
+ </div>
1795
+ <div class="message-operate">
1796
+ <i class="message-operate-item el-icon-edit-outline" @click="listenerIndex= index;listenerItem={...item}; showListenerModal = true"></i>
1797
+ <el-popconfirm title="确认删除?" @confirm="deleteListener(index)">
1798
+ <i slot="reference" class="message-operate-item el-icon-delete delete"></i>
1799
+ </el-popconfirm>
1800
+ </div>
1801
+ </li>
1802
+ </ul>
1803
+ <el-dialog title="触发器" :visible.sync="showListenerModal" width="50%">
1804
+ <epx-table-form ref="listenerForm" :column="2" v-model="listenerItem" :fieldsConfigs="[
1805
+ {
1806
+ attriName: 'type', attriLabel: '监听方式',dataType: 'list', codeKey: 'PROCESS_LISTENER_TYPE', state:'EDIT'
1807
+ },
1808
+ {attriName: 'listener', attriLabel: '触发器', dataType: 'object', codeKey: 'FM_PROCESS_LISTENER', flag: 'process_listener_find', state:'EDIT'},
1809
+ {attriName: 'rule', attriLabel: '业务规则', dataType: 'object', codeKey: 'ACT_RE_MODEL', flag: 'v_find', state:'EDIT'}
1810
+ ]">
1811
+ </epx-table-form>
1812
+ <div class="dialog-operate-group">
1813
+ <el-button type="primary" @click="saveListener">保存</el-button>
1814
+ <el-button @click="showListenerModal=false">返回</el-button>
1815
+ </div>
1816
+ </el-dialog>
1817
+ <div class="add-message-button">
1818
+ <el-button type="text" @click="listenerItem={};showListenerModal=true">+ 添加触发器</el-button>
1819
+ </div>
1820
+ </el-tab-pane>
1821
+ <el-tab-pane label="权限设置" class="tab-pane-content" name="right" v-if="element.type==='bpmn:StartEvent' || (element.type.includes('Task') && !element.type.includes('bpmn:ManualTask'))">
1822
+ <table class="right-table__header el-table el-table--border el-table__header">
1823
+ <thead>
1824
+ <tr>
1825
+ <th colspan="1" rowspan="1" class="is-leaf">
1826
+ <div class="cell">字段</div>
1827
+ </th>
1828
+ <th colspan="1" rowspan="1" class="is-leaf">
1829
+ <div class="cell">
1830
+ <el-checkbox :value="isAllFieldSelect('HIDDEN')" :label="true" @change="changeAllFieldState('HIDDEN')">隐藏</el-checkbox>
1831
+ </div>
1832
+ </th>
1833
+ <th class="is-leaf">
1834
+ <div class="cell">
1835
+ <el-checkbox :value="isAllFieldSelect('DETAIL')" :label="true" @change="changeAllFieldState('DETAIL')">只读</el-checkbox>
1836
+ </div>
1837
+ </th>
1838
+ <th colspan="1" rowspan="1" class="is-leaf">
1839
+ <div class="cell">
1840
+ <el-checkbox :value="isAllFieldSelect('EDIT')" :label="true" @change="changeAllFieldState('EDIT')">编辑</el-checkbox>
1841
+ </div>
1842
+ </th>
1843
+ </tr>
1844
+ </thead>
1845
+ </table>
1846
+ <el-table :data="fieldConfigs" border style="width: 100%">
1847
+ <el-table-column prop="attriLabel" label="字段">
1848
+ </el-table-column>
1849
+ <el-table-column prop="HIDDEN" label="隐藏">
1850
+ <template slot="header">
1851
+ <el-checkbox :value="isAllFieldSelect('HIDDEN')" :label="true" @change="changeAllFieldState('HIDDEN')">隐藏</el-checkbox>
1852
+ </template>
1853
+ <template slot-scope="scope">
1854
+ <el-checkbox :value="scope.row.state==='HIDDEN'" @change="changeFieldState(scope, 'HIDDEN')"></el-checkbox>
1855
+ </template>
1856
+ </el-table-column>
1857
+ <el-table-column prop="DETAIL" label="只读">
1858
+ <el-checkbox :value="isAllFieldSelect('DETAIL')" :label="true" @change="changeAllFieldState('DETAIL')">只读</el-checkbox>
1859
+ <template slot-scope="scope">
1860
+ <el-checkbox :value="scope.row.state==='DETAIL'" @change="changeFieldState(scope, 'DETAIL')"></el-checkbox>
1861
+ </template>
1862
+ </el-table-column>
1863
+ <el-table-column prop="EDIT" label="可编辑">
1864
+ <template slot="header">
1865
+ <el-checkbox :value="isAllFieldSelect('EDIT')" :label="true" @change="changeAllFieldState('EDIT')">可编辑</el-checkbox>
1866
+ </template>
1867
+ <template slot-scope="scope">
1868
+ <el-checkbox :value="scope.row.state==='EDIT'" @change="changeFieldState(scope, 'EDIT')"></el-checkbox>
1869
+ </template>
1870
+ </el-table-column>
1871
+ </el-table>
1872
+ </el-tab-pane>
1873
+ </el-tabs>
1874
+ </template>
1875
+ <el-dialog title="审核人" :visible.sync="showAuditorModal" width="70%">
1876
+ <div v-if="showAuditorModal">
1877
+ <div class="auditor-modal__title">审核人</div>
1878
+ <div class="auditor-modal__content auditor-modal__content--first ">
1879
+ <div class="attribute-input">
1880
+ <label class="attribute-input__label">审核人类型</label>
1881
+ <el-radio-group v-model="auditorInfo.type">
1882
+ <el-radio :label="1">角色</el-radio>
1883
+ <el-radio :label="2">发起人</el-radio>
1884
+ <el-radio :label="3">申请人</el-radio>
1885
+ <el-radio :label="4">用户</el-radio>
1886
+ <el-radio :label="5">动态用户</el-radio>
1887
+ <el-radio :label="6">指定上级</el-radio>
1888
+ <el-radio :label="7">连续多级上级</el-radio>
1889
+ </el-radio-group>
1890
+ </div>
1891
+
1892
+ <div class="attribute-input" v-if="auditorInfo.type===1">
1893
+ <label class="attribute-input__label">指定角色</label>
1894
+ <epx-table-form-item :key="auditorInfo.type" :value="{id: auditorInfo.role, name: auditorInfo['role#']}" @change="v=> {
1895
+ this.$set(this.auditorInfo, 'role', v?v.id: null)
1896
+ this.$set(this.auditorInfo, 'role#', v?v.name: null)
1897
+ }" :fieldConfigs="{attriName: 'role', attriLabel: '角色', dataType:'object', codeKey: 'FM_ROLE', state: 'EDIT',flag: 'process_role_find'}"></epx-table-form-item>
1898
+ <!-- <epx-form-field :values.sync="auditorInfo" :field-config="{attriName: 'role', attriLabel: '角色', dataType:'object', codeKey: 'FM_ROLE', state: 'EDIT'}"></epx-form-field> -->
1899
+ </div>
1900
+ <div class="attribute-input" v-else-if="auditorInfo.type===4">
1901
+ <label class="attribute-input__label">用户</label>
1902
+ <epx-table-form-item :key="auditorInfo.type" :value="{id: auditorInfo.user, name: auditorInfo['user#']}" @change="chooseUser"
1903
+ :fieldConfigs="{attriName: 'user', attriLabel: '用户', dataType:'multiobject', codeKey: 'FM_USER', state: 'EDIT', scopeParams: [{ field: 'CLIENT', values: this.CLIENT }]}"></epx-table-form-item>
1904
+ </div>
1905
+ <div class="attribute-input attribute-input-top" v-if="auditorInfo.type===5">
1906
+ <label class="attribute-input__label">动态用户</label>
1907
+ <div>
1908
+ <div class="scope-item-line" v-for="(item,index) in auditorInfo.dynamicUser||[]" :key="index"><span class="scope-text">{{item.text}}</span><span
1909
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
1910
+ <!-- <p :style="{color: '#666', marginRight: '6px'}">{{getScopeText(auditorInfo.dynamicUser)}}</p> -->
1911
+ <el-button style="margin:10px 0" type="primary" plain size="small" @click="dynamicUserScope = true">+ 添加筛选条件</el-button>
1912
+ <epx-scope-drawer v-model="auditorInfo.dynamicUser" v-if="auditorInfo.type===5" :visible.sync="dynamicUserScope" metaId="FM_USER" :fieldValueMetaId="processInfo.ENTITY" ref="filterDrawer"
1913
+ :modeType="['FIXED_VALUE','SYSTEM_VARIABLE', 'FIELD_VALUE']" />
1914
+ </div>
1915
+ </div>
1916
+ <div class="attribute-input" v-if="auditorInfo.type===6">
1917
+ <label class="attribute-input__label">指定上级</label>
1918
+ <div class="auditor-modal__content">
1919
+ <el-radio style="display: block;" v-model="auditorInfo.upType" label="1">当前层级无上级时,由上一级上级审批</el-radio>
1920
+ <el-radio style="display: block;margin-top: 15px;" v-model="auditorInfo.upType" label="2">此审批节点为空时直接跳过,不视为异常</el-radio>
1921
+ </div>
1922
+ </div>
1923
+ <div class="attribute-input" v-if="auditorInfo.type===7">
1924
+ <label class="attribute-input__label">连续多级上级</label>
1925
+ <div class="auditor-modal__content">
1926
+ <el-select v-model="auditorInfo.moreUpType">
1927
+ <el-option label="直接上级" value="0">
1928
+ </el-option>
1929
+ <el-option label="连续一级上级" value="1">
1930
+ </el-option>
1931
+ <el-option label="连续二级上级" value="2">
1932
+ </el-option>
1933
+ <el-option label="连续三级上级" value="3">
1934
+ </el-option>
1935
+ </el-select>
1936
+ </div>
1937
+ </div>
1938
+ </div>
1939
+ <template v-if="auditorInfo.type===1 || auditorInfo.type===5">
1940
+ <div class="auditor-modal__title">审核申请人范围</div>
1941
+ <div class="auditor-modal__content">
1942
+ <el-radio-group v-model="auditorInfo.applyerScope">
1943
+ <!-- <el-radio label="all">全部</el-radio> -->
1944
+ <el-radio label="main">主部门</el-radio>
1945
+ <el-radio label="from">所在部门</el-radio>
1946
+ <el-radio label="specify">指定部门</el-radio>
1947
+ <el-radio label="charge">负责部门</el-radio>
1948
+ </el-radio-group>
1949
+ <epx-table-form-item v-if="auditorInfo.applyerScope==='specify'" :value="getAuditorApplyerDeptId(auditorInfo)"
1950
+ @change="chooseAuditorApplyerDeptId"
1951
+ :fieldConfigs="{attriName: 'deptId', attriLabel: '单位', dataType:'multiobject', codeKey: 'FM_DEPT', state: 'EDIT'}"></epx-table-form-item>
1952
+ </div>
1953
+ <div class="auditor-modal__title">审核范围</div>
1954
+ <div class="auditor-modal__content">
1955
+ <epx-table-form-item
1956
+ :value="auditorInfo.scope"
1957
+ @change="v=>auditorInfo.scope=v"
1958
+ :fieldConfigs="{attriName: 'scope', attriLabel: '审核范围', dataType:'scope', metaId: processInfo.ENTITY, state: 'EDIT' }"
1959
+ ></epx-table-form-item>
1960
+ </div>
1961
+ </template>
1962
+ </div>
1963
+ <span slot="footer" class="dialog-footer">
1964
+ <el-button @click="editAuditorIndex='';showAuditorModal = false">取 消</el-button>
1965
+ <el-button type="primary" @click="saveAuditorModal">确 定</el-button>
1966
+ </span>
1967
+ </el-dialog>
1968
+
1969
+ <el-dialog title="抄送人" :visible.sync="showNotifyModal" width="70%">
1970
+ <div v-if="showNotifyModal">
1971
+ <div class="auditor-modal__title">抄送人</div>
1972
+ <div class="auditor-modal__content auditor-modal__content--first ">
1973
+ <div class="attribute-input">
1974
+ <label class="attribute-input__label">抄送人类型</label>
1975
+ <el-radio-group v-model="notifyInfo.type">
1976
+ <el-radio :label="1">角色</el-radio>
1977
+ <el-radio :label="2">发起人</el-radio>
1978
+ <el-radio :label="3">申请人</el-radio>
1979
+ <el-radio :label="4">用户</el-radio>
1980
+ <el-radio :label="5">动态用户</el-radio>
1981
+ <el-radio :label="6">指定上级</el-radio>
1982
+ </el-radio-group>
1983
+ </div>
1984
+
1985
+ <div class="attribute-input" v-if="notifyInfo.type===1">
1986
+ <label class="attribute-input__label">指定角色</label>
1987
+ <epx-table-form-item :key="auditorInfo.type" :value="{id: notifyInfo.role, name: notifyInfo['role#']}" @change="v=> {
1988
+ this.$set(this.notifyInfo, 'role', v?v.id: null)
1989
+ this.$set(this.notifyInfo, 'role#', v?v.name: null)
1990
+ }" :fieldConfigs="{attriName: 'role', attriLabel: '角色', dataType:'object', codeKey: 'FM_ROLE', state: 'EDIT',flag: 'process_role_find'}"></epx-table-form-item>
1991
+ </div>
1992
+ <div class="attribute-input" v-else-if="notifyInfo.type===4">
1993
+ <label class="attribute-input__label">用户</label>
1994
+ <epx-table-form-item :key="notifyInfo.type" :value="{id: notifyInfo.user, name: notifyInfo['user#']}" @change="chooseNotifyUser"
1995
+ :fieldConfigs="{attriName: 'user', attriLabel: '用户', dataType:'multiobject', codeKey: 'FM_USER', state: 'EDIT', scopeParams: [{ field: 'CLIENT', values: this.CLIENT }]}"></epx-table-form-item>
1996
+ </div>
1997
+ <div class="attribute-input attribute-input-top" v-if="notifyInfo.type===5">
1998
+ <label class="attribute-input__label">动态用户</label>
1999
+ <div>
2000
+ <div class="scope-item-line" v-for="(item,index) in notifyInfo.dynamicUser||[]" :key="index"><span class="scope-text">{{item.text}}</span><span
2001
+ class="scope-link">{{item.linkLabel||item.link||''}}</span></div>
2002
+ <el-button style="margin:10px 0" type="primary" plain size="small" @click="notifyDynamicUserScope = true">+ 添加筛选条件</el-button>
2003
+ <epx-scope-drawer v-model="notifyInfo.dynamicUser" v-if="notifyInfo.type===5" :visible.sync="notifyDynamicUserScope" metaId="FM_USER" :fieldValueMetaId="processInfo.ENTITY" ref="filterDrawer"
2004
+ :modeType="['FIXED_VALUE','SYSTEM_VARIABLE', 'FIELD_VALUE']" />
2005
+ </div>
2006
+ </div>
2007
+ <div class="attribute-input" v-if="notifyInfo.type===6">
2008
+ <label class="attribute-input__label">指定上级</label>
2009
+ </div>
2010
+ </div>
2011
+ <template v-if="notifyInfo.type===1 || notifyInfo.type===5">
2012
+ <div class="auditor-modal__title">审核申请人范围</div>
2013
+ <div class="auditor-modal__content">
2014
+ <el-radio-group v-model="notifyInfo.applyerScope">
2015
+ <el-radio label="main">主部门</el-radio>
2016
+ <el-radio label="from">所在部门</el-radio>
2017
+ <el-radio label="specify">指定部门</el-radio>
2018
+ <el-radio label="charge">负责部门</el-radio>
2019
+ </el-radio-group>
2020
+ <epx-table-form-item v-if="notifyInfo.applyerScope==='specify'" :value="getAuditorApplyerDeptId(notifyInfo)"
2021
+ @change="chooseNotifyApplyerDeptId"
2022
+ :fieldConfigs="{attriName: 'deptId', attriLabel: '单位', dataType:'multiobject', codeKey: 'FM_DEPT', state: 'EDIT'}"></epx-table-form-item>
2023
+ </div>
2024
+ <div class="auditor-modal__title">审核范围</div>
2025
+ <div class="auditor-modal__content">
2026
+ <epx-table-form-item
2027
+ :value="notifyInfo.scope"
2028
+ @change="v=>notifyInfo.scope=v"
2029
+ :fieldConfigs="{attriName: 'scope', attriLabel: '审核范围', dataType:'scope', metaId: processInfo.ENTITY, state: 'EDIT' }"
2030
+ ></epx-table-form-item>
2031
+ </div>
2032
+ </template>
2033
+ </div>
2034
+ <span slot="footer" class="dialog-footer">
2035
+ <el-button @click="editNotifyIndex='';showNotifyModal = false">取 消</el-button>
2036
+ <el-button type="primary" @click="saveNotifyModal">确 定</el-button>
2037
+ </span>
2038
+ </el-dialog>
2039
+ </div>
2040
+ </div>
2041
+ <epx-scope-drawer v-if="['2', '3', '6','7'].includes(this.elementValues['camunda:formTypeId'])" :visible.sync="showScopeDialog" :metaId="scopeMetaId" :fieldValueMetaId="businessMetaId" ref="filterDrawer"
2042
+ :liuchengParams="addRecordParamData" onlyShowMainEntityFieldFlag :modeType="['FIXED_VALUE','SYSTEM_VARIABLE', 'FIELD_VALUE', 'LIUCHENG_PARAMS']" :fieldTree="treeFieldStore" v-model="updateScopeParams"
2043
+ :params="updateScopeParams" @change-params="changeScopeValue" />
2044
+ <!-- <epx-scope-drawer v-if="['2', '3', '6','7'].includes(this.elementValues['camunda:formTypeId'])" :visible.sync="showScopeDialog" :metaId="scopeMetaId" ref="filterDrawer"
2045
+ :defineDynamicParams="defineDynamicParams" :modeType="['FIXED_VALUE', 'FIELD_VALUE', 'DEFINED_DYNAMIC']" :fieldValueTreeStore="treeFieldStore" :params="updateScopeParams"
2046
+ @change-params="changeScopeValue" /> -->
2047
+ <el-drawer title="选择字段" size="50%" :visible.sync="chooseFieldFlag" direction="rtl" :before-close="()=>{chooseFieldFlag=false}">
2048
+ <div>
2049
+ <el-checkbox-group v-model="chooseFields" class="tree-field-checkbox-group">
2050
+ <div v-for="(item, index) in chooseFieldstreeField" :key="item.code" style="lineHeight:40px">
2051
+ <div class="tree-field-header">
2052
+ <!-- <span class="tree-field-title" @click="swicthFieldStoreFold(index)">
2053
+ <i v-show="item.isUnFold" class="el-icon-minus"></i>
2054
+ <i v-show="!item.isUnFold" class="el-icon-plus"></i>
2055
+ </span> -->
2056
+ <span class="tree-field-title">
2057
+ <i class="el-icon-folder-opened"></i>
2058
+ </span>
2059
+ <span v-html="item.text" class="tree-field-title"></span>
2060
+ </div>
2061
+ <div class="tree-field-checkbox">
2062
+ <el-checkbox :label="item.code" @change="val => selectAllField(val, index)">全选</el-checkbox>
2063
+ <el-checkbox v-for="option in item.children" :label="option.code" :key="option.code">{{option.text}}</el-checkbox>
2064
+ </div>
2065
+ </div>
2066
+ </el-checkbox-group>
2067
+ <div slot="footer" class="dialog-footer">
2068
+ <el-button @click="chooseFieldFlag = false">取 消</el-button>
2069
+ <el-button type="primary" @click="chooseFieldHandleClose">确 定</el-button>
2070
+ </div>
2071
+ </div>
2072
+ </el-drawer>
2073
+ </div>
2074
+ </template>
2075
+
2076
+ <script>
2077
+ export default {
2078
+ name: 'epx-properties-view',
2079
+ props: {
2080
+ modeler: {
2081
+ type: Object,
2082
+ default: () => ({})
2083
+ },
2084
+ processInfo: {
2085
+ type: Object,
2086
+ default: () => ({})
2087
+ },
2088
+ businessMeta: {
2089
+ type: Array,
2090
+ default: () => ([])
2091
+ },
2092
+ treeFieldStore: {
2093
+ type: Array,
2094
+ default: () => ([])
2095
+ },
2096
+ businessMetaId: String,
2097
+ statusCodeKey: String
2098
+ },
2099
+ data () {
2100
+ return {
2101
+ selectedElements: [],
2102
+ activeDropDown: '',
2103
+ editListenerId: '',
2104
+ editMessageId: '',
2105
+ auditorInfo: {
2106
+ type: 3,
2107
+ role: '',
2108
+ 'role#': '',
2109
+ user: '',
2110
+ 'user#': '',
2111
+ upType: '1'
2112
+ },
2113
+ notifyInfo: {
2114
+ type: 1,
2115
+ role: '',
2116
+ 'role#': '',
2117
+ user: '',
2118
+ 'user#': '',
2119
+ dynamicUser: []
2120
+ },
2121
+ element: null,
2122
+ activeName: 'attribute',
2123
+ showAuditorModal: false,
2124
+ elementValues: {},
2125
+ searchParams: [],
2126
+ fields: {},
2127
+ initCondition: [],
2128
+ editAuditorIndex: '',
2129
+ editNotifyIndex: '',
2130
+ showMessageModal: false,
2131
+ messageIndex: -1,
2132
+ listenerIndex: -1,
2133
+ listenerItem: {},
2134
+ showListenerModal: false,
2135
+ formDataSources: '',
2136
+ formDataMetaData: {
2137
+ attributes: [],
2138
+ type: {},
2139
+ data: {},
2140
+ value: {},
2141
+ resultParams: ''
2142
+ },
2143
+ sendMessageData: {
2144
+ sendPersonScope: [],
2145
+ messageParams: [],
2146
+ messageInParams: [],
2147
+ messageOutParams: []
2148
+ },
2149
+ messageReceiver: {
2150
+ TYPE: 'designated',
2151
+ VALUE: ''
2152
+ },
2153
+ searchMethods: [],
2154
+ searchResult: '',
2155
+ searchData: {
2156
+ searchCondition: [],
2157
+ sortCondition: [],
2158
+ relationList: [],
2159
+ searchField: '',
2160
+ searchMethod: '',
2161
+ searchResultParams: ''
2162
+ },
2163
+ showInParamModal: false,
2164
+ inParamData: [],
2165
+ addRecordParamData: [],
2166
+ inParamItemUid: '',
2167
+ formDataField: [],
2168
+ showScopeDialog: false,
2169
+ updateScopeParams: [],
2170
+ // updateScopeParamsText: '',
2171
+ defineDynamicParams: [],
2172
+ scopeMetaId: '',
2173
+ messageParamData: {},
2174
+ showMessageParamModal: false,
2175
+ ruleVariable: [],
2176
+ ruleVarJiaGong: [],
2177
+ verifyIndex: -1,
2178
+ verifyItem: {},
2179
+ showVerifyModal: false,
2180
+ chooseFieldstreeField: [],
2181
+ chooseFieldFlag: false,
2182
+ chooseFields: [],
2183
+ saveFields: [],
2184
+ fieldsText: '',
2185
+ getInParamData: {},
2186
+ relationList: [],
2187
+ loopListParam: '',
2188
+ loopType: '',
2189
+ loopMeta: [],
2190
+ spStyle: '',
2191
+ spOperate: [],
2192
+ dynamicUserScope: false,
2193
+ showNotifyModal: false,
2194
+ notifyDynamicUserScope: false
2195
+ }
2196
+ },
2197
+ mounted () {
2198
+
2199
+ },
2200
+ computed: {
2201
+ isAllFieldSelect () {
2202
+ return state => {
2203
+ return this.fieldConfigs.every(item => item.state === state)
2204
+ }
2205
+ },
2206
+ getScopeText () {
2207
+ return (scope = []) => {
2208
+ return scope.map(item => item.text).join('')
2209
+ }
2210
+ },
2211
+ selectedElement () {
2212
+ return this.selectedElements[0]
2213
+ },
2214
+ selectedElementName () {
2215
+ const { type } = this.element || {}
2216
+ return type === 'bpmn:Process' ? '流程' : type === 'bpmn:UserTask' ? '任务节点' : type === 'bpmn:StartEvent' ? '开始节点'
2217
+ : type === 'bpmn:EndEvent' ? '结束节点' : type === 'bpmn:ExclusiveGateway' ? '网关' : ''
2218
+ },
2219
+ isEvent () {
2220
+ const { element } = this
2221
+ return this.verifyIsEvent(element.type)
2222
+ },
2223
+ isTask () {
2224
+ const { element } = this
2225
+ return this.verifyIsTask(element.type)
2226
+ },
2227
+ process: {
2228
+ get () {
2229
+ return this.processInfo
2230
+ },
2231
+ set (v) {
2232
+ this.$emit('update:processInfo', v)
2233
+ }
2234
+ },
2235
+ auditor: {
2236
+ get () {
2237
+ if (this.element) {
2238
+ const { 'camunda:auditor': auditor = '[]' } = this.elementValues
2239
+ return JSON.parse(auditor)
2240
+ } else {
2241
+ return []
2242
+ }
2243
+ },
2244
+ set (v) {
2245
+ this.updateProperties({ 'camunda:auditor': JSON.stringify(v) })
2246
+ }
2247
+ },
2248
+ notifier: {
2249
+ get () {
2250
+ if (this.element) {
2251
+ const { 'camunda:notifier': notifier, 'camunda:notifyInfo': notifyInfo = '{}' } = this.elementValues
2252
+ if (notifier) {
2253
+ return JSON.parse(notifier)
2254
+ } else {
2255
+ const newNotifier = []
2256
+ const jsonNotifyInfo = JSON.parse(notifyInfo)
2257
+ for (const key in jsonNotifyInfo) {
2258
+ if (key === 'role') {
2259
+ if (jsonNotifyInfo[key] && jsonNotifyInfo[key].includes(',')) {
2260
+ jsonNotifyInfo[key].split(',').forEach((item, index) => {
2261
+ newNotifier.push({ type: 1, role: item, 'role#': (jsonNotifyInfo[key + '#'] || '').split('、')[index] })
2262
+ })
2263
+ }
2264
+ } else if (key === 'startUser') {
2265
+ if (jsonNotifyInfo[key]) newNotifier.push({ type: 2, startUser: jsonNotifyInfo[key] })
2266
+ } else if (key === 'applyUser') {
2267
+ if (jsonNotifyInfo[key]) newNotifier.push({ type: 3, applyUser: jsonNotifyInfo[key] })
2268
+ } else if (key === 'user') {
2269
+ newNotifier.push({ type: 4, user: jsonNotifyInfo[key], 'user#': jsonNotifyInfo[key + '#'] })
2270
+ } else if (key === 'dynamicUser') {
2271
+ newNotifier.push({ type: 5, dynamicUser: jsonNotifyInfo[key] })
2272
+ } else if (key === 'leader') {
2273
+ if (jsonNotifyInfo[key]) newNotifier.push({ type: 6 })
2274
+ }
2275
+ }
2276
+ return newNotifier
2277
+ }
2278
+ } else {
2279
+ return []
2280
+ }
2281
+ },
2282
+ set (v) {
2283
+ this.updateProperties({ 'camunda:auditor': JSON.stringify(v) })
2284
+ }
2285
+ },
2286
+ listenerData () {
2287
+ if (this.elementValues) {
2288
+ const { 'camunda:listener': listener = '[]' } = this.elementValues
2289
+ return JSON.parse(listener)
2290
+ } else {
2291
+ return []
2292
+ }
2293
+ },
2294
+ fieldConfigs: {
2295
+ get () {
2296
+ if (this.elementValues) {
2297
+ const { type } = this.element
2298
+ const { 'camunda:fieldConfigs': fieldConfigsStr = '{}' } = this.elementValues
2299
+ const fieldConfigs = JSON.parse(fieldConfigsStr)
2300
+ return this.allFieldConfigs.map(item => {
2301
+ const fieldConfig = fieldConfigs[item.attriName] || {}
2302
+ return { ...item, state: type === 'bpmn:StartEvent' ? 'EDIT' : 'DETAIL', ...fieldConfig }
2303
+ })
2304
+ } else {
2305
+ return [...this.allFieldConfigs]
2306
+ }
2307
+ },
2308
+ set (v) {
2309
+ const fieldConfigs = {}
2310
+ v.forEach(({ ...item }) => {
2311
+ const attriName = item.attriName
2312
+ delete item.attriName
2313
+ fieldConfigs[attriName] = { ...item }
2314
+ })
2315
+ this.$set(this.elementValues, 'camunda:fieldConfigs', JSON.stringify(fieldConfigs))
2316
+ }
2317
+ },
2318
+ verifyData () {
2319
+ if (this.elementValues) {
2320
+ const { 'camunda:verify': verify = '[]' } = this.elementValues
2321
+ return JSON.parse(verify)
2322
+ } else {
2323
+ return []
2324
+ }
2325
+ },
2326
+ messageData () {
2327
+ if (this.elementValues) {
2328
+ const { 'camunda:message': message = '[]' } = this.elementValues
2329
+ const formatMessage = JSON.parse(message)
2330
+ return formatMessage
2331
+ } else {
2332
+ return []
2333
+ }
2334
+ },
2335
+ // getInParamData: {
2336
+ // get () {
2337
+ // for (const key in this.inParamData) {
2338
+ // if (this.inParamData[key].uid === this.inParamItemUid) {
2339
+ // return this.inParamData[key]
2340
+ // }
2341
+ // }
2342
+ // return {}
2343
+ // },
2344
+ // set (v) {
2345
+ // }
2346
+ // },
2347
+ getChineseValue () {
2348
+ return (value) => {
2349
+ let string = ''
2350
+ if (value) {
2351
+ string = JSON.parse(value).elText
2352
+ }
2353
+ return string
2354
+ }
2355
+ },
2356
+ getAuditorApplyerDeptId () {
2357
+ return auditorInfo => {
2358
+ const { applyerDeptId = '', 'applyerDeptId#': applyerDeptNameStr } = auditorInfo
2359
+ if (applyerDeptId) {
2360
+ const names = applyerDeptNameStr.split('、')
2361
+ const depts = applyerDeptId.split(',').map((item, index) => ({ id: item, name: names[index] }))
2362
+ return depts
2363
+ }
2364
+ return []
2365
+ }
2366
+ }
2367
+ },
2368
+ watch: {
2369
+ 'processInfo.ENTITY': {
2370
+ handler (v) {
2371
+ if (v) {
2372
+ this.setEntityData(v)
2373
+ }
2374
+ },
2375
+ immediate: true
2376
+ },
2377
+ 'element.businessObject': {
2378
+ handler (v) {
2379
+ if (v) {
2380
+ const { $attrs = {}, name, id } = v
2381
+ this.elementValues = {
2382
+ name: name,
2383
+ id: id,
2384
+ 'camunda:orderNum': $attrs['camunda:orderNum'],
2385
+ 'camunda:uuid': $attrs['camunda:uuid'],
2386
+ 'camunda:assigneePage': $attrs['camunda:assigneePage'],
2387
+ 'camunda:assigneePage#': $attrs['camunda:assigneePage-name'],
2388
+ 'camunda:condition': $attrs['camunda:condition'],
2389
+ 'camunda:conditionRule': $attrs['camunda:conditionRule'] || '',
2390
+ 'camunda:auditor': $attrs['camunda:auditor'],
2391
+ 'camunda:notifier': $attrs['camunda:notifier'],
2392
+ 'camunda:status': $attrs['camunda:status'],
2393
+ 'camunda:status#': $attrs['camunda:status-name'],
2394
+ 'camunda:spStyle': $attrs['camunda:spStyle'],
2395
+ 'camunda:spOperate': $attrs['camunda:spOperate'],
2396
+ 'camunda:listener': $attrs['camunda:listener'],
2397
+ 'camunda:fieldConfigs': $attrs['camunda:fieldConfigs'],
2398
+ 'camunda:verify': $attrs['camunda:verify'],
2399
+ 'camunda:message': $attrs['camunda:message'],
2400
+ 'camunda:formTypeId': $attrs['camunda:formTypeId'],
2401
+ 'camunda:formDataSources': $attrs['camunda:formDataSources'],
2402
+ 'camunda:formDataMeta': $attrs['camunda:formDataMeta'],
2403
+ 'camunda:formDataMeta#': $attrs['camunda:formDataMeta-name'],
2404
+ 'camunda:formDataMetaData': $attrs['camunda:formDataMetaData'],
2405
+ 'camunda:messageTemplate': $attrs['camunda:messageTemplate'],
2406
+ 'camunda:messageTemplate#': $attrs['camunda:messageTemplate-name'],
2407
+ 'camunda:sendMessageData': $attrs['camunda:sendMessageData'],
2408
+ 'camunda:inParam': $attrs['camunda:inParam'],
2409
+ 'camunda:searchResult': $attrs['camunda:searchResult'],
2410
+ 'camunda:searchData': $attrs['camunda:searchData'],
2411
+ 'camunda:loopListParam': $attrs['camunda:loopListParam'],
2412
+ 'camunda:loopType': $attrs['camunda:loopType'],
2413
+ 'camunda:notifyInfo': $attrs['camunda:notifyInfo'],
2414
+ 'camunda:disagreeStatus': $attrs['camunda:disagreeStatus'],
2415
+ 'camunda:repealStatus': $attrs['camunda:repealStatus'],
2416
+ 'camunda:applyViewPage': $attrs['camunda:applyViewPage'],
2417
+ 'camunda:repealStatus#': $attrs['camunda:applyViewPage#'],
2418
+ 'camunda:applyViewPage-name': $attrs['camunda:applyViewPage-name']
2419
+ }
2420
+ }
2421
+ },
2422
+ deep: true
2423
+ },
2424
+ elementValues: {
2425
+ handler (v) {
2426
+ const params = {}
2427
+ for (const key in v) {
2428
+ if (!(key === 'name#' || key === 'id#')) {
2429
+ params[key.replace('#', '-name')] = v[key]
2430
+ }
2431
+ if (this.element.type === 'bpmn:SequenceFlow' && key === 'camunda:conditionRule' && v[key]) {
2432
+ const obj = JSON.parse(v[key])
2433
+ params['camunda:condition'] = obj.el
2434
+ }
2435
+ }
2436
+ this.updateProperties(params)
2437
+ },
2438
+ deep: true
2439
+ }
2440
+ },
2441
+ created () {
2442
+ this.init()
2443
+ },
2444
+ methods: {
2445
+ async setEntityData (v) {
2446
+ let meta = this.getMeta(v)
2447
+ await this.$store.dispatch({
2448
+ type: 'ADD_META',
2449
+ metaId: v
2450
+ }).then(data => {
2451
+ meta = data
2452
+ })
2453
+ const entityData = meta.getAllFieldConfigs().map(item => ({ attriName: item.attriName, attriLabel: item.attriLabel, state: 'DETAIL' }))
2454
+ this.allFieldConfigs = entityData
2455
+ },
2456
+ changeFieldState (scope, state) {
2457
+ const index = scope.$index
2458
+ const fieldConfigs = [...this.fieldConfigs]
2459
+ const data = fieldConfigs[index]
2460
+ if (data.state !== state) {
2461
+ data.state = state
2462
+ } else {
2463
+ data.state = ''
2464
+ }
2465
+ fieldConfigs.splice(index, 1, data)
2466
+ this.fieldConfigs = fieldConfigs
2467
+ },
2468
+ changeAllFieldState (state) {
2469
+ const flag = this.fieldConfigs.every(item => item.state === state)
2470
+ if (flag) {
2471
+ const fieldConfigs = this.fieldConfigs.map(item => ({ ...item, state: '' }))
2472
+ this.fieldConfigs = [...fieldConfigs]
2473
+ } else {
2474
+ const fieldConfigs = this.fieldConfigs.map(item => ({ ...item, state }))
2475
+ this.fieldConfigs = [...fieldConfigs]
2476
+ }
2477
+ },
2478
+ chooseUser (v) {
2479
+ const ids = v.reduce((ids, item) => (ids ? (ids + ',') : '') + item.id, '')
2480
+ const names = v.reduce((names, item) => (names ? (names + '、') : '') + item.name, '')
2481
+ this.$set(this.auditorInfo, 'user', v ? ids : null)
2482
+ this.$set(this.auditorInfo, 'user#', v ? names : null)
2483
+ },
2484
+ chooseNotifyUser (v) {
2485
+ const ids = v.reduce((ids, item) => (ids ? (ids + ',') : '') + item.id, '')
2486
+ const names = v.reduce((names, item) => (names ? (names + '、') : '') + item.name, '')
2487
+ this.$set(this.notifyInfo, 'user', v ? ids : null)
2488
+ this.$set(this.notifyInfo, 'user#', v ? names : null)
2489
+ },
2490
+ chooseNotifyRole (v) {
2491
+ let ids = null
2492
+ let names = null
2493
+ if (v) {
2494
+ ids = v.reduce((ids, item) => (ids ? (ids + ',') : '') + item.id, '')
2495
+ names = v.reduce((names, item) => (names ? (names + '、') : '') + item.name, '')
2496
+ }
2497
+
2498
+ this.$set(this.notifyInfo, 'role', ids)
2499
+ this.$set(this.notifyInfo, 'role#', names)
2500
+ this.$set(this.elementValues, 'camunda:notifyInfo', JSON.stringify(this.notifyInfo))
2501
+ },
2502
+ editInParamData (item) {
2503
+ this.saveFields = []
2504
+ this.fieldsText = ''
2505
+ this.chooseFields = []
2506
+ if (item.entityFields && item.entityFields.length > 0) {
2507
+ this.fieldsText = item.entityFields.map(item => item.attriLabel).join(',')
2508
+ this.chooseFields = item.entityFields.map(item => item.attriName.includes('|') ? item.attriName.replace('|', '.') : item.attriName)
2509
+ this.saveFields = item.entityFields
2510
+ }
2511
+ this.getInParamData = { ...item }
2512
+ this.inParamItemUid = item.uid
2513
+ this.showInParamModal = true
2514
+ },
2515
+ chooseFieldsHandler () {
2516
+ this.chooseFieldFlag = true
2517
+ if (this.getInParamData.metaId) {
2518
+ this.$http.entityFieldTreeStore({
2519
+ metaId: this.getInParamData.metaId,
2520
+ allSub: true,
2521
+ node: 'root'
2522
+ })
2523
+ .then(data => {
2524
+ // eslint-disable-next-line no-eval
2525
+ const treeField = eval('(' + data + ')')
2526
+ this.chooseFieldstreeField = treeField
2527
+ })
2528
+ }
2529
+ },
2530
+ chooseFieldHandleClose () {
2531
+ // 将已选择的字段修改到configs
2532
+ // 对比fieldList
2533
+ const fieldList = []
2534
+ const allCheckCodes = this.chooseFieldstreeField.map(item => item.code)
2535
+ this.chooseFields.forEach(item => {
2536
+ if (allCheckCodes.includes(item)) return
2537
+ const obj = {}
2538
+ const field = item.replace('.', '|')
2539
+ obj.attriName = field
2540
+ for (let i = 0; i < this.chooseFieldstreeField.length; i++) {
2541
+ const parent = this.chooseFieldstreeField[i]
2542
+ for (let j = 0; j < parent.children.length; j++) {
2543
+ const fieldItem = parent.children[j]
2544
+ if (fieldItem.code.replace('.', '|') === field) {
2545
+ obj.attriLabel = fieldItem.text
2546
+ }
2547
+ }
2548
+ }
2549
+ fieldList.push(obj)
2550
+ })
2551
+ this.fieldsText = fieldList.map(item => item.attriLabel).join(',')
2552
+ this.saveFields = fieldList
2553
+ this.chooseFieldFlag = false
2554
+ },
2555
+ swicthFieldStoreFold (index) {
2556
+ const item = this.chooseFieldstreeField[index]
2557
+ this.$set(this.chooseFieldstreeField, index, { ...item, isUnFold: !item.isUnFold })
2558
+ },
2559
+ selectAllField (value, index) {
2560
+ const fieldList = this.chooseFieldstreeField[index].children || []
2561
+ if (value) {
2562
+ // 添加字段
2563
+ const fieldCodeList = fieldList.map(item => item.code)
2564
+ this.chooseFields = [...new Set([...this.chooseFields, ...fieldCodeList])]
2565
+ } else {
2566
+ // 删除当前列所有字段
2567
+ fieldList.forEach(item => {
2568
+ const selectIndex = this.chooseFields.findIndex(selectItem => selectItem === item.code)
2569
+ if (selectIndex !== -1) {
2570
+ this.$delete(this.chooseFields, selectIndex)
2571
+ }
2572
+ })
2573
+ }
2574
+ },
2575
+ ruleChange (v, item, index) {
2576
+ const verifyItem = { ...item }
2577
+ const verifyData = [...this.verifyData]
2578
+ verifyItem.rule = v
2579
+ verifyData.splice(index, 1, verifyItem)
2580
+ this.$set(this.elementValues, 'camunda:verify', JSON.stringify(verifyData))
2581
+ },
2582
+ changeScopeValue (v) {
2583
+ // this.updateScopeParamsText = v.reduce((total, cur) => {
2584
+ // return total + cur.text
2585
+ // }, '')
2586
+ // this.formDataMetaData
2587
+ if (this.elementValues['camunda:formTypeId'] === '7' && this.elementValues['camunda:messageTemplate']) {
2588
+ this.$set(this.sendMessageData, 'sendPersonScope', v)
2589
+ // this.$set(this.elementValues, 'camunda:sendMessageData', JSON.stringify(this.sendMessageData))
2590
+ } else if (this.elementValues['camunda:formTypeId'] === '6') {
2591
+ this.$set(this.searchData, 'searchCondition', v)
2592
+ this.$set(this.elementValues, 'camunda:searchData', JSON.stringify(this.searchData))
2593
+ } else {
2594
+ this.$set(this.formDataMetaData, 'updateScopeParams', v)
2595
+ }
2596
+ },
2597
+ dataSearchMetaChange (v) {
2598
+ this.elementValues['camunda:formDataSources'] = v
2599
+ this.searchData = {
2600
+ searchCondition: [],
2601
+ sortCondition: [],
2602
+ relationList: [],
2603
+ searchField: '',
2604
+ searchMethod: '',
2605
+ searchResultParams: ''
2606
+ }
2607
+ this.$set(this.elementValues, 'camunda:searchData', JSON.stringify(this.searchData))
2608
+ this.getSearchData()
2609
+ },
2610
+ editMessageParams (item) {
2611
+ this.messageParamData = { ...item }
2612
+ this.showMessageParamModal = true
2613
+ },
2614
+ saveMessageParam () {
2615
+ const messageParams = {}
2616
+ const form = this.$refs.messageParamForm
2617
+ // if (this.elementValues['camunda:formTypeId'] === '7') {
2618
+ // form = this.$refs.messageParamForm
2619
+ // } else if (this.elementValues['camunda:formTypeId'] === '8' || this.elementValues['camunda:formTypeId'] === '4') {
2620
+ // form = this.$refs.APIParamForm
2621
+ // }
2622
+ for (const field in form.model.data) {
2623
+ messageParams[field] = form.model.data[field]
2624
+ }
2625
+ if (this.$_.isEmpty(messageParams.VALUE)) {
2626
+ messageParams.VALUE = ''
2627
+ }
2628
+ if (this.$_.isEmpty(messageParams.VALUEC)) {
2629
+ messageParams.VALUEC = ''
2630
+ }
2631
+ if (this.$_.isEmpty(messageParams.ID)) {
2632
+ messageParams.ID = this.getRandom()
2633
+ this.sendMessageData.messageParams.push({ ...messageParams, TYPE: 'designated' })
2634
+ } else {
2635
+ for (const key in this.sendMessageData.messageParams) {
2636
+ if (this.sendMessageData.messageParams[key].ID === messageParams.ID) {
2637
+ this.sendMessageData.messageParams.splice(key, 1, { ...this.messageParamData, ...messageParams })
2638
+ }
2639
+ }
2640
+ }
2641
+ this.showMessageParamModal = false
2642
+ },
2643
+ deleteApiParams (type, index) {
2644
+ this.sendMessageData[type].splice(index, 1)
2645
+ },
2646
+ deleteMessageParams (index) {
2647
+ this.sendMessageData.messageParams.splice(index, 1)
2648
+ },
2649
+ deleteScopeItem (index) {
2650
+ const attributes = this.formDataMetaData.attributes.splice(index, 1)[0]
2651
+ delete this.formDataMetaData.type[attributes.name]
2652
+ },
2653
+ deleteShuJuJiaGong (index) {
2654
+ this.formDataMetaData.globalParams.splice(index, 1)
2655
+ },
2656
+ deleteSortItem (index) {
2657
+ this.searchData.sortCondition.splice(index, 1)
2658
+ },
2659
+ deleteRelationItem (index) {
2660
+ this.searchData.relationList.splice(index, 1)
2661
+ },
2662
+ addShuJuJiaGong (item) {
2663
+ const index = this.formDataMetaData.globalParams.findIndex(element => {
2664
+ return element.uid === item.uid
2665
+ })
2666
+ if (index < 0) {
2667
+ const data = { type: 'designated', value: '', valueC: '', id: item.id, name: item.name, uid: item.uid }
2668
+ this.formDataMetaData.globalParams.push(data)
2669
+ } else {
2670
+ this.$message.error('已有该数据')
2671
+ }
2672
+ },
2673
+ addUpdateField (item) {
2674
+ const data = { id: item.attribute.id, label: item.attriLabel, name: item.attriName, dataType: item.dataType, entityId: item.attribute.entityId, codeKey: item.attribute.codeKey }
2675
+ this.formDataMetaData.attributes.push(data)
2676
+ this.$set(this.formDataMetaData.type, [data.name], 'designated')
2677
+ this.$set(this.formDataMetaData.value, [data.name], '')
2678
+ this.$set(this.formDataMetaData.data, [data.name], '')
2679
+ // this.formDataMetaData.data[data.name] = ''
2680
+ },
2681
+ addRelationList (item) {
2682
+ const data = { ID: item.ID, TITLE: item.TITLE }
2683
+ let flag = true
2684
+ const index = this.searchData.relationList.findIndex(relation => {
2685
+ return relation.ID === item.ID
2686
+ })
2687
+ if (index >= 0) {
2688
+ flag = false
2689
+ }
2690
+ if (flag) {
2691
+ this.searchData.relationList.push(data)
2692
+ } else {
2693
+ this.$message.error('已添加该关联对象')
2694
+ }
2695
+ },
2696
+ addSearchSortField (item) {
2697
+ const data = { attriName: item.attriName, sort: 'asc' }
2698
+ this.searchData.sortCondition.push(data)
2699
+ },
2700
+ init () {
2701
+ const { modeler } = this
2702
+ modeler.on('root.added', e => {
2703
+ const { element } = e
2704
+ this.element = element
2705
+ })
2706
+ modeler.on('element.click', e => {
2707
+ const { element } = e
2708
+ this.element = null
2709
+ this.$nextTick(() => {
2710
+ this.element = element
2711
+ })
2712
+ })
2713
+
2714
+ modeler.on('selection.changed', e => {
2715
+ this.selectedElements = e.newSelection
2716
+ this.element = e.newSelection[0]
2717
+ this.setDefaultProperties()
2718
+ })
2719
+ modeler.on('element.changed', e => {
2720
+ const { element } = e
2721
+ if (element.type === 'bpmn:Process') {
2722
+ this.globalElement = element
2723
+ }
2724
+ const { element: currentElement } = this
2725
+ if (!currentElement) {
2726
+ return
2727
+ }
2728
+ // update panel, if currently selected element changed
2729
+ if (element.id === currentElement.id) {
2730
+ this.element = element
2731
+ }
2732
+ if (this.element.type !== 'bpmn:Process' && this.element.type !== 'bpmn:UserTask' && this.element.type !== 'bpmn:StartEvent') {
2733
+ this.activeName = 'attribute'
2734
+ }
2735
+ // if (this.element.type === 'bpmn:Process' && this.activeName !== 'attribute' && this.activeName !== 'inparam') {
2736
+ // this.activeName = 'attribute'
2737
+ // }
2738
+ if (this.element.type === 'bpmn:UserTask' && this.activeName === 'inparam' && this.activeName === 'verify') {
2739
+ this.activeName = 'attribute'
2740
+ }
2741
+ // if (this.elementValues['camunda:formTypeId'] === '2' || this.elementValues['camunda:formTypeId'] === '3' || this.elementValues['camunda:formTypeId'] === '6') {
2742
+ if (['2', '3'].includes(this.elementValues['camunda:formTypeId'])) {
2743
+ this.scopeMetaId = this.elementValues['camunda:formDataMeta']
2744
+ } else if (this.elementValues['camunda:formTypeId'] === '6') {
2745
+ if (this.elementValues['camunda:formDataSources'] === '3') {
2746
+ this.scopeMetaId = this.elementValues['camunda:formDataMeta']
2747
+ } else {
2748
+ this.scopeMetaId = this.businessMetaId
2749
+ }
2750
+ } else if (this.elementValues['camunda:formTypeId'] === '7') {
2751
+ // this.scopeMetaId = this.businessMetaId
2752
+ this.scopeMetaId = 'FM_USER'
2753
+ }
2754
+ this.updateScopeParams = []
2755
+ // this.updateScopeParamsText = ''
2756
+ this.initElementExtendProperties()
2757
+ })
2758
+ },
2759
+ setDefaultProperties () {
2760
+ const { element } = this
2761
+ if (element) {
2762
+ const { type, businessObject } = element
2763
+ const { name } = businessObject
2764
+ if (this.verifyIsEvent(type)) {
2765
+ this.eventType = businessObject.eventDefinitions ? businessObject.eventDefinitions[0].$type : ''
2766
+ } else if (this.verifyIsTask(type)) {
2767
+ this.taskType = type
2768
+ }
2769
+ element.name = name
2770
+ }
2771
+ },
2772
+ verifyIsEvent (type) {
2773
+ return type.includes('Event')
2774
+ },
2775
+ verifyIsTask (type) {
2776
+ return type.includes('Task')
2777
+ },
2778
+ /**
2779
+ * 改变控件触发的事件
2780
+ * @param { Object } input的Event
2781
+ * @param { String } 要修改的属性的名称
2782
+ */
2783
+ changeField (event, type) {
2784
+ const value = event.target.value
2785
+ this.element[type] = value
2786
+ const properties = {}
2787
+ properties[type] = value
2788
+ if (type === 'color') {
2789
+ this.onChangeColor(value)
2790
+ }
2791
+ this.updateProperties(properties)
2792
+ },
2793
+ updateName (name) {
2794
+ const { modeler, element } = this
2795
+ const modeling = modeler.get('modeling')
2796
+ modeling.updateLabel(element, name)
2797
+ },
2798
+ onChangeColor (color) {
2799
+ const { element } = this
2800
+ const modeling = this.modeler.get('modeling')
2801
+ modeling.setColor(element, {
2802
+ fill: null,
2803
+ stroke: color
2804
+ })
2805
+ },
2806
+ changeEventType (event) {
2807
+ const { modeler, element } = this
2808
+ const value = event.target.value
2809
+ const bpmnReplace = modeler.get('bpmnReplace')
2810
+ this.eventType = value
2811
+ bpmnReplace.replaceElement(element, {
2812
+ type: element.businessObject.$type,
2813
+ eventDefinitionType: value
2814
+ })
2815
+ },
2816
+ changeTaskType (event) {
2817
+ const { modeler, element } = this
2818
+ const value = event.target.value
2819
+ const bpmnReplace = modeler.get('bpmnReplace')
2820
+ bpmnReplace.replaceElement(element, {
2821
+ type: value
2822
+ })
2823
+ },
2824
+ /**
2825
+ * 更新元素属性
2826
+ * @param { Object } 要更新的属性, 例如 { name: '' }
2827
+ */
2828
+ updateProperties (properties) {
2829
+ const { modeler, element } = this
2830
+ const modeling = modeler.get('modeling')
2831
+ modeling.updateProperties(element, properties)
2832
+ },
2833
+ updateGlobalProperties (properties) {
2834
+ const { modeler } = this
2835
+ const modeling = modeler.get('modeling')
2836
+ modeling.updateProperties(this.globalElement, properties)
2837
+ },
2838
+ addCheckPerson () {
2839
+ this.auditorInfo = {
2840
+ type: 1
2841
+ }
2842
+ this.initCondition = []
2843
+ this.fields = []
2844
+ this.editAuditorIndex = ''
2845
+ this.showAuditorModal = true
2846
+ },
2847
+ addNotifyUser () {
2848
+ this.auditorInfo = {
2849
+ type: 1
2850
+ }
2851
+ this.editNotifyIndex = ''
2852
+ this.showNotifyModal = true
2853
+ },
2854
+ saveNotifyModal () {
2855
+ const notifier = [...this.notifier]
2856
+ const params = {
2857
+ type: this.notifyInfo.type,
2858
+ role: this.notifyInfo.role,
2859
+ 'role#': this.notifyInfo['role#'],
2860
+ user: this.notifyInfo.user,
2861
+ 'user#': this.notifyInfo['user#'],
2862
+ upType: this.notifyInfo.upType
2863
+ }
2864
+ if (this.notifyInfo.dynamicUser) {
2865
+ params.dynamicUser = this.notifyInfo.dynamicUser
2866
+ }
2867
+ if (this.notifyInfo.scope) {
2868
+ params.scope = this.notifyInfo.scope
2869
+ }
2870
+ if (this.notifyInfo.applyerScope) {
2871
+ params.applyerScope = this.notifyInfo.applyerScope
2872
+ }
2873
+ if (this.notifyInfo.applyerDeptId) {
2874
+ params.applyerDeptId = this.notifyInfo.applyerDeptId
2875
+ params['applyerDeptId#'] = this.notifyInfo['applyerDeptId#']
2876
+ }
2877
+ if (this.editNotifyIndex !== '') {
2878
+ notifier.splice(this.editNotifyIndex, 1, params)
2879
+ } else {
2880
+ notifier.push(params)
2881
+ }
2882
+ this.$set(this.elementValues, 'camunda:notifier', JSON.stringify(notifier))
2883
+ this.editNotifyIndex = ''
2884
+ this.showNotifyModal = false
2885
+ },
2886
+ chooseAuditorApplyerDeptId (v) {
2887
+ let ids = null
2888
+ let names = null
2889
+ if (v) {
2890
+ ids = v.reduce((ids, item) => (ids ? (ids + ',') : '') + item.id, '')
2891
+ names = v.reduce((names, item) => (names ? (names + '、') : '') + item.name, '')
2892
+ }
2893
+
2894
+ this.$set(this.auditorInfo, 'applyerDeptId', ids)
2895
+ this.$set(this.auditorInfo, 'applyerDeptId#', names)
2896
+ },
2897
+ chooseNotifyApplyerDeptId (v) {
2898
+ let ids = null
2899
+ let names = null
2900
+ if (v) {
2901
+ ids = v.reduce((ids, item) => (ids ? (ids + ',') : '') + item.id, '')
2902
+ names = v.reduce((names, item) => (names ? (names + '、') : '') + item.name, '')
2903
+ }
2904
+
2905
+ this.$set(this.notifyInfo, 'applyerDeptId', ids)
2906
+ this.$set(this.notifyInfo, 'applyerDeptId#', names)
2907
+ },
2908
+ editAuditor (auditor, index) {
2909
+ // 设置当前值
2910
+ this.auditorInfo = { ...auditor }
2911
+ this.showAuditorModal = true
2912
+ this.editAuditorIndex = index
2913
+ // 设置默认字段和查询条件
2914
+ },
2915
+ saveAuditorModal () {
2916
+ const auditor = [...this.auditor]
2917
+ const params = {
2918
+ type: this.auditorInfo.type,
2919
+ role: this.auditorInfo.role,
2920
+ 'role#': this.auditorInfo['role#'],
2921
+ user: this.auditorInfo.user,
2922
+ 'user#': this.auditorInfo['user#'],
2923
+ upType: this.auditorInfo.upType,
2924
+ moreUpType: this.auditorInfo.moreUpType
2925
+ }
2926
+ if (this.auditorInfo.dynamicUser) {
2927
+ params.dynamicUser = this.auditorInfo.dynamicUser
2928
+ }
2929
+ if (this.auditorInfo.scope) {
2930
+ params.scope = this.auditorInfo.scope
2931
+ }
2932
+ if (this.auditorInfo.applyerScope) {
2933
+ params.applyerScope = this.auditorInfo.applyerScope
2934
+ }
2935
+ if (this.auditorInfo.applyerDeptId) {
2936
+ params.applyerDeptId = this.auditorInfo.applyerDeptId
2937
+ params['applyerDeptId#'] = this.auditorInfo['applyerDeptId#']
2938
+ }
2939
+ if (this.editAuditorIndex !== '') {
2940
+ auditor.splice(this.editAuditorIndex, 1, params)
2941
+ } else {
2942
+ auditor.push(params)
2943
+ }
2944
+ this.$set(this.elementValues, 'camunda:auditor', JSON.stringify(auditor))
2945
+ this.showAuditorModal = false
2946
+ this.editAuditorIndex = ''
2947
+ },
2948
+ deleteAuditor (index) {
2949
+ const auditor = [...this.auditor]
2950
+ auditor.splice(index, 1)
2951
+ this.$set(this.elementValues, 'camunda:auditor', JSON.stringify(auditor))
2952
+ },
2953
+ editNotify (notify, index) {
2954
+ this.notifyInfo = { ...notify }
2955
+ this.showNotifyModal = true
2956
+ this.editNotifyIndex = index
2957
+ },
2958
+ deleteNotifyUser (index) {
2959
+ const notifier = [...this.notifier]
2960
+ notifier.splice(index, 1)
2961
+ this.$set(this.elementValues, 'camunda:notifier', JSON.stringify(notifier))
2962
+ },
2963
+ saveMessage () {
2964
+ const messageItem = {}
2965
+ const form = this.$refs.messageForm
2966
+ for (const field in form.model.data) {
2967
+ messageItem[field] = form.model.data[field]
2968
+ }
2969
+ const messageData = [...this.messageData]
2970
+ if (this.messageIndex !== -1) {
2971
+ messageData.splice(this.messageIndex, 1, messageItem)
2972
+ } else {
2973
+ messageData.push(messageItem)
2974
+ }
2975
+ this.$set(this.elementValues, 'camunda:message', JSON.stringify(messageData))
2976
+ this.messageIndex = -1
2977
+ this.showMessageModal = false
2978
+ },
2979
+ deleteMessage (index) {
2980
+ const messageData = [...this.messageData]
2981
+ messageData.splice(index, 1)
2982
+ this.$set(this.elementValues, 'camunda:message', JSON.stringify(messageData))
2983
+ },
2984
+ saveListener () {
2985
+ const listenerItem = {}
2986
+ const form = this.$refs.listenerForm
2987
+ for (const field in form.model.data) {
2988
+ listenerItem[field] = form.model.data[field]
2989
+ }
2990
+ const listenerData = [...this.listenerData]
2991
+ if (this.listenerIndex !== -1) {
2992
+ listenerData.splice(this.listenerIndex, 1, listenerItem)
2993
+ } else {
2994
+ listenerData.push(listenerItem)
2995
+ }
2996
+ this.$set(this.elementValues, 'camunda:listener', JSON.stringify(listenerData))
2997
+ this.listenerIndex = -1
2998
+ this.showListenerModal = false
2999
+ },
3000
+ deleteListener (index) {
3001
+ const listenerData = [...this.listenerData]
3002
+ listenerData.splice(index, 1)
3003
+ this.$set(this.elementValues, 'camunda:listener', JSON.stringify(listenerData))
3004
+ },
3005
+ saveVerify () {
3006
+ const verifyItem = { ...this.verifyItem }
3007
+ const form = this.$refs.verifyForm
3008
+ for (const field in form.model.data) {
3009
+ verifyItem[field] = form.model.data[field]
3010
+ }
3011
+ const verifyData = [...this.verifyData]
3012
+ if (this.verifyIndex !== -1) {
3013
+ verifyData.splice(this.verifyIndex, 1, verifyItem)
3014
+ } else {
3015
+ verifyItem.rule = ''
3016
+ verifyData.push(verifyItem)
3017
+ }
3018
+ this.$set(this.elementValues, 'camunda:verify', JSON.stringify(verifyData))
3019
+ this.verifyIndex = -1
3020
+ this.showVerifyModal = false
3021
+ },
3022
+ deleteVerify (index) {
3023
+ const verifyData = [...this.verifyData]
3024
+ verifyData.splice(index, 1)
3025
+ this.$set(this.elementValues, 'camunda:verify', JSON.stringify(verifyData))
3026
+ },
3027
+ saveTable () {
3028
+ this.editListenerId = ''
3029
+ this.editMessageId = ''
3030
+ },
3031
+ cellClick (row, column, cell, event) {
3032
+ event.stopPropagation()
3033
+ },
3034
+ settingScope () {
3035
+ // 7 消息发送
3036
+ if (this.elementValues['camunda:formTypeId'] !== '7') {
3037
+ const formDataMetaId = this.elementValues['camunda:formDataMeta']
3038
+ if (this.$_.isEmpty(formDataMetaId)) {
3039
+ this.$message.error('请先选择数据对象')
3040
+ return
3041
+ }
3042
+ }
3043
+ this.showScopeDialog = true
3044
+ },
3045
+ settingSearchScope () {
3046
+ if (this.formDataSources === '3') {
3047
+ const formDataMetaId = this.elementValues['camunda:formDataMeta']
3048
+ if (this.$_.isEmpty(formDataMetaId)) {
3049
+ this.$message.error('请先选择数据对象')
3050
+ return
3051
+ }
3052
+ }
3053
+ this.showScopeDialog = true
3054
+ },
3055
+ async getFormDataMetaData () {
3056
+ const formDataMetaId = this.elementValues['camunda:formDataMeta']
3057
+ if (this.$_.isEmpty(formDataMetaId) && this.formDataSources === '3') {
3058
+ this.$set(this.elementValues, 'camunda:formDataSources', '1')
3059
+ this.$message.error('请先选择数据对象')
3060
+ this.initFormDataMetaData()
3061
+ return
3062
+ }
3063
+ let meta = this.getMeta(formDataMetaId)
3064
+ if (!meta && formDataMetaId) {
3065
+ await this.$store.dispatch({
3066
+ type: 'ADD_META',
3067
+ metaId: formDataMetaId
3068
+ }).then(data => {
3069
+ meta = data
3070
+ })
3071
+ }
3072
+ if ((this.element.typeId === '3' || this.elementValues['camunda:formTypeId'] === '3') && formDataMetaId) {
3073
+ this.$FieldFactory.createFields({
3074
+ meta: meta,
3075
+ metaId: formDataMetaId
3076
+ })
3077
+ .then(data => {
3078
+ this.formDataField = [...data]
3079
+ })
3080
+ }
3081
+ if (this.elementValues['camunda:formTypeId'] === '5' && this.formDataSources === '1') {
3082
+ this.formDataField = [...this.businessMeta]
3083
+ this.initFormDataMetaData()
3084
+ } else if (this.elementValues['camunda:formTypeId'] === '5' && this.formDataSources === '4') {
3085
+ this.formDataField = [...this.inParamData]
3086
+ this.$set(this.formDataMetaData, 'globalParams', [])
3087
+ for (let i = 0; i < this.inParamData.length; i++) {
3088
+ if (this.inParamData[i].id === this.loopListParam) {
3089
+ const businessMetaId = this.inParamData[i].metaId
3090
+ let busmeta = null
3091
+ if (this.metas[businessMetaId]) {
3092
+ busmeta = this.metas[businessMetaId]
3093
+ } else {
3094
+ await this.$store.dispatch({
3095
+ type: 'ADD_META',
3096
+ metaId: businessMetaId
3097
+ }).then(meta => {
3098
+ busmeta = meta
3099
+ })
3100
+ }
3101
+ this.$FieldFactory.createFields({
3102
+ meta: busmeta,
3103
+ metaId: businessMetaId
3104
+ })
3105
+ .then(data => {
3106
+ this.loopMeta = [...data]
3107
+ })
3108
+ }
3109
+ }
3110
+ } else if ((this.elementValues['camunda:formTypeId'] === '5' || this.elementValues['camunda:formTypeId'] === '3') && this.formDataSources === '5' && !this.$_.isEmpty(this.elementValues['camunda:loopListParam'])) {
3111
+ for (let i = 0; i < this.inParamData.length; i++) {
3112
+ if (this.inParamData[i].id === this.loopListParam) {
3113
+ const businessMetaId = this.inParamData[i].metaId
3114
+ let busmeta = null
3115
+ if (this.metas[businessMetaId]) {
3116
+ busmeta = this.metas[businessMetaId]
3117
+ } else {
3118
+ await this.$store.dispatch({
3119
+ type: 'ADD_META',
3120
+ metaId: businessMetaId
3121
+ }).then(meta => {
3122
+ busmeta = meta
3123
+ })
3124
+ }
3125
+ this.$FieldFactory.createFields({
3126
+ meta: busmeta,
3127
+ metaId: businessMetaId
3128
+ })
3129
+ .then(data => {
3130
+ this.formDataField = [...data]
3131
+ })
3132
+ }
3133
+ }
3134
+ }
3135
+ // 获取数据加工的动态参数
3136
+ if (this.elementValues['camunda:formTypeId'] === '5') {
3137
+ this.getRuleVarJiaGong()
3138
+ }
3139
+ // if (this.elementValues['camunda:formTypeId'] === '1' && this.formDataSources === '3') {
3140
+ // this.addRecordParamData = []
3141
+ // this.getAddRecordParamData()
3142
+ // }
3143
+ // else if (this.$_.isEmpty(formDataMetaId) && this.formDataSources !== '3') {
3144
+ // return
3145
+ // }
3146
+ if (!this.$_.isEmpty(this.elementValues['camunda:formDataMetaData']) && this.elementValues['camunda:formDataMetaData'] !== '{}') {
3147
+ this.formDataMetaData = JSON.parse(this.elementValues['camunda:formDataMetaData'])
3148
+ if (this.elementValues['camunda:formTypeId'] === '2' || this.elementValues['camunda:formTypeId'] === '3') {
3149
+ this.updateScopeParams = this.formDataMetaData.updateScopeParams
3150
+ // if (this.updateScopeParams) {
3151
+ // this.updateScopeParamsText = this.updateScopeParams.reduce((total, cur) => {
3152
+ // return total + cur.text
3153
+ // }, '')
3154
+ // }
3155
+ }
3156
+ if (this.elementValues['camunda:formTypeId'] === '5' && this.formDataSources === '4') {
3157
+ if (!this.formDataMetaData.globalParams) {
3158
+ this.$set(this.formDataMetaData, 'globalParams', [])
3159
+ }
3160
+ }
3161
+ return
3162
+ }
3163
+ this.initFormDataMetaData()
3164
+ if ((this.element.typeId === '1' || this.elementValues['camunda:formTypeId'] === '1') && !this.$_.isEmpty(formDataMetaId)) {
3165
+ for (const item in meta.attributes) {
3166
+ const dataItem = meta.attributes[item]
3167
+ const data = { id: dataItem.id, label: dataItem.label, name: dataItem.name, entityId: dataItem.entityId, codeKey: dataItem.codeKey }
3168
+ if (dataItem.isKey === '1') {
3169
+ // continue
3170
+ }
3171
+ this.formDataMetaData.attributes.push(data)
3172
+ // this.formDataMetaData.type[data.name] = 'designated'
3173
+ this.$set(this.formDataMetaData.type, [data.name], 'designated')
3174
+ this.$set(this.formDataMetaData.value, [data.name], '')
3175
+ this.$set(this.formDataMetaData.data, [data.name], '')
3176
+ // designated指定值 form表单 dynamic 动态
3177
+ // this.formDataMetaData.data[data.name] = ''
3178
+ }
3179
+ }
3180
+ },
3181
+ async getRuleVarJiaGong () {
3182
+ this.ruleVarJiaGong = []
3183
+ this.ruleVarJiaGong = [...this.ruleVariable]
3184
+ for (let i = 0; i < this.inParamData.length; i++) {
3185
+ if (this.inParamData[i].metaId) {
3186
+ const index = this.ruleVarJiaGong.findIndex(item => {
3187
+ return item.code === this.inParamData[i].metaId
3188
+ })
3189
+ if (index !== -1) continue
3190
+ const metaId = this.inParamData[i].metaId
3191
+ let meta = this.getMeta(metaId)
3192
+ if (!meta && metaId) {
3193
+ await this.$store.dispatch({
3194
+ type: 'ADD_META',
3195
+ metaId: metaId
3196
+ }).then(data => {
3197
+ meta = data
3198
+ })
3199
+ }
3200
+ const children = []
3201
+ for (const item in meta.attributes) {
3202
+ const dataItem = meta.attributes[item]
3203
+ const data = { code: meta.code + '.' + dataItem.name, text: '循环对象-' + dataItem.label, leaf: true }
3204
+ children.push(data)
3205
+ }
3206
+ this.ruleVarJiaGong.push({ text: '循环对象-' + meta.name, leaf: false, code: meta.id, children: [...children] })
3207
+ }
3208
+ }
3209
+ },
3210
+ async getAddRecordParamData () {
3211
+ this.addRecordParamData = []
3212
+ for (let i = 0; i < this.inParamData.length; i++) {
3213
+ if (this.inParamData[i].metaId && this.inParamData[i].type === '2') {
3214
+ const metaId = this.inParamData[i].metaId
3215
+ let meta = this.getMeta(metaId)
3216
+ if (!meta && metaId) {
3217
+ await this.$store.dispatch({
3218
+ type: 'ADD_META',
3219
+ metaId: metaId
3220
+ }).then(data => {
3221
+ meta = data
3222
+ })
3223
+ }
3224
+ const children = []
3225
+ for (const item in meta.attributes) {
3226
+ const dataItem = meta.attributes[item]
3227
+ const data = { id: dataItem.name, name: dataItem.label, upId: this.inParamData[i].id }
3228
+ children.push(data)
3229
+ }
3230
+ this.addRecordParamData.push({ ...this.inParamData[i], children: children })
3231
+ } else {
3232
+ this.addRecordParamData.push({ ...this.inParamData[i], children: [] })
3233
+ }
3234
+ }
3235
+ },
3236
+ saveSearchData () {
3237
+ this.$set(this.elementValues, 'camunda:searchData', JSON.stringify(this.searchData))
3238
+ if (this.searchResult === '1' || this.searchResult === '2') {
3239
+ this.changeSearchResultParams(this.searchData.searchResultParams)
3240
+ }
3241
+ this.$message.success('保存成功')
3242
+ },
3243
+ saveMessageData () {
3244
+ if (this.elementValues['camunda:formTypeId'] === '7') {
3245
+ const data = { ...this.sendMessageData, messageReceiver: this.messageReceiver }
3246
+ this.$set(this.elementValues, 'camunda:sendMessageData', JSON.stringify(data))
3247
+ } else {
3248
+ this.$set(this.elementValues, 'camunda:sendMessageData', JSON.stringify(this.sendMessageData))
3249
+ }
3250
+ this.$message.success('保存成功')
3251
+ },
3252
+ saveMetaDataEntity () {
3253
+ this.$set(this.elementValues, 'camunda:formDataMetaData', JSON.stringify(this.formDataMetaData))
3254
+ if (this.elementValues['camunda:formTypeId'] === '1') {
3255
+ let formDataMetaId = ''
3256
+ if (this.formDataSources === '1') {
3257
+ formDataMetaId = this.businessMetaId
3258
+ } else {
3259
+ formDataMetaId = this.elementValues['camunda:formDataMeta']
3260
+ }
3261
+ for (let key = 0; key < this.inParamData.length; key++) {
3262
+ if (this.inParamData[key].id === this.formDataMetaData.resultParams) {
3263
+ if (this.inParamData[key].type !== '1') {
3264
+ this.inParamData[key].metaId = formDataMetaId
3265
+ }
3266
+ }
3267
+ }
3268
+ this.getAddRecordParamData()
3269
+ this.updateGlobalProperties({ 'camunda:inParam': JSON.stringify(this.inParamData) })
3270
+ }
3271
+ this.$message.success('保存成功')
3272
+ },
3273
+ addResultParamsChange (v) {
3274
+ this.$set(this.elementValues, 'camunda:formDataMetaData', JSON.stringify(this.formDataMetaData))
3275
+ },
3276
+ addLoopListParamChange (v) {
3277
+ this.$set(this.elementValues, 'camunda:loopListParam', v)
3278
+ },
3279
+ addLoopTypeChange (v) {
3280
+ this.$set(this.elementValues, 'camunda:loopType', v)
3281
+ },
3282
+ spStyleChange (v) {
3283
+ const { modeler, element } = this
3284
+ const moddle = modeler.get('moddle')
3285
+ const modeling = modeler.get('modeling')
3286
+ let loopCharacteristicsObject = null
3287
+ if (v === '1' || v === '2') {
3288
+ // 并行多实例
3289
+ loopCharacteristicsObject = moddle.create('bpmn:MultiInstanceLoopCharacteristics')
3290
+ } else {
3291
+ // 多实例串行
3292
+ loopCharacteristicsObject = moddle.create('bpmn:MultiInstanceLoopCharacteristics', { isSequential: true })
3293
+ }
3294
+ modeling.updateProperties(element, {
3295
+ loopCharacteristics: loopCharacteristicsObject
3296
+ })
3297
+ this.elementValues['camunda:spStyle'] = v
3298
+ },
3299
+ spOperateChange (v) {
3300
+ const arr = [...v]
3301
+ if (arr.length > 0) {
3302
+ this.elementValues['camunda:spOperate'] = JSON.stringify(arr)
3303
+ } else {
3304
+ this.elementValues['camunda:spOperate'] = JSON.stringify([])
3305
+ }
3306
+ },
3307
+ initElementExtendProperties () {
3308
+ this.formDataSources = this.elementValues['camunda:formDataSources']
3309
+ if (!this.$_.isEmpty(this.elementValues['camunda:formDataMetaData']) && this.elementValues['camunda:formDataMetaData'] !== '{}') {
3310
+ this.formDataMetaData = JSON.parse(this.elementValues['camunda:formDataMetaData'])
3311
+ }
3312
+ if (!this.$_.isEmpty(this.elementValues['camunda:inParam']) && this.elementValues['camunda:inParam'] !== '[]' && this.element.type === 'bpmn:Process') {
3313
+ this.inParamData = JSON.parse(this.elementValues['camunda:inParam'])
3314
+ const arr = this.inParamData.map(item => ({ code: item.id, text: item.name, leaf: true }))
3315
+ this.ruleVariable = [{ text: '流程参数', leaf: false, code: 'liucheng', children: [...arr] }]
3316
+ // this.defineDynamicParams = this.inParamData.map(item => ({ id: item.id, name: item.name }))
3317
+ this.getAddRecordParamData()
3318
+ }
3319
+ if (this.elementValues['camunda:formTypeId'] === '4' || this.elementValues['camunda:formTypeId'] === '9' || this.elementValues['camunda:formTypeId'] === '10') {
3320
+ this.getDataSyncData()
3321
+ } else if (this.elementValues['camunda:formTypeId'] === '7') {
3322
+ this.getMessageData()
3323
+ } else if (this.elementValues['camunda:formTypeId'] === '8') {
3324
+ this.getApiData()
3325
+ } else if (this.elementValues['camunda:formTypeId'] === '6') {
3326
+ this.getSearchData()
3327
+ } else if (this.element.type.includes('Task') && !this.element.type.includes('ManualTask')) {
3328
+ const { 'camunda:spStyle': spStyle = '' } = this.elementValues
3329
+ const { 'camunda:spOperate': spOperate = '[]' } = this.elementValues
3330
+ this.spStyle = spStyle
3331
+ this.spOperate = JSON.parse(spOperate)
3332
+ } else {
3333
+ this.getinclusiveGatewayData()
3334
+ this.getFormDataMetaData()
3335
+ }
3336
+ },
3337
+ getinclusiveGatewayData () {
3338
+ this.loopListParam = this.elementValues['camunda:loopListParam']
3339
+ this.loopType = this.elementValues['camunda:loopType']
3340
+ },
3341
+ async getSearchData () {
3342
+ this.searchResult = this.elementValues['camunda:searchResult']
3343
+ // if (this.formDataSources === '1') {
3344
+ // this.elementValues['camunda:formDataMeta'] = this.businessMetaId
3345
+ // }
3346
+ const formDataMetaId = this.elementValues['camunda:formDataMeta']
3347
+ this.getEntityRelation(formDataMetaId || this.businessMetaId)
3348
+ if (this.formDataSources === '3') {
3349
+ let meta = this.getMeta(formDataMetaId)
3350
+ if (!meta && formDataMetaId) {
3351
+ await this.$store.dispatch({
3352
+ type: 'ADD_META',
3353
+ metaId: formDataMetaId
3354
+ }).then(data => {
3355
+ meta = data
3356
+ })
3357
+ }
3358
+ this.$FieldFactory.createFields({
3359
+ meta: meta,
3360
+ metaId: formDataMetaId
3361
+ })
3362
+ .then(data => {
3363
+ this.formDataField = [...data]
3364
+ })
3365
+ } else if (this.formDataSources === '1') {
3366
+ this.formDataField = [...this.businessMeta]
3367
+ }
3368
+ if (!this.$_.isEmpty(this.elementValues['camunda:searchData']) && this.elementValues['camunda:searchData'] !== '{}') {
3369
+ this.searchData = JSON.parse(this.elementValues['camunda:searchData'])
3370
+ if (this.searchData.searchCondition) {
3371
+ this.updateScopeParams = this.searchData.searchCondition
3372
+ // this.updateScopeParamsText = this.updateScopeParams.reduce((total, cur) => {
3373
+ // return total + cur.text
3374
+ // }, '')
3375
+ }
3376
+ if (!this.searchData.relationList) {
3377
+ this.$set(this.searchData, 'relationList', [])
3378
+ }
3379
+ } else {
3380
+ this.searchData = {
3381
+ searchCondition: [],
3382
+ sortCondition: [],
3383
+ relationList: [],
3384
+ searchField: '',
3385
+ searchMethod: '',
3386
+ searchResultParams: ''
3387
+ }
3388
+ }
3389
+ },
3390
+ getEntityRelation (currentMetaId) {
3391
+ this.$http.list({
3392
+ entityId: 'FM_ENTITY_RELATION',
3393
+ 'scope.ENTITY_B': currentMetaId
3394
+ })
3395
+ .then(data => {
3396
+ this.relationList = [...data.entitys]
3397
+ })
3398
+ // this.$http.$get({
3399
+ // entityId: 'FM_ENTITY_RELATION',
3400
+ // action: 'getEntityRelationTree',
3401
+ // mainEntity: currentMetaId
3402
+ // })
3403
+ // .then(data => {
3404
+ // // // data.forEach(relation => {
3405
+ // // // relation.label = relation.title
3406
+ // // // relation.value = relation.flag
3407
+ // // // })
3408
+ // // this.relationList = data.map(item => ({ title: item.title, id: item.id }))
3409
+ // })
3410
+ },
3411
+ getDataSyncData () {
3412
+ if (!this.$_.isEmpty(this.elementValues['camunda:sendMessageData']) && this.elementValues['camunda:sendMessageData'] !== '{}') {
3413
+ this.sendMessageData = JSON.parse(this.elementValues['camunda:sendMessageData'])
3414
+ if (!this.sendMessageData.messageParams || this.sendMessageData.messageParams.length === 0) {
3415
+ this.sendMessageData = {
3416
+ messageParams: []
3417
+ }
3418
+ }
3419
+ } else {
3420
+ const messageTemplate = this.elementValues['camunda:messageTemplate']
3421
+ if (this.$_.isEmpty(messageTemplate)) {
3422
+ this.sendMessageData = {
3423
+ messageParams: []
3424
+ }
3425
+ }
3426
+ }
3427
+ },
3428
+ getApiData () {
3429
+ const messageTemplate = this.elementValues['camunda:messageTemplate']
3430
+ if (this.$_.isEmpty(messageTemplate)) {
3431
+ // this.$message.info('请选择调用接口')
3432
+ this.sendMessageData = {
3433
+ messageInParams: [],
3434
+ messageOutParams: []
3435
+ }
3436
+ return
3437
+ }
3438
+ if (!this.$_.isEmpty(this.elementValues['camunda:sendMessageData']) && this.elementValues['camunda:sendMessageData'] !== '{}') {
3439
+ this.sendMessageData = JSON.parse(this.elementValues['camunda:sendMessageData'])
3440
+ if (!this.sendMessageData.messageInParams || this.sendMessageData.messageInParams.length === 0 || !this.sendMessageData.messageOutParams || this.sendMessageData.messageOutParams.length === 0) {
3441
+ this.$http.list({
3442
+ entityId: 'FM_API_PARAM',
3443
+ 'scope.API': messageTemplate
3444
+ })
3445
+ .then(data => {
3446
+ const arr = [...data.entitys]
3447
+ const arr1 = arr.filter(item => {
3448
+ return item.API_TYPE === 'input'
3449
+ })
3450
+ const arr2 = arr.filter(item => {
3451
+ return item.API_TYPE === 'output'
3452
+ })
3453
+ arr1.forEach(item => {
3454
+ item.TYPE = 'designated'
3455
+ item.VALUE = ''
3456
+ })
3457
+ arr2.forEach(item => {
3458
+ item.VALUE = ''
3459
+ item.TYPE = 'params'
3460
+ })
3461
+ if (!this.sendMessageData.messageInParams || this.sendMessageData.messageInParams.length === 0) {
3462
+ this.sendMessageData.messageInParams = [...arr1]
3463
+ }
3464
+ if (!this.sendMessageData.messageOutParams || this.sendMessageData.messageOutParams.length === 0) {
3465
+ this.sendMessageData.messageOutParams = [...arr2]
3466
+ }
3467
+ // this.sendMessageData.messageInParams = [...arr1]
3468
+ // this.sendMessageData.messageOutParams = [...arr2]
3469
+ })
3470
+ }
3471
+ } else {
3472
+ this.$http.list({
3473
+ entityId: 'FM_API_PARAM',
3474
+ 'scope.API': messageTemplate
3475
+ })
3476
+ .then(data => {
3477
+ const arr = [...data.entitys]
3478
+ const arr1 = arr.filter(item => {
3479
+ return item.API_TYPE === 'input'
3480
+ })
3481
+ const arr2 = arr.filter(item => {
3482
+ return item.API_TYPE === 'output'
3483
+ })
3484
+ arr1.forEach(item => {
3485
+ item.TYPE = 'designated'
3486
+ item.VALUE = ''
3487
+ })
3488
+ arr2.forEach(item => {
3489
+ item.VALUE = ''
3490
+ item.TYPE = 'params'
3491
+ })
3492
+ this.sendMessageData.messageInParams = [...arr1]
3493
+ this.sendMessageData.messageOutParams = [...arr2]
3494
+ })
3495
+ }
3496
+ },
3497
+ getMessageData () {
3498
+ const messageTemplate = this.elementValues['camunda:messageTemplate']
3499
+ if (this.$_.isEmpty(messageTemplate)) {
3500
+ // this.$message.info('请先选择消息模板')
3501
+ this.initSendMessageData()
3502
+ return
3503
+ }
3504
+ if (!this.$_.isEmpty(this.elementValues['camunda:sendMessageData']) && this.elementValues['camunda:sendMessageData'] !== '{}') {
3505
+ this.sendMessageData = JSON.parse(this.elementValues['camunda:sendMessageData'])
3506
+ if (this.sendMessageData.sendPersonScope) {
3507
+ this.updateScopeParams = this.sendMessageData.sendPersonScope
3508
+ // this.updateScopeParamsText = this.updateScopeParams.reduce((total, cur) => {
3509
+ // return total + cur.text
3510
+ // }, '')
3511
+ }
3512
+ if (this.sendMessageData.messageReceiver) {
3513
+ this.messageReceiver = { ...this.sendMessageData.messageReceiver }
3514
+ }
3515
+ if (!this.sendMessageData.messageParams || this.sendMessageData.messageParams.length === 0) {
3516
+ this.$http.list({
3517
+ entityId: 'FM_MESSAGE_PARAM',
3518
+ 'scope.TEMPLATE': messageTemplate
3519
+ })
3520
+ .then(data => {
3521
+ const arr = [...data.entitys]
3522
+ arr.forEach(item => {
3523
+ item.TYPE = 'designated'
3524
+ item.VALUE = ''
3525
+ // item.FIELD = ''
3526
+ })
3527
+ this.sendMessageData.messageParams = [...arr]
3528
+ })
3529
+ }
3530
+ } else {
3531
+ this.$http.list({
3532
+ entityId: 'FM_MESSAGE_PARAM',
3533
+ 'scope.TEMPLATE': messageTemplate
3534
+ })
3535
+ .then(data => {
3536
+ const arr = [...data.entitys]
3537
+ arr.forEach(item => {
3538
+ item.TYPE = 'designated'
3539
+ item.VALUE = ''
3540
+ // item.FIELD = ''
3541
+ })
3542
+ this.sendMessageData.messageParams = [...arr]
3543
+ })
3544
+ }
3545
+ },
3546
+ initSendMessageData () {
3547
+ this.sendMessageData = {
3548
+ sendPersonScope: [],
3549
+ messageParams: []
3550
+ }
3551
+ this.messageReceiver = {
3552
+ TYPE: 'designated',
3553
+ VALUE: ''
3554
+ }
3555
+ },
3556
+ initFormDataMetaData () {
3557
+ this.formDataMetaData = {
3558
+ globalParams: [],
3559
+ attributes: [],
3560
+ type: {},
3561
+ data: {},
3562
+ value: {},
3563
+ resultParams: ''
3564
+ }
3565
+ },
3566
+ saveInParam () {
3567
+ const inParamItem = {}
3568
+ const form = this.$refs.inParamForm
3569
+ for (const field in form.model.data) {
3570
+ inParamItem[field] = form.model.data[field]
3571
+ }
3572
+ if (this.$_.isEmpty(inParamItem.uid)) {
3573
+ inParamItem.uid = this.getRandom()
3574
+ inParamItem.children = []
3575
+ this.inParamData.push(inParamItem)
3576
+ } else {
3577
+ for (const key in this.inParamData) {
3578
+ if (this.inParamData[key].uid === inParamItem.uid) {
3579
+ if (this.saveFields.length > 0) {
3580
+ inParamItem.entityFields = this.saveFields
3581
+ }
3582
+ this.inParamData.splice(key, 1, inParamItem)
3583
+ }
3584
+ }
3585
+ }
3586
+ this.$set(this.elementValues, 'camunda:inParam', JSON.stringify(this.inParamData))
3587
+ this.showInParamModal = false
3588
+ },
3589
+ deleteInParam (index) {
3590
+ // for (const key in this.inParamData) {
3591
+ // if (this.inParamData[key].uid === uid) {
3592
+ // this.inParamData.splice(key, 1)
3593
+ // }
3594
+ // }
3595
+ this.inParamData.splice(index, 1)
3596
+ this.$set(this.elementValues, 'camunda:inParam', JSON.stringify(this.inParamData))
3597
+ },
3598
+ getRandom () {
3599
+ return Math.random().toString().slice(-9)
3600
+ },
3601
+ selectInmessageParams (data, item, index) {
3602
+ const obj = { ...item }
3603
+ obj.VALUEC = data.name
3604
+ if (!this.$_.isEmpty(data.upId)) {
3605
+ // 参数名+字段名
3606
+ obj.VALUE = data.upId + ':' + data.id
3607
+ } else {
3608
+ obj.VALUE = data.id
3609
+ }
3610
+ this.sendMessageData.messageParams.splice(index, 1, obj)
3611
+ },
3612
+ selectInglobalParams (data, item, index) {
3613
+ const obj = { ...item }
3614
+ obj.valueC = data.name
3615
+ if (!this.$_.isEmpty(data.upId)) {
3616
+ // 参数名+字段名
3617
+ obj.value = data.upId + ':' + data.id
3618
+ } else {
3619
+ obj.value = data.id
3620
+ }
3621
+ this.formDataMetaData.globalParams.splice(index, 1, obj)
3622
+ },
3623
+ selectInParam (data, field) {
3624
+ this.formDataMetaData.data[field] = data.name
3625
+ if (!this.$_.isEmpty(data.upId)) {
3626
+ // 参数名+字段名
3627
+ this.formDataMetaData.value[field] = data.upId + ':' + data.id
3628
+ } else {
3629
+ this.formDataMetaData.value[field] = data.id
3630
+ }
3631
+ },
3632
+ async changeSearchResultParams (v) {
3633
+ const formDataMetaId = this.elementValues['camunda:formDataMeta'] || this.businessMetaId
3634
+ for (let key = 0; key < this.inParamData.length; key++) {
3635
+ if (this.inParamData[key].id === v) {
3636
+ if (this.inParamData[key].type !== '1') {
3637
+ this.inParamData[key].metaId = formDataMetaId
3638
+ }
3639
+ }
3640
+ }
3641
+ this.getAddRecordParamData()
3642
+ this.updateGlobalProperties({ 'camunda:inParam': JSON.stringify(this.inParamData) })
3643
+ },
3644
+ getNodeTypeName (v1, v2) {
3645
+ if (v1 === '1' || v2 === '1') {
3646
+ return '新增记录'
3647
+ }
3648
+ if (v1 === '2' || v2 === '2') {
3649
+ return '删除记录'
3650
+ }
3651
+ if (v1 === '3' || v2 === '3') {
3652
+ return '更新记录'
3653
+ }
3654
+ if (v1 === '4' || v2 === '4') {
3655
+ return '数据同步'
3656
+ }
3657
+ if (v1 === '5' || v2 === '5') {
3658
+ return '数据加工'
3659
+ }
3660
+ if (v1 === '6' || v2 === '6') {
3661
+ return '数据查询'
3662
+ }
3663
+ if (v1 === '7' || v2 === '7') {
3664
+ return '消息发送'
3665
+ }
3666
+ if (v1 === '8' || v2 === '8') {
3667
+ return '调用接口'
3668
+ }
3669
+ if (v1 === '9' || v2 === '9') {
3670
+ return '调用业务规则'
3671
+ }
3672
+ if (v1 === '10' || v2 === '10') {
3673
+ return '发起业务流程'
3674
+ }
3675
+ if (v1 === '11' || v2 === '11') {
3676
+ return '循环开始'
3677
+ }
3678
+ if (v1 === '12' || v2 === '12') {
3679
+ return '循环结束'
3680
+ }
3681
+ }
3682
+ }
3683
+ }
3684
+ </script>
3685
+
3686
+ <style scoped lang="scss">
3687
+ .properties-panel__container {
3688
+ position: absolute;
3689
+ right: 0;
3690
+ top: 0;
3691
+ width: 460px;
3692
+ height: 100%;
3693
+ background-color: #fefefe;
3694
+ box-shadow: -4px 0px 6px 0px rgba(117, 117, 117, 0.1);
3695
+ &::v-deep {
3696
+ .el-table .cell {
3697
+ height: 100%;
3698
+ }
3699
+ }
3700
+ }
3701
+ .properties-panel {
3702
+ height: 100%;
3703
+ display: flex;
3704
+ flex-direction: column;
3705
+ }
3706
+ .properties-panel__title {
3707
+ padding: 0 20px;
3708
+ font-size: 16px;
3709
+ line-height: 50px;
3710
+ border-bottom: 1px solid #e3e3e3;
3711
+ }
3712
+ .properties-panel__content {
3713
+ padding-top: 16px;
3714
+ flex: 1;
3715
+ overflow: auto;
3716
+ }
3717
+ .properties-panel__tabs {
3718
+ height: 100%;
3719
+ &::v-deep {
3720
+ .el-tabs__nav-scroll {
3721
+ padding-left: 12px;
3722
+ }
3723
+ .el-tabs__item {
3724
+ height: 32px;
3725
+ line-height: 32px;
3726
+ }
3727
+ .el-tabs__content {
3728
+ height: calc(100% - 48px);
3729
+ overflow: auto;
3730
+ position: relative;
3731
+ // padding: 0 16px
3732
+ }
3733
+ }
3734
+ }
3735
+ .tab-pane-content {
3736
+ height: calc(100% - 52px);
3737
+ overflow: auto;
3738
+ }
3739
+ .attribute-list {
3740
+ padding: 0 16px;
3741
+ }
3742
+ .attribute-input {
3743
+ display: flex;
3744
+ align-items: center;
3745
+ margin: 16px 0;
3746
+ }
3747
+ .attribute-input-top {
3748
+ align-items: baseline;
3749
+ }
3750
+ .attribute-input__auditor {
3751
+ align-items: flex-start;
3752
+ line-height: 32px;
3753
+ .attribute-input__container {
3754
+ flex: 1;
3755
+ }
3756
+ }
3757
+
3758
+ .attribute-input__label {
3759
+ width: 100px;
3760
+ flex-shrink: 0;
3761
+ &::after {
3762
+ content: ':';
3763
+ }
3764
+ }
3765
+ .text-left {
3766
+ text-align: right;
3767
+ }
3768
+ .attribute-input-type {
3769
+ width: 105px;
3770
+ flex-shrink: 0;
3771
+ margin-right: 10px;
3772
+ }
3773
+ // .attribute-input-type::v-deep .el-input__inner{
3774
+ // height: 36px;
3775
+ // }
3776
+ // .update-add-field {
3777
+ // // margin-top: 20px;
3778
+ // // border-top: 1px solid #e3e3e3;
3779
+ // }
3780
+ .auditor-item {
3781
+ overflow: hidden;
3782
+ color: #666;
3783
+ cursor: pointer;
3784
+ &:hover {
3785
+ @include font_color_primary;
3786
+ }
3787
+ }
3788
+ .auditor-item__icon {
3789
+ float: right;
3790
+ i {
3791
+ color: #666;
3792
+ margin-right: 12px;
3793
+ cursor: pointer;
3794
+ &:hover {
3795
+ @include font_color_primary;
3796
+ }
3797
+ }
3798
+ }
3799
+ .auditor-modal__title {
3800
+ font-size: 16px;
3801
+ color: #333;
3802
+ margin-bottom: 12px;
3803
+ }
3804
+ .auditor-modal__content {
3805
+ padding-left: 16px;
3806
+ padding-bottom: 20px;
3807
+ }
3808
+ .auditor-modal__content--first {
3809
+ padding-left: 16px;
3810
+ }
3811
+ .message-item {
3812
+ display: flex;
3813
+ justify-content: space-between;
3814
+ align-items: center;
3815
+ padding: 20px 10px;
3816
+ border-bottom: 1px solid #e3e3e3;
3817
+ &:hover {
3818
+ background: #f5f7fa;
3819
+ }
3820
+ }
3821
+ .message-content {
3822
+ width: calc(100% - 50px);
3823
+ display: flex;
3824
+ flex-wrap: wrap;
3825
+ }
3826
+ .verify {
3827
+ width: calc(100% - 50px);
3828
+ }
3829
+ .verify-info {
3830
+ width: 100%;
3831
+ line-height: 20px;
3832
+ display: flex;
3833
+ align-items: center;
3834
+ margin-bottom: 10px;
3835
+ > label {
3836
+ color: #555;
3837
+ width: 100px;
3838
+ }
3839
+ }
3840
+ .verify-rule-container {
3841
+ width: 62%;
3842
+ }
3843
+ .message-info {
3844
+ width: 50%;
3845
+ line-height: 20px;
3846
+ margin-bottom: 10px;
3847
+ > label {
3848
+ color: #555;
3849
+ }
3850
+ }
3851
+ .send-message-operate {
3852
+ width: 126px;
3853
+ display: inline-block;
3854
+ margin-left: 10px;
3855
+ }
3856
+ .message-operate-item {
3857
+ font-size: 16px;
3858
+ @include font_color_primary;
3859
+ cursor: pointer;
3860
+ &.delete {
3861
+ color: #f56c6c;
3862
+ margin-left: 10px;
3863
+ }
3864
+ }
3865
+ .add-message-button {
3866
+ position: absolute;
3867
+ bottom: 0;
3868
+ width: 100%;
3869
+ height: 50px;
3870
+ border-top: 1px solid #e3e3e3;
3871
+ display: flex;
3872
+ align-items: center;
3873
+ justify-content: center;
3874
+ }
3875
+ .dialog-operate-group {
3876
+ margin-top: 30px;
3877
+ text-align: center;
3878
+ }
3879
+ .empty {
3880
+ height: 200px;
3881
+ line-height: 200px;
3882
+ font-weight: 700;
3883
+ }
3884
+ .element-item {
3885
+ padding: 10px;
3886
+ margin-top: 5px;
3887
+ border: 1px solid;
3888
+ border-color: darkorange;
3889
+ border-radius: 8px;
3890
+ }
3891
+ .element-item:first-child {
3892
+ margin-top: 0;
3893
+ }
3894
+ .custom-properties-panel input,
3895
+ .custom-properties-panel textarea {
3896
+ padding: 4px 11px;
3897
+ color: rgba(0, 0, 0, 0.65);
3898
+ font-size: 14px;
3899
+ background-color: #fff;
3900
+ background-image: none;
3901
+ border: 1px solid #d9d9d9;
3902
+ border-radius: 4px;
3903
+ transition: all 0.3s;
3904
+ outline: none;
3905
+ }
3906
+ .custom-properties-panel input:focus,
3907
+ .custom-properties-panel button:focus,
3908
+ .custom-properties-panel textarea:focus,
3909
+ .custom-properties-panel [contenteditable]:focus {
3910
+ border-color: rgb(239, 112, 96);
3911
+ box-shadow: 0 0 1px 2px rgba(239, 112, 96, 0.2);
3912
+ }
3913
+ .custom-properties-panel label {
3914
+ font-weight: bold;
3915
+ }
3916
+ .custom-properties-panel label:after {
3917
+ content: ': ';
3918
+ }
3919
+ .custom-properties-panel button + button {
3920
+ margin-left: 10px;
3921
+ }
3922
+ .attribute-input-update {
3923
+ padding-bottom: 20px;
3924
+ padding-top: 10px;
3925
+ border-bottom: 1px solid #e3e3e3;
3926
+ &:hover .filter-condition__delete i {
3927
+ display: inline;
3928
+ }
3929
+ }
3930
+ .attribute-input-search {
3931
+ &:hover .filter-condition__delete i {
3932
+ display: inline;
3933
+ }
3934
+ }
3935
+ .filter-condition__delete {
3936
+ width: 30px;
3937
+ font-size: 18px;
3938
+ color: #999;
3939
+ margin-left: 10px;
3940
+ i {
3941
+ display: none;
3942
+ cursor: pointer;
3943
+ }
3944
+ }
3945
+ .scope-opera__popper {
3946
+ min-width: 150px;
3947
+ max-height: 300px;
3948
+ overflow: auto;
3949
+ }
3950
+ .update-add-field__popper {
3951
+ min-width: 100px;
3952
+ max-height: 300px;
3953
+ overflow: auto;
3954
+ }
3955
+ .update-add-field__popper_item {
3956
+ padding-top: 5px;
3957
+ cursor: pointer;
3958
+ // &:hover {
3959
+ // background: #f5f7fa;
3960
+ // }
3961
+ }
3962
+ .choose-field {
3963
+ padding-left: 10px;
3964
+ }
3965
+ .tree-field-checkbox-group {
3966
+ font-size: 14px;
3967
+ padding: 20px;
3968
+ }
3969
+ .tree-field-header {
3970
+ @inlcude font_color_primary;
3971
+ // margin-bottom:25px;
3972
+ }
3973
+ .tree-field-title {
3974
+ font-size: 14px;
3975
+ i {
3976
+ margin-right: 4px;
3977
+ }
3978
+ }
3979
+ .tree-field-checkbox {
3980
+ display: flex;
3981
+ flex-wrap: wrap;
3982
+ margin: 12px 0;
3983
+ margin-left: 40px;
3984
+ color: #666;
3985
+ cursor: pointer;
3986
+ line-height: 24px;
3987
+ }
3988
+ .tree-field-checkbox .active {
3989
+ @include font_color_primary;
3990
+ }
3991
+ .dialog-footer {
3992
+ text-align: center;
3993
+ margin-top: 20px;
3994
+ }
3995
+ .search-relation {
3996
+ padding-left: 20px;
3997
+ display: flex;
3998
+ flex-wrap: wrap;
3999
+ }
4000
+ .search-relation .filter-condition__delete {
4001
+ font-size: 14px;
4002
+ }
4003
+ .right-table__header {
4004
+ margin-top: -50px;
4005
+ width: calc(100% - 2px);
4006
+ left: 2px;
4007
+ position: relative;
4008
+ top: 50px;
4009
+ background: #fff;
4010
+ z-index: 100;
4011
+ }
4012
+ .scope-text {
4013
+ border-radius: 4px;
4014
+ padding: 4px 8px;
4015
+ background-color: #e6f6ff;
4016
+ }
4017
+ .scope-link {
4018
+ margin-left: 14px;
4019
+ }
4020
+ .scope-item-line {
4021
+ margin-top: 10px;
4022
+ }
4023
+ .jiedina-header {
4024
+ padding: 10px 24px;
4025
+ font-size: 16px;
4026
+ border-bottom: 1px solid rgb(227, 227, 227);
4027
+ i {
4028
+ color: #1f82ef;
4029
+ font-size: 18px;
4030
+ position: relative;
4031
+ top: -2px;
4032
+ margin-right: 8px;
4033
+ }
4034
+ span {
4035
+ padding-left: 6px;
4036
+ border-left: 3px solid rgb(31, 130, 239);
4037
+ border-color: rgb(31, 130, 239);
4038
+ }
4039
+ }
4040
+ .jiedina-content-header {
4041
+ margin-top: 20px;
4042
+ padding: 16px 0;
4043
+ border-bottom: none;
4044
+ border-top: 1px solid rgb(227, 227, 227);
4045
+ }
4046
+ </style>