eoss-ui 0.7.92 → 0.7.94

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 (320) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/data-table.js +6 -6
  3. package/lib/eoss-ui.common.js +929 -928
  4. package/lib/flow-list.js +96 -96
  5. package/lib/flow.js +285 -284
  6. package/lib/index.js +1 -1
  7. package/lib/main.js +288 -288
  8. package/lib/qr-code.js +13 -13
  9. package/package.json +1 -1
  10. package/packages/button/index.js +5 -5
  11. package/packages/button/src/main.vue +418 -418
  12. package/packages/button-group/index.js +5 -5
  13. package/packages/button-group/src/main.vue +346 -346
  14. package/packages/calendar/index.js +5 -5
  15. package/packages/calogin/index.js +5 -5
  16. package/packages/calogin/src/main.vue +412 -412
  17. package/packages/calogin/src/plugin.js +915 -915
  18. package/packages/card/index.js +5 -5
  19. package/packages/card/src/main.vue +156 -156
  20. package/packages/cascader/index.js +5 -5
  21. package/packages/cascader/src/main.vue +168 -168
  22. package/packages/checkbox-group/index.js +5 -5
  23. package/packages/checkbox-group/src/main.vue +333 -333
  24. package/packages/clients/index.js +5 -5
  25. package/packages/clients/src/main.vue +151 -151
  26. package/packages/data-table/index.js +5 -5
  27. package/packages/data-table/src/children.vue +39 -39
  28. package/packages/data-table/src/main.vue +1845 -1845
  29. package/packages/data-table/src/sizer.vue +195 -195
  30. package/packages/data-table-form/index.js +5 -5
  31. package/packages/data-table-form/src/checkbox.vue +101 -101
  32. package/packages/data-table-form/src/colgroup.vue +17 -17
  33. package/packages/data-table-form/src/main.vue +181 -181
  34. package/packages/data-table-form/src/radio.vue +65 -65
  35. package/packages/data-table-form/src/table.vue +233 -233
  36. package/packages/data-table-form/src/tbody.vue +336 -336
  37. package/packages/data-table-form/src/thead.vue +68 -68
  38. package/packages/date-picker/index.js +5 -5
  39. package/packages/date-picker/src/main.vue +236 -236
  40. package/packages/dialog/index.js +5 -5
  41. package/packages/enable-drag/index.js +5 -5
  42. package/packages/enterprise/index.js +5 -5
  43. package/packages/enterprise/src/main.vue +66 -66
  44. package/packages/error-page/index.js +5 -5
  45. package/packages/error-page/src/main.vue +44 -44
  46. package/packages/flow/index.js +5 -5
  47. package/packages/flow/src/component/Circulate.vue +417 -417
  48. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  49. package/packages/flow/src/component/CustomPreset.vue +324 -324
  50. package/packages/flow/src/component/FileList.vue +97 -97
  51. package/packages/flow/src/component/FreeCirculation.vue +244 -244
  52. package/packages/flow/src/component/Preset.vue +257 -257
  53. package/packages/flow/src/component/SendMsg.vue +242 -242
  54. package/packages/flow/src/component/SortFlow.vue +110 -110
  55. package/packages/flow/src/component/TimeLimit.vue +190 -190
  56. package/packages/flow/src/component/taskUnionExamine.vue +761 -761
  57. package/packages/flow/src/form.vue +123 -123
  58. package/packages/flow/src/freeStartFlow.vue +2855 -2855
  59. package/packages/flow/src/main.vue +4144 -4144
  60. package/packages/flow/src/processForm.vue +1680 -1680
  61. package/packages/flow/src/processReject.vue +309 -309
  62. package/packages/flow/src/reset.vue +946 -946
  63. package/packages/flow/src/startTaskRead.vue +695 -695
  64. package/packages/flow/src/supervise.vue +159 -159
  65. package/packages/flow/src/table.vue +58 -58
  66. package/packages/flow-group/index.js +5 -5
  67. package/packages/flow-group/src/main.vue +750 -750
  68. package/packages/flow-list/index.js +5 -5
  69. package/packages/flow-list/src/main.vue +2337 -2337
  70. package/packages/form/index.js +5 -5
  71. package/packages/form/src/main.vue +3901 -3901
  72. package/packages/form/src/table.vue +1512 -1512
  73. package/packages/handle-user/index.js +5 -5
  74. package/packages/handle-user/src/main.vue +137 -137
  75. package/packages/handler/index.js +5 -5
  76. package/packages/handler/src/main.vue +499 -499
  77. package/packages/icon/index.js +5 -5
  78. package/packages/icon/src/main.vue +104 -104
  79. package/packages/icons/index.js +5 -5
  80. package/packages/icons/src/main.vue +81 -81
  81. package/packages/input/index.js +5 -5
  82. package/packages/input/src/main.vue +356 -356
  83. package/packages/input-number/index.js +5 -5
  84. package/packages/input-number/src/main.vue +106 -106
  85. package/packages/label/index.js +5 -5
  86. package/packages/label/src/main.vue +457 -457
  87. package/packages/layout/index.js +5 -5
  88. package/packages/layout/src/item.vue +152 -152
  89. package/packages/layout/src/main.vue +31 -31
  90. package/packages/login/index.js +5 -5
  91. package/packages/login/src/main.vue +2088 -2088
  92. package/packages/login/src/resetPassword.vue +557 -557
  93. package/packages/main/index.js +5 -5
  94. package/packages/main/src/default/message.vue +249 -249
  95. package/packages/main/src/default/notice.vue +157 -157
  96. package/packages/main/src/default/userinfo.vue +513 -513
  97. package/packages/main/src/public/online.vue +89 -89
  98. package/packages/main/src/public/search.vue +464 -464
  99. package/packages/main/src/public/settings.vue +273 -273
  100. package/packages/main/src/simplicity/apps.vue +388 -388
  101. package/packages/main/src/simplicity/avatar.vue +82 -82
  102. package/packages/main/src/simplicity/handler.vue +158 -158
  103. package/packages/main/src/simplicity/index.vue +2335 -2335
  104. package/packages/main/src/simplicity/lists.vue +84 -84
  105. package/packages/main/src/simplicity/menu-list.vue +135 -135
  106. package/packages/main/src/simplicity/message.vue +293 -293
  107. package/packages/main/src/simplicity/notice.vue +222 -222
  108. package/packages/main/src/simplicity/router-page.vue +45 -45
  109. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  110. package/packages/main/src/simplicity/user.vue +259 -259
  111. package/packages/main/src/simplicity/userinfo.vue +408 -408
  112. package/packages/main/src/simplicityTop/apps.vue +388 -388
  113. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  114. package/packages/main/src/simplicityTop/handler.vue +215 -215
  115. package/packages/main/src/simplicityTop/index.vue +2620 -2620
  116. package/packages/main/src/simplicityTop/lists.vue +84 -84
  117. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  118. package/packages/main/src/simplicityTop/message.vue +293 -293
  119. package/packages/main/src/simplicityTop/notice.vue +222 -222
  120. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  121. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  122. package/packages/main/src/simplicityTop/user.vue +259 -259
  123. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  124. package/packages/menu/index.js +5 -5
  125. package/packages/menu/src/main.vue +595 -595
  126. package/packages/nav/index.js +5 -5
  127. package/packages/nav/src/main.vue +351 -351
  128. package/packages/notify/index.js +5 -5
  129. package/packages/notify/src/main.vue +538 -538
  130. package/packages/page/index.js +5 -5
  131. package/packages/page/src/main.vue +167 -167
  132. package/packages/pagination/index.js +5 -5
  133. package/packages/pagination/src/main.vue +96 -96
  134. package/packages/player/index.js +5 -5
  135. package/packages/player/src/main.vue +194 -194
  136. package/packages/qr-code/index.js +5 -5
  137. package/packages/qr-code/src/main.vue +170 -170
  138. package/packages/radio-group/index.js +6 -6
  139. package/packages/radio-group/src/main.vue +319 -319
  140. package/packages/retrial-auth/index.js +5 -5
  141. package/packages/retrial-auth/src/main.vue +299 -299
  142. package/packages/select/index.js +5 -5
  143. package/packages/select-ganged/index.js +5 -5
  144. package/packages/select-ganged/src/main.vue +724 -724
  145. package/packages/selector/index.js +5 -5
  146. package/packages/selector/src/main.vue +761 -761
  147. package/packages/selector-panel/index.js +5 -5
  148. package/packages/selector-panel/src/main.vue +1036 -1036
  149. package/packages/selector-panel/src/selection.vue +174 -174
  150. package/packages/selector-panel/src/tree.vue +129 -129
  151. package/packages/sizer/index.js +5 -5
  152. package/packages/sizer/src/main.vue +254 -254
  153. package/packages/steps/index.js +5 -5
  154. package/packages/steps/src/main.vue +181 -181
  155. package/packages/switch/index.js +5 -5
  156. package/packages/switch/src/main.vue +170 -170
  157. package/packages/table-form/index.js +5 -5
  158. package/packages/tabs/index.js +5 -5
  159. package/packages/tabs/src/main.vue +788 -788
  160. package/packages/tabs-panel/index.js +5 -5
  161. package/packages/tabs-panel/src/main.vue +29 -29
  162. package/packages/theme-chalk/gulpfile.js +25 -0
  163. package/packages/theme-chalk/src/base.scss +261 -261
  164. package/packages/theme-chalk/src/button-group.scss +176 -176
  165. package/packages/theme-chalk/src/button.scss +24 -24
  166. package/packages/theme-chalk/src/calendar.scss +113 -113
  167. package/packages/theme-chalk/src/card.scss +99 -99
  168. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  169. package/packages/theme-chalk/src/clients.scss +87 -87
  170. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  171. package/packages/theme-chalk/src/data-table.scss +297 -297
  172. package/packages/theme-chalk/src/date-picker.scss +7 -7
  173. package/packages/theme-chalk/src/dialog.scss +77 -77
  174. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  175. package/packages/theme-chalk/src/enterprise.scss +5 -5
  176. package/packages/theme-chalk/src/error-page.scss +18 -18
  177. package/packages/theme-chalk/src/flow-group.scss +110 -110
  178. package/packages/theme-chalk/src/flow-list.scss +55 -55
  179. package/packages/theme-chalk/src/flow.scss +373 -373
  180. package/packages/theme-chalk/src/form.scss +501 -501
  181. package/packages/theme-chalk/src/handle-user.scss +40 -40
  182. package/packages/theme-chalk/src/handler.scss +148 -148
  183. package/packages/theme-chalk/src/icon.scss +3452 -3452
  184. package/packages/theme-chalk/src/icons.scss +99 -99
  185. package/packages/theme-chalk/src/input.scss +9 -9
  186. package/packages/theme-chalk/src/label.scss +24 -24
  187. package/packages/theme-chalk/src/layout.scss +46 -46
  188. package/packages/theme-chalk/src/login.scss +1006 -1006
  189. package/packages/theme-chalk/src/main.scss +664 -664
  190. package/packages/theme-chalk/src/menu.scss +224 -224
  191. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  192. package/packages/theme-chalk/src/nav.scss +111 -111
  193. package/packages/theme-chalk/src/page.scss +3 -3
  194. package/packages/theme-chalk/src/pagination.scss +29 -29
  195. package/packages/theme-chalk/src/player.scss +9 -9
  196. package/packages/theme-chalk/src/qr-code.scss +17 -17
  197. package/packages/theme-chalk/src/radio-group.scss +9 -9
  198. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  199. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  200. package/packages/theme-chalk/src/select.scss +8 -8
  201. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  202. package/packages/theme-chalk/src/selector.scss +114 -114
  203. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  204. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  205. package/packages/theme-chalk/src/sizer.scss +36 -36
  206. package/packages/theme-chalk/src/steps.scss +88 -88
  207. package/packages/theme-chalk/src/switch.scss +3 -3
  208. package/packages/theme-chalk/src/table-form.scss +1 -1
  209. package/packages/theme-chalk/src/tabs.scss +87 -87
  210. package/packages/theme-chalk/src/tips.scss +7 -7
  211. package/packages/theme-chalk/src/toolbar.scss +179 -179
  212. package/packages/theme-chalk/src/tree-group.scss +72 -72
  213. package/packages/theme-chalk/src/tree.scss +165 -165
  214. package/packages/theme-chalk/src/upload.scss +172 -172
  215. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  216. package/packages/tips/index.js +5 -5
  217. package/packages/tips/src/main.vue +141 -141
  218. package/packages/toolbar/index.js +5 -5
  219. package/packages/toolbar/src/main.vue +430 -430
  220. package/packages/tree/index.js +5 -5
  221. package/packages/tree-group/index.js +5 -5
  222. package/packages/upload/index.js +5 -5
  223. package/packages/upload/src/main.vue +1344 -1344
  224. package/packages/upload/src/picture.js +15 -15
  225. package/packages/wujie/index.js +5 -5
  226. package/packages/wujie/src/main.vue +146 -146
  227. package/packages/wxlogin/index.js +5 -5
  228. package/packages/wxlogin/src/main.vue +128 -128
  229. package/src/config/api.js +348 -348
  230. package/src/config/image.js +2 -2
  231. package/src/index.js +163 -163
  232. package/src/utils/bus.js +3 -3
  233. package/src/utils/date-util.js +312 -312
  234. package/src/utils/http.js +50 -50
  235. package/src/utils/rules.js +18 -18
  236. package/src/utils/store.js +21 -21
  237. package/src/utils/webSocket.js +107 -107
  238. package/packages/.DS_Store +0 -0
  239. package/packages/calogin/.DS_Store +0 -0
  240. package/packages/date-picker/.DS_Store +0 -0
  241. package/packages/date-picker/src/.DS_Store +0 -0
  242. package/packages/dialog/.DS_Store +0 -0
  243. package/packages/flow/.DS_Store +0 -0
  244. package/packages/flow/src/.DS_Store +0 -0
  245. package/packages/flow-list/.DS_Store +0 -0
  246. package/packages/form/.DS_Store +0 -0
  247. package/packages/icon/.DS_Store +0 -0
  248. package/packages/login/.DS_Store +0 -0
  249. package/packages/main/.DS_Store +0 -0
  250. package/packages/main/src/.DS_Store +0 -0
  251. package/packages/menu/.DS_Store +0 -0
  252. package/packages/select/.DS_Store +0 -0
  253. package/packages/selector/.DS_Store +0 -0
  254. package/packages/selector-panel/.DS_Store +0 -0
  255. package/packages/theme-chalk/lib/base.css +0 -1
  256. package/packages/theme-chalk/lib/button-group.css +0 -1
  257. package/packages/theme-chalk/lib/button.css +0 -1
  258. package/packages/theme-chalk/lib/calendar.css +0 -1
  259. package/packages/theme-chalk/lib/calogin.css +0 -0
  260. package/packages/theme-chalk/lib/card.css +0 -1
  261. package/packages/theme-chalk/lib/cascader.css +0 -0
  262. package/packages/theme-chalk/lib/checkbox-group.css +0 -1
  263. package/packages/theme-chalk/lib/clients.css +0 -1
  264. package/packages/theme-chalk/lib/data-table-form.css +0 -1
  265. package/packages/theme-chalk/lib/data-table.css +0 -1
  266. package/packages/theme-chalk/lib/date-picker.css +0 -1
  267. package/packages/theme-chalk/lib/dialog.css +0 -1
  268. package/packages/theme-chalk/lib/enable-drag.css +0 -1
  269. package/packages/theme-chalk/lib/enterprise.css +0 -1
  270. package/packages/theme-chalk/lib/error-page.css +0 -1
  271. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  272. package/packages/theme-chalk/lib/flow-group.css +0 -1
  273. package/packages/theme-chalk/lib/flow-list.css +0 -1
  274. package/packages/theme-chalk/lib/flow.css +0 -1
  275. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  276. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  277. package/packages/theme-chalk/lib/form.css +0 -1
  278. package/packages/theme-chalk/lib/handle-user.css +0 -1
  279. package/packages/theme-chalk/lib/handler.css +0 -1
  280. package/packages/theme-chalk/lib/icon.css +0 -1
  281. package/packages/theme-chalk/lib/icons.css +0 -1
  282. package/packages/theme-chalk/lib/index.css +0 -1
  283. package/packages/theme-chalk/lib/input-number.css +0 -0
  284. package/packages/theme-chalk/lib/input.css +0 -1
  285. package/packages/theme-chalk/lib/label.css +0 -1
  286. package/packages/theme-chalk/lib/layout.css +0 -1
  287. package/packages/theme-chalk/lib/login.css +0 -1
  288. package/packages/theme-chalk/lib/main.css +0 -1
  289. package/packages/theme-chalk/lib/menu.css +0 -1
  290. package/packages/theme-chalk/lib/nav.css +0 -1
  291. package/packages/theme-chalk/lib/notify.css +0 -0
  292. package/packages/theme-chalk/lib/page.css +0 -1
  293. package/packages/theme-chalk/lib/pagination.css +0 -1
  294. package/packages/theme-chalk/lib/player.css +0 -1
  295. package/packages/theme-chalk/lib/qr-code.css +0 -1
  296. package/packages/theme-chalk/lib/radio-group.css +0 -1
  297. package/packages/theme-chalk/lib/retrial-auth.css +0 -1
  298. package/packages/theme-chalk/lib/select-ganged.css +0 -1
  299. package/packages/theme-chalk/lib/select.css +0 -1
  300. package/packages/theme-chalk/lib/selector-panel.css +0 -1
  301. package/packages/theme-chalk/lib/selector.css +0 -1
  302. package/packages/theme-chalk/lib/simplicity-top.css +0 -1
  303. package/packages/theme-chalk/lib/simplicity.css +0 -1
  304. package/packages/theme-chalk/lib/sizer.css +0 -1
  305. package/packages/theme-chalk/lib/steps.css +0 -1
  306. package/packages/theme-chalk/lib/switch.css +0 -1
  307. package/packages/theme-chalk/lib/table-form.css +0 -0
  308. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  309. package/packages/theme-chalk/lib/tabs.css +0 -1
  310. package/packages/theme-chalk/lib/tips.css +0 -1
  311. package/packages/theme-chalk/lib/toolbar.css +0 -1
  312. package/packages/theme-chalk/lib/tree-group.css +0 -1
  313. package/packages/theme-chalk/lib/tree.css +0 -1
  314. package/packages/theme-chalk/lib/upload.css +0 -1
  315. package/packages/theme-chalk/lib/wujie.css +0 -0
  316. package/packages/theme-chalk/lib/wxlogin.css +0 -1
  317. package/packages/theme-chalk/src/.DS_Store +0 -0
  318. package/packages/upload/.DS_Store +0 -0
  319. package/src/.DS_Store +0 -0
  320. package/src/utils/.DS_Store +0 -0
