eoss-ui 0.3.97

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 (378) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/README.md +30 -0
  3. package/lib/button-group.js +2857 -0
  4. package/lib/button.js +2884 -0
  5. package/lib/card.js +603 -0
  6. package/lib/cascader.js +373 -0
  7. package/lib/checkbox-group.js +3099 -0
  8. package/lib/clients.js +375 -0
  9. package/lib/config/api.js +205 -0
  10. package/lib/data-table-form.js +3848 -0
  11. package/lib/data-table.js +6315 -0
  12. package/lib/date-picker.js +2821 -0
  13. package/lib/dialog.js +3730 -0
  14. package/lib/enterprise.js +372 -0
  15. package/lib/eoss-ui.common.js +65365 -0
  16. package/lib/error-page.js +293 -0
  17. package/lib/flow-group.js +4200 -0
  18. package/lib/flow-list.js +4350 -0
  19. package/lib/flow.js +12893 -0
  20. package/lib/form.js +15635 -0
  21. package/lib/handle-user.js +2900 -0
  22. package/lib/handler.js +3118 -0
  23. package/lib/index.js +1 -0
  24. package/lib/input-number.js +2743 -0
  25. package/lib/input.js +2935 -0
  26. package/lib/label.js +411 -0
  27. package/lib/login.js +5048 -0
  28. package/lib/main.js +5816 -0
  29. package/lib/mainComp.js +6530 -0
  30. package/lib/menu.js +529 -0
  31. package/lib/nav.js +3048 -0
  32. package/lib/notify.js +1079 -0
  33. package/lib/page.js +3036 -0
  34. package/lib/pagination.js +354 -0
  35. package/lib/player.js +2904 -0
  36. package/lib/qr-code.js +2860 -0
  37. package/lib/radio-group.js +3091 -0
  38. package/lib/select-ganged.js +3242 -0
  39. package/lib/select.js +3295 -0
  40. package/lib/selector-panel.js +4425 -0
  41. package/lib/selector.js +3722 -0
  42. package/lib/sizer.js +3067 -0
  43. package/lib/steps.js +2943 -0
  44. package/lib/switch.js +2784 -0
  45. package/lib/table-form.js +6211 -0
  46. package/lib/tabs-panel.js +274 -0
  47. package/lib/tabs.js +4988 -0
  48. package/lib/theme-chalk/base.css +1 -0
  49. package/lib/theme-chalk/button-group.css +1 -0
  50. package/lib/theme-chalk/button.css +0 -0
  51. package/lib/theme-chalk/card.css +1 -0
  52. package/lib/theme-chalk/cascader.css +0 -0
  53. package/lib/theme-chalk/checkbox-group.css +1 -0
  54. package/lib/theme-chalk/clients.css +1 -0
  55. package/lib/theme-chalk/data-table-form.css +1 -0
  56. package/lib/theme-chalk/data-table.css +1 -0
  57. package/lib/theme-chalk/date-picker.css +1 -0
  58. package/lib/theme-chalk/dialog.css +1 -0
  59. package/lib/theme-chalk/enterprise.css +1 -0
  60. package/lib/theme-chalk/error-page.css +1 -0
  61. package/lib/theme-chalk/flow-chart.css +0 -0
  62. package/lib/theme-chalk/flow-group.css +1 -0
  63. package/lib/theme-chalk/flow-list.css +1 -0
  64. package/lib/theme-chalk/flow.css +1 -0
  65. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  66. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  67. package/lib/theme-chalk/form.css +1 -0
  68. package/lib/theme-chalk/handle-user.css +1 -0
  69. package/lib/theme-chalk/handler.css +1 -0
  70. package/lib/theme-chalk/icon.css +1 -0
  71. package/lib/theme-chalk/index.css +1 -0
  72. package/lib/theme-chalk/input-number.css +0 -0
  73. package/lib/theme-chalk/input.css +1 -0
  74. package/lib/theme-chalk/label.css +1 -0
  75. package/lib/theme-chalk/login.css +1 -0
  76. package/lib/theme-chalk/main.css +1 -0
  77. package/lib/theme-chalk/mainComp.css +0 -0
  78. package/lib/theme-chalk/menu.css +1 -0
  79. package/lib/theme-chalk/nav.css +1 -0
  80. package/lib/theme-chalk/notify.css +0 -0
  81. package/lib/theme-chalk/page.css +1 -0
  82. package/lib/theme-chalk/pagination.css +1 -0
  83. package/lib/theme-chalk/player.css +1 -0
  84. package/lib/theme-chalk/qr-code.css +1 -0
  85. package/lib/theme-chalk/radio-group.css +1 -0
  86. package/lib/theme-chalk/radio.css +1 -0
  87. package/lib/theme-chalk/select-ganged.css +1 -0
  88. package/lib/theme-chalk/select.css +0 -0
  89. package/lib/theme-chalk/selector-panel.css +1 -0
  90. package/lib/theme-chalk/selector.css +1 -0
  91. package/lib/theme-chalk/sizer.css +1 -0
  92. package/lib/theme-chalk/steps.css +1 -0
  93. package/lib/theme-chalk/switch.css +1 -0
  94. package/lib/theme-chalk/table-form.css +0 -0
  95. package/lib/theme-chalk/tabs-panel.css +0 -0
  96. package/lib/theme-chalk/tabs.css +1 -0
  97. package/lib/theme-chalk/tips.css +1 -0
  98. package/lib/theme-chalk/toolbar.css +1 -0
  99. package/lib/theme-chalk/tree-group.css +1 -0
  100. package/lib/theme-chalk/tree.css +1 -0
  101. package/lib/theme-chalk/upload.css +1 -0
  102. package/lib/theme-chalk/wujie.css +0 -0
  103. package/lib/theme-chalk/wxlogin.css +1 -0
  104. package/lib/tips.js +2830 -0
  105. package/lib/toolbar.js +531 -0
  106. package/lib/tree-group.js +3373 -0
  107. package/lib/tree.js +3482 -0
  108. package/lib/upload.js +3913 -0
  109. package/lib/utils/bus.js +9 -0
  110. package/lib/utils/date-util.js +318 -0
  111. package/lib/utils/http.js +58 -0
  112. package/lib/utils/rules.js +19 -0
  113. package/lib/utils/store.js +22 -0
  114. package/lib/utils/util.js +2056 -0
  115. package/lib/wujie.js +2845 -0
  116. package/lib/wxlogin.js +2799 -0
  117. package/package.json +151 -0
  118. package/packages/button/index.js +5 -0
  119. package/packages/button/src/main.vue +264 -0
  120. package/packages/button-group/index.js +5 -0
  121. package/packages/button-group/src/main.vue +130 -0
  122. package/packages/card/index.js +5 -0
  123. package/packages/card/src/main.vue +144 -0
  124. package/packages/cascader/index.js +5 -0
  125. package/packages/cascader/src/main.vue +144 -0
  126. package/packages/checkbox-group/index.js +5 -0
  127. package/packages/checkbox-group/src/main.vue +285 -0
  128. package/packages/clients/index.js +5 -0
  129. package/packages/clients/src/main.vue +50 -0
  130. package/packages/data-table/index.js +5 -0
  131. package/packages/data-table/src/children.vue +40 -0
  132. package/packages/data-table/src/column.vue +796 -0
  133. package/packages/data-table/src/main copy.vue +1383 -0
  134. package/packages/data-table/src/main.vue +1229 -0
  135. package/packages/data-table/src/mixins/table.js +12 -0
  136. package/packages/data-table/src/sizer.vue +160 -0
  137. package/packages/data-table-form/index.js +5 -0
  138. package/packages/data-table-form/src/colgroup.vue +17 -0
  139. package/packages/data-table-form/src/main.vue +167 -0
  140. package/packages/data-table-form/src/table.vue +192 -0
  141. package/packages/data-table-form/src/tbody.vue +219 -0
  142. package/packages/data-table-form/src/thead.vue +68 -0
  143. package/packages/date-picker/index.js +5 -0
  144. package/packages/date-picker/src/main.vue +185 -0
  145. package/packages/dialog/index.js +5 -0
  146. package/packages/dialog/src/main.vue +442 -0
  147. package/packages/enterprise/index.js +5 -0
  148. package/packages/enterprise/src/main.vue +66 -0
  149. package/packages/error-page/index.js +5 -0
  150. package/packages/error-page/src/main.vue +44 -0
  151. package/packages/flow/index.js +5 -0
  152. package/packages/flow/src/component/CommonOpinions.vue +290 -0
  153. package/packages/flow/src/component/CustomPreset.vue +311 -0
  154. package/packages/flow/src/component/FileList.vue +97 -0
  155. package/packages/flow/src/component/Preset.vue +253 -0
  156. package/packages/flow/src/component/SendMsg.vue +221 -0
  157. package/packages/flow/src/component/TimeLimit.vue +190 -0
  158. package/packages/flow/src/component/taskUnionExamine.vue +507 -0
  159. package/packages/flow/src/form.vue +120 -0
  160. package/packages/flow/src/main.vue +2107 -0
  161. package/packages/flow/src/processForm.vue +866 -0
  162. package/packages/flow/src/processReject.vue +262 -0
  163. package/packages/flow/src/selectUser.vue +425 -0
  164. package/packages/flow/src/startTaskRead.vue +556 -0
  165. package/packages/flow/src/table.vue +51 -0
  166. package/packages/flow-group/index.js +5 -0
  167. package/packages/flow-group/src/main.vue +540 -0
  168. package/packages/flow-list/index.js +5 -0
  169. package/packages/flow-list/src/flow-table.vue +445 -0
  170. package/packages/flow-list/src/main.vue +456 -0
  171. package/packages/form/index.js +5 -0
  172. package/packages/form/src/main.vue +4429 -0
  173. package/packages/form/src/table.vue +1196 -0
  174. package/packages/handle-user/index.js +5 -0
  175. package/packages/handle-user/src/main.vue +122 -0
  176. package/packages/handler/index.js +5 -0
  177. package/packages/handler/src/main.vue +306 -0
  178. package/packages/input/index.js +5 -0
  179. package/packages/input/src/main.vue +307 -0
  180. package/packages/input-number/index.js +5 -0
  181. package/packages/input-number/src/main.vue +106 -0
  182. package/packages/label/index.js +5 -0
  183. package/packages/label/src/main.vue +208 -0
  184. package/packages/login/index.js +5 -0
  185. package/packages/login/src/main.vue +1193 -0
  186. package/packages/login/src/resetPassword.vue +332 -0
  187. package/packages/main/index.js +5 -0
  188. package/packages/main/src/main.vue +1496 -0
  189. package/packages/main/src/message.vue +239 -0
  190. package/packages/main/src/notice.vue +145 -0
  191. package/packages/main/src/settings.vue +105 -0
  192. package/packages/main/src/userinfo.vue +430 -0
  193. package/packages/mainComp/index.js +5 -0
  194. package/packages/mainComp/src/async-component/index.vue +85 -0
  195. package/packages/mainComp/src/main.vue +1934 -0
  196. package/packages/mainComp/src/message.vue +239 -0
  197. package/packages/mainComp/src/notice.vue +152 -0
  198. package/packages/mainComp/src/settings.vue +105 -0
  199. package/packages/mainComp/src/userinfo.vue +423 -0
  200. package/packages/menu/index.js +5 -0
  201. package/packages/menu/src/main.vue +401 -0
  202. package/packages/nav/index.js +5 -0
  203. package/packages/nav/src/main.vue +250 -0
  204. package/packages/notify/index.js +5 -0
  205. package/packages/notify/src/main.vue +538 -0
  206. package/packages/page/index.js +5 -0
  207. package/packages/page/src/main.vue +167 -0
  208. package/packages/pagination/index.js +5 -0
  209. package/packages/pagination/src/main.vue +77 -0
  210. package/packages/player/index.js +5 -0
  211. package/packages/player/src/main.vue +194 -0
  212. package/packages/qr-code/index.js +5 -0
  213. package/packages/qr-code/src/main.vue +154 -0
  214. package/packages/radio/index.js +5 -0
  215. package/packages/radio/src/main.vue +259 -0
  216. package/packages/radio-group/index.js +6 -0
  217. package/packages/radio-group/src/main.vue +267 -0
  218. package/packages/select/index.js +5 -0
  219. package/packages/select/src/main.vue +683 -0
  220. package/packages/select-ganged/index.js +5 -0
  221. package/packages/select-ganged/src/main.vue +686 -0
  222. package/packages/selector/index.js +5 -0
  223. package/packages/selector/src/main.vue +588 -0
  224. package/packages/selector-panel/index.js +5 -0
  225. package/packages/selector-panel/src/main.vue +968 -0
  226. package/packages/selector-panel/src/selection.vue +142 -0
  227. package/packages/selector-panel/src/tree.vue +129 -0
  228. package/packages/sizer/index.js +5 -0
  229. package/packages/sizer/src/main.vue +254 -0
  230. package/packages/steps/index.js +5 -0
  231. package/packages/steps/src/main.vue +175 -0
  232. package/packages/switch/index.js +5 -0
  233. package/packages/switch/src/main.vue +154 -0
  234. package/packages/table-form/index.js +5 -0
  235. package/packages/tabs/index.js +5 -0
  236. package/packages/tabs/src/main.vue +749 -0
  237. package/packages/tabs-panel/index.js +5 -0
  238. package/packages/tabs-panel/src/main.vue +18 -0
  239. package/packages/theme-chalk/README.md +33 -0
  240. package/packages/theme-chalk/lib/base.css +1 -0
  241. package/packages/theme-chalk/lib/button-group.css +1 -0
  242. package/packages/theme-chalk/lib/button.css +0 -0
  243. package/packages/theme-chalk/lib/card.css +1 -0
  244. package/packages/theme-chalk/lib/cascader.css +0 -0
  245. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  246. package/packages/theme-chalk/lib/clients.css +1 -0
  247. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  248. package/packages/theme-chalk/lib/data-table.css +1 -0
  249. package/packages/theme-chalk/lib/date-picker.css +1 -0
  250. package/packages/theme-chalk/lib/dialog.css +1 -0
  251. package/packages/theme-chalk/lib/enterprise.css +1 -0
  252. package/packages/theme-chalk/lib/error-page.css +1 -0
  253. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  254. package/packages/theme-chalk/lib/flow-group.css +1 -0
  255. package/packages/theme-chalk/lib/flow-list.css +1 -0
  256. package/packages/theme-chalk/lib/flow.css +1 -0
  257. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  258. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  259. package/packages/theme-chalk/lib/form.css +1 -0
  260. package/packages/theme-chalk/lib/handle-user.css +1 -0
  261. package/packages/theme-chalk/lib/handler.css +1 -0
  262. package/packages/theme-chalk/lib/icon.css +1 -0
  263. package/packages/theme-chalk/lib/index.css +1 -0
  264. package/packages/theme-chalk/lib/input-number.css +0 -0
  265. package/packages/theme-chalk/lib/input.css +1 -0
  266. package/packages/theme-chalk/lib/label.css +1 -0
  267. package/packages/theme-chalk/lib/login.css +1 -0
  268. package/packages/theme-chalk/lib/main.css +1 -0
  269. package/packages/theme-chalk/lib/mainComp.css +0 -0
  270. package/packages/theme-chalk/lib/menu.css +1 -0
  271. package/packages/theme-chalk/lib/nav.css +1 -0
  272. package/packages/theme-chalk/lib/notify.css +0 -0
  273. package/packages/theme-chalk/lib/page.css +1 -0
  274. package/packages/theme-chalk/lib/pagination.css +1 -0
  275. package/packages/theme-chalk/lib/player.css +1 -0
  276. package/packages/theme-chalk/lib/qr-code.css +1 -0
  277. package/packages/theme-chalk/lib/radio-group.css +1 -0
  278. package/packages/theme-chalk/lib/radio.css +1 -0
  279. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  280. package/packages/theme-chalk/lib/select.css +0 -0
  281. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  282. package/packages/theme-chalk/lib/selector.css +1 -0
  283. package/packages/theme-chalk/lib/sizer.css +1 -0
  284. package/packages/theme-chalk/lib/steps.css +1 -0
  285. package/packages/theme-chalk/lib/switch.css +1 -0
  286. package/packages/theme-chalk/lib/table-form.css +0 -0
  287. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  288. package/packages/theme-chalk/lib/tabs.css +1 -0
  289. package/packages/theme-chalk/lib/tips.css +1 -0
  290. package/packages/theme-chalk/lib/toolbar.css +1 -0
  291. package/packages/theme-chalk/lib/tree-group.css +1 -0
  292. package/packages/theme-chalk/lib/tree.css +1 -0
  293. package/packages/theme-chalk/lib/upload.css +1 -0
  294. package/packages/theme-chalk/lib/wujie.css +0 -0
  295. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  296. package/packages/theme-chalk/package.json +35 -0
  297. package/packages/theme-chalk/src/base.scss +165 -0
  298. package/packages/theme-chalk/src/button-group.scss +9 -0
  299. package/packages/theme-chalk/src/button.scss +0 -0
  300. package/packages/theme-chalk/src/card.scss +55 -0
  301. package/packages/theme-chalk/src/cascader.scss +0 -0
  302. package/packages/theme-chalk/src/checkbox-group.scss +8 -0
  303. package/packages/theme-chalk/src/clients.scss +72 -0
  304. package/packages/theme-chalk/src/common/var.scss +1516 -0
  305. package/packages/theme-chalk/src/data-table-form.scss +55 -0
  306. package/packages/theme-chalk/src/data-table.scss +202 -0
  307. package/packages/theme-chalk/src/date-picker.scss +8 -0
  308. package/packages/theme-chalk/src/dialog.scss +52 -0
  309. package/packages/theme-chalk/src/enterprise.scss +5 -0
  310. package/packages/theme-chalk/src/error-page.scss +18 -0
  311. package/packages/theme-chalk/src/flow-chart.scss +0 -0
  312. package/packages/theme-chalk/src/flow-group.scss +101 -0
  313. package/packages/theme-chalk/src/flow-list.scss +41 -0
  314. package/packages/theme-chalk/src/flow.scss +285 -0
  315. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  316. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  317. package/packages/theme-chalk/src/form.scss +451 -0
  318. package/packages/theme-chalk/src/handle-user.scss +40 -0
  319. package/packages/theme-chalk/src/handler.scss +131 -0
  320. package/packages/theme-chalk/src/icon.scss +1714 -0
  321. package/packages/theme-chalk/src/index.scss +50 -0
  322. package/packages/theme-chalk/src/input-number.scss +0 -0
  323. package/packages/theme-chalk/src/input.scss +3 -0
  324. package/packages/theme-chalk/src/label.scss +24 -0
  325. package/packages/theme-chalk/src/login.scss +490 -0
  326. package/packages/theme-chalk/src/main.scss +483 -0
  327. package/packages/theme-chalk/src/mainComp.scss +0 -0
  328. package/packages/theme-chalk/src/menu.scss +201 -0
  329. package/packages/theme-chalk/src/mixins/color.scss +117 -0
  330. package/packages/theme-chalk/src/mixins/mixins.scss +25 -0
  331. package/packages/theme-chalk/src/nav.scss +73 -0
  332. package/packages/theme-chalk/src/notify.scss +0 -0
  333. package/packages/theme-chalk/src/page.scss +3 -0
  334. package/packages/theme-chalk/src/pagination.scss +14 -0
  335. package/packages/theme-chalk/src/player.scss +9 -0
  336. package/packages/theme-chalk/src/qr-code.scss +17 -0
  337. package/packages/theme-chalk/src/radio-group.scss +9 -0
  338. package/packages/theme-chalk/src/radio.scss +3 -0
  339. package/packages/theme-chalk/src/select-ganged.scss +9 -0
  340. package/packages/theme-chalk/src/select.scss +0 -0
  341. package/packages/theme-chalk/src/selector-panel.scss +203 -0
  342. package/packages/theme-chalk/src/selector.scss +85 -0
  343. package/packages/theme-chalk/src/sizer.scss +36 -0
  344. package/packages/theme-chalk/src/steps.scss +88 -0
  345. package/packages/theme-chalk/src/switch.scss +3 -0
  346. package/packages/theme-chalk/src/table-form.scss +1 -0
  347. package/packages/theme-chalk/src/tabs-panel.scss +0 -0
  348. package/packages/theme-chalk/src/tabs.scss +91 -0
  349. package/packages/theme-chalk/src/tips.scss +7 -0
  350. package/packages/theme-chalk/src/toolbar.scss +121 -0
  351. package/packages/theme-chalk/src/tree-group.scss +64 -0
  352. package/packages/theme-chalk/src/tree.scss +140 -0
  353. package/packages/theme-chalk/src/upload.scss +131 -0
  354. package/packages/theme-chalk/src/wujie.scss +0 -0
  355. package/packages/theme-chalk/src/wxlogin.scss +3 -0
  356. package/packages/tips/index.js +5 -0
  357. package/packages/tips/src/main.vue +126 -0
  358. package/packages/toolbar/index.js +5 -0
  359. package/packages/toolbar/src/main.vue +377 -0
  360. package/packages/tree/index.js +5 -0
  361. package/packages/tree/src/main.vue +636 -0
  362. package/packages/tree-group/index.js +5 -0
  363. package/packages/tree-group/src/main.vue +435 -0
  364. package/packages/upload/index.js +5 -0
  365. package/packages/upload/src/main.vue +1033 -0
  366. package/packages/upload/src/picture.js +15 -0
  367. package/packages/wujie/index.js +5 -0
  368. package/packages/wujie/src/main.vue +137 -0
  369. package/packages/wxlogin/index.js +5 -0
  370. package/packages/wxlogin/src/main.vue +110 -0
  371. package/src/config/api.js +211 -0
  372. package/src/index.js +167 -0
  373. package/src/utils/bus.js +3 -0
  374. package/src/utils/date-util.js +312 -0
  375. package/src/utils/http.js +50 -0
  376. package/src/utils/rules.js +18 -0
  377. package/src/utils/store.js +21 -0
  378. package/src/utils/util.js +2105 -0
