eoss-ui 0.6.99 → 0.7.10

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 (243) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +769 -757
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +304 -292
  5. package/lib/index.js +1 -1
  6. package/lib/main.js +132 -132
  7. package/lib/qr-code.js +13 -13
  8. package/package.json +160 -160
  9. package/packages/button/index.js +5 -5
  10. package/packages/button/src/main.vue +418 -418
  11. package/packages/button-group/index.js +5 -5
  12. package/packages/button-group/src/main.vue +298 -298
  13. package/packages/calendar/index.js +5 -5
  14. package/packages/calogin/index.js +5 -5
  15. package/packages/calogin/src/main.vue +412 -412
  16. package/packages/calogin/src/plugin.js +915 -915
  17. package/packages/card/index.js +5 -5
  18. package/packages/card/src/main.vue +156 -156
  19. package/packages/cascader/index.js +5 -5
  20. package/packages/cascader/src/main.vue +168 -168
  21. package/packages/checkbox-group/index.js +5 -5
  22. package/packages/checkbox-group/src/main.vue +333 -333
  23. package/packages/clients/index.js +5 -5
  24. package/packages/clients/src/main.vue +151 -151
  25. package/packages/data-table/index.js +5 -5
  26. package/packages/data-table/src/children.vue +39 -39
  27. package/packages/data-table/src/column.vue +988 -988
  28. package/packages/data-table/src/main.vue +1831 -1831
  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 +405 -403
  48. package/packages/flow/src/component/CommonOpinions.vue +364 -364
  49. package/packages/flow/src/component/CustomPreset.vue +322 -322
  50. package/packages/flow/src/component/FileList.vue +99 -99
  51. package/packages/flow/src/component/Preset.vue +255 -255
  52. package/packages/flow/src/component/SendMsg.vue +242 -242
  53. package/packages/flow/src/component/TimeLimit.vue +190 -190
  54. package/packages/flow/src/component/taskUnionExamine.vue +641 -641
  55. package/packages/flow/src/form.vue +121 -121
  56. package/packages/flow/src/freeStartFlow.vue +2844 -2844
  57. package/packages/flow/src/main.vue +3742 -3726
  58. package/packages/flow/src/processForm.vue +1287 -1287
  59. package/packages/flow/src/processReject.vue +308 -308
  60. package/packages/flow/src/reset.vue +941 -941
  61. package/packages/flow/src/startTaskRead.vue +690 -690
  62. package/packages/flow/src/supervise.vue +159 -159
  63. package/packages/flow/src/table.vue +58 -58
  64. package/packages/flow-group/index.js +5 -5
  65. package/packages/flow-group/src/main.vue +692 -692
  66. package/packages/flow-list/index.js +5 -5
  67. package/packages/flow-list/src/main.vue +1770 -1770
  68. package/packages/form/index.js +5 -5
  69. package/packages/form/src/main.vue +3846 -3846
  70. package/packages/form/src/table.vue +1508 -1508
  71. package/packages/handle-user/index.js +5 -5
  72. package/packages/handle-user/src/main.vue +137 -137
  73. package/packages/handler/index.js +5 -5
  74. package/packages/handler/src/main.vue +493 -493
  75. package/packages/icon/index.js +5 -5
  76. package/packages/icon/src/main.vue +101 -101
  77. package/packages/icons/index.js +5 -5
  78. package/packages/icons/src/main.vue +81 -81
  79. package/packages/input/index.js +5 -5
  80. package/packages/input/src/main.vue +356 -356
  81. package/packages/input-number/index.js +5 -5
  82. package/packages/input-number/src/main.vue +106 -106
  83. package/packages/label/index.js +5 -5
  84. package/packages/label/src/main.vue +457 -457
  85. package/packages/layout/index.js +5 -5
  86. package/packages/layout/src/item.vue +152 -152
  87. package/packages/layout/src/main.vue +31 -31
  88. package/packages/login/index.js +5 -5
  89. package/packages/login/src/main.vue +1993 -1993
  90. package/packages/login/src/resetPassword.vue +562 -562
  91. package/packages/main/index.js +5 -5
  92. package/packages/main/src/default/message.vue +249 -249
  93. package/packages/main/src/default/notice.vue +157 -157
  94. package/packages/main/src/default/userinfo.vue +502 -502
  95. package/packages/main/src/public/online.vue +89 -89
  96. package/packages/main/src/public/search.vue +464 -464
  97. package/packages/main/src/public/settings.vue +221 -221
  98. package/packages/main/src/simplicity/apps.vue +388 -388
  99. package/packages/main/src/simplicity/avatar.vue +82 -82
  100. package/packages/main/src/simplicity/handler.vue +259 -259
  101. package/packages/main/src/simplicity/index.vue +2125 -2125
  102. package/packages/main/src/simplicity/lists.vue +84 -84
  103. package/packages/main/src/simplicity/menu-list.vue +135 -135
  104. package/packages/main/src/simplicity/message.vue +259 -259
  105. package/packages/main/src/simplicity/notice.vue +190 -190
  106. package/packages/main/src/simplicity/router-page.vue +45 -45
  107. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  108. package/packages/main/src/simplicity/user.vue +259 -259
  109. package/packages/main/src/simplicity/userinfo.vue +397 -397
  110. package/packages/menu/index.js +5 -5
  111. package/packages/menu/src/main.vue +584 -584
  112. package/packages/nav/index.js +5 -5
  113. package/packages/nav/src/main.vue +351 -351
  114. package/packages/notify/index.js +5 -5
  115. package/packages/notify/src/main.vue +538 -538
  116. package/packages/page/index.js +5 -5
  117. package/packages/page/src/main.vue +167 -167
  118. package/packages/pagination/index.js +5 -5
  119. package/packages/pagination/src/main.vue +96 -96
  120. package/packages/player/index.js +5 -5
  121. package/packages/player/src/main.vue +194 -194
  122. package/packages/qr-code/index.js +5 -5
  123. package/packages/qr-code/src/main.vue +170 -170
  124. package/packages/radio-group/index.js +6 -6
  125. package/packages/radio-group/src/main.vue +319 -319
  126. package/packages/retrial-auth/index.js +5 -5
  127. package/packages/retrial-auth/src/main.vue +280 -280
  128. package/packages/select/index.js +5 -5
  129. package/packages/select/src/main.vue +781 -781
  130. package/packages/select-ganged/index.js +5 -5
  131. package/packages/select-ganged/src/main.vue +724 -724
  132. package/packages/selector/index.js +5 -5
  133. package/packages/selector/src/main.vue +761 -761
  134. package/packages/selector-panel/index.js +5 -5
  135. package/packages/selector-panel/src/main.vue +1027 -1027
  136. package/packages/selector-panel/src/selection.vue +170 -170
  137. package/packages/selector-panel/src/tree.vue +129 -129
  138. package/packages/sizer/index.js +5 -5
  139. package/packages/sizer/src/main.vue +254 -254
  140. package/packages/steps/index.js +5 -5
  141. package/packages/steps/src/main.vue +181 -181
  142. package/packages/switch/index.js +5 -5
  143. package/packages/switch/src/main.vue +154 -154
  144. package/packages/table-form/index.js +5 -5
  145. package/packages/tabs/index.js +5 -5
  146. package/packages/tabs/src/main.vue +788 -788
  147. package/packages/tabs-panel/index.js +5 -5
  148. package/packages/tabs-panel/src/main.vue +29 -29
  149. package/packages/theme-chalk/src/base.scss +261 -261
  150. package/packages/theme-chalk/src/button-group.scss +176 -176
  151. package/packages/theme-chalk/src/button.scss +24 -24
  152. package/packages/theme-chalk/src/calendar.scss +113 -113
  153. package/packages/theme-chalk/src/card.scss +99 -99
  154. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  155. package/packages/theme-chalk/src/clients.scss +87 -87
  156. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  157. package/packages/theme-chalk/src/data-table.scss +293 -293
  158. package/packages/theme-chalk/src/date-picker.scss +7 -7
  159. package/packages/theme-chalk/src/dialog.scss +77 -77
  160. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  161. package/packages/theme-chalk/src/enterprise.scss +5 -5
  162. package/packages/theme-chalk/src/error-page.scss +18 -18
  163. package/packages/theme-chalk/src/flow-group.scss +110 -110
  164. package/packages/theme-chalk/src/flow-list.scss +39 -39
  165. package/packages/theme-chalk/src/flow.scss +348 -348
  166. package/packages/theme-chalk/src/form.scss +499 -499
  167. package/packages/theme-chalk/src/handle-user.scss +40 -40
  168. package/packages/theme-chalk/src/handler.scss +143 -143
  169. package/packages/theme-chalk/src/icon.scss +1817 -1817
  170. package/packages/theme-chalk/src/icons.scss +99 -99
  171. package/packages/theme-chalk/src/input.scss +9 -9
  172. package/packages/theme-chalk/src/label.scss +24 -24
  173. package/packages/theme-chalk/src/layout.scss +46 -46
  174. package/packages/theme-chalk/src/login.scss +984 -984
  175. package/packages/theme-chalk/src/main.scss +663 -663
  176. package/packages/theme-chalk/src/menu.scss +222 -222
  177. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  178. package/packages/theme-chalk/src/nav.scss +111 -111
  179. package/packages/theme-chalk/src/page.scss +3 -3
  180. package/packages/theme-chalk/src/pagination.scss +29 -29
  181. package/packages/theme-chalk/src/player.scss +9 -9
  182. package/packages/theme-chalk/src/qr-code.scss +17 -17
  183. package/packages/theme-chalk/src/radio-group.scss +9 -9
  184. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  185. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  186. package/packages/theme-chalk/src/select.scss +8 -8
  187. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  188. package/packages/theme-chalk/src/selector.scss +92 -92
  189. package/packages/theme-chalk/src/simplicity.scss +1361 -1361
  190. package/packages/theme-chalk/src/sizer.scss +36 -36
  191. package/packages/theme-chalk/src/steps.scss +88 -88
  192. package/packages/theme-chalk/src/switch.scss +3 -3
  193. package/packages/theme-chalk/src/table-form.scss +1 -1
  194. package/packages/theme-chalk/src/tabs.scss +87 -87
  195. package/packages/theme-chalk/src/tips.scss +7 -7
  196. package/packages/theme-chalk/src/toolbar.scss +179 -179
  197. package/packages/theme-chalk/src/tree-group.scss +72 -72
  198. package/packages/theme-chalk/src/tree.scss +165 -165
  199. package/packages/theme-chalk/src/upload.scss +172 -172
  200. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  201. package/packages/tips/index.js +5 -5
  202. package/packages/tips/src/main.vue +141 -141
  203. package/packages/toolbar/index.js +5 -5
  204. package/packages/toolbar/src/main.vue +430 -430
  205. package/packages/tree/index.js +5 -5
  206. package/packages/tree-group/index.js +5 -5
  207. package/packages/upload/index.js +5 -5
  208. package/packages/upload/src/main.vue +1343 -1343
  209. package/packages/upload/src/picture.js +15 -15
  210. package/packages/wujie/index.js +5 -5
  211. package/packages/wujie/src/main.vue +145 -145
  212. package/packages/wxlogin/index.js +5 -5
  213. package/packages/wxlogin/src/main.vue +128 -128
  214. package/src/config/api.js +308 -308
  215. package/src/config/image.js +2 -2
  216. package/src/index.js +163 -163
  217. package/src/utils/bus.js +3 -3
  218. package/src/utils/date-util.js +312 -312
  219. package/src/utils/http.js +50 -50
  220. package/src/utils/rules.js +18 -18
  221. package/src/utils/store.js +21 -21
  222. package/src/utils/webSocket.js +107 -107
  223. package/packages/.DS_Store +0 -0
  224. package/packages/autocomplete/.DS_Store +0 -0
  225. package/packages/calogin/.DS_Store +0 -0
  226. package/packages/date-picker/.DS_Store +0 -0
  227. package/packages/date-picker/src/.DS_Store +0 -0
  228. package/packages/flow/.DS_Store +0 -0
  229. package/packages/flow/src/.DS_Store +0 -0
  230. package/packages/flow-list/.DS_Store +0 -0
  231. package/packages/form/.DS_Store +0 -0
  232. package/packages/login/.DS_Store +0 -0
  233. package/packages/main/.DS_Store +0 -0
  234. package/packages/main/src/.DS_Store +0 -0
  235. package/packages/menu/.DS_Store +0 -0
  236. package/packages/scrollbar/.DS_Store +0 -0
  237. package/packages/select/.DS_Store +0 -0
  238. package/packages/selector/.DS_Store +0 -0
  239. package/packages/selector-panel/.DS_Store +0 -0
  240. package/packages/theme-chalk/src/.DS_Store +0 -0
  241. package/packages/upload/.DS_Store +0 -0
  242. package/src/.DS_Store +0 -0
  243. package/src/utils/.DS_Store +0 -0
