eoss-ui 0.7.48 → 0.7.50

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