@@ -0,0 +1,2107 @@
1
+ <template>
2
+ <div
3
+ class="es-flow-index"
4
+ :class="{ 'es-flow-narrow': shrink }"
5
+ :style="shrink ? 'width:48px' : ''"
6
+ >
7
+ <div class="es-flow-top">
8
+ <div class="es-flow-title">
9
+ <span v-show="!shrink">当前节点:{{ isFlow ? '拟稿' : NodeName }}</span>
10
+ <es-button
11
+ size="medium"
12
+ class="es-icon"
13
+ :icon="shrink ? 'es-icon-indent' : 'es-icon-increase'"
14
+ @click="setShrink"
15
+ ></es-button>
16
+ </div>
17
+ <div class="es-opinion" v-show="!shrink">
18
+ <span class="es-eidt-title" :style="`${!isFlow ? 'color:red' : ''}`"
19
+ >填写意见</span
20
+ >
21
+ <span
22
+ v-show="!isFlow && typeCode != 'fenyue'"
23
+ class="es-opinion-file"
24
+ @click="showFileList = true"
25
+ ><i class="es-icon-fujian"></i>意见附件<span
26
+ class="es-file-num"
27
+ v-show="fileNum > 0"
28
+ >({{ fileNum }})</span
29
+ ></span
30
+ >
31
+ </div>
32
+ <CommonOpinions
33
+ class="es-common-opinions"
34
+ v-show="!shrink"
35
+ ref="commonOpinions"
36
+ @change="val => (value = val)"
37
+ :opinion="value"
38
+ :isBanInputOpinion="isBanInputOpinion"
39
+ />
40
+ </div>
41
+ <div v-show="!endFlow && typeCode != 'fenyue' && !shrink" class="es-info">
42
+ <el-form
43
+ ref="nextNode"
44
+ :model="isFlow ? nodeInfo : nextNode"
45
+ class="demo-dynamic"
46
+ label-width="120px"
47
+ >
48
+ <el-form-item
49
+ v-if="isFlow && nodeInfo.option.length > 0"
50
+ prop="nextNode"
51
+ label="选择流程"
52
+ :rules="[{ required: true, message: `请选择流程`, trigger: 'blur' }]"
53
+ >
54
+ <el-input
55
+ placeholder="请输入内容"
56
+ class="input-with-select select-process"
57
+ >
58
+ <el-select
59
+ slot="prepend"
60
+ v-model="nodeInfo.nextNode"
61
+ style="width: calc(100% + 40px)"
62
+ :placeholder="`请选择流程`"
63
+ >
64
+ <el-option
65
+ v-for="items in nodeInfo.option"
66
+ :key="items.id"
67
+ :label="items.name"
68
+ :value="items.processDefId"
69
+ ></el-option>
70
+ </el-select>
71
+ <el-button
72
+ slot="append"
73
+ icon="el-icon-picture"
74
+ @click="
75
+ () => {
76
+ showFlowChart = true;
77
+ }
78
+ "
79
+ ></el-button>
80
+ </el-input>
81
+ </el-form-item>
82
+ <div v-else>
83
+ <!-- 加签开始 -->
84
+ <el-form-item
85
+ prop="isAddSign"
86
+ v-if="isCanAddSign"
87
+ label="是否加签"
88
+ :rules="[
89
+ { required: true, message: `请选择是否加签`, trigger: 'blur' }
90
+ ]"
91
+ >
92
+ <el-radio-group v-model="nextNode.isAddSign">
93
+ <el-radio label="1">是</el-radio>
94
+ <el-radio label="2">否</el-radio>
95
+ </el-radio-group>
96
+ </el-form-item>
97
+ <div v-show="nextNode.isAddSign === '1'">
98
+ <el-form-item
99
+ prop="addSignUserId"
100
+ label="增加本环节办理人"
101
+ :rules="[
102
+ { required: false, message: `请选择办理人`, trigger: 'blur' }
103
+ ]"
104
+ >
105
+ <SelectUser
106
+ :nextUser="nextNode.addSignUserId"
107
+ :multiple="true"
108
+ title="增加办理人"
109
+ @change="changeSelectUser($event, 'addSignUserId', true)"
110
+ />
111
+ </el-form-item>
112
+ </div>
113
+ <!-- 加签结束 -->
114
+ <!-- 减签开始 -->
115
+ <el-form-item
116
+ v-if="isCanRemoveSign"
117
+ prop="isRemoveSign"
118
+ label="是否减签"
119
+ :rules="[
120
+ { required: true, message: `请选择是否加签`, trigger: 'blur' }
121
+ ]"
122
+ >
123
+ <el-radio-group v-model="nextNode.isRemoveSign">
124
+ <el-radio label="1">是</el-radio>
125
+ <el-radio label="2">否</el-radio>
126
+ </el-radio-group>
127
+ </el-form-item>
128
+ <div v-show="nextNode.isRemoveSign === '1'">
129
+ <el-form-item
130
+ prop="removeSignUserId"
131
+ label="删除本环节办理人"
132
+ :rules="[
133
+ { required: false, message: `请选择办理人`, trigger: 'blur' }
134
+ ]"
135
+ >
136
+ <el-checkbox-group v-model="nextNode.removeSignUserId">
137
+ <el-checkbox
138
+ v-for="item of removeUsers"
139
+ :key="item.userId"
140
+ :label="item.userId"
141
+ >{{ item.username }}</el-checkbox
142
+ >
143
+ </el-checkbox-group>
144
+ </el-form-item>
145
+ </div>
146
+ <!-- 减签结束 -->
147
+ <div
148
+ v-if="
149
+ nextNode.isAddSign != '1' &&
150
+ nextNode.isRemoveSign != '1' &&
151
+ isSpecial
152
+ "
153
+ >
154
+ <el-form-item
155
+ prop="nextOperate"
156
+ label="下步操作"
157
+ v-if="isChooseNextNode == 1"
158
+ :rules="[
159
+ { required: true, message: `请选择下步操作`, trigger: 'blur' }
160
+ ]"
161
+ >
162
+ <el-select
163
+ v-model="nextNode.nextOperate"
164
+ :placeholder="`请选择下步操作`"
165
+ @change="selecNext($event, true)"
166
+ >
167
+ <el-option
168
+ v-for="items in operationList"
169
+ :key="items.key"
170
+ :label="items.value"
171
+ :value="items.key"
172
+ ></el-option>
173
+ </el-select>
174
+ </el-form-item>
175
+ <div v-if="!isReject && nodeInfos.length != 0">
176
+ <el-form-item
177
+ prop="nextNodeId"
178
+ label="下步节点"
179
+ :rules="[
180
+ { required: true, message: `请选择下步节点`, trigger: 'blur' }
181
+ ]"
182
+ >
183
+ <el-select
184
+ v-model="nextNode.nextNodeId"
185
+ :placeholder="`请选择下步节点`"
186
+ @change="selecNext($event, false)"
187
+ >
188
+ <el-option
189
+ v-for="items in nodeInfos"
190
+ :key="items.id"
191
+ :label="items.nodeName"
192
+ :value="items.nodeId"
193
+ ></el-option>
194
+ </el-select>
195
+ </el-form-item>
196
+ <el-form-item
197
+ v-if="countersignaturetypeCode != 0"
198
+ prop="handleMode"
199
+ label="处理方式"
200
+ >
201
+ <el-input
202
+ v-model="handleMode"
203
+ placeholder="请输入内容"
204
+ disabled
205
+ />
206
+ </el-form-item>
207
+ <el-form-item
208
+ :prop="isShowNextUser ? 'nextUserId' : 'nextOrgId'"
209
+ :label="isShowNextUser ? '下步办理人' : '办理对象'"
210
+ >
211
+ <SelectUser
212
+ :nextUser="
213
+ isShowNextUser ? nextNode.nextUserId : nextNode.nextOrgId
214
+ "
215
+ :radioList="radioList"
216
+ :multiple="multiple"
217
+ :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
218
+ :options="options"
219
+ :mix="multiple"
220
+ :presetEdit="presetEdit"
221
+ :selectUserList="selectUserList"
222
+ @change="
223
+ changeSelectUser(
224
+ $event,
225
+ isShowNextUser ? 'nextUserId' : 'nextOrgId',
226
+ true
227
+ )
228
+ "
229
+ :types="nextUserTypes"
230
+ :params="isShowNextUser ? params : {}"
231
+ :tabs="nextUserTabs"
232
+ />
233
+ </el-form-item>
234
+ <TimeLimit
235
+ v-if="nodeType !== 0 && isLimitedTimeHandling === 1"
236
+ :newsList="newsList"
237
+ @change="val => (nextNode = { ...nextNode, ...val })"
238
+ />
239
+ <el-form-item
240
+ prop="nextReadUserId"
241
+ v-if="isTaskread == 1"
242
+ label="
243
+ 分阅用户
244
+ "
245
+ >
246
+ <SelectUser
247
+ :nextUser="nextNode.nextReadUserId"
248
+ :multiple="true"
249
+ :selectUserList="selectReadUserList"
250
+ :options="userOptions"
251
+ :mix="true"
252
+ :types="types"
253
+ @change="changeSelectReadUser($event, 'nextReadUserId')"
254
+ :tabs="tabs"
255
+ />
256
+ </el-form-item>
257
+ <el-form-item
258
+ prop="presetReadUserId"
259
+ v-if="canPresetRead"
260
+ label="
261
+ 自动分阅
262
+ "
263
+ >
264
+ <SelectUser
265
+ :nextUser="nextNode.presetReadUserId"
266
+ :multiple="true"
267
+ :selectUserList="selectPresetUserList"
268
+ :options="presetOptions"
269
+ :radioList="presetReadUserId"
270
+ :presetEdit="1"
271
+ :mix="true"
272
+ :types="types"
273
+ @change="changeSelectReadUser($event, 'presetReadUserId')"
274
+ :tabs="tabs"
275
+ />
276
+ </el-form-item>
277
+ <el-form-item
278
+ v-if="isHandleExplain == 1"
279
+ prop="handleExplain"
280
+ label="办理说明"
281
+ >
282
+ <el-input
283
+ placeholder="请输入办理说明"
284
+ v-model="nextNode.handleExplain"
285
+ />
286
+ </el-form-item>
287
+ </div>
288
+ </div>
289
+ </div>
290
+ <CustomPreset
291
+ v-if="isCustomPreset"
292
+ ref="customPreset"
293
+ @changeCustom="
294
+ data => {
295
+ presetList = data;
296
+ }
297
+ "
298
+ @changeActiveNames="val => (activeNames = val)"
299
+ @loadingEnd="customLoading('end')"
300
+ @loadingStart="customLoading('start')"
301
+ :nextNode="nextNode.nextNodeId"
302
+ :id="businessIds"
303
+ :processDefinitionId="nodeInfo.nextNode"
304
+ />
305
+ <Preset
306
+ v-if="isPreset"
307
+ @changePreset="
308
+ data => {
309
+ presetUserJson = data;
310
+ }
311
+ "
312
+ @loadingEnd="customLoading('end')"
313
+ @loadingStart="customLoading('start')"
314
+ :nodeId="nextNode.nextNodeId"
315
+ :businessId="businessIds"
316
+ :processDefinitionId="nodeInfo.nextNode"
317
+ :presetTaskNodeMap="presetTaskNodeMap"
318
+ :presetTaskNodeKeyStr="presetTaskNodeKeyStr"
319
+ />
320
+ </el-form>
321
+ <div v-if="!isFlow && isSpecial" style="padding: 5px; background: #fff">
322
+ <div class="news" @click="showNews = !showNews">
323
+ <span class="news-item">消息通知</span>
324
+ <span :class="showNews ? 'show' : 'sj'"></span>
325
+ </div>
326
+ <div v-show="showNews" style="transition: 1s">
327
+ <el-checkbox-group v-model="nextNode.notificationType">
328
+ <el-checkbox
329
+ v-for="item of newsList"
330
+ :key="item.cciValue"
331
+ :label="item.cciValue"
332
+ >
333
+ {{ item.shortName }}
334
+ </el-checkbox>
335
+ </el-checkbox-group>
336
+ <div
337
+ v-show="showNews"
338
+ style="
339
+ { border: 1px solid #ccc;
340
+ padding: 5px;
341
+ border-radius: 5px;
342
+ font-size: 13px;}
343
+ "
344
+ >
345
+ {{ nextNode.notificationMsg }}
346
+ </div>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ <div
351
+ class="es-flow-buttons"
352
+ v-if="typeCode != 'fenyue' && !shrink"
353
+ style="margin-top: 10px"
354
+ >
355
+ <div v-if="isSubmitButtonShowAgreeAndDisagree == 1">
356
+ <el-button
357
+ class="es-button-agree"
358
+ type="primary"
359
+ @click="subProcess('同意。')"
360
+ >同意</el-button
361
+ >
362
+ <el-button class="es-button-agree" @click="subProcess('不同意。')"
363
+ >不同意</el-button
364
+ >
365
+ <el-button class="es-button-agree-save" @click="saveInfo()"
366
+ >暂存</el-button
367
+ >
368
+ </div>
369
+ <div class="es-user-defined">
370
+ <el-button
371
+ v-show="isSubmitButtonShowAgreeAndDisagree != 1"
372
+ v-for="item of btnList"
373
+ :key="item.name"
374
+ :type="item.type"
375
+ :style="btnStyle"
376
+ @click="item.event === 'sub' ? subProcess() : saveInfo()"
377
+ >
378
+ {{ item.text }}
379
+ </el-button>
380
+ </div>
381
+ <div v-if="!isFlow" class="es-footer-btn">
382
+ <el-button
383
+ v-if="rejectObj.fun"
384
+ type="danger"
385
+ @click="rejectBtn"
386
+ class="btn"
387
+ >
388
+ 驳回
389
+ </el-button>
390
+
391
+ <!-- v-if="pointsReadingObj.fun" -->
392
+ <el-button v-if="pointsReadingObj.fun" class="btn" @click="taskReadBtn"
393
+ >分阅</el-button
394
+ >
395
+ <el-button
396
+ class="btn"
397
+ v-for="item of moreList"
398
+ :key="item.key"
399
+ @click="goView(item)"
400
+ >
401
+ {{ item.value }}
402
+ </el-button>
403
+ </div>
404
+ </div>
405
+ <div v-else-if="!shrink" class="es-fenyue-buttons">
406
+ <el-button
407
+ type="primary"
408
+ size="medium"
409
+ style="width: 100%; margin: 10px 0px"
410
+ @click="taskRead()"
411
+ >
412
+ 阅结
413
+ </el-button>
414
+ <el-button
415
+ class="btn"
416
+ v-if="isCanFenyue == '1'"
417
+ size="medium"
418
+ style="margin-left: 0px"
419
+ @click="taskReadBtn"
420
+ >分阅</el-button
421
+ >
422
+ </div>
423
+ <!-- 弹窗内容 -->
424
+ <es-dialog
425
+ append-to-body
426
+ :title="title"
427
+ :close-on-click-modal="false"
428
+ :visible.sync="handleVisible"
429
+ v-if="handleVisible"
430
+ height="auto"
431
+ >
432
+ <ProcessForm
433
+ :id="businessIds"
434
+ :process-definition-id="nodeInfo.nextNode"
435
+ :opinion="value"
436
+ @cancel="closeProcess($event, 'handleVisible')"
437
+ />
438
+ </es-dialog>
439
+ <es-dialog
440
+ append-to-body
441
+ :close-on-click-modal="false"
442
+ title="流程图查看"
443
+ :visible.sync="showFlowChart"
444
+ v-if="showFlowChart"
445
+ >
446
+ <!-- <FlowChart :nodeId="nodeInfo.nextNode" v-if="showFlowChart" /> -->
447
+ <img
448
+ style="width: 100%"
449
+ :src="
450
+ `${charUrl}/bpm/service/diagram/getpng.png?processDefinitionId=${
451
+ nodeInfo.nextNode
452
+ }`
453
+ "
454
+ alt="加载失败"
455
+ />
456
+ </es-dialog>
457
+ <es-dialog
458
+ append-to-body
459
+ :close-on-click-modal="false"
460
+ title="驳回"
461
+ v-if="showReject"
462
+ height="auto"
463
+ :visible.sync="showReject"
464
+ >
465
+ <ProcessReject
466
+ :pending-id="pendingId"
467
+ :option="value"
468
+ :show-reject="showReject"
469
+ :news-info="nextNode.notificationMsg"
470
+ @cancel="closeProcess(true, 'showReject')"
471
+ />
472
+ </es-dialog>
473
+ <es-dialog
474
+ append-to-body
475
+ :close-on-click-modal="false"
476
+ :title="taskReadType === 'transfer' ? '转办' : '分阅'"
477
+ :visible.sync="showTaskRead"
478
+ height="auto"
479
+ v-if="showTaskRead"
480
+ >
481
+ <StartTaskRead
482
+ :pending-id="pendingId"
483
+ :opinion="value"
484
+ :type="taskReadType"
485
+ :taskExamine="taskExamineInfo"
486
+ :news-info="nextNode.notificationMsg"
487
+ @cancel="closeProcess($event, 'showTaskRead')"
488
+ />
489
+ </es-dialog>
490
+ <es-dialog
491
+ append-to-body
492
+ :close-on-click-modal="false"
493
+ title="意见附件"
494
+ :visible.sync="showFileList"
495
+ v-if="showFileList"
496
+ >
497
+ <FileList
498
+ :ownId="pendingId"
499
+ :code="attachedCode"
500
+ @changeFileNum="val => (fileNum = val)"
501
+ />
502
+ </es-dialog>
503
+ <es-dialog
504
+ append-to-body
505
+ :close-on-click-modal="false"
506
+ title="发送消息"
507
+ :visible.sync="showSendMsg"
508
+ height="auto"
509
+ v-if="showSendMsg"
510
+ >
511
+ <SendMsg
512
+ @cancel="closeProcess($event, 'showSendMsg')"
513
+ :pendingId="pendingId"
514
+ :newsList="newsList"
515
+ />
516
+ </es-dialog>
517
+ <es-dialog
518
+ append-to-body
519
+ :close-on-click-modal="false"
520
+ :title="flowTitle"
521
+ :visible.sync="showTaskUnionExamine"
522
+ height="auto"
523
+ v-if="showTaskUnionExamine"
524
+ >
525
+ <TaskUnionExamine
526
+ @cancel="closeProcess($event, 'showTaskUnionExamine')"
527
+ :pendingId="pendingId"
528
+ :defaultOpinion="nodeDefaultSubmitOpinion"
529
+ :type="flowType"
530
+ :multiple="flowMultiple"
531
+ :disabled="flowDisabled"
532
+ />
533
+ </es-dialog>
534
+ </div>
535
+ </template>
536
+
537
+ <script>
538
+ import CommonOpinions from './component/CommonOpinions.vue';
539
+ import ProcessForm from './processForm.vue';
540
+ import CustomPreset from './component/CustomPreset.vue';
541
+ import Preset from './component/Preset.vue';
542
+ import FileList from './component/FileList.vue';
543
+ import SendMsg from './component/SendMsg.vue';
544
+ import TimeLimit from './component/TimeLimit.vue';
545
+ import ProcessReject from './processReject.vue';
546
+ import StartTaskRead from './startTaskRead.vue';
547
+ import TaskUnionExamine from './component/taskUnionExamine.vue';
548
+ import SelectUser from './selectUser.vue';
549
+ import {
550
+ findSysCodes,
551
+ getHandleInfoHtml,
552
+ getNodeInfo,
553
+ tempSave,
554
+ getProcessDefList,
555
+ pendedhistoryList,
556
+ endFlowHtml,
557
+ taskReadHtml,
558
+ findCodeValues,
559
+ toStartTaskReadIndex,
560
+ loginUserInfo,
561
+ getAdjunctFileInfos,
562
+ rejectAndEnd,
563
+ isCanStartSubFlow,
564
+ taskHandleHtml
565
+ } from 'eoss-ui/src/config/api';
566
+ import util from 'eoss-ui/src/utils/util';
567
+ export default {
568
+ name: 'EsFlow',
569
+ componentName: 'EsFlow',
570
+ components: {
571
+ [ProcessForm.name]: ProcessForm,
572
+ [ProcessReject.name]: ProcessReject,
573
+ [StartTaskRead.name]: StartTaskRead,
574
+ [CustomPreset.name]: CustomPreset,
575
+ [CommonOpinions.name]: CommonOpinions,
576
+ [FileList.name]: FileList,
577
+ [TimeLimit.name]: TimeLimit,
578
+ [SendMsg.name]: SendMsg,
579
+ [SelectUser.name]: SelectUser,
580
+ [TaskUnionExamine.name]: TaskUnionExamine,
581
+ Preset
582
+ },
583
+ props: {
584
+ isStartFlow: { type: Boolean, default: false },
585
+ businessId: { type: String, default: '' },
586
+ pendingId: { type: String, default: '' },
587
+ nodeName: { type: String, default: '' },
588
+ typeCode: { type: String, default: '' },
589
+ flowTypeCode: { type: String, default: '' },
590
+ defaultProcessKey: { type: String, default: '' },
591
+ btnList: {
592
+ type: Array,
593
+ default: () => [
594
+ { text: '提交', event: 'sub', type: 'primary' },
595
+ { text: '暂存', event: 'save' }
596
+ ]
597
+ },
598
+ subFun: {
599
+ type: Function,
600
+ default: callBack => {
601
+ callBack();
602
+ }
603
+ },
604
+ beforeSubmit: Function,
605
+ title: { type: String, default: '事务表单办理' }
606
+ },
607
+ data() {
608
+ return {
609
+ userModel: {},
610
+ loading: null, // 加载中
611
+ NodeName: '', // 当前节点值
612
+ radioList: [],
613
+ value: '',
614
+ flowType: '',
615
+ flowDisabled: false,
616
+ activeNames: '',
617
+ selectUserList: [],
618
+ flowMultiple: true,
619
+ isCustomUser: 0,
620
+ shrink: false,
621
+ taskExamineInfo: {},
622
+ presetUserJson: [],
623
+ presetList: [],
624
+ fileNum: 0, //附件数量
625
+ showFileList: false, //意见附件弹窗
626
+ attachedCode: '', //附件code码
627
+ isCustomPreset: false,
628
+ isBanInputOpinion: 0, //是否可以填写意见 0是 1否
629
+ isPreset: false,
630
+ businessIds: '',
631
+ presetTaskNodeKeyStr: '',
632
+ presetTaskNodeMap: {},
633
+ flowTitle: '',
634
+ endFlowInfo: {},
635
+ isCanFenyue: '0',
636
+ appId: '',
637
+ multiple: false, //是否多选(true/false)
638
+ readMultiple: true, //分阅用户是否多选(true/false)
639
+ selectReadUserList: [], //选中分阅用户
640
+ mixPresetList: [], //自动分阅混选
641
+ selectPresetUserList: [], //自动分阅选中用户
642
+ presetOptions: [], //自动分阅
643
+ isLimitedTimeHandling: 0, //是否支持发起子流程限时办理
644
+ nodeType: 0, //节点类型, (普通节点0,承办节点1,会签节点2,阅办节点3)
645
+ userOptions: [], //分阅用户
646
+ mixReadList: [], //分阅混选
647
+ mixCurrentOrg: [], //本单位混选
648
+ isTaskread: 0, //是否展示分阅用户
649
+ showSendMsg: false, //是否展示核稿通知页面
650
+ canPresetRead: false, //是否展示自动分阅
651
+ nextNodeList: [],
652
+ removeUsers: [],
653
+ options: [],
654
+ params: {
655
+ filid: 'all', //选择范围(my:本单位/ "" or all:全部)
656
+ selectmix: 'true1',
657
+ deptid: '' //指定部门(my:本部门)
658
+ },
659
+ showReject: false, // 是否展示驳回按钮
660
+ showTaskRead: false, // 是否展示分阅按钮
661
+ taskReadType: '', //分阅类型
662
+ isChooseNextNode: 1, //是否展示下步操作
663
+ isHandleExplain: 0, //是否展示办理说明
664
+ handleVisible: false,
665
+ defaultNextNode: '', //默认节点
666
+ showFlowChart: false, // 展示流程图弹窗
667
+ isReject: false, // 是否驳回
668
+ showTaskUnionExamine: false, //展示联合审核弹窗
669
+ charUrl: util.win.location.origin,
670
+ endFlow: false, // 是否结束流程
671
+ isSubmitButtonShowAgreeAndDisagree: 0, //是否展示同意和不同意按钮
672
+ pointsReadingObj: {
673
+ value: '分阅',
674
+ fun: undefined
675
+ }, // 分阅
676
+ rejectObj: {
677
+ value: '驳回',
678
+ fun: undefined
679
+ },
680
+ isLimitedTimeHandling: false, // 是否支持发起子流程限时办理
681
+ moreList: [], // 更多数组
682
+ newsList: [], // 通知类型
683
+ isSpecial: false,
684
+ taskId: '',
685
+ showNews: false, // 是否展示通知信息
686
+ userInfo: '', // 用户信息
687
+ objType: '',
688
+ nodeDefaultSubmitOpinion: '', // 默认保存意见
689
+ nodeDefaultRejectOpinion: '', // 默认驳回意见
690
+ choiceOrgId: '',
691
+ choiceDeptId: '',
692
+ pOrgId: '',
693
+ // userSelectionType: '',
694
+ isOpinionRequired: 0, // 常用意见是否必填
695
+ nextUserSelectList: [], // 下步选中办理人
696
+ processObj: {}, // 流程信息
697
+ pid: '123',
698
+ isCanRemoveSign: false, // 是否显示减签
699
+ isCanAddSign: false, // 是否显示加签
700
+ AddSignUserList: [], // 加签办理人数组
701
+ RemoveSignUserList: [], // 减签办理人数组
702
+ operationList: [], // 下一步操作
703
+ userList: [], // 下步办理人数组
704
+ handleMode: '',
705
+ countersignaturetypeCode: 0, //是否展示处理方式
706
+ presetEdit: 0,
707
+ isShowNextUser: true, //是否展示下步办理人
708
+ nextUserTypes: ['employee', 'persongroup'], //下步办理人类型配置
709
+ nextUserTabs: {}, //下步办理人权限配置
710
+ presetReadUserId: [],
711
+ nextNode: {
712
+ nextNodeId: '', // 下步节点
713
+ isAddSign: '', // 是否加签
714
+ isRemoveSign: '', // 是否减签
715
+ nextOperate: '', // 下步操作
716
+ notificationMsg: '', // 通知信息
717
+ addSignUserId: [], // 加签办理人
718
+ removeSignUserId: [], // 减签办理人
719
+ nextUserId: [], // 下步办理人
720
+ nextOrgId: [], //办理对象
721
+ nextCurrentOrgObjSerialId: [], //本单位用户
722
+ nextReadUserId: [], //分阅用户
723
+ presetReadUserId: [], //自动分阅
724
+ handleExplain: '', //办理意见
725
+ notificationType: [], // 通知方式
726
+ isLimitedTime: '2' // 是否限时办理
727
+ },
728
+ nodeInfos: [], // 下步节点选择数组
729
+ nextFlowNode: '',
730
+ nodeInfo: {
731
+ nextNode: '',
732
+ nextUser: '',
733
+ option: []
734
+ }
735
+ };
736
+ },
737
+ created() {
738
+ this.getUserInfo();
739
+ },
740
+ destroyed() {
741
+ this.shrink = false;
742
+ },
743
+ mounted() {
744
+ this.businessIds = this.businessId;
745
+ this.nextNode.nextNodeId = this.nextNodeId;
746
+ if (this.isFlow) {
747
+ this.businessId && this.getProcess();
748
+ } else if (this.typeCode == 'fenyue') {
749
+ this.getTaskReadFlow();
750
+ } else {
751
+ this.getHedInfo();
752
+ }
753
+ },
754
+ watch: {
755
+ businessId(val) {
756
+ if (val) {
757
+ this.businessIds = val;
758
+ if (this.isFlow) {
759
+ this.getProcess();
760
+ }
761
+ }
762
+ }
763
+ },
764
+ computed: {
765
+ tabs() {
766
+ return {
767
+ employee: {
768
+ param: {
769
+ filid: this.userModel.orgId,
770
+ name: '本单位用户'
771
+ }
772
+ },
773
+ department: { param: { filid: this.userModel.orgId } }
774
+ };
775
+ },
776
+ currentTabs() {
777
+ return {
778
+ department: {
779
+ param: { filid: this.userModel.orgId }
780
+ },
781
+ employee: {
782
+ param: { filid: this.userModel.orgId }
783
+ }
784
+ };
785
+ }, //
786
+ // 是否开始流程
787
+ isFlow() {
788
+ return this.isStartFlow;
789
+ },
790
+ types() {
791
+ if (this.isCdjxjTaskHandle == 'true') {
792
+ return ['employee', 'enterprise', 'department'];
793
+ } else {
794
+ return ['employee', 'enterprise', 'department', 'persongroup'];
795
+ }
796
+ },
797
+ btnStyle() {
798
+ if (this.btnList.length > 1) {
799
+ return {};
800
+ } else {
801
+ return { width: '100%' };
802
+ }
803
+ }
804
+ },
805
+ methods: {
806
+ // 分阅是否多选
807
+ isReadMultiple(nextReadUserSelectType) {
808
+ if (nextReadUserSelectType == 1) {
809
+ this.readMultiple = false;
810
+ } else if (nextReadUserSelectType == 2) {
811
+ this.readMultiple = true;
812
+ } else if (nextReadUserSelectType == 3) {
813
+ this.readMultiple = false;
814
+ } else if (nextReadUserSelectType == 4) {
815
+ this.readMultiple = true;
816
+ } else if (nextReadUserSelectType == 5) {
817
+ this.readMultiple = false;
818
+ } else if (nextReadUserSelectType == 6) {
819
+ this.readMultiple = true;
820
+ }
821
+ },
822
+ // 监听分阅/自动分阅用户选中
823
+ changeSelectReadUser(val, type) {
824
+ const { nextUser, mixList } = val;
825
+ this.nextNode[type] = nextUser;
826
+ if (type === 'presetReadUserId') {
827
+ this.mixPresetList = mixList;
828
+ } else {
829
+ this.mixReadList = mixList;
830
+ }
831
+ },
832
+ //获取附件
833
+ getFile(ownId, code) {
834
+ let params = {
835
+ url: getAdjunctFileInfos,
836
+ params: { ownId, code }
837
+ };
838
+ util
839
+ .ajax(params)
840
+ .then(res => {
841
+ const { rCode, results, msg } = res;
842
+ if (rCode == 0) {
843
+ results && (this.fileNum = results.length);
844
+ } else {
845
+ this.$message.error(msg || '系统错误,请联系管理员!');
846
+ }
847
+ })
848
+ .catch(err => {
849
+ if (err.message && err.message !== 'canceled') {
850
+ this.$message.error(err.message);
851
+ }
852
+ });
853
+ },
854
+ //判断展示下步办理人/办理对象
855
+ getIsShowNextUser(val) {
856
+ if (
857
+ val == 7 ||
858
+ val == 8 ||
859
+ val == 9 ||
860
+ val == 10 ||
861
+ val == 11 ||
862
+ val == 12
863
+ ) {
864
+ this.isShowNextUser = false;
865
+ //设置办理角色
866
+ // $("#orgRoleCode").val(handleRoleId);
867
+ if (val == 7 || val == 8) {
868
+ this.nextUserTypes = ['department'];
869
+ this.nextUserTabs = {
870
+ department: { param: { filid: this.userModel.orgId } }
871
+ };
872
+ this.multiple = true;
873
+ } else if (val == 9 || val == 10) {
874
+ this.nextUserTypes = ['enterprise'];
875
+ this.nextUserTabs = { enterprise: { param: { filid: 'other' } } };
876
+ this.multiple = true;
877
+ } else if (val == 11 || val == 12) {
878
+ this.nextUserTypes = ['department', 'enterprise'];
879
+ this.nextUserTabs = {
880
+ enterprise: { param: { filid: 'other' } },
881
+ department: { param: { filid: this.userModel.orgId } }
882
+ };
883
+ this.multiple = true;
884
+ }
885
+ if (val == 7 || val == 9 || val == 11) {
886
+ this.multiple = false;
887
+ }
888
+ }
889
+ },
890
+ setShrink() {
891
+ this.shrink = !this.shrink;
892
+ this.$emit('shrink', this.shrink);
893
+ },
894
+ customLoading(type) {
895
+ if (type != 'end') {
896
+ this.loading = util.loading(this.$loading, '加载中...');
897
+ } else {
898
+ this.loading.close();
899
+ }
900
+ },
901
+ taskRead() {
902
+ this.$confirm('确认提交?', '提示', {
903
+ confirmButtonText: '确定',
904
+ cancelButtonText: '取消',
905
+ type: 'warning'
906
+ })
907
+ .then(() => {
908
+ this.loading = util.loading(this.$loading, '加载中...');
909
+ const {
910
+ businessId,
911
+ appId,
912
+ processDefinitionId,
913
+ pendingId
914
+ } = this.taskExamineInfo;
915
+ let params = {
916
+ businessId,
917
+ appId,
918
+ processDefinitionId,
919
+ pendingId,
920
+ opinion: this.value
921
+ };
922
+ util
923
+ .ajax({
924
+ url: taskReadHtml,
925
+ params: { taskAction: 'complete' },
926
+ headers: { Accept: 'application/json,text/plain' },
927
+ method: 'post',
928
+ data: params
929
+ })
930
+ .then(res => {
931
+ const { status, message } = res;
932
+ this.loading.close();
933
+ if (status === 'success') {
934
+ this.$message.success('提交成功');
935
+ this.$emit('success');
936
+ } else {
937
+ this.$message.error(message || '系统错误,请联系管理员!');
938
+ this.$emit('error');
939
+ }
940
+ })
941
+ .catch(err => {
942
+ this.loading.close();
943
+ if (err.message && err.message !== 'canceled') {
944
+ this.$message.error(err.message);
945
+ }
946
+ });
947
+ })
948
+ .catch(() => {});
949
+ },
950
+ getTaskReadFlow() {
951
+ this.loading = util.loading(this.$loading, '加载中...');
952
+ util
953
+ .ajax({
954
+ url: toStartTaskReadIndex,
955
+ params: { pendingId: this.pendingId }
956
+ })
957
+ .then(res => {
958
+ const {
959
+ status,
960
+ message,
961
+ data: { isCanFenyue, taskExamine }
962
+ } = res;
963
+ if (status === 'success') {
964
+ this.taskExamineInfo = taskExamine;
965
+ this.isCanFenyue = isCanFenyue;
966
+ if (this.nodeName) {
967
+ this.NodeName = this.nodeName;
968
+ }
969
+ this.getNodeType();
970
+ } else {
971
+ this.$message.error(message || '系统错误,请联系管理员!');
972
+ }
973
+ this.loading.close();
974
+ })
975
+ .catch(err => {
976
+ this.loading.close();
977
+ if (err.message && err.message !== 'canceled') {
978
+ this.$message.error(err.message);
979
+ }
980
+ });
981
+ },
982
+ getUserInfo() {
983
+ let mainConfig = util.getStorage('mainConfig');
984
+ if (mainConfig) {
985
+ this.userModel = JSON.parse(mainConfig).userModel;
986
+ } else {
987
+ util
988
+ .ajax({ url: loginUserInfo })
989
+ .then(res => {
990
+ const { status, data } = res;
991
+ if (status == 'success') {
992
+ this.userModel = data;
993
+ } else {
994
+ let msg = res.msg || '系统错误,请联系管理员!';
995
+ this.$message.error(msg);
996
+ }
997
+ })
998
+ .catch(err => {
999
+ if (err.message && err.message !== 'canceled') {
1000
+ this.$message.error(err.message);
1001
+ }
1002
+ });
1003
+ }
1004
+ },
1005
+ changeSelectUser(val, type, isNextNode) {
1006
+ // const { nextUser,mixList } = val;
1007
+ const { nextUser, mixList } = val;
1008
+ if (isNextNode) {
1009
+ this.nextNode[type] = nextUser;
1010
+ if (type == 'nextCurrentOrgObjSerialId') {
1011
+ this.mixCurrentOrg = mixList;
1012
+ }
1013
+ } else {
1014
+ this[type] = nextUser;
1015
+ }
1016
+ },
1017
+ getNodeType() {
1018
+ util
1019
+ .ajax({
1020
+ url: findCodeValues,
1021
+ params: { ccCode: 'notification_type' }
1022
+ })
1023
+ .then(res => {
1024
+ const { status, data } = res;
1025
+ if (status === 'success') {
1026
+ this.newsList = data;
1027
+ }
1028
+ })
1029
+ .catch(err => {
1030
+ if (err.message && err.message !== 'canceled') {
1031
+ this.$message.error(err.message);
1032
+ }
1033
+ });
1034
+ },
1035
+ /**
1036
+ * saveInfo
1037
+ * @desc:暂存
1038
+ * @author liufan
1039
+ * @date 2022年9月9日
1040
+ **/
1041
+ saveInfo(type) {
1042
+ if (this.isFlow) {
1043
+ if (!type) {
1044
+ if (this.beforeSubmit != undefined) {
1045
+ this.beforeSubmit(0)
1046
+ .then(next => {
1047
+ this.$emit('save', this.businessIds);
1048
+ })
1049
+ .catch(e => {});
1050
+ } else {
1051
+ this.$emit('save', this.businessIds);
1052
+ }
1053
+ }
1054
+ } else {
1055
+ if (this.beforeSubmit == undefined && !type) {
1056
+ this.subFun(this.saveFlowInfo);
1057
+ } else if (!type && this.beforeSubmit != undefined) {
1058
+ this.beforeSubmit(2)
1059
+ .then(next => {
1060
+ this.saveFlowInfo();
1061
+ })
1062
+ .catch(e => {});
1063
+ } else {
1064
+ this.saveFlowInfo(type);
1065
+ }
1066
+ }
1067
+ },
1068
+ saveFlowInfo(isSave) {
1069
+ let params = {
1070
+ opinion: this.value,
1071
+ pendingId: this.pendingId
1072
+ };
1073
+ this.loading = util.loading(this.$loading, '保存中...');
1074
+ util
1075
+ .ajax({ url: tempSave, params })
1076
+ .then(res => {
1077
+ const { status, message } = res;
1078
+ this.loading.close();
1079
+ if (status == 'success') {
1080
+ // this.$message.success('暂存成功');
1081
+ !isSave && this.$emit('save', this.businessIds);
1082
+ } else {
1083
+ this.$message.error(message || '系统错误,请联系管理员!');
1084
+ }
1085
+ })
1086
+ .catch(err => {
1087
+ this.loading.close();
1088
+ if (err.message && err.message !== 'canceled') {
1089
+ this.$message.error(err.message);
1090
+ }
1091
+ });
1092
+ },
1093
+ /**
1094
+ * rejectBtn
1095
+ * @desc:点击驳回
1096
+ * @author liufan
1097
+ * @date 2022年5月25日
1098
+ **/
1099
+ rejectBtn() {
1100
+ if (this.value === '') this.value = this.nodeDefaultRejectOpinion;
1101
+ if (!this.value) {
1102
+ return this.$message.warning('请填写意见');
1103
+ }
1104
+ this.showReject = true;
1105
+ },
1106
+ /**
1107
+ * taskReadBtn
1108
+ * @desc:点击分阅
1109
+ * @author liufan
1110
+ * @date 2022年5月25日
1111
+ **/
1112
+ taskReadBtn() {
1113
+ // return this.$message.warning('暂未开放!敬请期待');
1114
+ if (this.value === '') this.value = this.nodeDefaultRejectOpinion;
1115
+ this.taskReadType = 'create';
1116
+ this.showTaskRead = true;
1117
+ },
1118
+ /**
1119
+ * getFind
1120
+ * @desc:获取通知方式
1121
+ * @author liufan
1122
+ * @date 2022年5月25日
1123
+ **/
1124
+ getFind() {
1125
+ util
1126
+ .ajax({
1127
+ url: findSysCodes
1128
+ })
1129
+ .then(res => {
1130
+ const { status, message } = res;
1131
+ if (status === 'success') {
1132
+ this.nextNode.notificationType = message.split(',');
1133
+ }
1134
+ })
1135
+ .catch(err => {
1136
+ if (err.message && err.message !== 'canceled') {
1137
+ this.$message.error(err.message);
1138
+ }
1139
+ });
1140
+ },
1141
+ /**
1142
+ * endFlows
1143
+ * @desc:直接办结
1144
+ * @author liufan
1145
+ * @param {Object} res 直接办结数据
1146
+ * @date 2022年5月25日
1147
+ **/
1148
+ endFlows(res) {
1149
+ this.$confirm('确认' + res.value + '?')
1150
+ .then(() => {
1151
+ let params = {
1152
+ url: endFlowHtml,
1153
+ headers: { Accept: 'application/json,text/plain' },
1154
+ method: 'post',
1155
+ data: {
1156
+ ...this.endFlowInfo,
1157
+ ...this.nextNode,
1158
+ opinion: this.value,
1159
+ userId: util.getStorage('userId'),
1160
+ nextUserId: this.multiple
1161
+ ? this.nextNode.nextUserId.join(',')
1162
+ : this.nextNode.nextUserId,
1163
+ addSignUserId: this.nextNode.addSignUserId.join(','),
1164
+ customPresetUserJson: JSON.stringify(this.presetList),
1165
+ presetUserJson: JSON.stringify(this.presetUserJson),
1166
+ removeSignUserId: this.nextNode.removeSignUserId.join(','),
1167
+ notificationType: this.nextNode.notificationType.join(',')
1168
+ }
1169
+ };
1170
+ this.loading = util.loading(this.$loading, '加载中...');
1171
+ util
1172
+ .ajax(params)
1173
+ .then(res => {
1174
+ const { status, message } = res;
1175
+ this.loading.close();
1176
+ if (status === 'success') {
1177
+ this.$message.success('提交成功');
1178
+ this.$emit('success');
1179
+ } else {
1180
+ this.$message.error(message || '系统错误,请联系管理员!');
1181
+ this.$emit('error');
1182
+ }
1183
+ })
1184
+ .catch(err => {
1185
+ this.loading.close();
1186
+ if (err.message && err.message !== 'canceled') {
1187
+ this.$message.error(err.message);
1188
+ }
1189
+ });
1190
+ })
1191
+ .catch(e => {});
1192
+ },
1193
+ /**
1194
+ * goView
1195
+ * @desc:更多流程按钮操作
1196
+ * @author liufan
1197
+ * @param {Object} res 当前点击操作按钮数据
1198
+ * @date 2022年5月25日
1199
+ **/
1200
+ goView(res) {
1201
+ // 驳回并办结:rejectAndEndHtml
1202
+ // 获取转办页面:toTaskTransferHtml
1203
+ // 转办:taskTransferHtml
1204
+ // 获取分阅页面信息:toStartTaskReadHtml
1205
+ // 分阅:taskReadHtml
1206
+ // 获取驳回页面信息:toTaskRejectHtml(注释有误:appId改为pendingId)
1207
+ // 驳回:taskRejectHtml
1208
+ // 直接办结:endFlowHtml
1209
+ if (res.fun === 'toStartTaskRead()') {
1210
+ // 分阅
1211
+ this.taskReadBtn();
1212
+ } else if (res.fun === 'reject()') {
1213
+ // 驳回
1214
+ this.rejectBtn();
1215
+ } else if (res.fun === 'endFlow()') {
1216
+ // 直接办结
1217
+ this.endFlows(res);
1218
+ } else if (res.fun === 'rejectAndEnd()') {
1219
+ // 驳回并办结
1220
+ this.rejectAndEnd(res);
1221
+ } else if (res.fun === 'toTransfer()') {
1222
+ // 转办
1223
+ this.toTransfer(res);
1224
+ } else if (res.fun === 'toTaskReadAndEnd()') {
1225
+ this.toTaskReadAndEnd(res);
1226
+ } else if (res.fun === 'toSendMsg()') {
1227
+ // 核稿通知
1228
+ this.toSendMsg(res);
1229
+ } else if (res.fun === 'toStartDraf()') {
1230
+ //稿件递送
1231
+ this.flowType = 'startDraf';
1232
+ this.flowMultiple = false;
1233
+ this.flowDisabled = false;
1234
+ this.flowTitle = res.value;
1235
+ this.toStartDraf(res);
1236
+ } else if (res.fun === 'toTakeAdvice()') {
1237
+ //征求意见
1238
+ this.flowType = 'takeAdvice';
1239
+ this.flowMultiple = true;
1240
+ this.flowDisabled = false;
1241
+ this.flowTitle = res.value;
1242
+ this.toTakeAdvice(res);
1243
+ } else if (res.fun === 'toUnionExamine()') {
1244
+ //联合审核
1245
+ this.flowType = 'unionExamine';
1246
+ this.flowTitle = res.value;
1247
+ this.flowDisabled = false;
1248
+ this.flowMultiple = true;
1249
+ this.toStartDraf();
1250
+ } else if (res.fun === 'toTaskReview()') {
1251
+ // 复核
1252
+ this.flowType = 'taskReview';
1253
+ this.flowDisabled = true;
1254
+ this.flowTitle = res.value;
1255
+ this.toStartDraf(res);
1256
+ } else if (res.fun === 'toUnionSeal()') {
1257
+ // 联合用印
1258
+ this.flowType = 'unionSeal';
1259
+ this.flowDisabled = true;
1260
+ this.flowTitle = res.value;
1261
+ this.toStartDraf(res);
1262
+ } else if (res.fun == 'toTwoOfficesDispatch()') {
1263
+ // 报送两办
1264
+ this.flowType = 'twoOfficesDispatch';
1265
+ this.flowDisabled = true;
1266
+ this.flowTitle = res.value;
1267
+ this.toStartDraf(res);
1268
+ } else {
1269
+ this.$message.warning('暂未开放,敬请期待!');
1270
+ }
1271
+ // isCanStartSubFlow
1272
+ },
1273
+ /**
1274
+ * toTakeAdvice
1275
+ * @desc:征求意见
1276
+ * @author liufan
1277
+ * @date 2022年9月29日
1278
+ **/
1279
+ toTakeAdvice(res) {
1280
+ let params = {
1281
+ url: isCanStartSubFlow,
1282
+ params: {
1283
+ appId: this.taskExamineInfo.appId,
1284
+ inevitableNode: res.inevitableNode
1285
+ },
1286
+ method: 'POST',
1287
+ headers: { Accept: 'application/json,text/plain' }
1288
+ };
1289
+ this.loading = util.loading(this.$loading, '加载中...');
1290
+ util
1291
+ .ajax(params)
1292
+ .then(res => {
1293
+ const { message } = res;
1294
+ this.loading.close();
1295
+ if (message == 'success') {
1296
+ this.showTaskUnionExamine = true;
1297
+ } else {
1298
+ this.$message.error(message || '系统错误,请联系管理员!');
1299
+ }
1300
+ })
1301
+ .catch(err => {
1302
+ this.loading.close();
1303
+ if (err.message && err.message !== 'canceled') {
1304
+ this.$message.error(err.message);
1305
+ }
1306
+ });
1307
+ // return this.$message.warning('暂未开放!敬请期待');
1308
+ },
1309
+ /**
1310
+ * toStartDraf
1311
+ * @desc: 稿件递送、联合审核、复核
1312
+ * @author liufan
1313
+ * @date 2022年9月29日
1314
+ **/
1315
+ toStartDraf(res) {
1316
+ this.showTaskUnionExamine = true;
1317
+ },
1318
+ /**
1319
+ * toSendMsg
1320
+ * @desc:核稿通知
1321
+ * @author liufan
1322
+ * @date 2022年9月29日
1323
+ **/
1324
+ toSendMsg(res) {
1325
+ this.showSendMsg = true;
1326
+ },
1327
+ /**
1328
+ * toTaskReadAndEnd
1329
+ * @desc:分阅并办结
1330
+ * @author liufan
1331
+ * @date 2022年9月29日
1332
+ **/
1333
+ toTaskReadAndEnd(res) {
1334
+ if (this.value === '') this.value = this.nodeDefaultRejectOpinion;
1335
+ this.taskReadType = 'taskReadAndEnd';
1336
+ this.showTaskRead = true;
1337
+ },
1338
+ /**
1339
+ * rejectAndEnd
1340
+ * @desc:驳回并办结
1341
+ * @author liufan
1342
+ * @date 2022年9月29日
1343
+ **/
1344
+ rejectAndEnd(res) {
1345
+ this.$confirm('确认' + res.value + '?')
1346
+ .then(() => {
1347
+ if (this.isOpinionRequired == 1 && (this.value == '' || !this.value))
1348
+ return this.$message.warning('请填写意见');
1349
+ let params = {
1350
+ url: rejectAndEnd,
1351
+ headers: { Accept: 'application/json,text/plain' },
1352
+ method: 'post',
1353
+ params: {
1354
+ opinion: this.value,
1355
+ pendingId: this.pendingId,
1356
+ isSinglePage: false
1357
+ }
1358
+ };
1359
+ this.loading = util.loading(this.$loading, '加载中...');
1360
+ util
1361
+ .ajax(params)
1362
+ .then(res => {
1363
+ const { status, message } = res;
1364
+ this.loading.close();
1365
+ if (status === 'success') {
1366
+ this.$message.success('提交成功');
1367
+ this.$emit('success');
1368
+ } else {
1369
+ this.$message.error(message || '系统错误,请联系管理员!');
1370
+ this.$emit('error');
1371
+ }
1372
+ })
1373
+ .catch(err => {
1374
+ this.loading.close();
1375
+ if (err.message && err.message !== 'canceled') {
1376
+ this.$message.error(err.message);
1377
+ }
1378
+ });
1379
+ })
1380
+ .catch(() => {
1381
+ // on cancel
1382
+ });
1383
+ // return this.$message.warning('暂未开放!敬请期待');
1384
+ },
1385
+ /**
1386
+ * toTransfer
1387
+ * @desc:转办
1388
+ * @author liufan
1389
+ * @date 2022年9月29日
1390
+ **/
1391
+ toTransfer(res) {
1392
+ this.taskReadType = 'transfer';
1393
+ this.showTaskRead = true;
1394
+ // return this.$message.warning('暂未开放!敬请期待');
1395
+ },
1396
+ /**
1397
+ * getNodeInfo
1398
+ * @desc:获取节点信息
1399
+ * @author liufan
1400
+ * @date 2022年5月25日
1401
+ **/
1402
+ getNodeInfo() {
1403
+ let params = {
1404
+ processDefinitionId: this.nodeInfo.nextNode,
1405
+ nextNodeId: this.nextNode.nextNodeId,
1406
+ taskId: this.taskId,
1407
+ userId: util.getStorage('userId'),
1408
+ pendingId: this.pendingId,
1409
+ businessId: this.businessIds
1410
+ };
1411
+ util
1412
+ .ajax({ url: getNodeInfo, params })
1413
+ .then(res => {
1414
+ const { status, message, data } = res;
1415
+ this.loading.close();
1416
+ if (status === 'success') {
1417
+ if (data != null) {
1418
+ if (
1419
+ data.nodeExtAttr.userSelectionType == 7 ||
1420
+ data.nodeExtAttr.userSelectionType == 8 ||
1421
+ data.nodeExtAttr.userSelectionType == 9 ||
1422
+ data.nodeExtAttr.userSelectionType == 10 ||
1423
+ data.nodeExtAttr.userSelectionType == 11 ||
1424
+ data.nodeExtAttr.userSelectionType == 12
1425
+ ) {
1426
+ this.getIsShowNextUser(
1427
+ data.nodeExtAttr && data.nodeExtAttr.userSelectionType
1428
+ );
1429
+ } else {
1430
+ this.isMultiple(
1431
+ data.nodeExtAttr && data.nodeExtAttr.userSelectionType,
1432
+ this.choiceOrgId,
1433
+ this.choiceDeptId,
1434
+ this.pOrgId
1435
+ );
1436
+ }
1437
+ this.isReadMultiple(
1438
+ data.nodeExtAttr && data.nodeExtAttr.userSelectionType
1439
+ );
1440
+ this.isTaskread = data.nodeExtAttr.isTaskread;
1441
+ this.isHandleExplain = data.nodeExtAttr.isHandleExplain;
1442
+ this.isLimitedTimeHandling =
1443
+ data.nodeExtAttr.isLimitedTimeHandling;
1444
+ this.nodeType = data.nodeExtAttr.nodeType;
1445
+ this.multiple
1446
+ ? (this.nextNode.nextUserId = [])
1447
+ : (this.nextNode.nextUserId = '');
1448
+ if (
1449
+ this.multiple &&
1450
+ data.nodeExtAttr.isDefSelectedObj == 1 &&
1451
+ data.nextUserList !== undefined
1452
+ ) {
1453
+ data.nextUserList.map(item => {
1454
+ this.nextNode.nextUserId.push(item.userId);
1455
+ this.selectUserList.push({
1456
+ showname: item.username,
1457
+ showid: item.userId
1458
+ });
1459
+ });
1460
+ }
1461
+ data.nextUserList.map(item => {
1462
+ this.options.push({
1463
+ showname: item.username,
1464
+ showid: item.userId
1465
+ });
1466
+ });
1467
+ if (data.nodeExtAttr.presetEdit != 0) {
1468
+ this.radioList = this.options;
1469
+ }
1470
+ if (
1471
+ !this.multiple &&
1472
+ data.nextUserList.length > 0 &&
1473
+ data.nodeExtAttr.isDefSelectedObj == 1
1474
+ ) {
1475
+ this.nextNode.nextUserId = data.nextUserList[0].userId;
1476
+ this.selectUserList.push({
1477
+ showname: data.nextUserList[0].username,
1478
+ showid: data.nextUserList[0].userId
1479
+ });
1480
+ }
1481
+ // this.userSelectionType = results.nodeExtAttr.userSelectionType;
1482
+ this.isLimitedTimeHandling =
1483
+ data.nodeExtAttr.isLimitedTimeHandling;
1484
+ this.isCustomUser = data.nodeExtAttr.isCustomUser;
1485
+ this.presetEdit = data.nodeExtAttr.presetEdit;
1486
+ this.countersignaturetypeCode = data.countersignaturetypeCode; //是否展示处理方式
1487
+ this.handleMode = data.countersignaturetypeText;
1488
+ }
1489
+ this.isCustomPreset &&
1490
+ this.$refs.customPreset.getPresetFlowInfo(
1491
+ this.nextNode.nextNodeId,
1492
+ this.nodeInfo.nextNode,
1493
+ true
1494
+ );
1495
+ } else {
1496
+ this.$message.error(message || '系统错误,请联系管理员!');
1497
+ }
1498
+ })
1499
+ .catch(err => {
1500
+ this.loading.close();
1501
+ if (err.message && err.message !== 'canceled') {
1502
+ this.$message.error(err.message);
1503
+ }
1504
+ });
1505
+ },
1506
+ /**
1507
+ * selecNext
1508
+ * @desc:下步节点变化时更新数据
1509
+ * @author liufan
1510
+ * @param {String} val 当前选中值
1511
+ * @date 2022年5月25日
1512
+ **/
1513
+ selecNext(val, type) {
1514
+ this.loading = util.loading(this.$loading, '加载中...');
1515
+ if (this.multiple) {
1516
+ this.nextNode.nextUserId = [];
1517
+ } else {
1518
+ this.nextNode.nextUserId = '';
1519
+ }
1520
+ this.options = [];
1521
+ this.selectUserList = [];
1522
+ this.radioList = [];
1523
+
1524
+ if (type) {
1525
+ this.nodeInfos = [];
1526
+ this.operationList.map(item => {
1527
+ if (item.key === val) {
1528
+ if (!item.taskNodeList) {
1529
+ this.nodeInfos = [];
1530
+ } else {
1531
+ this.nodeInfos = item.taskNodeList;
1532
+ }
1533
+ }
1534
+ });
1535
+ if (this.defaultNextNode) {
1536
+ let defaultNode = this.nodeInfos.filter(
1537
+ item => item.nodeId == this.defaultNextNode
1538
+ );
1539
+ if (this.nodeInfos.length > 0 && defaultNode.length == 0) {
1540
+ this.nextNode.nextNodeId = this.nodeInfos[0].nodeId;
1541
+ } else {
1542
+ this.nextNode.nextNodeId = this.defaultNextNode;
1543
+ }
1544
+ } else if (this.nodeInfos.length > 0) {
1545
+ this.nextNode.nextNodeId = this.nodeInfos[0].nodeId;
1546
+ }
1547
+ }
1548
+ // else {
1549
+ // this.nextNodeList.map(item => {
1550
+ // if (item.nodeId === val) {
1551
+ // this.isMultiple(item.transRule.userSelectionType);
1552
+ // }
1553
+ // });
1554
+ // }
1555
+
1556
+ if (val === 9) {
1557
+ this.isReject = true;
1558
+ return;
1559
+ } else {
1560
+ this.isReject = false;
1561
+ }
1562
+ this.getNodeInfo();
1563
+ },
1564
+ /**
1565
+ * isMultiple
1566
+ * @desc:是否多选
1567
+ * @author liufan
1568
+ * @date 2022年9月13日
1569
+ **/
1570
+ isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
1571
+ if (val == 2 || val == 4 || val == 6 || val == 16) {
1572
+ this.multiple = true;
1573
+ } else {
1574
+ this.multiple = false;
1575
+ }
1576
+ if (val == 1 || val == 2 || val == 5) {
1577
+ this.params.filid = this.userModel.orgId;
1578
+ if (choiceOrgId) {
1579
+ this.params.filid = choiceOrgId;
1580
+ }
1581
+ }
1582
+ if (val == 5 || val == 6) {
1583
+ this.params.filid = this.userModel.orgId;
1584
+ this.params.deptid = this.userModel.orgId;
1585
+ if (choiceDeptId) {
1586
+ this.params.deptid = choiceDeptId;
1587
+ }
1588
+ if (choiceOrgId) {
1589
+ this.params.filid = choiceOrgId;
1590
+ }
1591
+ }
1592
+ if (val == 15 || val == 16) {
1593
+ this.params.filid = this.userModel.orgId;
1594
+ if (pOrgId) {
1595
+ this.params.filid = pOrgId;
1596
+ }
1597
+ }
1598
+ },
1599
+ /**
1600
+ * getHedInfo
1601
+ * @desc:获取审核页面数据
1602
+ * @author liufan
1603
+ * @date 2022年5月25日
1604
+ **/
1605
+ getHedInfo() {
1606
+ this.loading = util.loading(this.$loading, '加载中...');
1607
+ let params = {
1608
+ pendingId: this.pendingId,
1609
+ userId: util.getStorage('userId')
1610
+ };
1611
+ util
1612
+ .ajax({ url: getHandleInfoHtml, params })
1613
+ .then(res => {
1614
+ //pc返回数据
1615
+ const {
1616
+ status,
1617
+ message,
1618
+ data: {
1619
+ nextNodeList,
1620
+ taskOperations,
1621
+ isCustomPreset,
1622
+ presetTaskNodeKeyStr,
1623
+ presetTaskNodeMap,
1624
+ isPreset,
1625
+ choiceOrgId,
1626
+ choiceDeptId,
1627
+ pOrgId,
1628
+ taskExamine,
1629
+ nodeInfoMap,
1630
+ canRemoveSignUserList,
1631
+ defaultNotificationMessage,
1632
+ isCanAddSign,
1633
+ isCanRemoveSign,
1634
+ attachedCode,
1635
+ isSpecial,
1636
+ opinion,
1637
+ canPresetRead,
1638
+ isCdjxjTaskHandle,
1639
+ taskButtonList
1640
+ }
1641
+ } = res;
1642
+ this.loading.close();
1643
+ if (status === 'success') {
1644
+ this.$emit('startTaskRead', res);
1645
+ this.endFlowInfo.choiceOrgId = choiceOrgId;
1646
+ this.endFlowInfo.choiceDeptId = choiceDeptId;
1647
+ this.endFlowInfo.pendingId = this.pendingId;
1648
+ this.attachedCode = attachedCode;
1649
+ this.endFlowInfo.pOrgId = pOrgId;
1650
+ this.canPresetRead = canPresetRead;
1651
+ this.isCdjxjTaskHandle = isCdjxjTaskHandle;
1652
+ if (canPresetRead) {
1653
+ let ids = nodeInfoMap.nodeExtAttr.presetReadCandinateIds.split(
1654
+ ','
1655
+ );
1656
+ let names = nodeInfoMap.nodeExtAttr.presetReadCandinateNames.split(
1657
+ ','
1658
+ );
1659
+ ids.map((item, index) => {
1660
+ this.presetReadUserId.push({
1661
+ showid: item,
1662
+ showname: names[index]
1663
+ });
1664
+ this.selectPresetUserList.push({
1665
+ showid: item,
1666
+ showname: names[index]
1667
+ });
1668
+ this.nextNode.presetReadUserId.push(item);
1669
+ });
1670
+ }
1671
+ if (!this.isFlow) this.getFile(this.pendingId, attachedCode);
1672
+ if (nextNodeList && nextNodeList.length != 0) {
1673
+ this.nextNodeList = nextNodeList;
1674
+ }
1675
+ if (canRemoveSignUserList && canRemoveSignUserList.length != 0)
1676
+ this.removeUsers = canRemoveSignUserList;
1677
+ if (taskOperations && taskOperations.length != 0) {
1678
+ taskOperations.map(item => {
1679
+ if (item.key === 9) this.isReject = true;
1680
+ if (item.isSelected) {
1681
+ this.nodeInfos = [];
1682
+ this.nextNode.nextOperate = item.key;
1683
+ if (item.taskNodeList != null) {
1684
+ this.nodeInfos = item.taskNodeList;
1685
+ }
1686
+ // if (item.taskNodeList) {
1687
+ // this.nextNode.nextNodeId = item.taskNodeList[0].nodeId;
1688
+ // }
1689
+ }
1690
+ });
1691
+ }
1692
+ this.operationList = taskOperations;
1693
+ if (nodeInfoMap && JSON.stringify(nodeInfoMap) != '{}') {
1694
+ this.nodeDefaultSubmitOpinion =
1695
+ nodeInfoMap.nodeExtAttr.nodeDefaultSubmitOpinion;
1696
+ this.isSubmitButtonShowAgreeAndDisagree =
1697
+ nodeInfoMap.nodeExtAttr.isSubmitButtonShowAgreeAndDisagree;
1698
+ this.isBanInputOpinion =
1699
+ nodeInfoMap.nodeExtAttr.isBanInputOpinion;
1700
+ this.nodeDefaultRejectOpinion =
1701
+ nodeInfoMap.nodeExtAttr.nodeDefaultRejectOpinion;
1702
+ this.isOpinionRequired =
1703
+ nodeInfoMap.nodeExtAttr.isOpinionRequired;
1704
+ this.isChooseNextNode = nodeInfoMap.nodeExtAttr.isChooseNextNode;
1705
+ this.defaultNextNode = nodeInfoMap.nodeExtAttr.defaultNextNode;
1706
+ if (nodeInfoMap.nodeExtAttr.defaultNextNode) {
1707
+ let defaultNode = this.nodeInfos.filter(
1708
+ item => item.nodeId == nodeInfoMap.nodeExtAttr.defaultNextNode
1709
+ );
1710
+ if (this.nodeInfos.length > 0 && defaultNode.length == 0) {
1711
+ this.nextNode.nextNodeId = this.nodeInfos[0].nodeId;
1712
+ } else {
1713
+ this.nextNode.nextNodeId =
1714
+ nodeInfoMap.nodeExtAttr.defaultNextNode;
1715
+ }
1716
+ } else if (this.nodeInfos.length > 0) {
1717
+ this.nextNode.nextNodeId = this.nodeInfos[0].nodeId;
1718
+ }
1719
+ this.choiceOrgId = choiceOrgId;
1720
+ this.choiceDeptId = choiceDeptId;
1721
+ this.pOrgId = pOrgId;
1722
+ }
1723
+ if (JSON.stringify(taskExamine) != '{}' && taskExamine) {
1724
+ this.nodeInfo.nextNode = taskExamine.processDefinitionId;
1725
+ this.NodeName = taskExamine.nodeName;
1726
+ this.taskId = taskExamine.taskId;
1727
+ this.businessIds = taskExamine.businessId;
1728
+ this.appId = taskExamine.appId;
1729
+ this.taskExamineInfo = taskExamine;
1730
+ this.taskExamineInfo.choiceOrgId = choiceOrgId;
1731
+ this.taskExamineInfo.choiceDeptId = choiceDeptId;
1732
+ this.endFlowInfo.processType = taskExamine.processType;
1733
+ this.endFlowInfo.isReturnSubmitter =
1734
+ taskExamine.isReturnSubmitter;
1735
+ this.endFlowInfo.isSubFlow = taskExamine.isSubFlow;
1736
+ this.endFlowInfo.isUndertakeReply = taskExamine.isUndertakeReply;
1737
+ this.endFlowInfo.isUndertakeEnd = taskExamine.isUndertakeEnd;
1738
+ this.endFlowInfo.isTakeAdviceEnd = taskExamine.isTakeAdviceEnd;
1739
+ this.endFlowInfo.isTakeAdviceReply =
1740
+ taskExamine.isTakeAdviceReply;
1741
+ this.endFlowInfo.isReadDealEnd = taskExamine.isReadDealEnd;
1742
+ this.endFlowInfo.isReadDealReply = taskExamine.isReadDealReply;
1743
+ this.endFlowInfo.isReturnRejectNode =
1744
+ taskExamine.isReturnRejectNode;
1745
+ this.endFlowInfo.isSerialSubmit = taskExamine.isSerialSubmit;
1746
+ this.endFlowInfo.isReadDealReply =
1747
+ taskExamine.isReadDealReplybusinessId;
1748
+ this.endFlowInfo.appId = taskExamine.appId;
1749
+ this.endFlowInfo.businessId = taskExamine.businessId;
1750
+ this.endFlowInfo.processDefinitionId =
1751
+ taskExamine.processDefinitionId;
1752
+ this.endFlowInfo.nodeId = taskExamine.nodeId;
1753
+ }
1754
+ if (this.nodeName) {
1755
+ this.NodeName = this.nodeName;
1756
+ }
1757
+ this.isCanAddSign = isCanAddSign;
1758
+ this.processObj = res.data;
1759
+ if (this.isCanAddSign) {
1760
+ this.nextNode.isAddSign = '2';
1761
+ }
1762
+ this.isCanRemoveSign = isCanRemoveSign;
1763
+ if (this.isCanRemoveSign) {
1764
+ this.nextNode.isRemoveSign = '2';
1765
+ }
1766
+ this.isSpecial = isSpecial;
1767
+ if (this.nodeInfos.length !== 0) {
1768
+ this.nodeInfos[0].nodeName === '流程结束'
1769
+ ? (this.endFlow = true)
1770
+ : '';
1771
+ }
1772
+ if (!this.isOpinionRequired) {
1773
+ this.isOpinionRequired = 0;
1774
+ }
1775
+ opinion && (this.value = opinion);
1776
+ this.nextNode.notificationMsg = defaultNotificationMessage;
1777
+ this.moreList = [];
1778
+ if (taskButtonList && taskButtonList.length != 0) {
1779
+ taskButtonList.map(item => {
1780
+ if (item.fun === 'reject()') {
1781
+ this.rejectObj = item;
1782
+ } else if (item.fun === 'toStartTaskRead()') {
1783
+ this.pointsReadingObj = item;
1784
+ } else {
1785
+ this.moreList.push(item);
1786
+ }
1787
+ });
1788
+ // else if (
1789
+ // item.fun === 'toSendMsg()' ||
1790
+ // item.fun === 'toStartDraf()'
1791
+ // ) {
1792
+ // }
1793
+ }
1794
+ this.isCustomPreset = isCustomPreset;
1795
+ this.isPreset = isPreset;
1796
+ this.presetTaskNodeMap = presetTaskNodeMap;
1797
+ this.presetTaskNodeKeyStr = presetTaskNodeKeyStr;
1798
+ this.getFind();
1799
+ this.getNodeType();
1800
+ this.getNodeInfo();
1801
+ } else {
1802
+ this.$message.error(message || '系统错误,请联系管理员!');
1803
+ }
1804
+ })
1805
+ .catch(err => {
1806
+ this.loading.close();
1807
+ if (err.message && err.message !== 'canceled') {
1808
+ this.$message.error(err.message);
1809
+ }
1810
+ });
1811
+ },
1812
+ /**
1813
+ * closeProcess
1814
+ * @desc:关闭弹窗
1815
+ * @author liufan
1816
+ * @param {boolean} val 当前是否办理流程
1817
+ * @param {String} type 当前点击的弹窗类型
1818
+ * @date 2022年5月25日
1819
+ **/
1820
+ closeProcess(val, type) {
1821
+ this[type] = false;
1822
+ if (
1823
+ val == 'taskReadAndEnd' ||
1824
+ (val == true && type != 'taskRead') ||
1825
+ val == 'transfer'
1826
+ ) {
1827
+ this.$emit('success');
1828
+ }
1829
+ },
1830
+ /**
1831
+ * selectChange
1832
+ * @desc:常用语选择
1833
+ * @author liufan
1834
+ * @param {String} val 选中值
1835
+ * @date 2022年5月25日
1836
+ **/
1837
+ selectChange(val) {
1838
+ this.value = val;
1839
+ },
1840
+ /**
1841
+ * upDate
1842
+ * @desc:修改常用语
1843
+ * @author liufan
1844
+ * @param {Object} val 修改值
1845
+ * @date 2022年5月25日
1846
+ **/
1847
+ upDate(val) {
1848
+ this.FormData.id = val.id;
1849
+ this.addVisible = true;
1850
+ },
1851
+
1852
+ /**
1853
+ * getProcess
1854
+ * @desc:获取选择流程
1855
+ * @author liufan
1856
+ * @date 2022年5月25日
1857
+ **/
1858
+ getProcess() {
1859
+ let params = {
1860
+ businessId: this.businessId,
1861
+ flowTypeCode: this.flowTypeCode,
1862
+ // defaultProcessKey: this.defaultProcessKey,
1863
+ isOnly: true,
1864
+ hideTempSave: true
1865
+ // onlyFlag: true
1866
+ };
1867
+ this.loading = util.loading(this.$loading, '加载中...');
1868
+ util
1869
+ .ajax({ url: getProcessDefList, params })
1870
+ .then(res => {
1871
+ const { status, message, data } = res;
1872
+ this.loading.close();
1873
+ if (status === 'success') {
1874
+ this.nodeInfo.option = data.definitionList;
1875
+ this.nodeInfo.nextNode = data.definitionList.filter(
1876
+ item => item.processDefKey == this.defaultProcessKey
1877
+ );
1878
+ if (this.nodeInfo.nextNode.length) {
1879
+ this.nodeInfo.nextNode = this.nodeInfo.nextNode[0].processDefId;
1880
+ } else {
1881
+ if (data.definitionList.length == 1) {
1882
+ this.nodeInfo.nextNode = data.definitionList[0].processDefId;
1883
+ } else {
1884
+ this.nodeInfo.nextNode = '';
1885
+ }
1886
+ }
1887
+ } else {
1888
+ this.$message.error(message || '系统错误,请联系管理员!');
1889
+ }
1890
+ })
1891
+ .catch(err => {
1892
+ this.loading.close();
1893
+ if (err.message && err.message !== 'canceled') {
1894
+ this.$message.error(err.message);
1895
+ }
1896
+ });
1897
+ },
1898
+ /**
1899
+ * getPendedhistoryList
1900
+ * @desc:获取流程列表
1901
+ * @author liufan
1902
+ * @date 2022年5月25日
1903
+ **/
1904
+ getPendedhistoryList() {
1905
+ let params = {
1906
+ apprecordId: this.businessIds,
1907
+ userId: util.getStorage('userId'),
1908
+ type: 2
1909
+ };
1910
+ util
1911
+ .ajax({ url: pendedhistoryList, data: params, method: 'post' })
1912
+ .then(res => {
1913
+ const { rCode, msg, results } = res;
1914
+ if (!rCode) {
1915
+ this.nextNode.nextUserId = [];
1916
+ this.showNews = false;
1917
+ this.nextNode.notificationType = [];
1918
+ this.pendingId = results[results.length - 1].attachId;
1919
+ this.getHedInfo();
1920
+ } else {
1921
+ this.$message.error(msg || '系统错误,请联系管理员!');
1922
+ }
1923
+ })
1924
+ .catch(err => {
1925
+ if (err.message && err.message !== 'canceled') {
1926
+ this.$message.error(err.message);
1927
+ }
1928
+ });
1929
+ },
1930
+ // 提交流程
1931
+ /**
1932
+ * subProcess
1933
+ * @desc:提交流程
1934
+ * @author liufan
1935
+ * @param {String} formName 当前form表单ref值
1936
+ * @date 2022年5月25日
1937
+ **/
1938
+ subProcess(val) {
1939
+ this.$refs['nextNode'].validate(valid => {
1940
+ if (valid) {
1941
+ if (this.isSubmitButtonShowAgreeAndDisagree == 1) {
1942
+ this.value = this.value.replace(RegExp('不同意。', 'g'), '');
1943
+ this.value = this.value.replace(RegExp('同意。', 'g'), '');
1944
+ this.value = val + this.value;
1945
+ }
1946
+ if (this.beforeSubmit == undefined) {
1947
+ this.subFun(this.sendData);
1948
+ } else {
1949
+ this.beforeSubmit(1)
1950
+ .then(next => {
1951
+ this.sendData();
1952
+ })
1953
+ .catch(e => {});
1954
+ }
1955
+ }
1956
+ });
1957
+ },
1958
+ sendData() {
1959
+ this.$refs['nextNode'].validate(async valid => {
1960
+ if (valid) {
1961
+ await this.saveInfo('subMit');
1962
+ if (this.isFlow) return (this.handleVisible = true);
1963
+ if (
1964
+ !this.endFlow &&
1965
+ this.typeCode != 'fenyue' &&
1966
+ !this.shrink &&
1967
+ this.nextNode.isAddSign != '1' &&
1968
+ this.nextNode.isRemoveSign != '1' &&
1969
+ this.isSpecial &&
1970
+ !this.isReject &&
1971
+ this.nodeInfos.length != 0
1972
+ ) {
1973
+ if (this.isShowNextUser) {
1974
+ if (
1975
+ this.nextNode.nextUserId == '' ||
1976
+ (this.multiple && this.nextNode.nextUserId.length == 0)
1977
+ ) {
1978
+ return this.$message.warning('请选择下步办理人');
1979
+ }
1980
+ } else {
1981
+ if (
1982
+ this.nextNode.nextOrgId == '' ||
1983
+ (this.multiple && this.nextNode.nextOrgId.length == 0)
1984
+ ) {
1985
+ return this.$message.warning('请选择办理对象');
1986
+ }
1987
+ }
1988
+ }
1989
+
1990
+ let nextUserId = [];
1991
+ if (this.multiple) {
1992
+ this.nextNode.nextUserId &&
1993
+ this.nextNode.nextUserId.map(item => nextUserId.push(item));
1994
+ }
1995
+ if (
1996
+ this.nextNode.isAddSign == '1' &&
1997
+ this.nextNode.addSignUserId.length == 0
1998
+ )
1999
+ return this.$message.warning('请选择加签办理人');
2000
+ if (
2001
+ this.nextNode.isRemoveSign == '1' &&
2002
+ this.nextNode.removeSignUserId.length == 0
2003
+ )
2004
+ return this.$message.warning('请选择减签办理人');
2005
+ let addSignUserId = [];
2006
+ if (this.isCanAddSign && this.nextNode.isAddSign == '1') {
2007
+ this.nextNode.addSignUserId.map(item => {
2008
+ addSignUserId.push(item);
2009
+ });
2010
+ }
2011
+ let removeSignUserId = [];
2012
+ if (this.isCanRemoveSign && this.nextNode.isRemoveSign == '1') {
2013
+ this.nextNode.removeSignUserId.map(item => {
2014
+ removeSignUserId.push(item);
2015
+ });
2016
+ }
2017
+ if (!this.value && this.isOpinionRequired === 1) {
2018
+ this.$message.warning('请选择输入审批意见');
2019
+ return;
2020
+ }
2021
+
2022
+ let str = '';
2023
+ if (this.value) {
2024
+ str = this.value.replace(/\s+/g, '');
2025
+ }
2026
+ if ((!this.value || str === '') && this.nodeDefaultSubmitOpinion) {
2027
+ this.value = this.nodeDefaultSubmitOpinion;
2028
+ }
2029
+ if (!this.isSpecial) {
2030
+ delete this.nextNode.nextOperate;
2031
+ delete this.nextNode.nextNodeId;
2032
+ }
2033
+ if (this.nextNode.nextOperate === 9) {
2034
+ this.nextNode.isReturnRejectNode = 1;
2035
+ this.nextNode.processDefinitionId = this.processObj.taskExamine.processDefinitionId;
2036
+ }
2037
+ this.loading = util.loading(this.$loading, '加载中...');
2038
+
2039
+ let notificationType = '';
2040
+ notificationType = this.nextNode.notificationType.join(',');
2041
+ addSignUserId = addSignUserId.join(',');
2042
+ removeSignUserId = removeSignUserId.join(',');
2043
+ let params = {
2044
+ ...this.nextNode,
2045
+ pendingId: this.pendingId,
2046
+ opinion: this.value,
2047
+ userId: util.getStorage('userId'),
2048
+ nextUserId: this.multiple
2049
+ ? nextUserId.join(',')
2050
+ : this.nextNode.nextUserId,
2051
+ addSignUserId,
2052
+ customPresetUserJson: JSON.stringify(this.presetList),
2053
+ presetUserJson: JSON.stringify(this.presetUserJson),
2054
+ removeSignUserId,
2055
+ nextReadUserId: this.readMultiple
2056
+ ? this.mixReadList && this.mixReadList.join('|')
2057
+ : this.nextNode.nextReadUserId,
2058
+ nextOrgId: !this.isShowNextUser
2059
+ ? this.multiple
2060
+ ? this.mixOrgIdList && this.mixOrgIdList.join('|')
2061
+ : this.nextNode.nextOrgId
2062
+ : '',
2063
+ presetReadUserId:
2064
+ this.mixPresetList && this.mixPresetList.length > 0
2065
+ ? this.mixPresetList.join('|')
2066
+ : this.nextNode.presetReadUserId.join(','),
2067
+ notificationType
2068
+ };
2069
+ if (this.activeNames != '1') delete params.customPresetUserJson;
2070
+ if (this.nextNode.isRemoveSign != '1') {
2071
+ delete params.removeSignUserId;
2072
+ }
2073
+ if (this.nextNode.isAddSign != '1') {
2074
+ delete params.addSignUserId;
2075
+ }
2076
+ // if(this.isSubmitButtonShowAgreeAndDisagree == 1){
2077
+ // this.value = this.value
2078
+ // }
2079
+ this.loading = util.loading(this.$loading, '提交中...');
2080
+ util
2081
+ .ajax({ url: taskHandleHtml, method: 'post', data: params })
2082
+ .then(res => {
2083
+ const { status, message } = res;
2084
+ this.loading.close();
2085
+ if (status === 'success') {
2086
+ this.$message.success('提交成功');
2087
+ this.$emit('success');
2088
+ } else {
2089
+ this.$message.error(message || '系统错误,请联系管理员!');
2090
+ this.$emit('error');
2091
+ }
2092
+ })
2093
+ .catch(err => {
2094
+ this.loading.close();
2095
+ if (err.message && err.message !== 'canceled') {
2096
+ this.$message.error(err.message);
2097
+ }
2098
+ });
2099
+ } else {
2100
+ // this.loading.close();
2101
+ return false;
2102
+ }
2103
+ });
2104
+ }
2105
+ }
2106
+ };
2107
+ </script>