@@ -1,1287 +1,1287 @@
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
- >
9
- <el-form
10
- ref="nextNode"
11
- :model="nextNode"
12
- class="demo-dynamic"
13
- label-width="100px"
14
- :label-position="labelPosition"
15
- >
16
- <div
17
- :style="`height:${
18
- showBtn ? '430px' : 'auto'
19
- }; overflow-y: auto; margin-bottom: 10px`"
20
- >
21
- <el-form-item
22
- v-show="showBtn"
23
- prop="nodeName"
24
- label="当前节点"
25
- :rules="[
26
- { required: true, message: `请选择下步节点`, trigger: 'blur' }
27
- ]"
28
- >
29
- <el-input v-model="nextNode.nodeName" disabled />
30
- </el-form-item>
31
- <el-form-item
32
- v-if="isSinglePage || copyHistory || formType == 'readTransfer'"
33
- prop="newOpinion"
34
- :label="
35
- copyHistory || formType == 'readTransfer' ? '填写意见' : '意见'
36
- "
37
- >
38
- <CommonOpinions
39
- class="opinions"
40
- :opinion="nextNode.newOpinion"
41
- :rows="copyHistory || formType == 'readTransfer' ? 2 : 5"
42
- @change="(val) => (nextNode.newOpinion = val)"
43
- />
44
- </el-form-item>
45
- <el-form-item
46
- prop="nextOperate"
47
- label="下步操作"
48
- v-if="isChooseNextNode == 1"
49
- :rules="[
50
- { required: true, message: `请选择下步操作`, trigger: 'blur' }
51
- ]"
52
- >
53
- <el-select
54
- v-if="nextOperateCheckType == 'select'"
55
- v-model="nextNode.nextOperate"
56
- :placeholder="`请选择下步操作`"
57
- @change="selecNext"
58
- >
59
- <el-option
60
- v-for="items in operationList"
61
- :key="items.key"
62
- :label="items.value"
63
- :value="items.key"
64
- ></el-option>
65
- </el-select>
66
- <es-radio-group
67
- v-else-if="nextOperateCheckType == 'radio'"
68
- v-model="nextNode.nextOperate"
69
- :data="operationList"
70
- @change="selecNext($event, true)"
71
- value-key="key"
72
- label-key="value"
73
- ></es-radio-group>
74
- </el-form-item>
75
- <el-form-item
76
- prop="nextNode"
77
- label="下步节点"
78
- :rules="[
79
- { required: true, message: `请选择下步节点`, trigger: 'blur' }
80
- ]"
81
- >
82
- <el-select
83
- v-if="nextNodeCheckType == 'select'"
84
- v-model="nextNode.nextNode"
85
- :placeholder="`请选择下步节点`"
86
- @change="changeSel"
87
- >
88
- <el-option
89
- v-for="items in nextNode.nodeInfo"
90
- :key="items.id"
91
- :label="items.nodeName"
92
- :value="items.nodeId"
93
- ></el-option>
94
- </el-select>
95
- <es-radio-group
96
- v-else-if="nextNodeCheckType == 'radio'"
97
- v-model="nextNode.nextNode"
98
- :data="nextNode.nodeInfo"
99
- @change="changeSel"
100
- value-key="nodeId"
101
- label-key="nodeName"
102
- ></es-radio-group>
103
- </el-form-item>
104
- <el-form-item
105
- v-if="countersignaturetypeCode != 0"
106
- prop="countersignaturetypeText"
107
- label="处理方式"
108
- >
109
- <el-input
110
- v-model="nextNode.countersignaturetypeText"
111
- placeholder="请输入内容"
112
- disabled
113
- />
114
- </el-form-item>
115
- <!-- <el-form-item
116
- prop="nextNode"
117
- label="下步办理人"
118
- v-if="isShowNextUser"
119
- :rules="[
120
- { required: true, message: `请选择下步办理人`, trigger: 'blur' }
121
- ]"
122
- >
123
- <SelectUser
124
- :nextUser="nextNode.nextUser"
125
- :radioList="radioList"
126
- :multiple="multiple"
127
- :isCustomUser="isCustomUser"
128
- :options="options"
129
- :presetEdit="presetEdit"
130
- :isDefSelectedObj="isDefSelectedObj"
131
- :selectUserList="selectUserList"
132
- @change="changeSelectUser"
133
- :types="nextUserTypes"
134
- :params="params"
135
- />
136
- </el-form-item> -->
137
- <el-form-item
138
- :prop="isShowNextUser ? 'nextUser' : 'nextOrgId'"
139
- :label="isShowNextUser ? '下步办理人' : '办理对象'"
140
- >
141
- <SelectUser
142
- :nextUser="isShowNextUser ? nextNode.nextUser : nextNode.nextOrgId"
143
- :radioList="radioList"
144
- :multiple="multiple"
145
- :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
146
- :options="options"
147
- :presetEdit="presetEdit"
148
- :mix="multiple"
149
- :isDefSelectedObj="isDefSelectedObj"
150
- :selectUserList="selectUserList"
151
- @change="
152
- changeSelectUser(
153
- $event,
154
- isShowNextUser ? 'nextUser' : 'nextOrgId'
155
- )
156
- "
157
- :types="
158
- !isShowNextUser
159
- ? nextUserTypes
160
- : isCdjxjTaskHandle != 'true'
161
- ? ['employee', 'persongroup']
162
- : ['employee']
163
- "
164
- :params="isShowNextUser ? params : {}"
165
- :tabs="nextUserTabs"
166
- />
167
- </el-form-item>
168
- <el-form-item
169
- prop="nextReadUserId"
170
- v-if="isTaskread == 1"
171
- label="
172
- 分阅用户
173
- "
174
- >
175
- <SelectUser
176
- :nextUser="nextNode.nextReadUserId"
177
- :multiple="true"
178
- :selectUserList="selectReadUserList"
179
- :options="userOptions"
180
- title="分阅用户"
181
- :mix="true"
182
- :types="types"
183
- @change="changeSelectReadUser($event, 'nextReadUserId')"
184
- :tabs="tabs"
185
- />
186
- </el-form-item>
187
- <el-form-item
188
- prop="presetReadUserId"
189
- v-if="canPresetRead"
190
- label="
191
- 自动分阅
192
- "
193
- >
194
- <SelectUser
195
- :nextUser="nextNode.presetReadUserId"
196
- :multiple="true"
197
- :selectUserList="selectPresetUserList"
198
- :options="presetOptions"
199
- title="分阅用户"
200
- :radioList="presetReadUserId"
201
- :presetEdit="1"
202
- :mix="true"
203
- :types="types"
204
- @change="changeSelectReadUser($event, 'presetReadUserId')"
205
- :tabs="tabs"
206
- />
207
- </el-form-item>
208
- <el-form-item
209
- v-if="enableCustomLimitTimeSetting"
210
- prop="customLimitTime"
211
- label="限时办理"
212
- >
213
- <el-input
214
- v-model="nextNode.customLimitTime"
215
- placeholder="请输入限时办理的天数"
216
- @change="changeCustomLimitTime"
217
- class="input-with-select custom-limit-time"
218
- >
219
- <es-select
220
- v-if="!showCustomLimitTimeText"
221
- v-model="nextNode.customLimitTime"
222
- placeholder="请选择"
223
- slot="prepend"
224
- sysCode="bpm_custom_limit_time"
225
- ></es-select>
226
- <es-button
227
- type="primary"
228
- slot="append"
229
- @click="
230
- () => {
231
- nextNode.customLimitTime = '';
232
- showCustomLimitTimeText = !showCustomLimitTimeText;
233
- }
234
- "
235
- >切换{{
236
- showCustomLimitTimeText ? '选择框' : '文本框'
237
- }}</es-button
238
- >
239
- </el-input>
240
- </el-form-item>
241
- <el-form-item
242
- v-if="isHandleExplain == 1"
243
- prop="handleExplain"
244
- label="办理说明"
245
- >
246
- <el-input
247
- placeholder="请输入办理说明"
248
- v-model="nextNode.handleExplain"
249
- />
250
- </el-form-item>
251
- <el-form-item prop="noticeType" label="通知方式" v-show="showBtn && nextNode.noticeList.length>0">
252
- <el-checkbox-group v-model="nextNode.noticeType">
253
- <el-checkbox
254
- v-for="item of nextNode.noticeList"
255
- :key="item.cciValue"
256
- :label="item.cciValue"
257
- :disabled="
258
- readOnlyNotificationType
259
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
260
- : false
261
- "
262
- >
263
- {{ item.shortName }}
264
- </el-checkbox>
265
- </el-checkbox-group>
266
- </el-form-item>
267
- <el-form-item
268
- v-show="nextNode.noticeType.length != 0 && showBtn"
269
- prop="nextNode"
270
- label="通知消息"
271
- >
272
- <es-input
273
- style="
274
- border-color: #ccc;
275
- padding: 5px;
276
- border-radius: 5px;
277
- font-size: 13px;
278
- "
279
- type="textarea"
280
- v-model="nextNode.noticeInfo"
281
- :readonly="notificationMessageReadOnly"
282
- />
283
- </el-form-item>
284
- <CustomPreset
285
- v-show="isCustomPreset"
286
- ref="customPreset"
287
- @changeCustom="
288
- (data) => {
289
- presetList = data;
290
- }
291
- "
292
- :customPresetHintMessage="customPresetHintMessage"
293
- @changeActiveNames="(val) => (activeNames = val)"
294
- @loadingEnd="loading = false"
295
- @loadingStart="loading = true"
296
- :nextNode="nextNode.nextNode"
297
- :id="id"
298
- :processDefinitionId="processDefinitionId"
299
- />
300
- <Preset
301
- v-show="isPreset"
302
- @changePreset="
303
- (data) => {
304
- presetUserJson = data;
305
- }
306
- "
307
- @loadingEnd="loading = false"
308
- @loadingStart="loading = true"
309
- :customPresetHintMessage="customPresetHintMessage"
310
- :nodeId="nextNode.nextNode"
311
- :businessId="id"
312
- :processDefinitionId="processDefinitionId"
313
- :presetTaskNodeMap="presetTaskNodeMap"
314
- :presetTaskNodeKeyStr="presetTaskNodeKeyStr"
315
- />
316
- </div>
317
- <el-form-item style="margin-bottom: 0px" v-show="showBtn">
318
- <div style="text-align: right">
319
- <el-button
320
- type="primary"
321
- size="small"
322
- @click="subProcess('nextNode')"
323
- >
324
- 确认
325
- </el-button>
326
- <el-button size="small" @click="quit"> 取消 </el-button>
327
- </div>
328
- </el-form-item>
329
- </el-form>
330
- <div v-if="!showBtn && nextNode.noticeList.length>0" style="padding: 5px; background: #fff">
331
- <div class="news" @click="showNews = !showNews">
332
- <span class="news-item">消息通知</span>
333
- <span :class="showNews ? 'show' : 'sj'"></span>
334
- </div>
335
- <div v-if="showNews" ref="messagebox" style="transition: 1s">
336
- <el-checkbox-group v-model="nextNode.noticeType">
337
- <el-checkbox
338
- v-for="item of nextNode.noticeList"
339
- :key="item.cciValue"
340
- :label="item.cciValue"
341
- :disabled="
342
- readOnlyNotificationType
343
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
344
- : false
345
- "
346
- >
347
- {{ item.shortName }}
348
- </el-checkbox>
349
- </el-checkbox-group>
350
- <es-input
351
- style="
352
- border-color: #ccc;
353
- padding: 5px;
354
- border-radius: 5px;
355
- font-size: 13px;
356
- "
357
- autosize
358
- v-show="showNews"
359
- type="textarea"
360
- v-model="nextNode.noticeInfo"
361
- @change="handleChange"
362
- :readonly="notificationMessageReadOnly"
363
- />
364
- </div>
365
- </div>
366
- </div>
367
- </template>
368
-
369
- <script>
370
- import {
371
- toStartFlow,
372
- getNodeInfo,
373
- findSysCodes,
374
- getNotificationMsg,
375
- findCodeValues,
376
- loginUserInfo,
377
- register,
378
- freeStartFlow,
379
- freeStartFlowWithSubmitTask,
380
- startReadTransferHandleFlowWithTaskReadEnd
381
- } from 'eoss-ui/src/config/api';
382
- import util from 'eoss-ui/src/utils/util';
383
- import SelectUser from './selectUser.vue';
384
- import CommonOpinions from './component/CommonOpinions.vue';
385
- import CustomPreset from './component/CustomPreset.vue';
386
- import Preset from './component/Preset.vue';
387
- export default {
388
- name: 'ProcessForm',
389
-
390
- components: {
391
- [Option.name]: Option,
392
- [SelectUser.name]: SelectUser,
393
- [CustomPreset.name]: CustomPreset,
394
- [CommonOpinions.name]: CommonOpinions,
395
- Preset
396
- },
397
- props: {
398
- processDefinitionId: {
399
- type: String,
400
- default: ''
401
- },
402
- copyHistory: {
403
- type: String,
404
- default: ''
405
- },
406
- simpleTips: {
407
- type: Boolean,
408
- default: true
409
- },
410
- formType: {
411
- type: String,
412
- default: 'freeStart'
413
- },
414
- id: {
415
- type: String,
416
- default: ''
417
- },
418
- pendingId: {
419
- type: String,
420
- default: ''
421
- },
422
- opinion: {
423
- type: String,
424
- default: ''
425
- },
426
- isFreeStartFlow: {
427
- type: Boolean,
428
- default: false
429
- },
430
- taskParams: {
431
- type: Object,
432
- default: () => {}
433
- },
434
- taskExamineParam: {
435
- type: String,
436
- default: ''
437
- },
438
- labelPosition: {
439
- type: String,
440
- default: 'left'
441
- },
442
- formTitle: {
443
- type: String,
444
- default: ''
445
- },
446
- showBtn: { type: Boolean, default: true },
447
- messageType:{
448
- type:Array,
449
- default: () => []
450
- },
451
- urgencyLevel:{
452
- type:[Number,String],
453
- default:''
454
- },
455
- keyCount:{
456
- type:[Number,String],
457
- default:0
458
- },
459
- },
460
- data() {
461
- return {
462
- loading: false,
463
- isCustomUser: 0,
464
- allLoading: null,
465
- selectUser: false,
466
- multiple: false,
467
- readMultiple: true,
468
- customPresetHintMessage: '', //流程预设标题
469
- nextNodeCheckType: 'select',
470
- nextOperateCheckType: 'select',
471
- showNews: false, // 是否展示通知信息
472
- notificationMessageReadOnly: false,
473
- isChangeMessage: false,
474
- readOnlyNotificationType: '',
475
- show: true,
476
- enableCustomLimitTimeSetting: false,
477
- radioList: [],
478
- showCustomLimitTimeText: false,
479
- activeNames: '',
480
- selectUserList: [],
481
- defaultNextNode: '',
482
- presetUserJson: [],
483
- businessId: '',
484
- isTaskread: 0, //是否显示分阅用户
485
- isHandleExplain: 0, //是否展示办理说明
486
- options: [],
487
- presetList: [],
488
- presetReadUserId: [], //自动分阅
489
- canPresetRead: false, //是否展示自动分阅
490
- nextUserTypes: ['employee', 'persongroup'],
491
- isCustomPreset: false, //是否展示预设节点
492
- isPreset: false, //是否展示预设办理人
493
- isSinglePage: false,
494
- presetEdit: 0,
495
- isDefSelectedObj: 0,
496
- isChooseNextNode: 0,
497
- isHideDefaultOperation: 0,
498
- countersignaturetypeCode: 0,
499
- presetTaskNodeKeyStr: '', //预设办理人顺序
500
- presetTaskNodeMap: {}, //预设办理人
501
- params: {
502
- filid: 'all', //选择范围(my:本单位/ "" or all:全部)
503
- selectmix: 'true1',
504
- deptid: '' //指定部门(my:本部门)
505
- },
506
- newOpinion: '',
507
- operationList: [],
508
- tabs: {
509
- employee: {
510
- param: {
511
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId,
512
- name: '本单位用户'
513
- }
514
- },
515
- department: {
516
- param: {
517
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
518
- }
519
- }
520
- },
521
- userModel: {},
522
- nextUserTabs: {},
523
- selectPresetUserList: [],
524
- presetOptions: [],
525
- selectReadUserList: [],
526
- userOptions: [],
527
- mixReadList: [],
528
- mixPresetList: [],
529
- isCdjxjTaskHandle: '',
530
- isShowNextUser: true,
531
- oldMessage: '',
532
- mixOrgIdList: [], //办理对象混选
533
- nextNode: {
534
- nodeName: '',
535
- customLimitTime: '',
536
- newOpinion: '',
537
- countersignaturetypeText: '',
538
- nextNode: '',
539
- nextReadUserId: [],
540
- nextOrgId: [],
541
- noticeType: [],
542
- nextOperate: '',
543
- nextUser: [],
544
- presetReadUserId: [], //自动分阅
545
- noticeInfo: '',
546
- nodeInfo: [],
547
- userInfo: [],
548
- handleExplain: '',
549
- noticeList: [],
550
- msgTypeCount:0
551
- }
552
- };
553
- },
554
- watch: {
555
- messageType:{
556
- handler(val) {
557
- if (this.urgencyLevel) {
558
- this.nextNode.noticeList = val;
559
- let arr = [];
560
- this.nextNode.noticeList.map((item) => {
561
- this.nextNode.noticeType.map((x) => {
562
- if (x == item.cciValue) {
563
- arr.push(x);
564
- }
565
- });
566
- });
567
- this.nextNode.noticeType = arr;
568
- }else{
569
- this.msgTypeCount++
570
- }
571
- }
572
- },
573
- processDefinitionId(val) {
574
- Object.assign(this.$data, this.$options.data());
575
- this.getUserInfo();
576
- this.getNodeType();
577
- this.getStartFlow(val);
578
- if (this.copyHistory) {
579
- this.nextNode.newOpinion = this.opinion;
580
- } else if (this.formType != 'readTransfer') {
581
- this.newOpinion = this.opinion;
582
- }
583
- // this.getStartFlow(val);
584
- },
585
- opinion(val) {
586
- this.newOpinion = this.opinion;
587
- },
588
- formTitle: {
589
- handler(val) {
590
- if (!this.showBtn && !this.isChangeMessage) {
591
- this.nextNode.noticeInfo = this.oldMessage.replace('{title}', val);
592
- }
593
- },
594
- deep: true,
595
- immediate: true
596
- }
597
- },
598
- computed: {
599
- types() {
600
- if (this.isCdjxjTaskHandle == 'true') {
601
- return ['employee', 'enterprise', 'department'];
602
- } else {
603
- return ['employee', 'enterprise', 'department', 'persongroup'];
604
- }
605
- }
606
- },
607
- created() {
608
- this.getUserInfo();
609
- },
610
- mounted() {
611
- if(!this.urgencyLevel){
612
- this.getNodeType();
613
- }
614
- this.getStartFlow(this.processDefinitionId);
615
- if (this.copyHistory) {
616
- this.nextNode.newOpinion = this.opinion;
617
- } else if (this.formType != 'readTransfer') {
618
- this.newOpinion = this.opinion;
619
- }
620
- },
621
- methods: {
622
- handleChange() {
623
- this.isChangeMessage = true
624
- },
625
- changeCustomLimitTime(val) {
626
- if (!Number(val) || val.indexOf('.') != -1 || Number(val) < 0) {
627
- this.$message.warning('请输入正确的天数');
628
- this.nextNode.customLimitTime = '';
629
- }
630
- },
631
- getUserInfo() {
632
- let mainConfig = util.getStorage('mainConfig');
633
- if (mainConfig) {
634
- this.userModel = JSON.parse(mainConfig).userModel;
635
- } else {
636
- util
637
- .ajax({ url: loginUserInfo })
638
- .then((res) => {
639
- const { status, data } = res;
640
- if (status == 'success') {
641
- this.userModel = data;
642
- } else {
643
- let msg = res.msg || '系统错误,请联系管理员!';
644
- this.$message.error(msg);
645
- }
646
- })
647
- .catch((err) => {
648
- if (err.message && err.message !== 'canceled') {
649
- this.$message.error(err.message);
650
- }
651
- });
652
- }
653
- },
654
- getIsShowNextUser(val) {
655
- if (
656
- val == 7 ||
657
- val == 8 ||
658
- val == 9 ||
659
- val == 10 ||
660
- val == 11 ||
661
- val == 12
662
- ) {
663
- this.isShowNextUser = false;
664
- //设置办理角色
665
- // $("#orgRoleCode").val(handleRoleId);
666
- if (val == 7 || val == 8) {
667
- this.nextUserTypes = ['department'];
668
- this.nextUserTabs = {
669
- department: {
670
- param: {
671
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
672
- }
673
- }
674
- };
675
- this.multiple = true;
676
- } else if (val == 9 || val == 10) {
677
- this.nextUserTypes = ['enterprise'];
678
- this.nextUserTabs = { enterprise: { param: { filid: 'other' } } };
679
- this.multiple = true;
680
- } else if (val == 11 || val == 12) {
681
- this.nextUserTypes = ['department', 'enterprise'];
682
- this.nextUserTabs = {
683
- enterprise: { param: { filid: 'other' } },
684
- department: {
685
- param: {
686
- filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
687
- }
688
- }
689
- };
690
- this.multiple = true;
691
- }
692
- }
693
- if (val == 7 || val == 9 || val == 11) {
694
- this.multiple = false;
695
- }
696
- },
697
- // 分阅是否多选
698
- isReadMultiple(nextReadUserSelectType) {
699
- if (nextReadUserSelectType == 1) {
700
- this.readMultiple = false;
701
- } else if (nextReadUserSelectType == 2) {
702
- this.readMultiple = true;
703
- } else if (nextReadUserSelectType == 3) {
704
- this.readMultiple = false;
705
- } else if (nextReadUserSelectType == 4) {
706
- this.readMultiple = true;
707
- } else if (nextReadUserSelectType == 5) {
708
- this.readMultiple = false;
709
- } else if (nextReadUserSelectType == 6) {
710
- this.readMultiple = true;
711
- }
712
- },
713
- changeSelectReadUser(val, type) {
714
- const { nextUser, mixList } = val;
715
- this.nextNode[type] = nextUser;
716
- if (type === 'presetReadUserId') {
717
- this.mixPresetList = mixList;
718
- } else {
719
- this.mixReadList = mixList;
720
- }
721
- },
722
- selecNext(val) {
723
- this.nextNode.nextUser = [];
724
- this.options = [];
725
- this.selectUserList = [];
726
- this.radioList = [];
727
- if (this.showBtn) {
728
- this.loading = true;
729
- } else {
730
- this.allLoading = util.loading(this.$loading, '加载中...');
731
- }
732
- this.nextNode.nodeInfo = this.operationList[val].list;
733
- if (this.nextNode.nodeInfo.length > 0) {
734
- this.nextNode.nextNode =
735
- this.defaultNextNode || this.nextNode.nodeInfo[0].nodeId;
736
- }
737
- this.getNodeInfos();
738
- },
739
- changeSelectUser(val, type) {
740
- const { nextUser, options, mixList } = val;
741
- this.nextNode[type] = nextUser;
742
- this.mixOrgIdList = mixList;
743
- },
744
- getNodeType() {
745
- util
746
- .ajax({
747
- url: findCodeValues,
748
- params: {
749
- ccCode: 'notification_type',
750
- userId: util.getStorage('userId')
751
- }
752
- })
753
- .then((res) => {
754
- const { status, data } = res;
755
- if (status === 'success') {
756
- this.nextNode.noticeList = data;
757
- }
758
- })
759
- .catch((err) => {
760
- if (this.showBtn) {
761
- this.loading = false;
762
- } else {
763
- this.allLoading.close();
764
- }
765
- if (err.message && err.message !== 'canceled') {
766
- this.$message.error(err.message);
767
- }
768
- });
769
- },
770
- //获取通知信息
771
- getMessage() {
772
- let params = {
773
- processDefinitionId: this.processDefinitionId,
774
- nodeId: this.nextNode.nextNode,
775
- businessId: this.id
776
- };
777
- if (!this.showBtn) {
778
- params.openMode = 'samepage';
779
- }
780
- util
781
- .ajax({ url: getNotificationMsg, params, methods: 'post' })
782
- .then((res) => {
783
- if (res.status === 'success') {
784
- if (!this.showBtn) {
785
- this.oldMessage = res.message;
786
- this.nextNode.noticeInfo = res.message.replace('{title}', this.formTitle);
787
- } else {
788
- this.nextNode.noticeInfo = res.message;
789
- }
790
- }
791
- })
792
- .catch((err) => {
793
- if (this.showBtn) {
794
- this.loading = false;
795
- } else {
796
- this.allLoading.close();
797
- }
798
- if (err.message && err.message !== 'canceled') {
799
- this.$message.error(err.message);
800
- }
801
- });
802
- },
803
- // 提交表单
804
- subProcess(formName) {
805
- this.saveProcess(formName);
806
- },
807
- saveProcess(formName) {
808
- this.$refs[formName].validate((valid) => {
809
- if (valid) {
810
- const {
811
- nextNode,
812
- nextUser,
813
- noticeInfo,
814
- noticeType,
815
- handleExplain,
816
- presetReadUserId,
817
- nextReadUserId,
818
- nextOrgId,
819
- newOpinion,
820
- customLimitTime
821
- } = this.nextNode;
822
- // if (noticeType.length === 0) {
823
- // return this.$message.warning('请选择通知方式');
824
- // }
825
- if (this.isShowNextUser) {
826
- if (nextUser == '' || (this.multiple && nextUser.length == 0)) {
827
- return this.$message.warning('请选择下步办理人');
828
- }
829
- } else {
830
- if (nextOrgId == '' || (this.multiple && nextOrgId.length == 0)) {
831
- return this.$message.warning('请选择办理对象');
832
- }
833
- }
834
- if (this.showBtn) {
835
- this.loading = true;
836
- } else {
837
- this.allLoading = util.loading(this.$loading, '加载中...');
838
- }
839
- let newNextUser = [];
840
- if (this.multiple) {
841
- nextUser && nextUser.map((item) => newNextUser.push(item));
842
- }
843
- let newNoticeType = '';
844
- if (noticeType) {
845
- newNoticeType = noticeType.join(',');
846
- }
847
- let params = {
848
- processDefinitionId: this.processDefinitionId,
849
- nextUserId: this.multiple ? newNextUser.join(',') : nextUser,
850
- customLimitTime,
851
- nextNodeId: nextNode,
852
- businessId: this.businessId,
853
- notificationType: newNoticeType,
854
- userId: util.getStorage('userId'),
855
- notificationMsg: noticeInfo,
856
- customPresetUserJson: JSON.stringify(this.presetList),
857
- presetUserJson: JSON.stringify(this.presetUserJson),
858
- nextReadUserId: this.readMultiple
859
- ? this.mixReadList && this.mixReadList.join('|')
860
- : nextReadUserId,
861
- nextOrgId: !this.isShowNextUser
862
- ? this.multiple
863
- ? this.mixOrgIdList && this.mixOrgIdList.join('|')
864
- : nextOrgId
865
- : '',
866
- handleExplain: handleExplain,
867
- presetReadUserId:
868
- this.mixPresetList && this.mixPresetList.length > 0
869
- ? this.mixPresetList.join('|')
870
- : presetReadUserId.join(','),
871
- opinion: this.newOpinion || newOpinion
872
- };
873
- if (this.activeNames != '1') delete params.customPresetUserJson;
874
- if (this.isFreeStartFlow || this.formType === 'readTransfer') {
875
- let newParm = {};
876
- newParm.copyHistory = this.copyHistory === 'needCopyPendedHistory';
877
- newParm.startFlowParamJson = params;
878
- // newParm.startFlowParamJson.businessId = this.id; //this.id
879
- newParm.startFlowParamJson.taskExamineParam = {
880
- startFlowFirstNodeName: this.taskExamineParam
881
- };
882
- newParm.startFlowParamJson = JSON.stringify(
883
- newParm.startFlowParamJson
884
- );
885
- for (let key in this.taskParams) {
886
- if (Array.isArray(this.taskParams[key])) {
887
- this.taskParams[key] =
888
- this.taskParams[key].length > 0
889
- ? this.taskParams[key].join(',')
890
- : '';
891
- }
892
- }
893
-
894
- newParm.submitTaskParamJson = JSON.stringify(this.taskParams);
895
- if (this.formType == 'readTransfer') {
896
- newParm.readTransferHandleStartFlowParamJson =
897
- JSON.stringify(params);
898
- newParm.taskReadEndParamJson = JSON.stringify(this.taskParams);
899
- delete newParm.copyHistory;
900
- delete newParm.startFlowParamJson;
901
- delete newParm.submitTaskParamJson;
902
- }
903
- params = newParm;
904
- }
905
- if(this.copyHistory && !this.isFreeStartFlow){
906
- params.pendingId = this.pendingId
907
- delete params.businessId;
908
- }
909
- util
910
- .ajax({
911
- url: this.isFreeStartFlow
912
- ? freeStartFlowWithSubmitTask
913
- : this.formType == 'readTransfer'
914
- ? startReadTransferHandleFlowWithTaskReadEnd
915
- : this.copyHistory? freeStartFlow : register,
916
- method: 'post',
917
- data: params
918
- })
919
- .then((res) => {
920
- const { status, message } = res;
921
- if (this.showBtn) {
922
- this.loading = false;
923
- } else {
924
- this.allLoading.close();
925
- }
926
- if (status === 'success' || res.rCode == 0) {
927
- this.quit(true);
928
- this.simpleTips && this.$message.success('操作成功');
929
- } else {
930
- this.$message.error(message || '系统错误,请联系管理员!');
931
- }
932
- })
933
- .catch((err) => {
934
- if (this.showBtn) {
935
- this.loading = false;
936
- } else {
937
- this.allLoading.close();
938
- }
939
- if (err.message && err.message !== 'canceled') {
940
- this.$message.error(err.message);
941
- }
942
- });
943
- } else {
944
- return false;
945
- }
946
- });
947
- },
948
- getNodeInfos(nodeId, index) {
949
- let params = {
950
- processDefinitionId: this.processDefinitionId,
951
- nextNodeId: nodeId ? nodeId : this.nextNode.nextNode,
952
- businessId: this.id,
953
- userId: util.getStorage('userId')
954
- };
955
- util
956
- .ajax({ url: getNodeInfo, params })
957
- .then((res) => {
958
- const {
959
- status,
960
- message,
961
- data: {
962
- nextUserList,
963
- nodeExtAttr,
964
- countersignaturetypeText,
965
- countersignaturetypeCode
966
- }
967
- } = res;
968
- if (this.showBtn) {
969
- this.loading = false;
970
- } else {
971
- this.allLoading.close();
972
- }
973
- if (status === 'success') {
974
- this.nextNode.userInfo = nextUserList;
975
- this.countersignaturetypeCode = countersignaturetypeCode;
976
- this.nextNode.countersignaturetypeText = countersignaturetypeText;
977
- this.enableCustomLimitTimeSetting =
978
- nodeExtAttr.enableCustomLimitTimeSetting == 1;
979
- this.isTaskread = nodeExtAttr.isTaskread;
980
- this.isHandleExplain = nodeExtAttr.isHandleExplain;
981
- this.isCustomUser = nodeExtAttr.isCustomUser; //是否展示选人组件按钮
982
- this.presetEdit = nodeExtAttr.presetEdit; //是否展示备选人
983
- this.isDefSelectedObj = nodeExtAttr.isDefSelectedObj; //是否默认选中
984
- if (
985
- nodeExtAttr.userSelectionType == 7 ||
986
- nodeExtAttr.userSelectionType == 8 ||
987
- nodeExtAttr.userSelectionType == 9 ||
988
- nodeExtAttr.userSelectionType == 10 ||
989
- nodeExtAttr.userSelectionType == 11 ||
990
- nodeExtAttr.userSelectionType == 12
991
- ) {
992
- this.getIsShowNextUser(
993
- nodeExtAttr && nodeExtAttr.userSelectionType
994
- );
995
- } else {
996
- const { multiple, params } = this.isMultiple(
997
- nodeExtAttr.userSelectionType
998
- );
999
- this.multiple = multiple;
1000
- this.params = params;
1001
- }
1002
- // this.isReadMultiple(nodeExtAttr.userSelectionType);
1003
-
1004
- nextUserList.map((item) => {
1005
- if (
1006
- this.multiple &&
1007
- nodeExtAttr.isDefSelectedObj == 1 &&
1008
- nextUserList !== undefined
1009
- ) {
1010
- this.nextNode.nextUser.push(item.userId);
1011
- this.selectUserList.push({
1012
- showname: item.username,
1013
- showid: item.userId
1014
- });
1015
- }
1016
-
1017
- this.options.push({
1018
- showname: item.username,
1019
- showid: item.userId
1020
- });
1021
- });
1022
- if (this.multiple) {
1023
- this.nextNode.nextReadUserId = [];
1024
- } else {
1025
- this.nextNode.nextReadUserId = '';
1026
- }
1027
- if (
1028
- nextUserList.length > 0 &&
1029
- nodeExtAttr.isDefSelectedObj == 1 &&
1030
- !this.multiple
1031
- ) {
1032
- this.nextNode.nextUser = nextUserList[0].userId;
1033
- this.selectUserList.push({
1034
- showname: nextUserList[0].username,
1035
- showid: nextUserList[0].userId
1036
- });
1037
- }
1038
- this.radioList = this.options;
1039
- } else {
1040
- this.$message.error(message || '系统错误,请联系管理员!');
1041
- }
1042
- nodeId && this.$refs.selectUser[index].changeInfo();
1043
- })
1044
- .catch((err) => {
1045
- if (this.showBtn) {
1046
- this.loading = false;
1047
- } else {
1048
- this.allLoading.close();
1049
- }
1050
- if (err.message && err.message !== 'canceled') {
1051
- this.$message.error(err.message);
1052
- }
1053
- });
1054
- },
1055
- changeSel(val) {
1056
- this.nextNode.nextUser = [];
1057
- this.options = [];
1058
- this.selectUserList = [];
1059
- this.radioList = [];
1060
- if (this.showBtn) {
1061
- this.loading = true;
1062
- } else {
1063
- this.allLoading = util.loading(this.$loading, '加载中...');
1064
- }
1065
- this.getNodeInfos();
1066
- },
1067
- // 取消
1068
- quit(val) {
1069
- if (val === true) return this.$emit('cancel', val);
1070
- this.$emit('cancel', false);
1071
- },
1072
- getFind() {
1073
- util
1074
- .ajax({
1075
- url: findSysCodes
1076
- })
1077
- .then((res) => {
1078
- const { status, message } = res;
1079
- if (status === 'success') {
1080
- this.nextNode.noticeType = message.split(',');
1081
- let arr = [];
1082
- this.nextNode.noticeList.map((item) => {
1083
- this.nextNode.noticeType.map((x) => {
1084
- if (x == item.cciValue) {
1085
- arr.push(x);
1086
- }
1087
- });
1088
- });
1089
- this.nextNode.noticeType = arr;
1090
- } else {
1091
- this.$message.error(message || '系统错误,请联系管理员!');
1092
- }
1093
- })
1094
- .catch((err) => {
1095
- if (this.showBtn) {
1096
- this.loading = false;
1097
- } else {
1098
- this.allLoading.close();
1099
- }
1100
- if (err.message && err.message !== 'canceled') {
1101
- this.$message.error(err.message);
1102
- }
1103
- });
1104
- },
1105
- /**
1106
- * isMultiple
1107
- * @desc:是否多选
1108
- * @author liufan
1109
- * @date 2022年9月13日
1110
- **/
1111
- isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
1112
- let multiple = false;
1113
- let params = {};
1114
- if (val == 2 || val == 4 || val == 6 || val == 16 || val == 12) {
1115
- multiple = true;
1116
- }
1117
- if (val == 1 || val == 2 || val == 5) {
1118
- params.filid = this.userModel.orgId;
1119
- params.only_filid = true;
1120
- if (choiceOrgId) {
1121
- params.filid = choiceOrgId;
1122
- }
1123
- }
1124
- if (val == 5 || val == 6) {
1125
- params.filid = this.userModel.orgId;
1126
- params.deptid = this.userModel.orgId;
1127
- if (choiceDeptId) {
1128
- params.deptid = choiceDeptId;
1129
- }
1130
- if (choiceOrgId) {
1131
- params.filid = choiceOrgId;
1132
- }
1133
- }
1134
- if (val == 15 || val == 16) {
1135
- params.filid = this.userModel.orgId;
1136
- if (pOrgId) {
1137
- params.filid = pOrgId;
1138
- }
1139
- }
1140
- return { multiple, params };
1141
- },
1142
- getStartFlow(processId) {
1143
- if (!processId) {
1144
- return false;
1145
- }
1146
- if (this.showBtn) {
1147
- this.loading = true;
1148
- } else {
1149
- this.allLoading = util.loading(this.$loading, '加载中...');
1150
- }
1151
- this.businessId = this.id;
1152
- let params = {
1153
- processDefinitionId: processId, // processId || this.processDefinitionId,
1154
- userId: util.getStorage('userId'),
1155
- businessId: this.businessId
1156
- };
1157
- // 获取节点
1158
- util
1159
- .ajax({ url: toStartFlow, params })
1160
- .then((res) => {
1161
- //pc接口返回数据处理
1162
- const { status, message, data } = res;
1163
- if (status == 'success') {
1164
- data.nodeInfoMap.nodeExtAttr.submitTipsMsg &&
1165
- this.$confirm(
1166
- data.nodeInfoMap.nodeExtAttr.submitTipsMsg,
1167
- '提示',
1168
- {
1169
- confirmButtonText: '确定',
1170
- cancelButtonText: '取消',
1171
- type: 'warning'
1172
- }
1173
- )
1174
- .then(() => {})
1175
- .catch(() => {
1176
- this.quit();
1177
- });
1178
- data.nextNodeCheckType &&
1179
- (this.nextNodeCheckType = data.nextNodeCheckType);
1180
- data.nextOperateCheckType &&
1181
- (this.nextOperateCheckType = data.nextOperateCheckType);
1182
- this.customPresetHintMessage = data.customPresetHintMessage;
1183
- this.readOnlyNotificationType = data.readOnlyNotificationType;
1184
- this.notificationMessageReadOnly =
1185
- data.notificationMessageReadOnly == 'true';
1186
- this.nextNode.nodeInfo = data.nextNodeList;
1187
- this.nextNode.nextNode = data.nextNodeList[0].nodeId;
1188
- this.isPreset = data.isPreset;
1189
- this.isHideDefaultOperation =
1190
- data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation;
1191
- this.defaultNextNode = data.nodeInfoMap.nodeExtAttr.defaultNextNode;
1192
- this.isChooseNextNode =
1193
- data.nodeInfoMap.nodeExtAttr.isChooseNextNode;
1194
- this.isCdjxjTaskHandle = data.isCdjxjTaskHandle;
1195
- if (this.isChooseNextNode == 1) {
1196
- this.operationList = [
1197
- { key: 0, value: '默认', list: [] },
1198
- { key: 1, value: '自定义', list: [] }
1199
- ];
1200
- let arr = [];
1201
- for (let key in data.taskNodeMap) {
1202
- arr.push({ nodeName: data.taskNodeMap[key], nodeId: key });
1203
- }
1204
- this.operationList[0].list = data.nextNodeList;
1205
- this.operationList[1].list = arr;
1206
- if (this.isHideDefaultOperation != 1) {
1207
- this.nextNode.nextOperate = 0;
1208
- this.nextNode.nodeInfo = this.operationList[0].list;
1209
- if (this.nextNode.nodeInfo.length > 0) {
1210
- let defaultNodeData = data.nextNodeList.filter(
1211
- (x) => x.nodeId == this.defaultNextNode
1212
- );
1213
- this.nextNode.nextNode =
1214
- defaultNodeData.length > 0
1215
- ? this.defaultNextNode
1216
- : data.nextNodeList[0].nodeId;
1217
- }
1218
- } else if (
1219
- data.nodeInfoMap.nodeExtAttr.defaultNextOperate == 1 ||
1220
- data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation == 1
1221
- ) {
1222
- // this.nextNode.nodeInfo = data.nextNodeList
1223
- this.nextNode.nextOperate = 1;
1224
- this.nextNode.nodeInfo = this.operationList[1].list;
1225
- if (this.nextNode.nodeInfo.length > 0) {
1226
- let defaultNodeData = data.nextNodeList.filter(
1227
- (x) => x.nodeId == this.defaultNextNode
1228
- );
1229
- this.nextNode.nextNode =
1230
- defaultNodeData.length > 0
1231
- ? this.defaultNextNode
1232
- : data.nextNodeList[0].nodeId;
1233
- }
1234
- }
1235
- }
1236
- this.isCustomPreset = data.isCustomPreset;
1237
- this.presetTaskNodeKeyStr = data.presetTaskNodeKeyStr;
1238
- this.presetTaskNodeMap = data.presetTaskNodeMap;
1239
- this.isSinglePage = data.taskExamine.isSinglePage;
1240
- this.isSinglePage &&
1241
- (this.nextNode.opinion = data.taskExamine.opinion);
1242
- // this.nextNode.noticeInfo = data.taskExamine.notificationMsg;
1243
- this.nextNode.nodeName = data.taskExamine.nodeName;
1244
- this.canPresetRead = data.canPresetRead;
1245
- if (data.canPresetRead) {
1246
- let ids =
1247
- data.nodeInfoMap.nodeExtAttr.presetReadCandinateIds.split(',');
1248
- let names =
1249
- data.nodeInfoMap.nodeExtAttr.presetReadCandinateNames.split(
1250
- ','
1251
- );
1252
- ids.map((item, index) => {
1253
- this.presetReadUserId.push({
1254
- showid: item,
1255
- showname: names[index]
1256
- });
1257
- this.selectPresetUserList.push({
1258
- showid: item,
1259
- showname: names[index]
1260
- });
1261
- this.nextNode.presetReadUserId.push(item);
1262
- });
1263
- }
1264
- this.getNodeInfos();
1265
- // this.getPresetFlowInfo();
1266
- this.isCustomPreset &&
1267
- this.$refs.customPreset.getPresetFlowInfo(this.nextNode.nextNode);
1268
- this.getFind();
1269
- this.getMessage();
1270
- } else {
1271
- this.$message.error(message || '系统错误,请联系管理员!');
1272
- }
1273
- })
1274
- .catch((err) => {
1275
- if (this.showBtn) {
1276
- this.loading = false;
1277
- } else {
1278
- this.allLoading.close();
1279
- }
1280
- if (err.message && err.message !== 'canceled') {
1281
- this.$message.error(err.message);
1282
- }
1283
- });
1284
- }
1285
- }
1286
- };
1287
- </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
+ >
9
+ <el-form
10
+ ref="nextNode"
11
+ :model="nextNode"
12
+ class="demo-dynamic"
13
+ label-width="100px"
14
+ :label-position="labelPosition"
15
+ >
16
+ <div
17
+ :style="`height:${
18
+ showBtn ? '430px' : 'auto'
19
+ }; overflow-y: auto; margin-bottom: 10px`"
20
+ >
21
+ <el-form-item
22
+ v-show="showBtn"
23
+ prop="nodeName"
24
+ label="当前节点"
25
+ :rules="[
26
+ { required: true, message: `请选择下步节点`, trigger: 'blur' }
27
+ ]"
28
+ >
29
+ <el-input v-model="nextNode.nodeName" disabled />
30
+ </el-form-item>
31
+ <el-form-item
32
+ v-if="isSinglePage || copyHistory || formType == 'readTransfer'"
33
+ prop="newOpinion"
34
+ :label="
35
+ copyHistory || formType == 'readTransfer' ? '填写意见' : '意见'
36
+ "
37
+ >
38
+ <CommonOpinions
39
+ class="opinions"
40
+ :opinion="nextNode.newOpinion"
41
+ :rows="copyHistory || formType == 'readTransfer' ? 2 : 5"
42
+ @change="(val) => (nextNode.newOpinion = val)"
43
+ />
44
+ </el-form-item>
45
+ <el-form-item
46
+ prop="nextOperate"
47
+ label="下步操作"
48
+ v-if="isChooseNextNode == 1"
49
+ :rules="[
50
+ { required: true, message: `请选择下步操作`, trigger: 'blur' }
51
+ ]"
52
+ >
53
+ <el-select
54
+ v-if="nextOperateCheckType == 'select'"
55
+ v-model="nextNode.nextOperate"
56
+ :placeholder="`请选择下步操作`"
57
+ @change="selecNext"
58
+ >
59
+ <el-option
60
+ v-for="items in operationList"
61
+ :key="items.key"
62
+ :label="items.value"
63
+ :value="items.key"
64
+ ></el-option>
65
+ </el-select>
66
+ <es-radio-group
67
+ v-else-if="nextOperateCheckType == 'radio'"
68
+ v-model="nextNode.nextOperate"
69
+ :data="operationList"
70
+ @change="selecNext($event, true)"
71
+ value-key="key"
72
+ label-key="value"
73
+ ></es-radio-group>
74
+ </el-form-item>
75
+ <el-form-item
76
+ prop="nextNode"
77
+ label="下步节点"
78
+ :rules="[
79
+ { required: true, message: `请选择下步节点`, trigger: 'blur' }
80
+ ]"
81
+ >
82
+ <el-select
83
+ v-if="nextNodeCheckType == 'select'"
84
+ v-model="nextNode.nextNode"
85
+ :placeholder="`请选择下步节点`"
86
+ @change="changeSel"
87
+ >
88
+ <el-option
89
+ v-for="items in nextNode.nodeInfo"
90
+ :key="items.id"
91
+ :label="items.nodeName"
92
+ :value="items.nodeId"
93
+ ></el-option>
94
+ </el-select>
95
+ <es-radio-group
96
+ v-else-if="nextNodeCheckType == 'radio'"
97
+ v-model="nextNode.nextNode"
98
+ :data="nextNode.nodeInfo"
99
+ @change="changeSel"
100
+ value-key="nodeId"
101
+ label-key="nodeName"
102
+ ></es-radio-group>
103
+ </el-form-item>
104
+ <el-form-item
105
+ v-if="countersignaturetypeCode != 0"
106
+ prop="countersignaturetypeText"
107
+ label="处理方式"
108
+ >
109
+ <el-input
110
+ v-model="nextNode.countersignaturetypeText"
111
+ placeholder="请输入内容"
112
+ disabled
113
+ />
114
+ </el-form-item>
115
+ <!-- <el-form-item
116
+ prop="nextNode"
117
+ label="下步办理人"
118
+ v-if="isShowNextUser"
119
+ :rules="[
120
+ { required: true, message: `请选择下步办理人`, trigger: 'blur' }
121
+ ]"
122
+ >
123
+ <SelectUser
124
+ :nextUser="nextNode.nextUser"
125
+ :radioList="radioList"
126
+ :multiple="multiple"
127
+ :isCustomUser="isCustomUser"
128
+ :options="options"
129
+ :presetEdit="presetEdit"
130
+ :isDefSelectedObj="isDefSelectedObj"
131
+ :selectUserList="selectUserList"
132
+ @change="changeSelectUser"
133
+ :types="nextUserTypes"
134
+ :params="params"
135
+ />
136
+ </el-form-item> -->
137
+ <el-form-item
138
+ :prop="isShowNextUser ? 'nextUser' : 'nextOrgId'"
139
+ :label="isShowNextUser ? '下步办理人' : '办理对象'"
140
+ >
141
+ <SelectUser
142
+ :nextUser="isShowNextUser ? nextNode.nextUser : nextNode.nextOrgId"
143
+ :radioList="radioList"
144
+ :multiple="multiple"
145
+ :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
146
+ :options="options"
147
+ :presetEdit="presetEdit"
148
+ :mix="multiple"
149
+ :isDefSelectedObj="isDefSelectedObj"
150
+ :selectUserList="selectUserList"
151
+ @change="
152
+ changeSelectUser(
153
+ $event,
154
+ isShowNextUser ? 'nextUser' : 'nextOrgId'
155
+ )
156
+ "
157
+ :types="
158
+ !isShowNextUser
159
+ ? nextUserTypes
160
+ : isCdjxjTaskHandle != 'true'
161
+ ? ['employee', 'persongroup']
162
+ : ['employee']
163
+ "
164
+ :params="isShowNextUser ? params : {}"
165
+ :tabs="nextUserTabs"
166
+ />
167
+ </el-form-item>
168
+ <el-form-item
169
+ prop="nextReadUserId"
170
+ v-if="isTaskread == 1"
171
+ label="
172
+ 分阅用户
173
+ "
174
+ >
175
+ <SelectUser
176
+ :nextUser="nextNode.nextReadUserId"
177
+ :multiple="true"
178
+ :selectUserList="selectReadUserList"
179
+ :options="userOptions"
180
+ title="分阅用户"
181
+ :mix="true"
182
+ :types="types"
183
+ @change="changeSelectReadUser($event, 'nextReadUserId')"
184
+ :tabs="tabs"
185
+ />
186
+ </el-form-item>
187
+ <el-form-item
188
+ prop="presetReadUserId"
189
+ v-if="canPresetRead"
190
+ label="
191
+ 自动分阅
192
+ "
193
+ >
194
+ <SelectUser
195
+ :nextUser="nextNode.presetReadUserId"
196
+ :multiple="true"
197
+ :selectUserList="selectPresetUserList"
198
+ :options="presetOptions"
199
+ title="分阅用户"
200
+ :radioList="presetReadUserId"
201
+ :presetEdit="1"
202
+ :mix="true"
203
+ :types="types"
204
+ @change="changeSelectReadUser($event, 'presetReadUserId')"
205
+ :tabs="tabs"
206
+ />
207
+ </el-form-item>
208
+ <el-form-item
209
+ v-if="enableCustomLimitTimeSetting"
210
+ prop="customLimitTime"
211
+ label="限时办理"
212
+ >
213
+ <el-input
214
+ v-model="nextNode.customLimitTime"
215
+ placeholder="请输入限时办理的天数"
216
+ @change="changeCustomLimitTime"
217
+ class="input-with-select custom-limit-time"
218
+ >
219
+ <es-select
220
+ v-if="!showCustomLimitTimeText"
221
+ v-model="nextNode.customLimitTime"
222
+ placeholder="请选择"
223
+ slot="prepend"
224
+ sysCode="bpm_custom_limit_time"
225
+ ></es-select>
226
+ <es-button
227
+ type="primary"
228
+ slot="append"
229
+ @click="
230
+ () => {
231
+ nextNode.customLimitTime = '';
232
+ showCustomLimitTimeText = !showCustomLimitTimeText;
233
+ }
234
+ "
235
+ >切换{{
236
+ showCustomLimitTimeText ? '选择框' : '文本框'
237
+ }}</es-button
238
+ >
239
+ </el-input>
240
+ </el-form-item>
241
+ <el-form-item
242
+ v-if="isHandleExplain == 1"
243
+ prop="handleExplain"
244
+ label="办理说明"
245
+ >
246
+ <el-input
247
+ placeholder="请输入办理说明"
248
+ v-model="nextNode.handleExplain"
249
+ />
250
+ </el-form-item>
251
+ <el-form-item prop="noticeType" label="通知方式" v-show="showBtn && nextNode.noticeList.length>0">
252
+ <el-checkbox-group v-model="nextNode.noticeType">
253
+ <el-checkbox
254
+ v-for="item of nextNode.noticeList"
255
+ :key="item.cciValue"
256
+ :label="item.cciValue"
257
+ :disabled="
258
+ readOnlyNotificationType
259
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
260
+ : false
261
+ "
262
+ >
263
+ {{ item.shortName }}
264
+ </el-checkbox>
265
+ </el-checkbox-group>
266
+ </el-form-item>
267
+ <el-form-item
268
+ v-show="nextNode.noticeType.length != 0 && showBtn"
269
+ prop="nextNode"
270
+ label="通知消息"
271
+ >
272
+ <es-input
273
+ style="
274
+ border-color: #ccc;
275
+ padding: 5px;
276
+ border-radius: 5px;
277
+ font-size: 13px;
278
+ "
279
+ type="textarea"
280
+ v-model="nextNode.noticeInfo"
281
+ :readonly="notificationMessageReadOnly"
282
+ />
283
+ </el-form-item>
284
+ <CustomPreset
285
+ v-show="isCustomPreset"
286
+ ref="customPreset"
287
+ @changeCustom="
288
+ (data) => {
289
+ presetList = data;
290
+ }
291
+ "
292
+ :customPresetHintMessage="customPresetHintMessage"
293
+ @changeActiveNames="(val) => (activeNames = val)"
294
+ @loadingEnd="loading = false"
295
+ @loadingStart="loading = true"
296
+ :nextNode="nextNode.nextNode"
297
+ :id="id"
298
+ :processDefinitionId="processDefinitionId"
299
+ />
300
+ <Preset
301
+ v-show="isPreset"
302
+ @changePreset="
303
+ (data) => {
304
+ presetUserJson = data;
305
+ }
306
+ "
307
+ @loadingEnd="loading = false"
308
+ @loadingStart="loading = true"
309
+ :customPresetHintMessage="customPresetHintMessage"
310
+ :nodeId="nextNode.nextNode"
311
+ :businessId="id"
312
+ :processDefinitionId="processDefinitionId"
313
+ :presetTaskNodeMap="presetTaskNodeMap"
314
+ :presetTaskNodeKeyStr="presetTaskNodeKeyStr"
315
+ />
316
+ </div>
317
+ <el-form-item style="margin-bottom: 0px" v-show="showBtn">
318
+ <div style="text-align: right">
319
+ <el-button
320
+ type="primary"
321
+ size="small"
322
+ @click="subProcess('nextNode')"
323
+ >
324
+ 确认
325
+ </el-button>
326
+ <el-button size="small" @click="quit"> 取消 </el-button>
327
+ </div>
328
+ </el-form-item>
329
+ </el-form>
330
+ <div v-if="!showBtn && nextNode.noticeList.length>0" style="padding: 5px; background: #fff">
331
+ <div class="news" @click="showNews = !showNews">
332
+ <span class="news-item">消息通知</span>
333
+ <span :class="showNews ? 'show' : 'sj'"></span>
334
+ </div>
335
+ <div v-if="showNews" ref="messagebox" style="transition: 1s">
336
+ <el-checkbox-group v-model="nextNode.noticeType">
337
+ <el-checkbox
338
+ v-for="item of nextNode.noticeList"
339
+ :key="item.cciValue"
340
+ :label="item.cciValue"
341
+ :disabled="
342
+ readOnlyNotificationType
343
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
344
+ : false
345
+ "
346
+ >
347
+ {{ item.shortName }}
348
+ </el-checkbox>
349
+ </el-checkbox-group>
350
+ <es-input
351
+ style="
352
+ border-color: #ccc;
353
+ padding: 5px;
354
+ border-radius: 5px;
355
+ font-size: 13px;
356
+ "
357
+ autosize
358
+ v-show="showNews"
359
+ type="textarea"
360
+ v-model="nextNode.noticeInfo"
361
+ @change="handleChange"
362
+ :readonly="notificationMessageReadOnly"
363
+ />
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </template>
368
+
369
+ <script>
370
+ import {
371
+ toStartFlow,
372
+ getNodeInfo,
373
+ findSysCodes,
374
+ getNotificationMsg,
375
+ findCodeValues,
376
+ loginUserInfo,
377
+ register,
378
+ freeStartFlow,
379
+ freeStartFlowWithSubmitTask,
380
+ startReadTransferHandleFlowWithTaskReadEnd
381
+ } from 'eoss-ui/src/config/api';
382
+ import util from 'eoss-ui/src/utils/util';
383
+ import SelectUser from './selectUser.vue';
384
+ import CommonOpinions from './component/CommonOpinions.vue';
385
+ import CustomPreset from './component/CustomPreset.vue';
386
+ import Preset from './component/Preset.vue';
387
+ export default {
388
+ name: 'ProcessForm',
389
+
390
+ components: {
391
+ [Option.name]: Option,
392
+ [SelectUser.name]: SelectUser,
393
+ [CustomPreset.name]: CustomPreset,
394
+ [CommonOpinions.name]: CommonOpinions,
395
+ Preset
396
+ },
397
+ props: {
398
+ processDefinitionId: {
399
+ type: String,
400
+ default: ''
401
+ },
402
+ copyHistory: {
403
+ type: String,
404
+ default: ''
405
+ },
406
+ simpleTips: {
407
+ type: Boolean,
408
+ default: true
409
+ },
410
+ formType: {
411
+ type: String,
412
+ default: 'freeStart'
413
+ },
414
+ id: {
415
+ type: String,
416
+ default: ''
417
+ },
418
+ pendingId: {
419
+ type: String,
420
+ default: ''
421
+ },
422
+ opinion: {
423
+ type: String,
424
+ default: ''
425
+ },
426
+ isFreeStartFlow: {
427
+ type: Boolean,
428
+ default: false
429
+ },
430
+ taskParams: {
431
+ type: Object,
432
+ default: () => {}
433
+ },
434
+ taskExamineParam: {
435
+ type: String,
436
+ default: ''
437
+ },
438
+ labelPosition: {
439
+ type: String,
440
+ default: 'left'
441
+ },
442
+ formTitle: {
443
+ type: String,
444
+ default: ''
445
+ },
446
+ showBtn: { type: Boolean, default: true },
447
+ messageType:{
448
+ type:Array,
449
+ default: () => []
450
+ },
451
+ urgencyLevel:{
452
+ type:[Number,String],
453
+ default:''
454
+ },
455
+ keyCount:{
456
+ type:[Number,String],
457
+ default:0
458
+ },
459
+ },
460
+ data() {
461
+ return {
462
+ loading: false,
463
+ isCustomUser: 0,
464
+ allLoading: null,
465
+ selectUser: false,
466
+ multiple: false,
467
+ readMultiple: true,
468
+ customPresetHintMessage: '', //流程预设标题
469
+ nextNodeCheckType: 'select',
470
+ nextOperateCheckType: 'select',
471
+ showNews: false, // 是否展示通知信息
472
+ notificationMessageReadOnly: false,
473
+ isChangeMessage: false,
474
+ readOnlyNotificationType: '',
475
+ show: true,
476
+ enableCustomLimitTimeSetting: false,
477
+ radioList: [],
478
+ showCustomLimitTimeText: false,
479
+ activeNames: '',
480
+ selectUserList: [],
481
+ defaultNextNode: '',
482
+ presetUserJson: [],
483
+ businessId: '',
484
+ isTaskread: 0, //是否显示分阅用户
485
+ isHandleExplain: 0, //是否展示办理说明
486
+ options: [],
487
+ presetList: [],
488
+ presetReadUserId: [], //自动分阅
489
+ canPresetRead: false, //是否展示自动分阅
490
+ nextUserTypes: ['employee', 'persongroup'],
491
+ isCustomPreset: false, //是否展示预设节点
492
+ isPreset: false, //是否展示预设办理人
493
+ isSinglePage: false,
494
+ presetEdit: 0,
495
+ isDefSelectedObj: 0,
496
+ isChooseNextNode: 0,
497
+ isHideDefaultOperation: 0,
498
+ countersignaturetypeCode: 0,
499
+ presetTaskNodeKeyStr: '', //预设办理人顺序
500
+ presetTaskNodeMap: {}, //预设办理人
501
+ params: {
502
+ filid: 'all', //选择范围(my:本单位/ "" or all:全部)
503
+ selectmix: 'true1',
504
+ deptid: '' //指定部门(my:本部门)
505
+ },
506
+ newOpinion: '',
507
+ operationList: [],
508
+ tabs: {
509
+ employee: {
510
+ param: {
511
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId,
512
+ name: '本单位用户'
513
+ }
514
+ },
515
+ department: {
516
+ param: {
517
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
518
+ }
519
+ }
520
+ },
521
+ userModel: {},
522
+ nextUserTabs: {},
523
+ selectPresetUserList: [],
524
+ presetOptions: [],
525
+ selectReadUserList: [],
526
+ userOptions: [],
527
+ mixReadList: [],
528
+ mixPresetList: [],
529
+ isCdjxjTaskHandle: '',
530
+ isShowNextUser: true,
531
+ oldMessage: '',
532
+ mixOrgIdList: [], //办理对象混选
533
+ nextNode: {
534
+ nodeName: '',
535
+ customLimitTime: '',
536
+ newOpinion: '',
537
+ countersignaturetypeText: '',
538
+ nextNode: '',
539
+ nextReadUserId: [],
540
+ nextOrgId: [],
541
+ noticeType: [],
542
+ nextOperate: '',
543
+ nextUser: [],
544
+ presetReadUserId: [], //自动分阅
545
+ noticeInfo: '',
546
+ nodeInfo: [],
547
+ userInfo: [],
548
+ handleExplain: '',
549
+ noticeList: [],
550
+ msgTypeCount:0
551
+ }
552
+ };
553
+ },
554
+ watch: {
555
+ messageType:{
556
+ handler(val) {
557
+ if (this.urgencyLevel) {
558
+ this.nextNode.noticeList = val;
559
+ let arr = [];
560
+ this.nextNode.noticeList.map((item) => {
561
+ this.nextNode.noticeType.map((x) => {
562
+ if (x == item.cciValue) {
563
+ arr.push(x);
564
+ }
565
+ });
566
+ });
567
+ this.nextNode.noticeType = arr;
568
+ }else{
569
+ this.msgTypeCount++
570
+ }
571
+ }
572
+ },
573
+ processDefinitionId(val) {
574
+ Object.assign(this.$data, this.$options.data());
575
+ this.getUserInfo();
576
+ this.getNodeType();
577
+ this.getStartFlow(val);
578
+ if (this.copyHistory) {
579
+ this.nextNode.newOpinion = this.opinion;
580
+ } else if (this.formType != 'readTransfer') {
581
+ this.newOpinion = this.opinion;
582
+ }
583
+ // this.getStartFlow(val);
584
+ },
585
+ opinion(val) {
586
+ this.newOpinion = this.opinion;
587
+ },
588
+ formTitle: {
589
+ handler(val) {
590
+ if (!this.showBtn && !this.isChangeMessage) {
591
+ this.nextNode.noticeInfo = this.oldMessage.replace('{title}', val);
592
+ }
593
+ },
594
+ deep: true,
595
+ immediate: true
596
+ }
597
+ },
598
+ computed: {
599
+ types() {
600
+ if (this.isCdjxjTaskHandle == 'true') {
601
+ return ['employee', 'enterprise', 'department'];
602
+ } else {
603
+ return ['employee', 'enterprise', 'department', 'persongroup'];
604
+ }
605
+ }
606
+ },
607
+ created() {
608
+ this.getUserInfo();
609
+ },
610
+ mounted() {
611
+ if(!this.urgencyLevel){
612
+ this.getNodeType();
613
+ }
614
+ this.getStartFlow(this.processDefinitionId);
615
+ if (this.copyHistory) {
616
+ this.nextNode.newOpinion = this.opinion;
617
+ } else if (this.formType != 'readTransfer') {
618
+ this.newOpinion = this.opinion;
619
+ }
620
+ },
621
+ methods: {
622
+ handleChange() {
623
+ this.isChangeMessage = true
624
+ },
625
+ changeCustomLimitTime(val) {
626
+ if (!Number(val) || val.indexOf('.') != -1 || Number(val) < 0) {
627
+ this.$message.warning('请输入正确的天数');
628
+ this.nextNode.customLimitTime = '';
629
+ }
630
+ },
631
+ getUserInfo() {
632
+ let mainConfig = util.getStorage('mainConfig');
633
+ if (mainConfig) {
634
+ this.userModel = JSON.parse(mainConfig).userModel;
635
+ } else {
636
+ util
637
+ .ajax({ url: loginUserInfo })
638
+ .then((res) => {
639
+ const { status, data } = res;
640
+ if (status == 'success') {
641
+ this.userModel = data;
642
+ } else {
643
+ let msg = res.msg || '系统错误,请联系管理员!';
644
+ this.$message.error(msg);
645
+ }
646
+ })
647
+ .catch((err) => {
648
+ if (err.message && err.message !== 'canceled') {
649
+ this.$message.error(err.message);
650
+ }
651
+ });
652
+ }
653
+ },
654
+ getIsShowNextUser(val) {
655
+ if (
656
+ val == 7 ||
657
+ val == 8 ||
658
+ val == 9 ||
659
+ val == 10 ||
660
+ val == 11 ||
661
+ val == 12
662
+ ) {
663
+ this.isShowNextUser = false;
664
+ //设置办理角色
665
+ // $("#orgRoleCode").val(handleRoleId);
666
+ if (val == 7 || val == 8) {
667
+ this.nextUserTypes = ['department'];
668
+ this.nextUserTabs = {
669
+ department: {
670
+ param: {
671
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
672
+ }
673
+ }
674
+ };
675
+ this.multiple = true;
676
+ } else if (val == 9 || val == 10) {
677
+ this.nextUserTypes = ['enterprise'];
678
+ this.nextUserTabs = { enterprise: { param: { filid: 'other' } } };
679
+ this.multiple = true;
680
+ } else if (val == 11 || val == 12) {
681
+ this.nextUserTypes = ['department', 'enterprise'];
682
+ this.nextUserTabs = {
683
+ enterprise: { param: { filid: 'other' } },
684
+ department: {
685
+ param: {
686
+ filid: JSON.parse(util.getStorage('mainConfig')).userModel.orgId
687
+ }
688
+ }
689
+ };
690
+ this.multiple = true;
691
+ }
692
+ }
693
+ if (val == 7 || val == 9 || val == 11) {
694
+ this.multiple = false;
695
+ }
696
+ },
697
+ // 分阅是否多选
698
+ isReadMultiple(nextReadUserSelectType) {
699
+ if (nextReadUserSelectType == 1) {
700
+ this.readMultiple = false;
701
+ } else if (nextReadUserSelectType == 2) {
702
+ this.readMultiple = true;
703
+ } else if (nextReadUserSelectType == 3) {
704
+ this.readMultiple = false;
705
+ } else if (nextReadUserSelectType == 4) {
706
+ this.readMultiple = true;
707
+ } else if (nextReadUserSelectType == 5) {
708
+ this.readMultiple = false;
709
+ } else if (nextReadUserSelectType == 6) {
710
+ this.readMultiple = true;
711
+ }
712
+ },
713
+ changeSelectReadUser(val, type) {
714
+ const { nextUser, mixList } = val;
715
+ this.nextNode[type] = nextUser;
716
+ if (type === 'presetReadUserId') {
717
+ this.mixPresetList = mixList;
718
+ } else {
719
+ this.mixReadList = mixList;
720
+ }
721
+ },
722
+ selecNext(val) {
723
+ this.nextNode.nextUser = [];
724
+ this.options = [];
725
+ this.selectUserList = [];
726
+ this.radioList = [];
727
+ if (this.showBtn) {
728
+ this.loading = true;
729
+ } else {
730
+ this.allLoading = util.loading(this.$loading, '加载中...');
731
+ }
732
+ this.nextNode.nodeInfo = this.operationList[val].list;
733
+ if (this.nextNode.nodeInfo.length > 0) {
734
+ this.nextNode.nextNode =
735
+ this.defaultNextNode || this.nextNode.nodeInfo[0].nodeId;
736
+ }
737
+ this.getNodeInfos();
738
+ },
739
+ changeSelectUser(val, type) {
740
+ const { nextUser, options, mixList } = val;
741
+ this.nextNode[type] = nextUser;
742
+ this.mixOrgIdList = mixList;
743
+ },
744
+ getNodeType() {
745
+ util
746
+ .ajax({
747
+ url: findCodeValues,
748
+ params: {
749
+ ccCode: 'notification_type',
750
+ userId: util.getStorage('userId')
751
+ }
752
+ })
753
+ .then((res) => {
754
+ const { status, data } = res;
755
+ if (status === 'success') {
756
+ this.nextNode.noticeList = data;
757
+ }
758
+ })
759
+ .catch((err) => {
760
+ if (this.showBtn) {
761
+ this.loading = false;
762
+ } else {
763
+ this.allLoading.close();
764
+ }
765
+ if (err.message && err.message !== 'canceled') {
766
+ this.$message.error(err.message);
767
+ }
768
+ });
769
+ },
770
+ //获取通知信息
771
+ getMessage() {
772
+ let params = {
773
+ processDefinitionId: this.processDefinitionId,
774
+ nodeId: this.nextNode.nextNode,
775
+ businessId: this.id
776
+ };
777
+ if (!this.showBtn) {
778
+ params.openMode = 'samepage';
779
+ }
780
+ util
781
+ .ajax({ url: getNotificationMsg, params, methods: 'post' })
782
+ .then((res) => {
783
+ if (res.status === 'success') {
784
+ if (!this.showBtn) {
785
+ this.oldMessage = res.message;
786
+ this.nextNode.noticeInfo = res.message.replace('{title}', this.formTitle);
787
+ } else {
788
+ this.nextNode.noticeInfo = res.message;
789
+ }
790
+ }
791
+ })
792
+ .catch((err) => {
793
+ if (this.showBtn) {
794
+ this.loading = false;
795
+ } else {
796
+ this.allLoading.close();
797
+ }
798
+ if (err.message && err.message !== 'canceled') {
799
+ this.$message.error(err.message);
800
+ }
801
+ });
802
+ },
803
+ // 提交表单
804
+ subProcess(formName) {
805
+ this.saveProcess(formName);
806
+ },
807
+ saveProcess(formName) {
808
+ this.$refs[formName].validate((valid) => {
809
+ if (valid) {
810
+ const {
811
+ nextNode,
812
+ nextUser,
813
+ noticeInfo,
814
+ noticeType,
815
+ handleExplain,
816
+ presetReadUserId,
817
+ nextReadUserId,
818
+ nextOrgId,
819
+ newOpinion,
820
+ customLimitTime
821
+ } = this.nextNode;
822
+ // if (noticeType.length === 0) {
823
+ // return this.$message.warning('请选择通知方式');
824
+ // }
825
+ if (this.isShowNextUser) {
826
+ if (nextUser == '' || (this.multiple && nextUser.length == 0)) {
827
+ return this.$message.warning('请选择下步办理人');
828
+ }
829
+ } else {
830
+ if (nextOrgId == '' || (this.multiple && nextOrgId.length == 0)) {
831
+ return this.$message.warning('请选择办理对象');
832
+ }
833
+ }
834
+ if (this.showBtn) {
835
+ this.loading = true;
836
+ } else {
837
+ this.allLoading = util.loading(this.$loading, '加载中...');
838
+ }
839
+ let newNextUser = [];
840
+ if (this.multiple) {
841
+ nextUser && nextUser.map((item) => newNextUser.push(item));
842
+ }
843
+ let newNoticeType = '';
844
+ if (noticeType) {
845
+ newNoticeType = noticeType.join(',');
846
+ }
847
+ let params = {
848
+ processDefinitionId: this.processDefinitionId,
849
+ nextUserId: this.multiple ? newNextUser.join(',') : nextUser,
850
+ customLimitTime,
851
+ nextNodeId: nextNode,
852
+ businessId: this.businessId,
853
+ notificationType: newNoticeType,
854
+ userId: util.getStorage('userId'),
855
+ notificationMsg: noticeInfo,
856
+ customPresetUserJson: JSON.stringify(this.presetList),
857
+ presetUserJson: JSON.stringify(this.presetUserJson),
858
+ nextReadUserId: this.readMultiple
859
+ ? this.mixReadList && this.mixReadList.join('|')
860
+ : nextReadUserId,
861
+ nextOrgId: !this.isShowNextUser
862
+ ? this.multiple
863
+ ? this.mixOrgIdList && this.mixOrgIdList.join('|')
864
+ : nextOrgId
865
+ : '',
866
+ handleExplain: handleExplain,
867
+ presetReadUserId:
868
+ this.mixPresetList && this.mixPresetList.length > 0
869
+ ? this.mixPresetList.join('|')
870
+ : presetReadUserId.join(','),
871
+ opinion: this.newOpinion || newOpinion
872
+ };
873
+ if (this.activeNames != '1') delete params.customPresetUserJson;
874
+ if (this.isFreeStartFlow || this.formType === 'readTransfer') {
875
+ let newParm = {};
876
+ newParm.copyHistory = this.copyHistory === 'needCopyPendedHistory';
877
+ newParm.startFlowParamJson = params;
878
+ // newParm.startFlowParamJson.businessId = this.id; //this.id
879
+ newParm.startFlowParamJson.taskExamineParam = {
880
+ startFlowFirstNodeName: this.taskExamineParam
881
+ };
882
+ newParm.startFlowParamJson = JSON.stringify(
883
+ newParm.startFlowParamJson
884
+ );
885
+ for (let key in this.taskParams) {
886
+ if (Array.isArray(this.taskParams[key])) {
887
+ this.taskParams[key] =
888
+ this.taskParams[key].length > 0
889
+ ? this.taskParams[key].join(',')
890
+ : '';
891
+ }
892
+ }
893
+
894
+ newParm.submitTaskParamJson = JSON.stringify(this.taskParams);
895
+ if (this.formType == 'readTransfer') {
896
+ newParm.readTransferHandleStartFlowParamJson =
897
+ JSON.stringify(params);
898
+ newParm.taskReadEndParamJson = JSON.stringify(this.taskParams);
899
+ delete newParm.copyHistory;
900
+ delete newParm.startFlowParamJson;
901
+ delete newParm.submitTaskParamJson;
902
+ }
903
+ params = newParm;
904
+ }
905
+ if(this.copyHistory && !this.isFreeStartFlow){
906
+ params.pendingId = this.pendingId
907
+ delete params.businessId;
908
+ }
909
+ util
910
+ .ajax({
911
+ url: this.isFreeStartFlow
912
+ ? freeStartFlowWithSubmitTask
913
+ : this.formType == 'readTransfer'
914
+ ? startReadTransferHandleFlowWithTaskReadEnd
915
+ : this.copyHistory? freeStartFlow : register,
916
+ method: 'post',
917
+ data: params
918
+ })
919
+ .then((res) => {
920
+ const { status, message } = res;
921
+ if (this.showBtn) {
922
+ this.loading = false;
923
+ } else {
924
+ this.allLoading.close();
925
+ }
926
+ if (status === 'success' || res.rCode == 0) {
927
+ this.quit(true);
928
+ this.simpleTips && this.$message.success('操作成功');
929
+ } else {
930
+ this.$message.error(message || '系统错误,请联系管理员!');
931
+ }
932
+ })
933
+ .catch((err) => {
934
+ if (this.showBtn) {
935
+ this.loading = false;
936
+ } else {
937
+ this.allLoading.close();
938
+ }
939
+ if (err.message && err.message !== 'canceled') {
940
+ this.$message.error(err.message);
941
+ }
942
+ });
943
+ } else {
944
+ return false;
945
+ }
946
+ });
947
+ },
948
+ getNodeInfos(nodeId, index) {
949
+ let params = {
950
+ processDefinitionId: this.processDefinitionId,
951
+ nextNodeId: nodeId ? nodeId : this.nextNode.nextNode,
952
+ businessId: this.id,
953
+ userId: util.getStorage('userId')
954
+ };
955
+ util
956
+ .ajax({ url: getNodeInfo, params })
957
+ .then((res) => {
958
+ const {
959
+ status,
960
+ message,
961
+ data: {
962
+ nextUserList,
963
+ nodeExtAttr,
964
+ countersignaturetypeText,
965
+ countersignaturetypeCode
966
+ }
967
+ } = res;
968
+ if (this.showBtn) {
969
+ this.loading = false;
970
+ } else {
971
+ this.allLoading.close();
972
+ }
973
+ if (status === 'success') {
974
+ this.nextNode.userInfo = nextUserList;
975
+ this.countersignaturetypeCode = countersignaturetypeCode;
976
+ this.nextNode.countersignaturetypeText = countersignaturetypeText;
977
+ this.enableCustomLimitTimeSetting =
978
+ nodeExtAttr.enableCustomLimitTimeSetting == 1;
979
+ this.isTaskread = nodeExtAttr.isTaskread;
980
+ this.isHandleExplain = nodeExtAttr.isHandleExplain;
981
+ this.isCustomUser = nodeExtAttr.isCustomUser; //是否展示选人组件按钮
982
+ this.presetEdit = nodeExtAttr.presetEdit; //是否展示备选人
983
+ this.isDefSelectedObj = nodeExtAttr.isDefSelectedObj; //是否默认选中
984
+ if (
985
+ nodeExtAttr.userSelectionType == 7 ||
986
+ nodeExtAttr.userSelectionType == 8 ||
987
+ nodeExtAttr.userSelectionType == 9 ||
988
+ nodeExtAttr.userSelectionType == 10 ||
989
+ nodeExtAttr.userSelectionType == 11 ||
990
+ nodeExtAttr.userSelectionType == 12
991
+ ) {
992
+ this.getIsShowNextUser(
993
+ nodeExtAttr && nodeExtAttr.userSelectionType
994
+ );
995
+ } else {
996
+ const { multiple, params } = this.isMultiple(
997
+ nodeExtAttr.userSelectionType
998
+ );
999
+ this.multiple = multiple;
1000
+ this.params = params;
1001
+ }
1002
+ // this.isReadMultiple(nodeExtAttr.userSelectionType);
1003
+
1004
+ nextUserList.map((item) => {
1005
+ if (
1006
+ this.multiple &&
1007
+ nodeExtAttr.isDefSelectedObj == 1 &&
1008
+ nextUserList !== undefined
1009
+ ) {
1010
+ this.nextNode.nextUser.push(item.userId);
1011
+ this.selectUserList.push({
1012
+ showname: item.username,
1013
+ showid: item.userId
1014
+ });
1015
+ }
1016
+
1017
+ this.options.push({
1018
+ showname: item.username,
1019
+ showid: item.userId
1020
+ });
1021
+ });
1022
+ if (this.multiple) {
1023
+ this.nextNode.nextReadUserId = [];
1024
+ } else {
1025
+ this.nextNode.nextReadUserId = '';
1026
+ }
1027
+ if (
1028
+ nextUserList.length > 0 &&
1029
+ nodeExtAttr.isDefSelectedObj == 1 &&
1030
+ !this.multiple
1031
+ ) {
1032
+ this.nextNode.nextUser = nextUserList[0].userId;
1033
+ this.selectUserList.push({
1034
+ showname: nextUserList[0].username,
1035
+ showid: nextUserList[0].userId
1036
+ });
1037
+ }
1038
+ this.radioList = this.options;
1039
+ } else {
1040
+ this.$message.error(message || '系统错误,请联系管理员!');
1041
+ }
1042
+ nodeId && this.$refs.selectUser[index].changeInfo();
1043
+ })
1044
+ .catch((err) => {
1045
+ if (this.showBtn) {
1046
+ this.loading = false;
1047
+ } else {
1048
+ this.allLoading.close();
1049
+ }
1050
+ if (err.message && err.message !== 'canceled') {
1051
+ this.$message.error(err.message);
1052
+ }
1053
+ });
1054
+ },
1055
+ changeSel(val) {
1056
+ this.nextNode.nextUser = [];
1057
+ this.options = [];
1058
+ this.selectUserList = [];
1059
+ this.radioList = [];
1060
+ if (this.showBtn) {
1061
+ this.loading = true;
1062
+ } else {
1063
+ this.allLoading = util.loading(this.$loading, '加载中...');
1064
+ }
1065
+ this.getNodeInfos();
1066
+ },
1067
+ // 取消
1068
+ quit(val) {
1069
+ if (val === true) return this.$emit('cancel', val);
1070
+ this.$emit('cancel', false);
1071
+ },
1072
+ getFind() {
1073
+ util
1074
+ .ajax({
1075
+ url: findSysCodes
1076
+ })
1077
+ .then((res) => {
1078
+ const { status, message } = res;
1079
+ if (status === 'success') {
1080
+ this.nextNode.noticeType = message.split(',');
1081
+ let arr = [];
1082
+ this.nextNode.noticeList.map((item) => {
1083
+ this.nextNode.noticeType.map((x) => {
1084
+ if (x == item.cciValue) {
1085
+ arr.push(x);
1086
+ }
1087
+ });
1088
+ });
1089
+ this.nextNode.noticeType = arr;
1090
+ } else {
1091
+ this.$message.error(message || '系统错误,请联系管理员!');
1092
+ }
1093
+ })
1094
+ .catch((err) => {
1095
+ if (this.showBtn) {
1096
+ this.loading = false;
1097
+ } else {
1098
+ this.allLoading.close();
1099
+ }
1100
+ if (err.message && err.message !== 'canceled') {
1101
+ this.$message.error(err.message);
1102
+ }
1103
+ });
1104
+ },
1105
+ /**
1106
+ * isMultiple
1107
+ * @desc:是否多选
1108
+ * @author liufan
1109
+ * @date 2022年9月13日
1110
+ **/
1111
+ isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
1112
+ let multiple = false;
1113
+ let params = {};
1114
+ if (val == 2 || val == 4 || val == 6 || val == 16 || val == 12) {
1115
+ multiple = true;
1116
+ }
1117
+ if (val == 1 || val == 2 || val == 5) {
1118
+ params.filid = this.userModel.orgId;
1119
+ params.only_filid = true;
1120
+ if (choiceOrgId) {
1121
+ params.filid = choiceOrgId;
1122
+ }
1123
+ }
1124
+ if (val == 5 || val == 6) {
1125
+ params.filid = this.userModel.orgId;
1126
+ params.deptid = this.userModel.orgId;
1127
+ if (choiceDeptId) {
1128
+ params.deptid = choiceDeptId;
1129
+ }
1130
+ if (choiceOrgId) {
1131
+ params.filid = choiceOrgId;
1132
+ }
1133
+ }
1134
+ if (val == 15 || val == 16) {
1135
+ params.filid = this.userModel.orgId;
1136
+ if (pOrgId) {
1137
+ params.filid = pOrgId;
1138
+ }
1139
+ }
1140
+ return { multiple, params };
1141
+ },
1142
+ getStartFlow(processId) {
1143
+ if (!processId) {
1144
+ return false;
1145
+ }
1146
+ if (this.showBtn) {
1147
+ this.loading = true;
1148
+ } else {
1149
+ this.allLoading = util.loading(this.$loading, '加载中...');
1150
+ }
1151
+ this.businessId = this.id;
1152
+ let params = {
1153
+ processDefinitionId: processId, // processId || this.processDefinitionId,
1154
+ userId: util.getStorage('userId'),
1155
+ businessId: this.businessId
1156
+ };
1157
+ // 获取节点
1158
+ util
1159
+ .ajax({ url: toStartFlow, params })
1160
+ .then((res) => {
1161
+ //pc接口返回数据处理
1162
+ const { status, message, data } = res;
1163
+ if (status == 'success') {
1164
+ data.nodeInfoMap.nodeExtAttr.submitTipsMsg &&
1165
+ this.$confirm(
1166
+ data.nodeInfoMap.nodeExtAttr.submitTipsMsg,
1167
+ '提示',
1168
+ {
1169
+ confirmButtonText: '确定',
1170
+ cancelButtonText: '取消',
1171
+ type: 'warning'
1172
+ }
1173
+ )
1174
+ .then(() => {})
1175
+ .catch(() => {
1176
+ this.quit();
1177
+ });
1178
+ data.nextNodeCheckType &&
1179
+ (this.nextNodeCheckType = data.nextNodeCheckType);
1180
+ data.nextOperateCheckType &&
1181
+ (this.nextOperateCheckType = data.nextOperateCheckType);
1182
+ this.customPresetHintMessage = data.customPresetHintMessage;
1183
+ this.readOnlyNotificationType = data.readOnlyNotificationType;
1184
+ this.notificationMessageReadOnly =
1185
+ data.notificationMessageReadOnly == 'true';
1186
+ this.nextNode.nodeInfo = data.nextNodeList;
1187
+ this.nextNode.nextNode = data.nextNodeList[0].nodeId;
1188
+ this.isPreset = data.isPreset;
1189
+ this.isHideDefaultOperation =
1190
+ data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation;
1191
+ this.defaultNextNode = data.nodeInfoMap.nodeExtAttr.defaultNextNode;
1192
+ this.isChooseNextNode =
1193
+ data.nodeInfoMap.nodeExtAttr.isChooseNextNode;
1194
+ this.isCdjxjTaskHandle = data.isCdjxjTaskHandle;
1195
+ if (this.isChooseNextNode == 1) {
1196
+ this.operationList = [
1197
+ { key: 0, value: '默认', list: [] },
1198
+ { key: 1, value: '自定义', list: [] }
1199
+ ];
1200
+ let arr = [];
1201
+ for (let key in data.taskNodeMap) {
1202
+ arr.push({ nodeName: data.taskNodeMap[key], nodeId: key });
1203
+ }
1204
+ this.operationList[0].list = data.nextNodeList;
1205
+ this.operationList[1].list = arr;
1206
+ if (this.isHideDefaultOperation != 1) {
1207
+ this.nextNode.nextOperate = 0;
1208
+ this.nextNode.nodeInfo = this.operationList[0].list;
1209
+ if (this.nextNode.nodeInfo.length > 0) {
1210
+ let defaultNodeData = data.nextNodeList.filter(
1211
+ (x) => x.nodeId == this.defaultNextNode
1212
+ );
1213
+ this.nextNode.nextNode =
1214
+ defaultNodeData.length > 0
1215
+ ? this.defaultNextNode
1216
+ : data.nextNodeList[0].nodeId;
1217
+ }
1218
+ } else if (
1219
+ data.nodeInfoMap.nodeExtAttr.defaultNextOperate == 1 ||
1220
+ data.nodeInfoMap.nodeExtAttr.isHideDefaultOperation == 1
1221
+ ) {
1222
+ // this.nextNode.nodeInfo = data.nextNodeList
1223
+ this.nextNode.nextOperate = 1;
1224
+ this.nextNode.nodeInfo = this.operationList[1].list;
1225
+ if (this.nextNode.nodeInfo.length > 0) {
1226
+ let defaultNodeData = data.nextNodeList.filter(
1227
+ (x) => x.nodeId == this.defaultNextNode
1228
+ );
1229
+ this.nextNode.nextNode =
1230
+ defaultNodeData.length > 0
1231
+ ? this.defaultNextNode
1232
+ : data.nextNodeList[0].nodeId;
1233
+ }
1234
+ }
1235
+ }
1236
+ this.isCustomPreset = data.isCustomPreset;
1237
+ this.presetTaskNodeKeyStr = data.presetTaskNodeKeyStr;
1238
+ this.presetTaskNodeMap = data.presetTaskNodeMap;
1239
+ this.isSinglePage = data.taskExamine.isSinglePage;
1240
+ this.isSinglePage &&
1241
+ (this.nextNode.opinion = data.taskExamine.opinion);
1242
+ // this.nextNode.noticeInfo = data.taskExamine.notificationMsg;
1243
+ this.nextNode.nodeName = data.taskExamine.nodeName;
1244
+ this.canPresetRead = data.canPresetRead;
1245
+ if (data.canPresetRead) {
1246
+ let ids =
1247
+ data.nodeInfoMap.nodeExtAttr.presetReadCandinateIds.split(',');
1248
+ let names =
1249
+ data.nodeInfoMap.nodeExtAttr.presetReadCandinateNames.split(
1250
+ ','
1251
+ );
1252
+ ids.map((item, index) => {
1253
+ this.presetReadUserId.push({
1254
+ showid: item,
1255
+ showname: names[index]
1256
+ });
1257
+ this.selectPresetUserList.push({
1258
+ showid: item,
1259
+ showname: names[index]
1260
+ });
1261
+ this.nextNode.presetReadUserId.push(item);
1262
+ });
1263
+ }
1264
+ this.getNodeInfos();
1265
+ // this.getPresetFlowInfo();
1266
+ this.isCustomPreset &&
1267
+ this.$refs.customPreset.getPresetFlowInfo(this.nextNode.nextNode);
1268
+ this.getFind();
1269
+ this.getMessage();
1270
+ } else {
1271
+ this.$message.error(message || '系统错误,请联系管理员!');
1272
+ }
1273
+ })
1274
+ .catch((err) => {
1275
+ if (this.showBtn) {
1276
+ this.loading = false;
1277
+ } else {
1278
+ this.allLoading.close();
1279
+ }
1280
+ if (err.message && err.message !== 'canceled') {
1281
+ this.$message.error(err.message);
1282
+ }
1283
+ });
1284
+ }
1285
+ }
1286
+ };
1287
+ </script>