@@ -1,946 +1,946 @@
1
- <template>
2
- <div
3
- v-loading="loading"
4
- class="es-flow-form"
5
- element-loading-text="加载中..."
6
- element-loading-spinner="el-icon-loading"
7
- element-loading-background="rgba(255, 255,255, 0.8)"
8
- style="height: 100%"
9
- >
10
- <el-form
11
- ref="nextNode"
12
- :model="nextNode"
13
- class="es-reset-flow demo-dynamic"
14
- label-width="100px"
15
- label-position="left"
16
- >
17
- <div class="es-reset-flow-form-box">
18
- <el-form-item prop="nodeName" label="标题">
19
- <el-input v-model="pendtitle" disabled />
20
- </el-form-item>
21
- <el-form-item prop="nodeName" label="当前步骤">
22
- <el-input v-model="nextNode.nodeName" disabled />
23
- </el-form-item>
24
- <el-form-item prop="newOpinion" label="意见">
25
- <CommonOpinions class="opinions" :rows="3" @change="changeOpinion" />
26
- </el-form-item>
27
- <el-form-item
28
- prop="nextNode"
29
- label="下步节点"
30
- :rules="[
31
- { required: true, message: `请选择下步节点`, trigger: 'blur' }
32
- ]"
33
- >
34
- <el-select
35
- v-if="nextNodeCheckType == 'select'"
36
- v-model="nextNode.nextNode"
37
- :placeholder="`请选择下步节点`"
38
- @change="changeSel"
39
- >
40
- <el-option
41
- v-for="items in nextNode.nodeInfo"
42
- :key="items.nodeId"
43
- :label="items.nodeName"
44
- :value="items.nodeId"
45
- ></el-option>
46
- </el-select>
47
- <es-radio-group
48
- v-else-if="nextNodeCheckType == 'radio'"
49
- v-model="nextNode.nextNode"
50
- :data="nextNode.nodeInfo"
51
- @change="changeSel"
52
- value-key="nodeId"
53
- label-key="nodeName"
54
- ></es-radio-group>
55
- </el-form-item>
56
- <el-form-item
57
- v-if="countersignaturetypeCode != 0"
58
- prop="countersignaturetypeText"
59
- label="处理方式"
60
- >
61
- <el-input
62
- v-model="nextNode.countersignaturetypeText"
63
- placeholder="请输入内容"
64
- disabled
65
- />
66
- </el-form-item>
67
- <el-form-item prop="nextNode" label="办理角色" v-if="showRoleUser">
68
- <SelectUser
69
- :nextUser="nextNode.nextRoleId"
70
- :radioList="radioList"
71
- :multiple="multiple"
72
- :showTooltip="showTooltip"
73
- :isCustomUser="isCustomUser"
74
- :options="options"
75
- :presetEdit="presetEdit"
76
- :isDefSelectedObj="isDefSelectedObj"
77
- :selectUserList="selectUserList"
78
- @change="changeSelectUser"
79
- :types="nextUserTypes"
80
- :params="params"
81
- />
82
- </el-form-item>
83
- <!-- showRoleUser -->
84
- <el-form-item
85
- v-if="
86
- !showRoleUser &&
87
- nodeInfoExtAttr.nodeType != 1 &&
88
- nodeInfoExtAttr.nodeType != 2
89
- "
90
- :prop="isShowNextUser ? 'nextUser' : 'nextOrgId'"
91
- :label="isShowNextUser ? '下步办理人' : '办理对象'"
92
- >
93
- <SelectUser
94
- :nextUser="isShowNextUser ? nextNode.nextUser : nextNode.nextOrgId"
95
- :radioList="radioList"
96
- :multiple="multiple"
97
- :showTooltip="showTooltip"
98
- :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
99
- :options="options"
100
- :presetEdit="presetEdit"
101
- :mix="multiple"
102
- :isDefSelectedObj="isDefSelectedObj"
103
- :selectUserList="selectUserList"
104
- @change="
105
- changeSelectUser(
106
- $event,
107
- isShowNextUser ? 'nextUser' : 'nextOrgId'
108
- )
109
- "
110
- :types="
111
- !isShowNextUser
112
- ? nextUserTypes
113
- : isCdjxjTaskHandle != 'true'
114
- ? ['employee', 'persongroup']
115
- : ['employee']
116
- "
117
- :params="isShowNextUser ? params : {}"
118
- :tabs="nextUserTabs"
119
- />
120
- </el-form-item>
121
- <el-form-item
122
- prop="nextReadUserId"
123
- v-if="isTaskread == 1"
124
- label="
125
- 分阅用户
126
- "
127
- >
128
- <SelectUser
129
- :nextUser="nextNode.nextReadUserId"
130
- :multiple="true"
131
- :selectUserList="selectReadUserList"
132
- :showTooltip="showTooltip"
133
- :options="userOptions"
134
- title="分阅用户"
135
- :mix="true"
136
- :types="types"
137
- @change="changeSelectReadUser($event, 'nextReadUserId')"
138
- :tabs="tabs"
139
- />
140
- </el-form-item>
141
- <el-form-item
142
- prop="presetReadUserId"
143
- v-if="canPresetRead"
144
- label="
145
- 自动分阅
146
- "
147
- >
148
- <SelectUser
149
- :nextUser="nextNode.presetReadUserId"
150
- :multiple="true"
151
- :selectUserList="selectPresetUserList"
152
- :options="presetOptions"
153
- :showTooltip="showTooltip"
154
- title="分阅用户"
155
- :radioList="presetReadUserId"
156
- :presetEdit="1"
157
- :mix="true"
158
- :types="types"
159
- @change="changeSelectReadUser($event, 'presetReadUserId')"
160
- :tabs="tabs"
161
- />
162
- </el-form-item>
163
- <el-form-item
164
- v-if="isHandleExplain == 1"
165
- prop="handleExplain"
166
- label="办理说明"
167
- >
168
- <el-input
169
- placeholder="请输入办理说明"
170
- v-model="nextNode.handleExplain"
171
- />
172
- </el-form-item>
173
- <el-form-item
174
- v-if="
175
- currentNodeEnableItemHandleDescription &&
176
- nextNode.nodeInfo.length != 0
177
- "
178
- prop="nextItemHandleDescription"
179
- label="办理说明"
180
- >
181
- <el-input
182
- placeholder="请输入办理说明"
183
- type="textarea"
184
- :autosize="{ minRows: 2 }"
185
- v-model="nextItemHandleDescription"
186
- />
187
- </el-form-item>
188
- <el-form-item v-show="nextNode.noticeList.length != 0" prop="noticeType" label="通知方式">
189
- <el-checkbox-group
190
- v-if="showNoticeType"
191
- v-model="nextNode.noticeType"
192
- >
193
- <el-checkbox
194
- v-for="item of nextNode.noticeList"
195
- :key="item.cciValue"
196
- :label="item.cciValue"
197
- :disabled="
198
- readOnlyNotificationType
199
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
200
- : false
201
- "
202
- >
203
- {{ item.shortName }}
204
- </el-checkbox>
205
- </el-checkbox-group>
206
- </el-form-item>
207
- <el-form-item
208
- v-show="nextNode.noticeType.length != 0"
209
- prop="nextNode"
210
- label="通知消息"
211
- >
212
- <es-input
213
- style="
214
- border-color: #ccc;
215
- padding: 5px;
216
- border-radius: 5px;
217
- font-size: 13px;
218
- "
219
- type="textarea"
220
- v-model="nextNode.noticeInfo"
221
- :readonly="notificationMessageReadOnly"
222
- />
223
- </el-form-item>
224
- </div>
225
- <el-form-item style="margin-bottom: 0px">
226
- <div style="text-align: right">
227
- <el-button
228
- type="primary"
229
- @click="subProcess('nextNode')"
230
- >
231
- 确认
232
- </el-button>
233
- <el-button @click="quit"> 取消 </el-button>
234
- </div>
235
- </el-form-item>
236
- </el-form>
237
- </div>
238
- </template>
239
-
240
- <script>
241
- import {
242
- toResetProcessIndex,
243
- toTaskContinuationIndex,
244
- taskContinuation,
245
- getNodeInfo,
246
- findSysCodes,
247
- getNotificationMsg,
248
- findCodeValues,
249
- loginUserInfo,
250
- resetProcess
251
- } from 'eoss-ui/src/config/api';
252
- import util from 'eoss-ui/src/utils/util';
253
- import SelectUser from './selectUser.vue';
254
- import CommonOpinions from './component/CommonOpinions.vue';
255
- export default {
256
- name: 'resetForm',
257
-
258
- components: {
259
- [Option.name]: Option,
260
- [SelectUser.name]: SelectUser,
261
- [CommonOpinions.name]: CommonOpinions
262
- },
263
- props: {
264
- flowParams: {
265
- type: Object,
266
- default: () => {}
267
- },
268
- showTooltip: { type: Boolean, default: true },
269
- subParams: {
270
- type: Object,
271
- default: () => {}
272
- },
273
- appId: {
274
- type: String,
275
- default: ''
276
- },
277
- type: { type: String }
278
- },
279
- data() {
280
- return {
281
- loading: false,
282
- isCustomUser: 0,
283
- selectUser: false,
284
- nextItemHandleDescription: '',
285
- nextNodeCheckType: 'select',
286
- currentNodeEnableItemHandleDescription: false,
287
- multiple: false,
288
- showNoticeType: false,
289
- readMultiple: true,
290
- customPresetHintMessage: '', //流程预设标题
291
- notificationMessageReadOnly: false,
292
- readOnlyNotificationType: '',
293
- show: true,
294
- radioList: [],
295
- activeNames: '',
296
- selectUserList: [],
297
- defaultNextNode: '',
298
- presetUserJson: [],
299
- isTaskread: 0, //是否显示分阅用户
300
- isHandleExplain: 0, //是否展示办理说明
301
- isOpinionRequired: 0,
302
- options: [],
303
- presetList: [],
304
- presetReadUserId: [], //自动分阅
305
- canPresetRead: false, //是否展示自动分阅
306
- nextUserTypes: ['employee', 'persongroup'],
307
- isSinglePage: false,
308
- presetEdit: 0,
309
- taskExamine: {},
310
- isDefSelectedObj: 0,
311
- isChooseNextNode: 0,
312
- isHideDefaultOperation: 0,
313
- countersignaturetypeCode: 0,
314
- presetTaskNodeKeyStr: '', //预设办理人顺序
315
- presetTaskNodeMap: {}, //预设办理人
316
- params: {
317
- filid: 'all', //选择范围(my:本单位/ "" or all:全部)
318
- selectmix: 'true1',
319
- deptid: '' //指定部门(my:本部门)
320
- },
321
- newOpinion: '',
322
- operationList: [],
323
- tabs: {
324
- employee: {
325
- param: {
326
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId,
327
- name: '本单位用户'
328
- }
329
- },
330
- department: {
331
- param: {
332
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
333
- }
334
- }
335
- },
336
- userModel: {},
337
- nextUserTabs: {},
338
- selectPresetUserList: [],
339
- presetOptions: [],
340
- selectReadUserList: [],
341
- userOptions: [],
342
- mixReadList: [],
343
- mixPresetList: [],
344
- nodeInfoExtAttr: {},
345
- isCdjxjTaskHandle: '',
346
- isShowNextUser: true,
347
- showRoleUser: false,
348
- pendtitle: '',
349
- mixOrgIdList: [], //办理对象混选
350
- nextNode: {
351
- nodeName: '',
352
- newOpinion: '',
353
- countersignaturetypeText: '',
354
- nextNode: '',
355
- nextReadUserId: [],
356
- nextOrgId: [],
357
- noticeType: [],
358
- nextOperate: '1',
359
- nextUser: [],
360
- presetReadUserId: [], //自动分阅
361
- noticeInfo: '',
362
- nodeInfo: [],
363
- userInfo: [],
364
- handleExplain: '',
365
- noticeList: []
366
- }
367
- };
368
- },
369
- computed: {
370
- types() {
371
- if (this.isCdjxjTaskHandle == 'true') {
372
- return ['employee', 'enterprise', 'department'];
373
- } else {
374
- return ['employee', 'enterprise', 'department', 'persongroup'];
375
- }
376
- }
377
- },
378
- created() {
379
- this.getUserInfo();
380
- this.getResetFlow();
381
- },
382
- mounted() {},
383
- methods: {
384
- changeOpinion(val) {
385
- this.nextNode.newOpinion = val;
386
- },
387
- getUserInfo() {
388
- let mainConfig = util.getStorage('mainConfig');
389
- if (mainConfig) {
390
- this.userModel = JSON.parse(mainConfig).userModel;
391
- } else {
392
- util
393
- .ajax({ url: loginUserInfo })
394
- .then((res) => {
395
- const { status, data } = res;
396
- if (status == 'success') {
397
- this.userModel = data;
398
- } else {
399
- let msg = res.msg || '系统错误,请联系管理员!';
400
- this.$message.error(msg);
401
- }
402
- })
403
- .catch((err) => {
404
- if (err.message && err.message !== 'canceled') {
405
- this.$message.error(err.message);
406
- }
407
- });
408
- }
409
- },
410
- getIsShowNextUser(val) {
411
- if (
412
- val == 7 ||
413
- val == 8 ||
414
- val == 9 ||
415
- val == 10 ||
416
- val == 11 ||
417
- val == 12
418
- ) {
419
- this.isShowNextUser = false;
420
- //设置办理角色
421
- // $("#orgRoleCode").val(handleRoleId);
422
- if (val == 7 || val == 8) {
423
- this.nextUserTypes = ['department'];
424
- this.nextUserTabs = {
425
- department: {
426
- param: {
427
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
428
- }
429
- }
430
- };
431
- this.multiple = true;
432
- } else if (val == 9 || val == 10) {
433
- this.nextUserTypes = ['enterprise'];
434
- this.nextUserTabs = { enterprise: { param: { filid: 'other' } } };
435
- this.multiple = true;
436
- } else if (val == 11 || val == 12) {
437
- this.nextUserTypes = ['department', 'enterprise'];
438
- this.nextUserTabs = {
439
- enterprise: { param: { filid: 'other' } },
440
- department: {
441
- param: {
442
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
443
- }
444
- }
445
- };
446
- this.multiple = true;
447
- }
448
- }
449
- if (val == 7 || val == 9 || val == 11) {
450
- this.multiple = false;
451
- }
452
- },
453
- // 分阅是否多选
454
- isReadMultiple(nextReadUserSelectType) {
455
- if (nextReadUserSelectType == 1) {
456
- this.readMultiple = false;
457
- } else if (nextReadUserSelectType == 2) {
458
- this.readMultiple = true;
459
- } else if (nextReadUserSelectType == 3) {
460
- this.readMultiple = false;
461
- } else if (nextReadUserSelectType == 4) {
462
- this.readMultiple = true;
463
- } else if (nextReadUserSelectType == 5) {
464
- this.readMultiple = false;
465
- } else if (nextReadUserSelectType == 6) {
466
- this.readMultiple = true;
467
- }
468
- },
469
- changeSelectReadUser(val, type) {
470
- const { nextUser, mixList } = val;
471
- this.nextNode[type] = nextUser;
472
- if (type === 'presetReadUserId') {
473
- this.mixPresetList = mixList;
474
- } else {
475
- this.mixReadList = mixList;
476
- }
477
- },
478
- changeSelectUser(val, type) {
479
- const { nextUser, options, mixList } = val;
480
- this.nextNode[type] = nextUser;
481
- this.mixOrgIdList = mixList;
482
- },
483
- getNodeType() {
484
- util
485
- .ajax({
486
- url: findCodeValues,
487
- params: {
488
- ccCode: 'notification_type',
489
- userId: util.getStorage('userId')
490
- }
491
- })
492
- .then((res) => {
493
- const { status, data } = res;
494
- if (status === 'success') {
495
- this.nextNode.noticeList = data;
496
- this.getFind();
497
- }
498
- })
499
- .catch((err) => {
500
- this.loading = false;
501
- if (err.message && err.message !== 'canceled') {
502
- this.$message.error(err.message);
503
- }
504
- });
505
- },
506
- //获取通知信息
507
- getMessage() {
508
- let params = {
509
- processDefinitionId: this.processDefinitionId,
510
- nodeId: this.nextNode.nextNode,
511
- businessId: this.taskExamine.businessId
512
- };
513
- util
514
- .ajax({ url: getNotificationMsg, params, methods: 'post' })
515
- .then((res) => {
516
- if (res.status === 'success') {
517
- this.nextNode.noticeInfo = res.message;
518
- }
519
- })
520
- .catch((err) => {
521
- this.loading = false;
522
- if (err.message && err.message !== 'canceled') {
523
- this.$message.error(err.message);
524
- }
525
- });
526
- },
527
- // 提交表单
528
- subProcess(formName) {
529
- this.saveProcess(formName);
530
- },
531
- saveProcess(formName) {
532
- this.$refs[formName].validate((valid) => {
533
- if (valid) {
534
- const {
535
- nextNode,
536
- nextUser,
537
- noticeInfo,
538
- noticeType,
539
- handleExplain,
540
- presetReadUserId,
541
- nextReadUserId,
542
- nextOrgId,
543
- nextRoleId,
544
- nextOperate,
545
- newOpinion
546
- } = this.nextNode;
547
- // if (noticeType.length === 0) {
548
- // return this.$message.warning('请选择通知方式');
549
- // }
550
- if (
551
- this.nodeInfoExtAttr.nodeType != 1 &&
552
- this.nodeInfoExtAttr.nodeType != 2 &&
553
- !this.showRoleUser
554
- ) {
555
- if (this.isShowNextUser) {
556
- if (nextUser == '' || (this.multiple && nextUser.length == 0)) {
557
- return this.$message.warning('请选择下步办理人');
558
- }
559
- } else {
560
- if (nextOrgId == '' || (this.multiple && nextOrgId.length == 0)) {
561
- return this.$message.warning('请选择办理对象');
562
- }
563
- }
564
- }
565
- if (
566
- (this.showRoleUser && nextRoleId == '') ||
567
- (this.multiple && nextUser.length == 0)
568
- ) {
569
- return this.$message.warning('请选择办理角色');
570
- }
571
- if (this.isOpinionRequired && !this.newOpinion && !newOpinion) {
572
- return this.$message.warning('请选择输入审批意见');
573
- }
574
- this.loading = true;
575
- let newNextUser = [];
576
- if (this.multiple) {
577
- nextUser && nextUser.map((item) => newNextUser.push(item));
578
- }
579
- let newNoticeType = '';
580
- if (noticeType) {
581
- newNoticeType = noticeType.join(',');
582
- }
583
- let params = {
584
- processDefinitionId: this.processDefinitionId,
585
- nextUserId: this.multiple ? newNextUser.join(',') : nextUser,
586
- nextNodeId: nextNode,
587
- appId: this.appId,
588
- nextOperate: nextOperate,
589
- businessId: this.taskExamine.businessId,
590
- pendingId: this.taskExamine.pendingId,
591
- notificationType: newNoticeType,
592
- userId: util.getStorage('userId'),
593
- notificationMsg: noticeInfo,
594
- customPresetUserJson: JSON.stringify(this.presetList),
595
- presetUserJson: JSON.stringify(this.presetUserJson),
596
- nextReadUserId: this.readMultiple
597
- ? this.mixReadList && this.mixReadList.join('|')
598
- : nextReadUserId,
599
- nextOrgId: !this.isShowNextUser
600
- ? this.multiple
601
- ? this.mixOrgIdList && this.mixOrgIdList.join('|')
602
- : nextOrgId
603
- : '',
604
- handleExplain: handleExplain,
605
- presetReadUserId:
606
- this.mixPresetList && this.mixPresetList.length > 0
607
- ? this.mixPresetList.join('|')
608
- : presetReadUserId.join(','),
609
- opinion: this.newOpinion || newOpinion,
610
- nextItemHandleDescription: this.nextItemHandleDescription,
611
- ...this.subParams
612
- };
613
- if (!this.currentNodeEnableItemHandleDescription) {
614
- delete params.nextItemHandleDescription;
615
- }
616
- if (this.activeNames != '1') delete params.customPresetUserJson;
617
- util
618
- .ajax({
619
- url: this.type == 'reset' ? resetProcess : taskContinuation,
620
- method: 'post',
621
- data: params
622
- })
623
- .then((res) => {
624
- const { status, message } = res;
625
- this.loading = false;
626
- if (status === 'success') {
627
- this.quit(true);
628
- this.$message.success('操作成功');
629
- } else {
630
- this.$message.error(message || '系统错误,请联系管理员!');
631
- }
632
- })
633
- .catch((err) => {
634
- this.loading = false;
635
- if (err.message && err.message !== 'canceled') {
636
- this.$message.error(err.message);
637
- }
638
- });
639
- } else {
640
- return false;
641
- }
642
- });
643
- },
644
- getNodeInfos(nodeId, index) {
645
- let params = {
646
- processDefinitionId: this.processDefinitionId,
647
- nextNodeId: nodeId ? nodeId : this.nextNode.nextNode,
648
- businessId: this.taskExamine.businessId,
649
- pendingId: this.taskExamine.pendingId,
650
- taskAction: this.type == 'reset' ? 'resetProcess' : this.type == 'continuation' ? 'continuation' : ''
651
- };
652
- util
653
- .ajax({ url: getNodeInfo, params })
654
- .then((res) => {
655
- const {
656
- status,
657
- message,
658
- data: {
659
- nextUserList,
660
- nodeExtAttr,
661
- countersignaturetypeText,
662
- countersignaturetypeCode
663
- }
664
- } = res;
665
- this.loading = false;
666
- if (status === 'success') {
667
- if (this.type == 'reset') {
668
- this.currentNodeEnableItemHandleDescription =
669
- nodeExtAttr.currentNodeEnableItemHandleDescription == 1;
670
- }
671
- this.nextNode.userInfo = nextUserList;
672
- this.countersignaturetypeCode = countersignaturetypeCode;
673
- this.nextNode.countersignaturetypeText = countersignaturetypeText;
674
- this.isTaskread = nodeExtAttr.isTaskread;
675
- this.isHandleExplain = nodeExtAttr.isHandleExplain;
676
- this.isCustomUser = nodeExtAttr.isCustomUser; //是否展示选人组件按钮
677
- this.presetEdit = nodeExtAttr.presetEdit; //是否展示备选人
678
- this.nodeInfoExtAttr = nodeExtAttr;
679
- this.isDefSelectedObj = nodeExtAttr.isDefSelectedObj; //是否默认选中
680
-
681
- if (
682
- nodeExtAttr.userSelectionType == 7 ||
683
- nodeExtAttr.userSelectionType == 8 ||
684
- nodeExtAttr.userSelectionType == 9 ||
685
- nodeExtAttr.userSelectionType == 10 ||
686
- nodeExtAttr.userSelectionType == 11 ||
687
- nodeExtAttr.userSelectionType == 12
688
- ) {
689
- this.getIsShowNextUser(
690
- nodeExtAttr && nodeExtAttr.userSelectionType
691
- );
692
- } else if (
693
- nodeExtAttr.userSelectionType == 13 ||
694
- nodeExtAttr.userSelectionType == 14
695
- ) {
696
- this.showRoleUser = true;
697
- if (data.nextRole) {
698
- this.radioList = [
699
- { showid: data.nextRole.id, showname: data.nextRole.rolename }
700
- ];
701
- if (this.isDefSelectedObj == 1) {
702
- this.nextNode.nextRoleId.push(data.nextRole.id);
703
- this.selectUserList.push({
704
- showname: data.nextRole.rolename,
705
- showid: data.nextRole.id
706
- });
707
- }
708
- }
709
- } else {
710
- const { multiple, params } = this.isMultiple(
711
- nodeExtAttr.userSelectionType
712
- );
713
- this.multiple = multiple;
714
- this.params = params;
715
- }
716
- // this.isReadMultiple(nodeExtAttr.userSelectionType);
717
-
718
- nextUserList.map((item) => {
719
- if (
720
- this.multiple &&
721
- nodeExtAttr.isDefSelectedObj == 1 &&
722
- nextUserList !== undefined
723
- ) {
724
- this.nextNode.nextUser.push(item.userId);
725
- this.selectUserList.push({
726
- showname: item.username,
727
- showid: item.userId
728
- });
729
- }
730
-
731
- this.options.push({
732
- showname: item.username,
733
- showid: item.userId
734
- });
735
- });
736
- if (this.multiple) {
737
- this.nextNode.nextReadUserId = [];
738
- } else {
739
- this.nextNode.nextReadUserId = '';
740
- }
741
- if (
742
- nextUserList.length > 0 &&
743
- nodeExtAttr.isDefSelectedObj == 1 &&
744
- !this.multiple
745
- ) {
746
- this.nextNode.nextUser = nextUserList[0].userId;
747
- this.selectUserList.push({
748
- showname: nextUserList[0].username,
749
- showid: nextUserList[0].userId
750
- });
751
- }
752
- this.radioList = this.options;
753
- } else {
754
- this.$message.error(message || '系统错误,请联系管理员!');
755
- }
756
- nodeId && this.$refs.selectUser[index].changeInfo();
757
- })
758
- .catch((err) => {
759
- this.loading = false;
760
- if (err.message && err.message !== 'canceled') {
761
- this.$message.error(err.message);
762
- }
763
- });
764
- },
765
- changeSel(val) {
766
- this.nextNode.nextUser = [];
767
- this.options = [];
768
- this.selectUserList = [];
769
- this.radioList = [];
770
- this.loading = true;
771
- this.getNodeInfos();
772
- },
773
- // 取消
774
- quit(val) {
775
- if (val === true) return this.$emit('cancel', val);
776
- this.$emit('cancel', false);
777
- },
778
- getFind() {
779
- util
780
- .ajax({
781
- url: findSysCodes
782
- })
783
- .then((res) => {
784
- const { status, message } = res;
785
- if (status === 'success') {
786
- this.nextNode.noticeType = message.split(',');
787
- let arr = [];
788
- this.nextNode.noticeList.map((item) => {
789
- this.nextNode.noticeType.map((x) => {
790
- if (x == item.cciValue) {
791
- arr.push(x);
792
- }
793
- });
794
- });
795
- this.nextNode.noticeType = arr;
796
- this.showNoticeType = true;
797
- } else {
798
- this.$message.error(message || '系统错误,请联系管理员!');
799
- }
800
- })
801
- .catch((err) => {
802
- this.loading = false;
803
- if (err.message && err.message !== 'canceled') {
804
- this.$message.error(err.message);
805
- }
806
- });
807
- },
808
- /**
809
- * isMultiple
810
- * @desc:是否多选
811
- * @author liufan
812
- * @date 2022年9月13日
813
- **/
814
- isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
815
- let multiple = false;
816
- let params = {};
817
- if (val == 2 || val == 4 || val == 6 || val == 16 || val == 12) {
818
- multiple = true;
819
- }
820
- if (val == 1 || val == 2 || val == 5) {
821
- params.filid = this.userModel.orgId;
822
- params.only_filid = true;
823
- if (choiceOrgId) {
824
- params.filid = choiceOrgId;
825
- }
826
- }
827
- if (val == 5 || val == 6) {
828
- params.filid = this.userModel.orgId;
829
- params.deptid = this.userModel.orgId;
830
- if (choiceDeptId) {
831
- params.deptid = choiceDeptId;
832
- }
833
- if (choiceOrgId) {
834
- params.filid = choiceOrgId;
835
- }
836
- }
837
- if (val == 15 || val == 16) {
838
- params.filid = this.userModel.orgId;
839
- if (pOrgId) {
840
- params.filid = pOrgId;
841
- }
842
- }
843
- return { multiple, params };
844
- },
845
- getResetFlow() {
846
- let params = {
847
- url:
848
- this.type == 'continuation'
849
- ? toTaskContinuationIndex
850
- : toResetProcessIndex,
851
- params: {
852
- appId: this.appId,
853
- ...this.flowParams
854
- }
855
- };
856
- this.loading = true;
857
- // 获取节点
858
- util
859
- .ajax(params)
860
- .then((res) => {
861
- //pc接口返回数据处理
862
- this.loading = false;
863
- const { status, message, data } = res;
864
- if (status == 'success') {
865
- data.nextNodeCheckType &&
866
- (this.nextNodeCheckType = data.nextNodeCheckType);
867
- this.pendtitle = data.pendtitle || data.taskExamine.businessName;
868
- this.customPresetHintMessage = data.customPresetHintMessage;
869
- this.readOnlyNotificationType = data.readOnlyNotificationType;
870
- this.notificationMessageReadOnly =
871
- data.notificationMessageReadOnly == 'true';
872
- let flowList = [];
873
- if (data.taskNodeList && data.taskNodeList.length > 0) {
874
- for (let key in data.taskNodeList[0]) {
875
- flowList.push({
876
- nodeName: data.taskNodeList[0][key],
877
- nodeId: key
878
- });
879
- }
880
- } else {
881
- for (let key in data.taskNodeMap) {
882
- flowList.push({
883
- nodeName: data.taskNodeMap[key],
884
- nodeId: key
885
- });
886
- }
887
- }
888
-
889
- this.nextNode.nodeInfo = flowList;
890
- this.nextNode.nextNode = flowList[0].nodeId;
891
- this.taskExamine = data.taskExamine;
892
- this.processDefinitionId = data.taskExamine.processDefinitionId;
893
- this.isOpinionRequired =
894
- data.nodeInfoMap.nodeExtAttr.isOpinionRequired;
895
- this.isHideDefaultOperation =
896
- data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation;
897
- this.defaultNextNode = data.nodeInfoMap.nodeExtAttr.defaultNextNode;
898
- this.isChooseNextNode =
899
- data.nodeInfoMap.nodeExtAttr.isChooseNextNode;
900
- this.isCdjxjTaskHandle = data.isCdjxjTaskHandle;
901
- this.presetTaskNodeKeyStr = data.presetTaskNodeKeyStr;
902
- this.presetTaskNodeMap = data.presetTaskNodeMap;
903
- this.isSinglePage = data.taskExamine.isSinglePage;
904
- this.isSinglePage &&
905
- (this.nextNode.opinion = data.taskExamine.opinion);
906
- // this.nextNode.noticeInfo = data.taskExamine.notificationMsg;
907
- this.nextNode.nodeName = data.taskExamine.nodeName;
908
- this.canPresetRead = data.canPresetRead;
909
- if (data.canPresetRead) {
910
- let ids =
911
- data.nodeInfoMap.nodeExtAttr.presetReadCandinateIds.split(',');
912
- let names =
913
- data.nodeInfoMap.nodeExtAttr.presetReadCandinateNames.split(
914
- ','
915
- );
916
- ids.map((item, index) => {
917
- this.presetReadUserId.push({
918
- showid: item,
919
- showname: names[index]
920
- });
921
- this.selectPresetUserList.push({
922
- showid: item,
923
- showname: names[index]
924
- });
925
- this.nextNode.presetReadUserId.push(item);
926
- });
927
- }
928
- this.getNodeInfos();
929
- // this.getPresetFlowInfo();
930
-
931
- this.getNodeType();
932
- this.getMessage();
933
- } else {
934
- this.$message.error(message || '系统错误,请联系管理员!');
935
- }
936
- })
937
- .catch((err) => {
938
- this.loading = false;
939
- if (err.message && err.message !== 'canceled') {
940
- this.$message.error(err.message);
941
- }
942
- });
943
- }
944
- }
945
- };
946
- </script>
1
+ <template>
2
+ <div
3
+ v-loading="loading"
4
+ class="es-flow-form"
5
+ element-loading-text="加载中..."
6
+ element-loading-spinner="el-icon-loading"
7
+ element-loading-background="rgba(255, 255,255, 0.8)"
8
+ style="height: 100%"
9
+ >
10
+ <el-form
11
+ ref="nextNode"
12
+ :model="nextNode"
13
+ class="es-reset-flow demo-dynamic"
14
+ label-width="100px"
15
+ label-position="left"
16
+ >
17
+ <div class="es-reset-flow-form-box">
18
+ <el-form-item prop="nodeName" label="标题">
19
+ <el-input v-model="pendtitle" disabled />
20
+ </el-form-item>
21
+ <el-form-item prop="nodeName" label="当前步骤">
22
+ <el-input v-model="nextNode.nodeName" disabled />
23
+ </el-form-item>
24
+ <el-form-item prop="newOpinion" label="意见">
25
+ <CommonOpinions class="opinions" :rows="3" @change="changeOpinion" />
26
+ </el-form-item>
27
+ <el-form-item
28
+ prop="nextNode"
29
+ label="下步节点"
30
+ :rules="[
31
+ { required: true, message: `请选择下步节点`, trigger: 'blur' }
32
+ ]"
33
+ >
34
+ <el-select
35
+ v-if="nextNodeCheckType == 'select'"
36
+ v-model="nextNode.nextNode"
37
+ :placeholder="`请选择下步节点`"
38
+ @change="changeSel"
39
+ >
40
+ <el-option
41
+ v-for="items in nextNode.nodeInfo"
42
+ :key="items.nodeId"
43
+ :label="items.nodeName"
44
+ :value="items.nodeId"
45
+ ></el-option>
46
+ </el-select>
47
+ <es-radio-group
48
+ v-else-if="nextNodeCheckType == 'radio'"
49
+ v-model="nextNode.nextNode"
50
+ :data="nextNode.nodeInfo"
51
+ @change="changeSel"
52
+ value-key="nodeId"
53
+ label-key="nodeName"
54
+ ></es-radio-group>
55
+ </el-form-item>
56
+ <el-form-item
57
+ v-if="countersignaturetypeCode != 0"
58
+ prop="countersignaturetypeText"
59
+ label="处理方式"
60
+ >
61
+ <el-input
62
+ v-model="nextNode.countersignaturetypeText"
63
+ placeholder="请输入内容"
64
+ disabled
65
+ />
66
+ </el-form-item>
67
+ <el-form-item prop="nextNode" label="办理角色" v-if="showRoleUser">
68
+ <SelectUser
69
+ :nextUser="nextNode.nextRoleId"
70
+ :radioList="radioList"
71
+ :multiple="multiple"
72
+ :showTooltip="showTooltip"
73
+ :isCustomUser="isCustomUser"
74
+ :options="options"
75
+ :presetEdit="presetEdit"
76
+ :isDefSelectedObj="isDefSelectedObj"
77
+ :selectUserList="selectUserList"
78
+ @change="changeSelectUser"
79
+ :types="nextUserTypes"
80
+ :params="params"
81
+ />
82
+ </el-form-item>
83
+ <!-- showRoleUser -->
84
+ <el-form-item
85
+ v-if="
86
+ !showRoleUser &&
87
+ nodeInfoExtAttr.nodeType != 1 &&
88
+ nodeInfoExtAttr.nodeType != 2
89
+ "
90
+ :prop="isShowNextUser ? 'nextUser' : 'nextOrgId'"
91
+ :label="isShowNextUser ? '下步办理人' : '办理对象'"
92
+ >
93
+ <SelectUser
94
+ :nextUser="isShowNextUser ? nextNode.nextUser : nextNode.nextOrgId"
95
+ :radioList="radioList"
96
+ :multiple="multiple"
97
+ :showTooltip="showTooltip"
98
+ :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
99
+ :options="options"
100
+ :presetEdit="presetEdit"
101
+ :mix="multiple"
102
+ :isDefSelectedObj="isDefSelectedObj"
103
+ :selectUserList="selectUserList"
104
+ @change="
105
+ changeSelectUser(
106
+ $event,
107
+ isShowNextUser ? 'nextUser' : 'nextOrgId'
108
+ )
109
+ "
110
+ :types="
111
+ !isShowNextUser
112
+ ? nextUserTypes
113
+ : isCdjxjTaskHandle != 'true'
114
+ ? ['employee', 'persongroup']
115
+ : ['employee']
116
+ "
117
+ :params="isShowNextUser ? params : {}"
118
+ :tabs="nextUserTabs"
119
+ />
120
+ </el-form-item>
121
+ <el-form-item
122
+ prop="nextReadUserId"
123
+ v-if="isTaskread == 1"
124
+ label="
125
+ 分阅用户
126
+ "
127
+ >
128
+ <SelectUser
129
+ :nextUser="nextNode.nextReadUserId"
130
+ :multiple="true"
131
+ :selectUserList="selectReadUserList"
132
+ :showTooltip="showTooltip"
133
+ :options="userOptions"
134
+ title="分阅用户"
135
+ :mix="true"
136
+ :types="types"
137
+ @change="changeSelectReadUser($event, 'nextReadUserId')"
138
+ :tabs="tabs"
139
+ />
140
+ </el-form-item>
141
+ <el-form-item
142
+ prop="presetReadUserId"
143
+ v-if="canPresetRead"
144
+ label="
145
+ 自动分阅
146
+ "
147
+ >
148
+ <SelectUser
149
+ :nextUser="nextNode.presetReadUserId"
150
+ :multiple="true"
151
+ :selectUserList="selectPresetUserList"
152
+ :options="presetOptions"
153
+ :showTooltip="showTooltip"
154
+ title="分阅用户"
155
+ :radioList="presetReadUserId"
156
+ :presetEdit="1"
157
+ :mix="true"
158
+ :types="types"
159
+ @change="changeSelectReadUser($event, 'presetReadUserId')"
160
+ :tabs="tabs"
161
+ />
162
+ </el-form-item>
163
+ <el-form-item
164
+ v-if="isHandleExplain == 1"
165
+ prop="handleExplain"
166
+ label="办理说明"
167
+ >
168
+ <el-input
169
+ placeholder="请输入办理说明"
170
+ v-model="nextNode.handleExplain"
171
+ />
172
+ </el-form-item>
173
+ <el-form-item
174
+ v-if="
175
+ currentNodeEnableItemHandleDescription &&
176
+ nextNode.nodeInfo.length != 0
177
+ "
178
+ prop="nextItemHandleDescription"
179
+ label="办理说明"
180
+ >
181
+ <el-input
182
+ placeholder="请输入办理说明"
183
+ type="textarea"
184
+ :autosize="{ minRows: 2 }"
185
+ v-model="nextItemHandleDescription"
186
+ />
187
+ </el-form-item>
188
+ <el-form-item v-show="nextNode.noticeList.length != 0" prop="noticeType" label="通知方式">
189
+ <el-checkbox-group
190
+ v-if="showNoticeType"
191
+ v-model="nextNode.noticeType"
192
+ >
193
+ <el-checkbox
194
+ v-for="item of nextNode.noticeList"
195
+ :key="item.cciValue"
196
+ :label="item.cciValue"
197
+ :disabled="
198
+ readOnlyNotificationType
199
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
200
+ : false
201
+ "
202
+ >
203
+ {{ item.shortName }}
204
+ </el-checkbox>
205
+ </el-checkbox-group>
206
+ </el-form-item>
207
+ <el-form-item
208
+ v-show="nextNode.noticeType.length != 0"
209
+ prop="nextNode"
210
+ label="通知消息"
211
+ >
212
+ <es-input
213
+ style="
214
+ border-color: #ccc;
215
+ padding: 5px;
216
+ border-radius: 5px;
217
+ font-size: 13px;
218
+ "
219
+ type="textarea"
220
+ v-model="nextNode.noticeInfo"
221
+ :readonly="notificationMessageReadOnly"
222
+ />
223
+ </el-form-item>
224
+ </div>
225
+ <el-form-item style="margin-bottom: 0px">
226
+ <div style="text-align: right">
227
+ <el-button
228
+ type="primary"
229
+ @click="subProcess('nextNode')"
230
+ >
231
+ 确认
232
+ </el-button>
233
+ <el-button @click="quit"> 取消 </el-button>
234
+ </div>
235
+ </el-form-item>
236
+ </el-form>
237
+ </div>
238
+ </template>
239
+
240
+ <script>
241
+ import {
242
+ toResetProcessIndex,
243
+ toTaskContinuationIndex,
244
+ taskContinuation,
245
+ getNodeInfo,
246
+ findSysCodes,
247
+ getNotificationMsg,
248
+ findCodeValues,
249
+ loginUserInfo,
250
+ resetProcess
251
+ } from 'eoss-ui/src/config/api';
252
+ import util from 'eoss-ui/src/utils/util';
253
+ import SelectUser from './selectUser.vue';
254
+ import CommonOpinions from './component/CommonOpinions.vue';
255
+ export default {
256
+ name: 'resetForm',
257
+
258
+ components: {
259
+ [Option.name]: Option,
260
+ [SelectUser.name]: SelectUser,
261
+ [CommonOpinions.name]: CommonOpinions
262
+ },
263
+ props: {
264
+ flowParams: {
265
+ type: Object,
266
+ default: () => {}
267
+ },
268
+ showTooltip: { type: Boolean, default: true },
269
+ subParams: {
270
+ type: Object,
271
+ default: () => {}
272
+ },
273
+ appId: {
274
+ type: String,
275
+ default: ''
276
+ },
277
+ type: { type: String }
278
+ },
279
+ data() {
280
+ return {
281
+ loading: false,
282
+ isCustomUser: 0,
283
+ selectUser: false,
284
+ nextItemHandleDescription: '',
285
+ nextNodeCheckType: 'select',
286
+ currentNodeEnableItemHandleDescription: false,
287
+ multiple: false,
288
+ showNoticeType: false,
289
+ readMultiple: true,
290
+ customPresetHintMessage: '', //流程预设标题
291
+ notificationMessageReadOnly: false,
292
+ readOnlyNotificationType: '',
293
+ show: true,
294
+ radioList: [],
295
+ activeNames: '',
296
+ selectUserList: [],
297
+ defaultNextNode: '',
298
+ presetUserJson: [],
299
+ isTaskread: 0, //是否显示分阅用户
300
+ isHandleExplain: 0, //是否展示办理说明
301
+ isOpinionRequired: 0,
302
+ options: [],
303
+ presetList: [],
304
+ presetReadUserId: [], //自动分阅
305
+ canPresetRead: false, //是否展示自动分阅
306
+ nextUserTypes: ['employee', 'persongroup'],
307
+ isSinglePage: false,
308
+ presetEdit: 0,
309
+ taskExamine: {},
310
+ isDefSelectedObj: 0,
311
+ isChooseNextNode: 0,
312
+ isHideDefaultOperation: 0,
313
+ countersignaturetypeCode: 0,
314
+ presetTaskNodeKeyStr: '', //预设办理人顺序
315
+ presetTaskNodeMap: {}, //预设办理人
316
+ params: {
317
+ filid: 'all', //选择范围(my:本单位/ "" or all:全部)
318
+ selectmix: 'true1',
319
+ deptid: '' //指定部门(my:本部门)
320
+ },
321
+ newOpinion: '',
322
+ operationList: [],
323
+ tabs: {
324
+ employee: {
325
+ param: {
326
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId,
327
+ name: '本单位用户'
328
+ }
329
+ },
330
+ department: {
331
+ param: {
332
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
333
+ }
334
+ }
335
+ },
336
+ userModel: {},
337
+ nextUserTabs: {},
338
+ selectPresetUserList: [],
339
+ presetOptions: [],
340
+ selectReadUserList: [],
341
+ userOptions: [],
342
+ mixReadList: [],
343
+ mixPresetList: [],
344
+ nodeInfoExtAttr: {},
345
+ isCdjxjTaskHandle: '',
346
+ isShowNextUser: true,
347
+ showRoleUser: false,
348
+ pendtitle: '',
349
+ mixOrgIdList: [], //办理对象混选
350
+ nextNode: {
351
+ nodeName: '',
352
+ newOpinion: '',
353
+ countersignaturetypeText: '',
354
+ nextNode: '',
355
+ nextReadUserId: [],
356
+ nextOrgId: [],
357
+ noticeType: [],
358
+ nextOperate: '1',
359
+ nextUser: [],
360
+ presetReadUserId: [], //自动分阅
361
+ noticeInfo: '',
362
+ nodeInfo: [],
363
+ userInfo: [],
364
+ handleExplain: '',
365
+ noticeList: []
366
+ }
367
+ };
368
+ },
369
+ computed: {
370
+ types() {
371
+ if (this.isCdjxjTaskHandle == 'true') {
372
+ return ['employee', 'enterprise', 'department'];
373
+ } else {
374
+ return ['employee', 'enterprise', 'department', 'persongroup'];
375
+ }
376
+ }
377
+ },
378
+ created() {
379
+ this.getUserInfo();
380
+ this.getResetFlow();
381
+ },
382
+ mounted() {},
383
+ methods: {
384
+ changeOpinion(val) {
385
+ this.nextNode.newOpinion = val;
386
+ },
387
+ getUserInfo() {
388
+ let mainConfig = util.getStorage('mainConfig');
389
+ if (mainConfig) {
390
+ this.userModel = JSON.parse(mainConfig).userModel;
391
+ } else {
392
+ util
393
+ .ajax({ url: loginUserInfo })
394
+ .then((res) => {
395
+ const { status, data } = res;
396
+ if (status == 'success') {
397
+ this.userModel = data;
398
+ } else {
399
+ let msg = res.msg || '系统错误,请联系管理员!';
400
+ this.$message.error(msg);
401
+ }
402
+ })
403
+ .catch((err) => {
404
+ if (err.message && err.message !== 'canceled') {
405
+ this.$message.error(err.message);
406
+ }
407
+ });
408
+ }
409
+ },
410
+ getIsShowNextUser(val) {
411
+ if (
412
+ val == 7 ||
413
+ val == 8 ||
414
+ val == 9 ||
415
+ val == 10 ||
416
+ val == 11 ||
417
+ val == 12
418
+ ) {
419
+ this.isShowNextUser = false;
420
+ //设置办理角色
421
+ // $("#orgRoleCode").val(handleRoleId);
422
+ if (val == 7 || val == 8) {
423
+ this.nextUserTypes = ['department'];
424
+ this.nextUserTabs = {
425
+ department: {
426
+ param: {
427
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
428
+ }
429
+ }
430
+ };
431
+ this.multiple = true;
432
+ } else if (val == 9 || val == 10) {
433
+ this.nextUserTypes = ['enterprise'];
434
+ this.nextUserTabs = { enterprise: { param: { filid: 'other' } } };
435
+ this.multiple = true;
436
+ } else if (val == 11 || val == 12) {
437
+ this.nextUserTypes = ['department', 'enterprise'];
438
+ this.nextUserTabs = {
439
+ enterprise: { param: { filid: 'other' } },
440
+ department: {
441
+ param: {
442
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
443
+ }
444
+ }
445
+ };
446
+ this.multiple = true;
447
+ }
448
+ }
449
+ if (val == 7 || val == 9 || val == 11) {
450
+ this.multiple = false;
451
+ }
452
+ },
453
+ // 分阅是否多选
454
+ isReadMultiple(nextReadUserSelectType) {
455
+ if (nextReadUserSelectType == 1) {
456
+ this.readMultiple = false;
457
+ } else if (nextReadUserSelectType == 2) {
458
+ this.readMultiple = true;
459
+ } else if (nextReadUserSelectType == 3) {
460
+ this.readMultiple = false;
461
+ } else if (nextReadUserSelectType == 4) {
462
+ this.readMultiple = true;
463
+ } else if (nextReadUserSelectType == 5) {
464
+ this.readMultiple = false;
465
+ } else if (nextReadUserSelectType == 6) {
466
+ this.readMultiple = true;
467
+ }
468
+ },
469
+ changeSelectReadUser(val, type) {
470
+ const { nextUser, mixList } = val;
471
+ this.nextNode[type] = nextUser;
472
+ if (type === 'presetReadUserId') {
473
+ this.mixPresetList = mixList;
474
+ } else {
475
+ this.mixReadList = mixList;
476
+ }
477
+ },
478
+ changeSelectUser(val, type) {
479
+ const { nextUser, options, mixList } = val;
480
+ this.nextNode[type] = nextUser;
481
+ this.mixOrgIdList = mixList;
482
+ },
483
+ getNodeType() {
484
+ util
485
+ .ajax({
486
+ url: findCodeValues,
487
+ params: {
488
+ ccCode: 'notification_type',
489
+ userId: util.getStorage('userId')
490
+ }
491
+ })
492
+ .then((res) => {
493
+ const { status, data } = res;
494
+ if (status === 'success') {
495
+ this.nextNode.noticeList = data;
496
+ this.getFind();
497
+ }
498
+ })
499
+ .catch((err) => {
500
+ this.loading = false;
501
+ if (err.message && err.message !== 'canceled') {
502
+ this.$message.error(err.message);
503
+ }
504
+ });
505
+ },
506
+ //获取通知信息
507
+ getMessage() {
508
+ let params = {
509
+ processDefinitionId: this.processDefinitionId,
510
+ nodeId: this.nextNode.nextNode,
511
+ businessId: this.taskExamine.businessId
512
+ };
513
+ util
514
+ .ajax({ url: getNotificationMsg, params, methods: 'post' })
515
+ .then((res) => {
516
+ if (res.status === 'success') {
517
+ this.nextNode.noticeInfo = res.message;
518
+ }
519
+ })
520
+ .catch((err) => {
521
+ this.loading = false;
522
+ if (err.message && err.message !== 'canceled') {
523
+ this.$message.error(err.message);
524
+ }
525
+ });
526
+ },
527
+ // 提交表单
528
+ subProcess(formName) {
529
+ this.saveProcess(formName);
530
+ },
531
+ saveProcess(formName) {
532
+ this.$refs[formName].validate((valid) => {
533
+ if (valid) {
534
+ const {
535
+ nextNode,
536
+ nextUser,
537
+ noticeInfo,
538
+ noticeType,
539
+ handleExplain,
540
+ presetReadUserId,
541
+ nextReadUserId,
542
+ nextOrgId,
543
+ nextRoleId,
544
+ nextOperate,
545
+ newOpinion
546
+ } = this.nextNode;
547
+ // if (noticeType.length === 0) {
548
+ // return this.$message.warning('请选择通知方式');
549
+ // }
550
+ if (
551
+ this.nodeInfoExtAttr.nodeType != 1 &&
552
+ this.nodeInfoExtAttr.nodeType != 2 &&
553
+ !this.showRoleUser
554
+ ) {
555
+ if (this.isShowNextUser) {
556
+ if (nextUser == '' || (this.multiple && nextUser.length == 0)) {
557
+ return this.$message.warning('请选择下步办理人');
558
+ }
559
+ } else {
560
+ if (nextOrgId == '' || (this.multiple && nextOrgId.length == 0)) {
561
+ return this.$message.warning('请选择办理对象');
562
+ }
563
+ }
564
+ }
565
+ if (
566
+ (this.showRoleUser && nextRoleId == '') ||
567
+ (this.multiple && nextUser.length == 0)
568
+ ) {
569
+ return this.$message.warning('请选择办理角色');
570
+ }
571
+ if (this.isOpinionRequired && !this.newOpinion && !newOpinion) {
572
+ return this.$message.warning('请选择输入审批意见');
573
+ }
574
+ this.loading = true;
575
+ let newNextUser = [];
576
+ if (this.multiple) {
577
+ nextUser && nextUser.map((item) => newNextUser.push(item));
578
+ }
579
+ let newNoticeType = '';
580
+ if (noticeType) {
581
+ newNoticeType = noticeType.join(',');
582
+ }
583
+ let params = {
584
+ processDefinitionId: this.processDefinitionId,
585
+ nextUserId: this.multiple ? newNextUser.join(',') : nextUser,
586
+ nextNodeId: nextNode,
587
+ appId: this.appId,
588
+ nextOperate: nextOperate,
589
+ businessId: this.taskExamine.businessId,
590
+ pendingId: this.taskExamine.pendingId,
591
+ notificationType: newNoticeType,
592
+ userId: util.getStorage('userId'),
593
+ notificationMsg: noticeInfo,
594
+ customPresetUserJson: JSON.stringify(this.presetList),
595
+ presetUserJson: JSON.stringify(this.presetUserJson),
596
+ nextReadUserId: this.readMultiple
597
+ ? this.mixReadList && this.mixReadList.join('|')
598
+ : nextReadUserId,
599
+ nextOrgId: !this.isShowNextUser
600
+ ? this.multiple
601
+ ? this.mixOrgIdList && this.mixOrgIdList.join('|')
602
+ : nextOrgId
603
+ : '',
604
+ handleExplain: handleExplain,
605
+ presetReadUserId:
606
+ this.mixPresetList && this.mixPresetList.length > 0
607
+ ? this.mixPresetList.join('|')
608
+ : presetReadUserId.join(','),
609
+ opinion: this.newOpinion || newOpinion,
610
+ nextItemHandleDescription: this.nextItemHandleDescription,
611
+ ...this.subParams
612
+ };
613
+ if (!this.currentNodeEnableItemHandleDescription) {
614
+ delete params.nextItemHandleDescription;
615
+ }
616
+ if (this.activeNames != '1') delete params.customPresetUserJson;
617
+ util
618
+ .ajax({
619
+ url: this.type == 'reset' ? resetProcess : taskContinuation,
620
+ method: 'post',
621
+ data: params
622
+ })
623
+ .then((res) => {
624
+ const { status, message } = res;
625
+ this.loading = false;
626
+ if (status === 'success') {
627
+ this.quit(true);
628
+ this.$message.success('操作成功');
629
+ } else {
630
+ this.$message.error(message || '系统错误,请联系管理员!');
631
+ }
632
+ })
633
+ .catch((err) => {
634
+ this.loading = false;
635
+ if (err.message && err.message !== 'canceled') {
636
+ this.$message.error(err.message);
637
+ }
638
+ });
639
+ } else {
640
+ return false;
641
+ }
642
+ });
643
+ },
644
+ getNodeInfos(nodeId, index) {
645
+ let params = {
646
+ processDefinitionId: this.processDefinitionId,
647
+ nextNodeId: nodeId ? nodeId : this.nextNode.nextNode,
648
+ businessId: this.taskExamine.businessId,
649
+ pendingId: this.taskExamine.pendingId,
650
+ taskAction: this.type == 'reset' ? 'resetProcess' : this.type == 'continuation' ? 'continuation' : ''
651
+ };
652
+ util
653
+ .ajax({ url: getNodeInfo, params })
654
+ .then((res) => {
655
+ const {
656
+ status,
657
+ message,
658
+ data: {
659
+ nextUserList,
660
+ nodeExtAttr,
661
+ countersignaturetypeText,
662
+ countersignaturetypeCode
663
+ }
664
+ } = res;
665
+ this.loading = false;
666
+ if (status === 'success') {
667
+ if (this.type == 'reset') {
668
+ this.currentNodeEnableItemHandleDescription =
669
+ nodeExtAttr.currentNodeEnableItemHandleDescription == 1;
670
+ }
671
+ this.nextNode.userInfo = nextUserList;
672
+ this.countersignaturetypeCode = countersignaturetypeCode;
673
+ this.nextNode.countersignaturetypeText = countersignaturetypeText;
674
+ this.isTaskread = nodeExtAttr.isTaskread;
675
+ this.isHandleExplain = nodeExtAttr.isHandleExplain;
676
+ this.isCustomUser = nodeExtAttr.isCustomUser; //是否展示选人组件按钮
677
+ this.presetEdit = nodeExtAttr.presetEdit; //是否展示备选人
678
+ this.nodeInfoExtAttr = nodeExtAttr;
679
+ this.isDefSelectedObj = nodeExtAttr.isDefSelectedObj; //是否默认选中
680
+
681
+ if (
682
+ nodeExtAttr.userSelectionType == 7 ||
683
+ nodeExtAttr.userSelectionType == 8 ||
684
+ nodeExtAttr.userSelectionType == 9 ||
685
+ nodeExtAttr.userSelectionType == 10 ||
686
+ nodeExtAttr.userSelectionType == 11 ||
687
+ nodeExtAttr.userSelectionType == 12
688
+ ) {
689
+ this.getIsShowNextUser(
690
+ nodeExtAttr && nodeExtAttr.userSelectionType
691
+ );
692
+ } else if (
693
+ nodeExtAttr.userSelectionType == 13 ||
694
+ nodeExtAttr.userSelectionType == 14
695
+ ) {
696
+ this.showRoleUser = true;
697
+ if (data.nextRole) {
698
+ this.radioList = [
699
+ { showid: data.nextRole.id, showname: data.nextRole.rolename }
700
+ ];
701
+ if (this.isDefSelectedObj == 1) {
702
+ this.nextNode.nextRoleId.push(data.nextRole.id);
703
+ this.selectUserList.push({
704
+ showname: data.nextRole.rolename,
705
+ showid: data.nextRole.id
706
+ });
707
+ }
708
+ }
709
+ } else {
710
+ const { multiple, params } = this.isMultiple(
711
+ nodeExtAttr.userSelectionType
712
+ );
713
+ this.multiple = multiple;
714
+ this.params = params;
715
+ }
716
+ // this.isReadMultiple(nodeExtAttr.userSelectionType);
717
+
718
+ nextUserList.map((item) => {
719
+ if (
720
+ this.multiple &&
721
+ nodeExtAttr.isDefSelectedObj == 1 &&
722
+ nextUserList !== undefined
723
+ ) {
724
+ this.nextNode.nextUser.push(item.userId);
725
+ this.selectUserList.push({
726
+ showname: item.username,
727
+ showid: item.userId
728
+ });
729
+ }
730
+
731
+ this.options.push({
732
+ showname: item.username,
733
+ showid: item.userId
734
+ });
735
+ });
736
+ if (this.multiple) {
737
+ this.nextNode.nextReadUserId = [];
738
+ } else {
739
+ this.nextNode.nextReadUserId = '';
740
+ }
741
+ if (
742
+ nextUserList.length > 0 &&
743
+ nodeExtAttr.isDefSelectedObj == 1 &&
744
+ !this.multiple
745
+ ) {
746
+ this.nextNode.nextUser = nextUserList[0].userId;
747
+ this.selectUserList.push({
748
+ showname: nextUserList[0].username,
749
+ showid: nextUserList[0].userId
750
+ });
751
+ }
752
+ this.radioList = this.options;
753
+ } else {
754
+ this.$message.error(message || '系统错误,请联系管理员!');
755
+ }
756
+ nodeId && this.$refs.selectUser[index].changeInfo();
757
+ })
758
+ .catch((err) => {
759
+ this.loading = false;
760
+ if (err.message && err.message !== 'canceled') {
761
+ this.$message.error(err.message);
762
+ }
763
+ });
764
+ },
765
+ changeSel(val) {
766
+ this.nextNode.nextUser = [];
767
+ this.options = [];
768
+ this.selectUserList = [];
769
+ this.radioList = [];
770
+ this.loading = true;
771
+ this.getNodeInfos();
772
+ },
773
+ // 取消
774
+ quit(val) {
775
+ if (val === true) return this.$emit('cancel', val);
776
+ this.$emit('cancel', false);
777
+ },
778
+ getFind() {
779
+ util
780
+ .ajax({
781
+ url: findSysCodes
782
+ })
783
+ .then((res) => {
784
+ const { status, message } = res;
785
+ if (status === 'success') {
786
+ this.nextNode.noticeType = message.split(',');
787
+ let arr = [];
788
+ this.nextNode.noticeList.map((item) => {
789
+ this.nextNode.noticeType.map((x) => {
790
+ if (x == item.cciValue) {
791
+ arr.push(x);
792
+ }
793
+ });
794
+ });
795
+ this.nextNode.noticeType = arr;
796
+ this.showNoticeType = true;
797
+ } else {
798
+ this.$message.error(message || '系统错误,请联系管理员!');
799
+ }
800
+ })
801
+ .catch((err) => {
802
+ this.loading = false;
803
+ if (err.message && err.message !== 'canceled') {
804
+ this.$message.error(err.message);
805
+ }
806
+ });
807
+ },
808
+ /**
809
+ * isMultiple
810
+ * @desc:是否多选
811
+ * @author liufan
812
+ * @date 2022年9月13日
813
+ **/
814
+ isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
815
+ let multiple = false;
816
+ let params = {};
817
+ if (val == 2 || val == 4 || val == 6 || val == 16 || val == 12) {
818
+ multiple = true;
819
+ }
820
+ if (val == 1 || val == 2 || val == 5) {
821
+ params.filid = this.userModel.orgId;
822
+ params.only_filid = true;
823
+ if (choiceOrgId) {
824
+ params.filid = choiceOrgId;
825
+ }
826
+ }
827
+ if (val == 5 || val == 6) {
828
+ params.filid = this.userModel.orgId;
829
+ params.deptid = this.userModel.orgId;
830
+ if (choiceDeptId) {
831
+ params.deptid = choiceDeptId;
832
+ }
833
+ if (choiceOrgId) {
834
+ params.filid = choiceOrgId;
835
+ }
836
+ }
837
+ if (val == 15 || val == 16) {
838
+ params.filid = this.userModel.orgId;
839
+ if (pOrgId) {
840
+ params.filid = pOrgId;
841
+ }
842
+ }
843
+ return { multiple, params };
844
+ },
845
+ getResetFlow() {
846
+ let params = {
847
+ url:
848
+ this.type == 'continuation'
849
+ ? toTaskContinuationIndex
850
+ : toResetProcessIndex,
851
+ params: {
852
+ appId: this.appId,
853
+ ...this.flowParams
854
+ }
855
+ };
856
+ this.loading = true;
857
+ // 获取节点
858
+ util
859
+ .ajax(params)
860
+ .then((res) => {
861
+ //pc接口返回数据处理
862
+ this.loading = false;
863
+ const { status, message, data } = res;
864
+ if (status == 'success') {
865
+ data.nextNodeCheckType &&
866
+ (this.nextNodeCheckType = data.nextNodeCheckType);
867
+ this.pendtitle = data.pendtitle || data.taskExamine.businessName;
868
+ this.customPresetHintMessage = data.customPresetHintMessage;
869
+ this.readOnlyNotificationType = data.readOnlyNotificationType;
870
+ this.notificationMessageReadOnly =
871
+ data.notificationMessageReadOnly == 'true';
872
+ let flowList = [];
873
+ if (data.taskNodeList && data.taskNodeList.length > 0) {
874
+ for (let key in data.taskNodeList[0]) {
875
+ flowList.push({
876
+ nodeName: data.taskNodeList[0][key],
877
+ nodeId: key
878
+ });
879
+ }
880
+ } else {
881
+ for (let key in data.taskNodeMap) {
882
+ flowList.push({
883
+ nodeName: data.taskNodeMap[key],
884
+ nodeId: key
885
+ });
886
+ }
887
+ }
888
+
889
+ this.nextNode.nodeInfo = flowList;
890
+ this.nextNode.nextNode = flowList[0].nodeId;
891
+ this.taskExamine = data.taskExamine;
892
+ this.processDefinitionId = data.taskExamine.processDefinitionId;
893
+ this.isOpinionRequired =
894
+ data.nodeInfoMap.nodeExtAttr.isOpinionRequired;
895
+ this.isHideDefaultOperation =
896
+ data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation;
897
+ this.defaultNextNode = data.nodeInfoMap.nodeExtAttr.defaultNextNode;
898
+ this.isChooseNextNode =
899
+ data.nodeInfoMap.nodeExtAttr.isChooseNextNode;
900
+ this.isCdjxjTaskHandle = data.isCdjxjTaskHandle;
901
+ this.presetTaskNodeKeyStr = data.presetTaskNodeKeyStr;
902
+ this.presetTaskNodeMap = data.presetTaskNodeMap;
903
+ this.isSinglePage = data.taskExamine.isSinglePage;
904
+ this.isSinglePage &&
905
+ (this.nextNode.opinion = data.taskExamine.opinion);
906
+ // this.nextNode.noticeInfo = data.taskExamine.notificationMsg;
907
+ this.nextNode.nodeName = data.taskExamine.nodeName;
908
+ this.canPresetRead = data.canPresetRead;
909
+ if (data.canPresetRead) {
910
+ let ids =
911
+ data.nodeInfoMap.nodeExtAttr.presetReadCandinateIds.split(',');
912
+ let names =
913
+ data.nodeInfoMap.nodeExtAttr.presetReadCandinateNames.split(
914
+ ','
915
+ );
916
+ ids.map((item, index) => {
917
+ this.presetReadUserId.push({
918
+ showid: item,
919
+ showname: names[index]
920
+ });
921
+ this.selectPresetUserList.push({
922
+ showid: item,
923
+ showname: names[index]
924
+ });
925
+ this.nextNode.presetReadUserId.push(item);
926
+ });
927
+ }
928
+ this.getNodeInfos();
929
+ // this.getPresetFlowInfo();
930
+
931
+ this.getNodeType();
932
+ this.getMessage();
933
+ } else {
934
+ this.$message.error(message || '系统错误,请联系管理员!');
935
+ }
936
+ })
937
+ .catch((err) => {
938
+ this.loading = false;
939
+ if (err.message && err.message !== 'canceled') {
940
+ this.$message.error(err.message);
941
+ }
942
+ });
943
+ }
944
+ }
945
+ };
946
+ </script>