eoss-ui 0.6.38 → 0.6.40

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 (90) hide show
  1. package/lib/button-group.js +572 -374
  2. package/lib/button.js +572 -374
  3. package/lib/checkbox-group.js +573 -375
  4. package/lib/config/api.js +31 -19
  5. package/lib/data-table-form.js +584 -386
  6. package/lib/data-table.js +597 -392
  7. package/lib/date-picker.js +572 -374
  8. package/lib/dialog.js +572 -374
  9. package/lib/eoss-ui.common.js +10749 -3855
  10. package/lib/error-page.js +4 -4
  11. package/lib/flow-group.js +590 -377
  12. package/lib/flow-list.js +577 -379
  13. package/lib/flow.js +9723 -2852
  14. package/lib/form.js +577 -379
  15. package/lib/handle-user.js +573 -375
  16. package/lib/handler.js +573 -375
  17. package/lib/icon.js +573 -375
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +572 -374
  20. package/lib/input.js +572 -374
  21. package/lib/layout.js +2 -2
  22. package/lib/login.js +587 -389
  23. package/lib/main.js +609 -411
  24. package/lib/nav.js +572 -374
  25. package/lib/notify.js +127 -109
  26. package/lib/page.js +572 -374
  27. package/lib/pagination.js +572 -374
  28. package/lib/player.js +572 -374
  29. package/lib/qr-code.js +572 -374
  30. package/lib/radio-group.js +573 -375
  31. package/lib/retrial-auth.js +575 -377
  32. package/lib/select-ganged.js +573 -375
  33. package/lib/select.js +573 -375
  34. package/lib/selector-panel.js +595 -396
  35. package/lib/selector.js +576 -378
  36. package/lib/sizer.js +578 -380
  37. package/lib/steps.js +572 -374
  38. package/lib/switch.js +572 -374
  39. package/lib/table-form.js +572 -374
  40. package/lib/tabs.js +576 -378
  41. package/lib/theme-chalk/flow.css +1 -1
  42. package/lib/theme-chalk/index.css +1 -1
  43. package/lib/tips.js +573 -375
  44. package/lib/tree-group.js +572 -374
  45. package/lib/tree.js +573 -375
  46. package/lib/upload.js +582 -384
  47. package/lib/utils/util.js +448 -268
  48. package/lib/wujie.js +572 -374
  49. package/lib/wxlogin.js +572 -374
  50. package/package.json +2 -1
  51. package/packages/.DS_Store +0 -0
  52. package/packages/data-table/.DS_Store +0 -0
  53. package/packages/data-table/src/column.vue +9 -3
  54. package/packages/data-table/src/main.vue +5 -1
  55. package/packages/data-table-form/.DS_Store +0 -0
  56. package/packages/data-table-form/src/table.vue +6 -6
  57. package/packages/error-page/.DS_Store +0 -0
  58. package/packages/error-page/src/main.vue +2 -2
  59. package/packages/flow/.DS_Store +0 -0
  60. package/packages/flow/src/component/CommonOpinions.vue +5 -1
  61. package/packages/flow/src/component/taskUnionExamine.vue +83 -27
  62. package/packages/flow/src/freeStartFlow.vue +2843 -0
  63. package/packages/flow/src/main.vue +769 -636
  64. package/packages/flow/src/processForm.vue +62 -9
  65. package/packages/flow/src/reset.vue +901 -0
  66. package/packages/flow/src/selectUser.vue +5 -0
  67. package/packages/flow-group/src/main.vue +4 -0
  68. package/packages/form/.DS_Store +0 -0
  69. package/packages/form/src/main.vue +3 -3
  70. package/packages/login/.DS_Store +0 -0
  71. package/packages/login/src/main.vue +4 -6
  72. package/packages/main/.DS_Store +0 -0
  73. package/packages/main/src/.DS_Store +0 -0
  74. package/packages/selector/.DS_Store +0 -0
  75. package/packages/selector/src/main.vue +1 -1
  76. package/packages/selector-panel/.DS_Store +0 -0
  77. package/packages/selector-panel/src/main.vue +3 -2
  78. package/packages/sizer/.DS_Store +0 -0
  79. package/packages/sizer/src/main.vue +5 -5
  80. package/packages/tabs/.DS_Store +0 -0
  81. package/packages/tabs/src/main.vue +2 -2
  82. package/packages/theme-chalk/lib/flow.css +1 -1
  83. package/packages/theme-chalk/lib/index.css +1 -1
  84. package/packages/theme-chalk/src/.DS_Store +0 -0
  85. package/packages/theme-chalk/src/flow.scss +2 -0
  86. package/packages/upload/.DS_Store +0 -0
  87. package/src/.DS_Store +0 -0
  88. package/src/config/api.js +31 -19
  89. package/src/index.js +157 -157
  90. package/src/utils/util.js +433 -258
@@ -5,418 +5,446 @@
5
5
  :style="styles"
6
6
  v-if="!shrinkAbled"
7
7
  >
8
- <div class="es-flow-top">
9
- <div class="es-flow-title">
10
- <span v-show="!shrink">当前节点:{{ isFlow ? '拟稿' : NodeName }}</span>
11
- <es-button
12
- v-if="showShrink"
13
- size="medium"
14
- class="es-icon"
15
- :icon="shrink ? 'es-icon-indent' : 'es-icon-increase'"
16
- @click="setShrink"
17
- ></es-button>
18
- </div>
19
- <div class="es-opinion" v-show="!shrink">
20
- <span class="es-eidt-title" :style="`${!isFlow ? 'color:red' : ''}`"
21
- >填写意见</span
22
- >
23
- <span
24
- v-show="!isFlow && newTypeCode != 'fenyue'"
25
- class="es-opinion-file"
26
- @click="showFileList = true"
27
- ><i class="es-icon-fujian"></i>意见附件<span
28
- class="es-file-num"
29
- v-show="fileNum > 0"
30
- >({{ fileNum }})</span
31
- ></span
32
- >
8
+ <Reset
9
+ :type="newTypeCode"
10
+ :appId="resetAppId"
11
+ :flowParams="param"
12
+ v-if="newTypeCode == 'reset' || newTypeCode == 'continuation'"
13
+ />
14
+ <div v-else>
15
+ <div class="es-flow-top">
16
+ <div class="es-flow-title">
17
+ <span v-show="!shrink"
18
+ >当前节点:{{ isFlow ? '拟稿' : NodeName }}</span
19
+ >
20
+ <es-button
21
+ v-if="showShrink"
22
+ size="medium"
23
+ class="es-icon"
24
+ :icon="shrink ? 'es-icon-indent' : 'es-icon-increase'"
25
+ @click="setShrink"
26
+ ></es-button>
27
+ </div>
28
+ <div class="es-opinion" v-show="!shrink">
29
+ <span class="es-eidt-title" :style="`${!isFlow ? 'color:red' : ''}`"
30
+ >填写意见</span
31
+ >
32
+ <span
33
+ v-show="!isFlow && newTypeCode != 'fenyue'"
34
+ class="es-opinion-file"
35
+ @click="showFileList = true"
36
+ ><i class="es-icon-fujian"></i>意见附件<span
37
+ class="es-file-num"
38
+ v-show="fileNum > 0"
39
+ >({{ fileNum }})</span
40
+ ></span
41
+ >
42
+ </div>
43
+ <CommonOpinions
44
+ class="es-common-opinions"
45
+ v-show="!shrink"
46
+ ref="commonOpinions"
47
+ @change="(val) => (value = val)"
48
+ :opinion="value"
49
+ :isBanInputOpinion="isBanInputOpinion"
50
+ :nodeFixedOpinionSelectList="nodeFixedOpinionSelectList"
51
+ />
33
52
  </div>
34
- <CommonOpinions
35
- class="es-common-opinions"
36
- v-show="!shrink"
37
- ref="commonOpinions"
38
- @change="(val) => (value = val)"
39
- :opinion="value"
40
- :isBanInputOpinion="isBanInputOpinion"
41
- :nodeFixedOpinionSelectList="nodeFixedOpinionSelectList"
42
- />
43
- </div>
44
- <div
45
- v-show="
46
- (!endFlow || nodeInfos.length > 1) && newTypeCode != 'fenyue' && !shrink
47
- "
48
- class="es-info"
49
- >
50
- <el-form
51
- ref="nextNode"
52
- :model="isFlow ? nodeInfo : nextNode"
53
- class="demo-dynamic"
54
- label-width="120px"
53
+ <div
54
+ v-show="
55
+ (!endFlow || nodeInfos.length > 1) &&
56
+ newTypeCode != 'fenyue' &&
57
+ !shrink
58
+ "
59
+ class="es-info"
55
60
  >
56
- <el-form-item
57
- v-if="isFlow && nodeInfo.option.length > 0"
58
- prop="nextNode"
59
- label="选择流程"
60
- :rules="[{ required: true, message: `请选择流程`, trigger: 'blur' }]"
61
+ <el-form
62
+ ref="nextNode"
63
+ :model="isFlow ? nodeInfo : nextNode"
64
+ class="demo-dynamic"
65
+ label-width="120px"
61
66
  >
62
- <el-input
63
- placeholder="请输入内容"
64
- class="input-with-select select-process"
65
- :class="{ 'hide-flow-char': isStartFlowChartView != 'true' }"
66
- >
67
- <el-select
68
- slot="prepend"
69
- v-model="nodeInfo.nextNode"
70
- style="width: calc(100% + 40px)"
71
- :placeholder="`请选择流程`"
72
- @change="handleChange"
73
- >
74
- <el-option
75
- v-for="items in nodeInfo.option"
76
- :key="items.id"
77
- :label="items.name"
78
- :value="items.processDefId"
79
- ></el-option>
80
- </el-select>
81
- <el-button
82
- slot="append"
83
- v-show="isStartFlowChartView == 'true'"
84
- icon="el-icon-picture"
85
- @click="
86
- () => {
87
- showFlowChart = true;
88
- }
89
- "
90
- ></el-button>
91
- </el-input>
92
- </el-form-item>
93
- <div v-else>
94
- <!-- 加签开始 -->
95
67
  <el-form-item
96
- prop="isAddSign"
97
- v-if="isCanAddSign"
98
- label="是否加签"
68
+ v-if="isFlow && nodeInfo.option.length > 0"
69
+ prop="nextNode"
70
+ label="选择流程"
99
71
  :rules="[
100
- { required: true, message: `请选择是否加签`, trigger: 'blur' }
72
+ { required: true, message: `请选择流程`, trigger: 'blur' }
101
73
  ]"
102
74
  >
103
- <el-radio-group v-model="nextNode.isAddSign">
104
- <el-radio label="1">是</el-radio>
105
- <el-radio label="2">否</el-radio>
106
- </el-radio-group>
107
- </el-form-item>
108
- <div v-show="nextNode.isAddSign === '1'">
109
- <el-form-item
110
- prop="addSignUserId"
111
- label="增加本环节办理人"
112
- :rules="[
113
- { required: false, message: `请选择办理人`, trigger: 'blur' }
114
- ]"
115
- >
116
- <SelectUser
117
- :nextUser="nextNode.addSignUserId"
118
- :multiple="true"
119
- title="增加办理人"
120
- @change="changeSelectUser($event, 'addSignUserId', true)"
121
- />
122
- </el-form-item>
123
- <el-form-item
124
- prop="addSignMode"
125
- v-if="isCanPreAddSign"
126
- label="加签模式"
127
- :rules="[{ required: true, trigger: 'blur' }]"
128
- >
129
- <el-radio-group v-model="nextNode.addSignMode">
130
- <el-radio label="preAddSign">前置加签</el-radio>
131
- <el-radio label="postAddSign">后置加签</el-radio>
132
- </el-radio-group>
133
- </el-form-item>
134
- </div>
135
- <!-- 加签结束 -->
136
- <!-- 减签开始 -->
137
- <el-form-item
138
- v-if="isCanRemoveSign"
139
- prop="isRemoveSign"
140
- label="是否减签"
141
- :rules="[
142
- { required: true, message: `请选择是否加签`, trigger: 'blur' }
143
- ]"
144
- >
145
- <el-radio-group v-model="nextNode.isRemoveSign">
146
- <el-radio label="1">是</el-radio>
147
- <el-radio label="2">否</el-radio>
148
- </el-radio-group>
149
- </el-form-item>
150
- <div v-show="nextNode.isRemoveSign === '1'">
151
- <el-form-item
152
- prop="removeSignUserId"
153
- label="删除本环节办理人"
154
- :rules="[
155
- { required: false, message: `请选择办理人`, trigger: 'blur' }
156
- ]"
157
- >
158
- <el-checkbox-group v-model="nextNode.removeSignUserId">
159
- <el-checkbox
160
- v-for="item of removeUsers"
161
- :key="item.userId"
162
- :label="item.userId"
163
- >{{ item.username }}</el-checkbox
164
- >
165
- </el-checkbox-group>
166
- </el-form-item>
167
- </div>
168
- <!-- 减签结束 -->
169
- <div
170
- v-if="
171
- nextNode.isAddSign != '1' &&
172
- nextNode.isRemoveSign != '1' &&
173
- isSpecial
174
- "
175
- >
176
- <el-form-item
177
- prop="nextOperate"
178
- label="下步操作"
179
- v-if="isChooseNextNode == 1"
180
- :rules="[
181
- { required: true, message: `请选择下步操作`, trigger: 'blur' }
182
- ]"
75
+ <el-input
76
+ placeholder="请输入内容"
77
+ class="input-with-select select-process"
78
+ :class="{ 'hide-flow-char': isStartFlowChartView != 'true' }"
183
79
  >
184
80
  <el-select
185
- v-model="nextNode.nextOperate"
186
- :placeholder="`请选择下步操作`"
187
- :disabled="operationList && operationList.length == 1"
188
- @change="selecNext($event, true)"
81
+ slot="prepend"
82
+ v-model="nodeInfo.nextNode"
83
+ style="width: calc(100% + 40px)"
84
+ :placeholder="`请选择流程`"
85
+ @change="handleChange"
189
86
  >
190
87
  <el-option
191
- v-for="items in operationList"
192
- :key="items.key"
193
- :label="items.value"
194
- :value="items.key"
88
+ v-for="items in nodeInfo.option"
89
+ :key="items.id"
90
+ :label="items.name"
91
+ :value="items.processDefId"
195
92
  ></el-option>
196
93
  </el-select>
94
+ <el-button
95
+ slot="append"
96
+ v-show="isStartFlowChartView == 'true'"
97
+ icon="el-icon-picture"
98
+ @click="
99
+ () => {
100
+ showFlowChart = true;
101
+ }
102
+ "
103
+ ></el-button>
104
+ </el-input>
105
+ </el-form-item>
106
+ <div v-else>
107
+ <!-- 加签开始 -->
108
+ <el-form-item
109
+ prop="isAddSign"
110
+ v-if="isCanAddSign"
111
+ label="是否加签"
112
+ :rules="[
113
+ { required: true, message: `请选择是否加签`, trigger: 'blur' }
114
+ ]"
115
+ >
116
+ <el-radio-group v-model="nextNode.isAddSign">
117
+ <el-radio label="1">是</el-radio>
118
+ <el-radio label="2">否</el-radio>
119
+ </el-radio-group>
197
120
  </el-form-item>
198
- <div>
121
+ <div v-show="nextNode.isAddSign === '1'">
199
122
  <el-form-item
200
- v-if="!isReject && nodeInfos.length != 0 && isShowNode"
201
- prop="nextNodeId"
202
- label="下步节点"
123
+ prop="addSignUserId"
124
+ label="增加本环节办理人"
203
125
  :rules="[
204
- { required: true, message: `请选择下步节点`, trigger: 'blur' }
126
+ { required: false, message: `请选择办理人`, trigger: 'blur' }
205
127
  ]"
206
- >
207
- <el-select
208
- v-model="nextNode.nextNodeId"
209
- :placeholder="`请选择下步节点`"
210
- :disabled="nodeInfos && nodeInfos.length == 1"
211
- @change="selecNext($event, false)"
212
- >
213
- <el-option
214
- v-for="items in nodeInfos"
215
- :key="items.id"
216
- :label="items.nodeName"
217
- :value="items.nodeId"
218
- ></el-option>
219
- </el-select>
220
- </el-form-item>
221
- <el-form-item
222
- v-if="countersignaturetypeCode != 0"
223
- prop="handleMode"
224
- label="处理方式"
225
- >
226
- <el-input
227
- v-model="handleMode"
228
- placeholder="请输入内容"
229
- disabled
230
- />
231
- </el-form-item>
232
- <el-form-item
233
- v-if="isNextUser"
234
- :prop="isShowNextUser ? 'nextUserId' : 'nextOrgId'"
235
- :label="isShowNextUser ? '下步办理人' : '办理对象'"
236
128
  >
237
129
  <SelectUser
238
- :nextUser="
239
- isShowNextUser ? nextNode.nextUserId : nextNode.nextOrgId
240
- "
241
- :radioList="radioList"
242
- :multiple="multiple"
243
- :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
244
- :isCurrentNodeForbiddenChangeCandidate="
245
- isCurrentNodeForbiddenChangeCandidate
246
- "
247
- :options="options"
248
- :mix="multiple"
249
- :presetEdit="presetEdit"
250
- :selectUserList="selectUserList"
251
- @change="
252
- changeSelectUser(
253
- $event,
254
- isShowNextUser ? 'nextUserId' : 'nextOrgId',
255
- true
256
- )
257
- "
258
- :types="nextUserTypes"
259
- :params="isShowNextUser ? params : {}"
260
- :tabs="nextUserTabs"
130
+ :nextUser="nextNode.addSignUserId"
131
+ :multiple="true"
132
+ title="增加办理人"
133
+ @change="changeSelectUser($event, 'addSignUserId', true)"
261
134
  />
262
135
  </el-form-item>
263
136
  <el-form-item
264
- v-if="isHideCurrentOrg"
265
- prop="nextCurrentOrgObj"
266
- :label="currentOrgName ? currentOrgName : '本单位'"
137
+ prop="addSignMode"
138
+ v-if="isCanPreAddSign"
139
+ label="加签模式"
140
+ :rules="[{ required: true, trigger: 'blur' }]"
267
141
  >
268
- <SelectUser
269
- :nextUser="nextCurrentOrgObjSelect"
270
- multiple
271
- mix
272
- @change="disposeAppUnit($event, 'nextCurrentOrgObjSelect')"
273
- :types="['department', 'employee']"
274
- :params="{ filid: userModel.orgId }"
275
- />
142
+ <el-radio-group v-model="nextNode.addSignMode">
143
+ <el-radio label="preAddSign">前置加签</el-radio>
144
+ <el-radio label="postAddSign">后置加签</el-radio>
145
+ </el-radio-group>
276
146
  </el-form-item>
147
+ </div>
148
+ <!-- 加签结束 -->
149
+ <!-- 减签开始 -->
150
+ <el-form-item
151
+ v-if="isCanRemoveSign"
152
+ prop="isRemoveSign"
153
+ label="是否减签"
154
+ :rules="[
155
+ { required: true, message: `请选择是否加签`, trigger: 'blur' }
156
+ ]"
157
+ >
158
+ <el-radio-group v-model="nextNode.isRemoveSign">
159
+ <el-radio label="1">是</el-radio>
160
+ <el-radio label="2">否</el-radio>
161
+ </el-radio-group>
162
+ </el-form-item>
163
+ <div v-show="nextNode.isRemoveSign === '1'">
277
164
  <el-form-item
278
- v-if="isHideOtherOrg"
279
- prop="nextOtherOrgObj"
280
- :label="otherOrgName ? otherOrgName : '外单位'"
165
+ prop="removeSignUserId"
166
+ label="删除本环节办理人"
167
+ :rules="[
168
+ { required: false, message: `请选择办理人`, trigger: 'blur' }
169
+ ]"
281
170
  >
282
- <SelectUser
283
- :nextUser="nextOtherOrgObjSelect"
284
- multiple
285
- mix
286
- @change="disposeAppUnit($event, 'nextOtherOrgObjSelect')"
287
- :types="['enterprise']"
288
- :params="{ filid: 'all' }"
289
- />
171
+ <el-checkbox-group v-model="nextNode.removeSignUserId">
172
+ <el-checkbox
173
+ v-for="item of removeUsers"
174
+ :key="item.userId"
175
+ :label="item.userId"
176
+ >{{ item.username }}</el-checkbox
177
+ >
178
+ </el-checkbox-group>
290
179
  </el-form-item>
180
+ </div>
181
+ <!-- 减签结束 -->
182
+ <div
183
+ v-if="
184
+ nextNode.isAddSign != '1' &&
185
+ nextNode.isRemoveSign != '1' &&
186
+ isSpecial
187
+ "
188
+ >
291
189
  <el-form-item
292
- v-if="isMainSubProcess && isNodeShowProcess"
293
- prop="mainSubId"
294
- label="主办"
190
+ prop="nextOperate"
191
+ label="下步操作"
192
+ v-if="isChooseNextNode == 1"
193
+ :rules="[
194
+ { required: true, message: `请选择下步操作`, trigger: 'blur' }
195
+ ]"
295
196
  >
296
197
  <el-select
297
- v-model="nextNode.mainSubId"
298
- :placeholder="`请选择主办`"
198
+ v-model="nextNode.nextOperate"
199
+ :placeholder="`请选择下步操作`"
200
+ :disabled="operationList && operationList.length == 1"
201
+ @change="selecNext($event, true)"
299
202
  >
300
203
  <el-option
301
- v-for="items in subProcessColumns"
302
- :key="items.id"
303
- :label="items.name"
304
- :value="items.value"
204
+ v-for="items in operationList"
205
+ :key="items.key"
206
+ :label="items.value"
207
+ :value="items.key"
305
208
  ></el-option>
306
209
  </el-select>
307
210
  </el-form-item>
308
- <TimeLimit
309
- v-if="nodeType !== 0 && isLimitedTimeHandling === 1"
310
- :newsList="newsList"
311
- @change="(val) => (nextNode = { ...nextNode, ...val })"
312
- />
313
- <el-form-item
314
- prop="nextReadUserId"
315
- v-if="isTaskread == 1"
316
- label="
211
+ <div>
212
+ <el-form-item
213
+ v-if="!isReject && nodeInfos.length != 0 && isShowNode"
214
+ prop="nextNodeId"
215
+ label="下步节点"
216
+ :rules="[
217
+ {
218
+ required: true,
219
+ message: `请选择下步节点`,
220
+ trigger: 'blur'
221
+ }
222
+ ]"
223
+ >
224
+ <el-select
225
+ v-if="nextNodeCheckType == 'select'"
226
+ v-model="nextNode.nextNodeId"
227
+ :placeholder="`请选择下步节点`"
228
+ :disabled="nodeInfos && nodeInfos.length == 1"
229
+ @change="selecNext($event, false)"
230
+ >
231
+ <el-option
232
+ v-for="items in nodeInfos"
233
+ :key="items.id"
234
+ :label="items.nodeName"
235
+ :value="items.nodeId"
236
+ ></el-option>
237
+ </el-select>
238
+ <es-radio-group
239
+ v-else-if="nextNodeCheckType == 'radio'"
240
+ v-model="nextNode.nextNodeId"
241
+ :data="nodeInfos"
242
+ @change="selecNext(nextNode.nextNodeId, false)"
243
+ value-key="nodeId"
244
+ label-key="nodeName"
245
+ ></es-radio-group>
246
+ </el-form-item>
247
+ <el-form-item
248
+ v-if="countersignaturetypeCode != 0"
249
+ prop="handleMode"
250
+ label="处理方式"
251
+ >
252
+ <el-input
253
+ v-model="handleMode"
254
+ placeholder="请输入内容"
255
+ disabled
256
+ />
257
+ </el-form-item>
258
+ <el-form-item
259
+ v-if="isNextUser"
260
+ :prop="isShowNextUser ? 'nextUserId' : 'nextOrgId'"
261
+ :label="isShowNextUser ? '下步办理人' : '办理对象'"
262
+ >
263
+ <SelectUser
264
+ :nextUser="
265
+ isShowNextUser ? nextNode.nextUserId : nextNode.nextOrgId
266
+ "
267
+ :radioList="radioList"
268
+ :multiple="multiple"
269
+ :isCustomUser="!isShowNextUser ? 1 : isCustomUser"
270
+ :isCurrentNodeForbiddenChangeCandidate="
271
+ isCurrentNodeForbiddenChangeCandidate
272
+ "
273
+ :options="options"
274
+ :mix="multiple"
275
+ :presetEdit="presetEdit"
276
+ :selectUserList="selectUserList"
277
+ @change="
278
+ changeSelectUser(
279
+ $event,
280
+ isShowNextUser ? 'nextUserId' : 'nextOrgId',
281
+ true
282
+ )
283
+ "
284
+ :types="nextUserTypes"
285
+ :params="isShowNextUser ? params : {}"
286
+ :tabs="nextUserTabs"
287
+ />
288
+ </el-form-item>
289
+ <el-form-item
290
+ v-if="isHideCurrentOrg"
291
+ prop="nextCurrentOrgObj"
292
+ :label="currentOrgName ? currentOrgName : '本单位'"
293
+ >
294
+ <SelectUser
295
+ :nextUser="nextCurrentOrgObjSelect"
296
+ multiple
297
+ mix
298
+ :disableds="currentOrgDisabledObjId"
299
+ @change="disposeAppUnit($event, 'nextCurrentOrgObjSelect')"
300
+ :types="['department', 'employee']"
301
+ :params="{ filid: userModel.orgId }"
302
+ />
303
+ </el-form-item>
304
+ <el-form-item
305
+ v-if="isHideOtherOrg"
306
+ prop="nextOtherOrgObj"
307
+ :label="otherOrgName ? otherOrgName : '外单位'"
308
+ >
309
+ <SelectUser
310
+ :nextUser="nextOtherOrgObjSelect"
311
+ multiple
312
+ mix
313
+ :disableds="otherOrgDisabledObjId"
314
+ @change="disposeAppUnit($event, 'nextOtherOrgObjSelect')"
315
+ :types="['enterprise']"
316
+ :params="{ filid: 'all' }"
317
+ />
318
+ </el-form-item>
319
+ <el-form-item
320
+ v-if="isMainSubProcess && isNodeShowProcess"
321
+ prop="mainSubId"
322
+ label="主办"
323
+ >
324
+ <el-select
325
+ v-model="nextNode.mainSubId"
326
+ :placeholder="`请选择主办`"
327
+ >
328
+ <el-option
329
+ v-for="items in subProcessColumns"
330
+ :key="items.id"
331
+ :label="items.name"
332
+ :value="items.value"
333
+ ></el-option>
334
+ </el-select>
335
+ </el-form-item>
336
+ <TimeLimit
337
+ v-if="nodeType !== 0 && isLimitedTimeHandling === 1"
338
+ :newsList="newsList"
339
+ @change="(val) => (nextNode = { ...nextNode, ...val })"
340
+ />
341
+ <el-form-item
342
+ prop="nextReadUserId"
343
+ v-if="isTaskread == 1"
344
+ label="
317
345
  分阅用户
318
346
  "
319
- >
320
- <SelectUser
321
- :nextUser="nextNode.nextReadUserId"
322
- :multiple="true"
323
- :selectUserList="selectReadUserList"
324
- :options="userOptions"
325
- title="分阅用户"
326
- :mix="true"
327
- :types="types"
328
- @change="changeSelectReadUser($event, 'nextReadUserId')"
329
- :tabs="tabs"
330
- />
331
- </el-form-item>
332
- <el-form-item
333
- prop="presetReadUserId"
334
- v-if="canPresetRead"
335
- label="
347
+ >
348
+ <SelectUser
349
+ :nextUser="nextNode.nextReadUserId"
350
+ :multiple="true"
351
+ :selectUserList="selectReadUserList"
352
+ :options="userOptions"
353
+ title="分阅用户"
354
+ :mix="true"
355
+ :types="types"
356
+ @change="changeSelectReadUser($event, 'nextReadUserId')"
357
+ :tabs="tabs"
358
+ />
359
+ </el-form-item>
360
+ <el-form-item
361
+ prop="presetReadUserId"
362
+ v-if="canPresetRead"
363
+ label="
336
364
  自动分阅
337
365
  "
338
- >
339
- <SelectUser
340
- :nextUser="nextNode.presetReadUserId"
341
- :multiple="true"
342
- :selectUserList="selectPresetUserList"
343
- :options="presetOptions"
344
- :radioList="presetReadUserId"
345
- :presetEdit="1"
346
- title="分阅用户"
347
- :mix="true"
348
- :types="types"
349
- @change="changeSelectReadUser($event, 'presetReadUserId')"
350
- :tabs="tabs"
351
- />
352
- </el-form-item>
353
- <el-form-item
354
- v-if="isHandleExplain == 1"
355
- prop="handleExplain"
356
- label="办理说明"
357
- >
358
- <el-input
359
- placeholder="请输入办理说明"
360
- v-model="nextNode.handleExplain"
361
- />
362
- </el-form-item>
366
+ >
367
+ <SelectUser
368
+ :nextUser="nextNode.presetReadUserId"
369
+ :multiple="true"
370
+ :selectUserList="selectPresetUserList"
371
+ :options="presetOptions"
372
+ :radioList="presetReadUserId"
373
+ :presetEdit="1"
374
+ title="分阅用户"
375
+ :mix="true"
376
+ :types="types"
377
+ @change="changeSelectReadUser($event, 'presetReadUserId')"
378
+ :tabs="tabs"
379
+ />
380
+ </el-form-item>
381
+ <el-form-item
382
+ v-if="isHandleExplain == 1"
383
+ prop="handleExplain"
384
+ label="办理说明"
385
+ >
386
+ <el-input
387
+ placeholder="请输入办理说明"
388
+ v-model="nextNode.handleExplain"
389
+ />
390
+ </el-form-item>
391
+ </div>
363
392
  </div>
364
393
  </div>
365
- </div>
366
- <CustomPreset
367
- v-if="isCustomPreset"
368
- ref="customPreset"
369
- @changeCustom="
370
- (data) => {
371
- presetList = data;
372
- }
373
- "
374
- @changeActiveNames="(val) => (activeNames = val)"
375
- @loadingEnd="customLoading('end')"
376
- @loadingStart="customLoading('start')"
377
- :nextNode="nextNode.nextNodeId"
378
- :customPresetHintMessage="customPresetHintMessage"
379
- :id="businessIds"
380
- :processDefinitionId="nodeInfo.nextNode"
381
- />
382
- <Preset
383
- v-if="isPreset"
384
- @changePreset="
385
- (data) => {
386
- presetUserJson = data;
387
- }
388
- "
389
- @loadingEnd="customLoading('end')"
390
- @loadingStart="customLoading('start')"
391
- :nodeId="nextNode.nextNodeId"
392
- :businessId="businessIds"
393
- :customPresetHintMessage="customPresetHintMessage"
394
- :processDefinitionId="nodeInfo.nextNode"
395
- :presetTaskNodeMap="presetTaskNodeMap"
396
- :presetTaskNodeKeyStr="presetTaskNodeKeyStr"
397
- />
398
- </el-form>
399
- <div v-if="!isFlow && isSpecial" style="padding: 5px; background: #fff">
400
- <div class="news" @click="showNews = !showNews">
401
- <span class="news-item">消息通知</span>
402
- <span :class="showNews ? 'show' : 'sj'"></span>
403
- </div>
404
- <div v-show="showNews" style="transition: 1s">
405
- <el-checkbox-group v-model="nextNode.notificationType">
406
- <el-checkbox
407
- v-for="item of newsList"
408
- :key="item.cciValue"
409
- :label="item.cciValue"
410
- :disabled="
411
- readOnlyNotificationType
412
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
413
- : false
414
- "
415
- >
416
- {{ item.shortName }}
417
- </el-checkbox>
418
- </el-checkbox-group>
419
- <!-- <div
394
+ <CustomPreset
395
+ v-if="isCustomPreset"
396
+ ref="customPreset"
397
+ @changeCustom="
398
+ (data) => {
399
+ presetList = data;
400
+ }
401
+ "
402
+ @changeActiveNames="(val) => (activeNames = val)"
403
+ @loadingEnd="customLoading('end')"
404
+ @loadingStart="customLoading('start')"
405
+ :nextNode="nextNode.nextNodeId"
406
+ :customPresetHintMessage="customPresetHintMessage"
407
+ :id="businessIds"
408
+ :processDefinitionId="nodeInfo.nextNode"
409
+ />
410
+ <Preset
411
+ v-if="isPreset"
412
+ @changePreset="
413
+ (data) => {
414
+ presetUserJson = data;
415
+ }
416
+ "
417
+ @loadingEnd="customLoading('end')"
418
+ @loadingStart="customLoading('start')"
419
+ :nodeId="nextNode.nextNodeId"
420
+ :businessId="businessIds"
421
+ :customPresetHintMessage="customPresetHintMessage"
422
+ :processDefinitionId="nodeInfo.nextNode"
423
+ :presetTaskNodeMap="presetTaskNodeMap"
424
+ :presetTaskNodeKeyStr="presetTaskNodeKeyStr"
425
+ />
426
+ </el-form>
427
+ <div v-if="!isFlow && isSpecial" style="padding: 5px; background: #fff">
428
+ <div class="news" @click="showNews = !showNews">
429
+ <span class="news-item">消息通知</span>
430
+ <span :class="showNews ? 'show' : 'sj'"></span>
431
+ </div>
432
+ <div v-show="showNews" style="transition: 1s">
433
+ <el-checkbox-group v-model="nextNode.notificationType">
434
+ <el-checkbox
435
+ v-for="item of newsList"
436
+ :key="item.cciValue"
437
+ :label="item.cciValue"
438
+ :disabled="
439
+ readOnlyNotificationType
440
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
441
+ : false
442
+ "
443
+ >
444
+ {{ item.shortName }}
445
+ </el-checkbox>
446
+ </el-checkbox-group>
447
+ <!-- <div
420
448
  v-show="showNews"
421
449
  style="
422
450
  border: 1px solid #ccc;
@@ -427,277 +455,299 @@
427
455
  >
428
456
  {{ nextNode.notificationMsg }}
429
457
  </div> -->
430
- <es-input
431
- style="
432
- border-color: #ccc;
433
- padding: 5px;
434
- border-radius: 5px;
435
- font-size: 13px;
436
- "
437
- v-show="showNews"
438
- type="textarea"
439
- v-model="nextNode.notificationMsg"
440
- :readonly="notificationMessageReadOnly"
441
- />
458
+ <es-input
459
+ style="
460
+ border-color: #ccc;
461
+ padding: 5px;
462
+ border-radius: 5px;
463
+ font-size: 13px;
464
+ "
465
+ v-show="showNews"
466
+ type="textarea"
467
+ v-model="nextNode.notificationMsg"
468
+ :readonly="notificationMessageReadOnly"
469
+ />
470
+ </div>
442
471
  </div>
443
472
  </div>
444
- </div>
445
- <div
446
- class="es-flow-buttons"
447
- v-if="newTypeCode != 'fenyue' && !shrink"
448
- style="margin-top: 10px"
449
- >
450
- <div v-if="isSubmitButtonShowAgreeAndDisagree == 1">
451
- <el-button
452
- class="es-button-agree"
453
- type="primary"
454
- @click="subProcess('同意。')"
455
- >同意</el-button
456
- >
457
- <el-button class="es-button-agree" @click="subProcess('不同意。')"
458
- >不同意</el-button
459
- >
460
- <el-button class="es-button-agree-save" @click="saveInfo()"
461
- >暂存</el-button
462
- >
463
- </div>
464
473
  <div
465
- class="es-user-defined"
466
- v-if="
467
- (nodeInfos.length > 0 ||
468
- nodeInfo.option.length > 0 ||
469
- operationList.length > 0) &&
470
- btnList.length <= 2
471
- "
474
+ class="es-flow-buttons"
475
+ v-if="newTypeCode != 'fenyue' && !shrink"
476
+ style="margin-top: 10px"
472
477
  >
473
- <el-button
474
- v-show="isSubmitButtonShowAgreeAndDisagree != 1"
475
- v-for="item of hideBtn ? btnList.slice(0, 1) : btnList"
476
- :key="item.name"
477
- :type="item.type"
478
- :style="btnStyle"
479
- @click="item.event === 'sub' ? subProcess() : saveInfo(false, item)"
480
- >
481
- {{ item.text }}
482
- </el-button>
483
-
478
+ <div v-if="isSubmitButtonShowAgreeAndDisagree == 1">
479
+ <el-button
480
+ class="es-button-agree"
481
+ type="primary"
482
+ @click="subProcess('同意。')"
483
+ >同意</el-button
484
+ >
485
+ <el-button class="es-button-agree" @click="subProcess('不同意。')"
486
+ >不同意</el-button
487
+ >
488
+ <el-button class="es-button-agree-save" @click="saveInfo()"
489
+ >暂存</el-button
490
+ >
491
+ </div>
484
492
  <div
493
+ class="es-user-defined"
485
494
  v-if="
486
- btnList.length > 1 ||
487
- (!isFlow && (rejectObj.fun || pointsReadingObj.fun || moreList))
495
+ (nodeInfos.length > 0 ||
496
+ nodeInfo.option.length > 0 ||
497
+ operationList.length > 0) &&
498
+ btnList.length <= 2
488
499
  "
489
- placement="top"
490
- :class="{ 'em-flow-more-btn': !hideBtn }"
491
- trigger="click"
492
500
  >
493
- <div v-if="!isFlow && !hideBtn" class="es-footer-btn">
494
- <el-button
495
- v-if="rejectObj.fun"
496
- @click="rejectBtn"
497
- style="margin-right: 10px"
498
- type="danger"
499
- >
500
- {{ rejectObj.value }}
501
- </el-button>
502
- <el-button
503
- v-if="pointsReadingObj.fun"
504
- class="es-flow-btn"
505
- @click="taskReadBtn"
506
- >分阅</el-button
507
- >
508
- <el-button
509
- class="es-flow-btn"
510
- v-for="item of moreList"
511
- :key="item.key"
512
- @click="goView(item)"
513
- >
514
- {{ item.value }}
515
- </el-button>
516
- </div>
517
- <el-button-group
518
- slot="reference"
519
- style="margin: 0px 10px"
520
- v-if="hideBtn"
501
+ <el-button
502
+ v-show="isSubmitButtonShowAgreeAndDisagree != 1"
503
+ v-for="item of hideBtn ? btnList.slice(0, 1) : btnList"
504
+ :key="item.name"
505
+ :type="item.type"
506
+ :style="btnStyle"
507
+ @click="item.event === 'sub' ? subProcess() : saveInfo(false, item)"
521
508
  >
522
- <el-button
523
- v-show="isSubmitButtonShowAgreeAndDisagree != 1"
524
- v-for="item of btnList.slice(1)"
525
- :key="item.name"
526
- :type="item.type"
527
- :style="btnStyle"
528
- @click.stop="
529
- item.event === 'sub' ? subProcess() : saveInfo(false, item)
530
- "
531
- >
532
- {{ item.text }}
533
- </el-button>
534
- <el-dropdown
535
- v-if="
536
- !isFlow &&
537
- (rejectObj.fun || pointsReadingObj.fun || moreList.length > 0)
538
- "
539
- trigger="click"
540
- placement="top"
541
- style="border-left: 1px solid #d9d9d9"
509
+ {{ item.text }}
510
+ </el-button>
511
+
512
+ <div
513
+ v-if="
514
+ btnList.length > 1 ||
515
+ (!isFlow && (rejectObj.fun || pointsReadingObj.fun || moreList))
516
+ "
517
+ placement="top"
518
+ :class="{ 'em-flow-more-btn': !hideBtn }"
519
+ trigger="click"
520
+ >
521
+ <div v-if="!isFlow && !hideBtn" class="es-footer-btn">
522
+ <el-button
523
+ v-if="rejectObj.fun"
524
+ @click="rejectBtn"
525
+ style="margin-right: 10px"
526
+ type="danger"
527
+ >
528
+ {{ rejectObj.value }}
529
+ </el-button>
530
+ <el-button
531
+ v-if="pointsReadingObj.fun"
532
+ class="es-flow-btn"
533
+ @click="taskReadBtn"
534
+ >分阅</el-button
535
+ >
536
+ <el-button
537
+ class="es-flow-btn"
538
+ v-for="item of moreList"
539
+ :key="item.key"
540
+ @click="goView(item)"
541
+ >
542
+ {{ item.value }}
543
+ </el-button>
544
+ </div>
545
+ <el-button-group
546
+ slot="reference"
547
+ style="margin: 0px 10px"
548
+ v-if="hideBtn"
542
549
  >
543
- <el-button>...</el-button>
544
- <el-dropdown-menu slot="dropdown">
545
- <el-dropdown-item v-for="item of moreList" :key="item.key">
546
- <div class="es-flow-btn" @click="goView(item)">
547
- {{ item.value }}
548
- </div>
549
- </el-dropdown-item>
550
- <el-dropdown-item v-if="pointsReadingObj.fun">
551
- <div class="es-flow-btn" @click="taskReadBtn">分阅</div>
552
- </el-dropdown-item>
553
- <el-dropdown-item v-if="rejectObj.fun">
554
- <div style="color: red" @click="rejectBtn">
555
- {{ rejectObj.value }}
556
- </div>
557
- </el-dropdown-item>
558
- </el-dropdown-menu>
559
- </el-dropdown>
560
- </el-button-group>
550
+ <el-button
551
+ v-show="isSubmitButtonShowAgreeAndDisagree != 1"
552
+ v-for="item of btnList.slice(1)"
553
+ :key="item.name"
554
+ :type="item.type"
555
+ :style="btnStyle"
556
+ @click.stop="
557
+ item.event === 'sub' ? subProcess() : saveInfo(false, item)
558
+ "
559
+ >
560
+ {{ item.text }}
561
+ </el-button>
562
+ <el-dropdown
563
+ v-if="
564
+ !isFlow &&
565
+ (rejectObj.fun || pointsReadingObj.fun || moreList.length > 0)
566
+ "
567
+ trigger="click"
568
+ placement="top"
569
+ style="border-left: 1px solid #d9d9d9"
570
+ >
571
+ <el-button>...</el-button>
572
+ <el-dropdown-menu slot="dropdown">
573
+ <el-dropdown-item v-for="item of moreList" :key="item.key">
574
+ <div class="es-flow-btn" @click="goView(item)">
575
+ {{ item.value }}
576
+ </div>
577
+ </el-dropdown-item>
578
+ <el-dropdown-item v-if="pointsReadingObj.fun">
579
+ <div class="es-flow-btn" @click="taskReadBtn">分阅</div>
580
+ </el-dropdown-item>
581
+ <el-dropdown-item v-if="rejectObj.fun">
582
+ <div style="color: red" @click="rejectBtn">
583
+ {{ rejectObj.value }}
584
+ </div>
585
+ </el-dropdown-item>
586
+ </el-dropdown-menu>
587
+ </el-dropdown>
588
+ </el-button-group>
589
+ </div>
561
590
  </div>
562
591
  </div>
563
- </div>
564
- <div v-else-if="!shrink" class="es-fenyue-buttons">
565
- <el-button
566
- type="primary"
567
- size="medium"
568
- style="width: 100%; margin: 10px 0px"
569
- @click="taskRead()"
592
+ <div v-else-if="!shrink" class="es-fenyue-buttons">
593
+ <el-button
594
+ type="primary"
595
+ size="medium"
596
+ style="width: 100%; margin: 10px 0px"
597
+ @click="taskRead()"
598
+ >
599
+ 阅结
600
+ </el-button>
601
+ <el-button
602
+ class="es-flow-btn"
603
+ v-if="isCanFenyue == '1'"
604
+ size="medium"
605
+ style="margin-left: 0px"
606
+ @click="taskReadBtn"
607
+ >分阅</el-button
608
+ >
609
+ </div>
610
+ <!-- 弹窗内容 -->
611
+ <es-dialog
612
+ v-if="handleVisible"
613
+ append-to-body
614
+ height="auto"
615
+ class="flow-dialog"
616
+ ref="handleVisible"
617
+ :title="title"
618
+ :close-on-click-modal="false"
619
+ :visible.sync="handleVisible"
620
+ :closeParent="closeParent"
570
621
  >
571
- 阅结
572
- </el-button>
573
- <el-button
574
- class="es-flow-btn"
575
- v-if="isCanFenyue == '1'"
576
- size="medium"
577
- style="margin-left: 0px"
578
- @click="taskReadBtn"
579
- >分阅</el-button
622
+ <ProcessForm
623
+ :id="businessIds"
624
+ :process-definition-id="nodeInfo.nextNode"
625
+ :opinion="value"
626
+ @cancel="closeProcess($event, 'handleVisible', closeParent)"
627
+ />
628
+ </es-dialog>
629
+ <es-dialog
630
+ append-to-body
631
+ :close-on-click-modal="false"
632
+ title="流程图查看"
633
+ :visible.sync="showFlowChart"
634
+ v-if="showFlowChart"
635
+ >
636
+ <!-- <FlowChart :nodeId="nodeInfo.nextNode" v-if="showFlowChart" /> -->
637
+ <img
638
+ style="width: 100%"
639
+ :src="`${charUrl}/bpm/service/diagram/getpng.png?processDefinitionId=${nodeInfo.nextNode}`"
640
+ alt="加载失败"
641
+ />
642
+ </es-dialog>
643
+ <es-dialog
644
+ v-if="showReject"
645
+ append-to-body
646
+ class="flow-dialog"
647
+ height="400px"
648
+ title="驳回"
649
+ ref="showReject"
650
+ :close-on-click-modal="false"
651
+ :visible.sync="showReject"
580
652
  >
653
+ <ProcessReject
654
+ :pending-id="pendingId"
655
+ :option="value"
656
+ :show-reject="showReject"
657
+ :news-info="nextNode.notificationMsg"
658
+ @cancel="closeProcess(true, 'showReject')"
659
+ />
660
+ </es-dialog>
661
+ <es-dialog
662
+ v-if="showTaskRead"
663
+ append-to-body
664
+ class="flow-dialog"
665
+ height="400px"
666
+ ref="showTaskRead"
667
+ :close-on-click-modal="false"
668
+ :title="taskReadType === 'transfer' ? '转办' : '分阅'"
669
+ :visible.sync="showTaskRead"
670
+ >
671
+ <StartTaskRead
672
+ :pending-id="pendingId"
673
+ :opinion="value"
674
+ :type="taskReadType"
675
+ :taskExamine="taskExamineInfo"
676
+ :news-info="nextNode.notificationMsg"
677
+ @cancel="closeProcess($event, 'showTaskRead')"
678
+ />
679
+ </es-dialog>
680
+ <es-dialog
681
+ v-if="showFileList"
682
+ append-to-body
683
+ title="意见附件"
684
+ class="flow-dialog"
685
+ :close-on-click-modal="false"
686
+ :visible.sync="showFileList"
687
+ >
688
+ <FileList
689
+ :ownId="pendingId"
690
+ :code="attachedCode"
691
+ @changeFileNum="(val) => (fileNum = val)"
692
+ />
693
+ </es-dialog>
694
+ <es-dialog
695
+ v-if="showSendMsg"
696
+ append-to-body
697
+ height="auto"
698
+ title="发送消息"
699
+ class="flow-dialog"
700
+ ref="showSendMsg"
701
+ :close-on-click-modal="false"
702
+ :visible.sync="showSendMsg"
703
+ >
704
+ <SendMsg
705
+ @cancel="closeProcess($event, 'showSendMsg')"
706
+ :pendingId="pendingId"
707
+ :newsList="newsList"
708
+ />
709
+ </es-dialog>
710
+ <es-dialog
711
+ v-if="showTaskUnionExamine"
712
+ append-to-body
713
+ height="auto"
714
+ class="flow-dialog"
715
+ ref="showTaskUnionExamine"
716
+ :close-on-click-modal="false"
717
+ :title="flowTitle"
718
+ :visible.sync="showTaskUnionExamine"
719
+ >
720
+ <TaskUnionExamine
721
+ @cancel="closeProcess($event, 'showTaskUnionExamine')"
722
+ :pendingId="pendingId"
723
+ :defaultOpinion="nodeDefaultSubmitOpinion"
724
+ :type="flowType"
725
+ :multiple="flowMultiple"
726
+ :disabled="flowDisabled"
727
+ />
728
+ </es-dialog>
729
+ <es-dialog
730
+ v-if="showFreeStartFlow"
731
+ height="400"
732
+ class="flow-dialog"
733
+ ref="handleVisible"
734
+ :title="title"
735
+ :close-on-click-modal="false"
736
+ :visible.sync="showFreeStartFlow"
737
+ >
738
+ <es-free-start-flow
739
+ v-if="showFreeStartFlow"
740
+ isStartFlow
741
+ v-bind="freeStartFlowParams"
742
+ @close="showFreeStartFlow = false"
743
+ @success="freeStartFlowSuccess"
744
+ :btnList="[{ text: '提交', event: 'sub', type: 'primary' }]"
745
+ :taskParams="taskParams"
746
+ ></es-free-start-flow>
747
+ <!-- @success="handleSuccess"
748
+ @save="handleSave" -->
749
+ </es-dialog>
581
750
  </div>
582
- <!-- 弹窗内容 -->
583
- <es-dialog
584
- v-if="handleVisible"
585
- append-to-body
586
- height="auto"
587
- class="flow-dialog"
588
- ref="handleVisible"
589
- :title="title"
590
- :close-on-click-modal="false"
591
- :visible.sync="handleVisible"
592
- :closeParent="closeParent"
593
- >
594
- <ProcessForm
595
- :id="businessIds"
596
- :process-definition-id="nodeInfo.nextNode"
597
- :opinion="value"
598
- @cancel="closeProcess($event, 'handleVisible', closeParent)"
599
- />
600
- </es-dialog>
601
- <es-dialog
602
- append-to-body
603
- :close-on-click-modal="false"
604
- title="流程图查看"
605
- :visible.sync="showFlowChart"
606
- v-if="showFlowChart"
607
- >
608
- <!-- <FlowChart :nodeId="nodeInfo.nextNode" v-if="showFlowChart" /> -->
609
- <img
610
- style="width: 100%"
611
- :src="`${charUrl}/bpm/service/diagram/getpng.png?processDefinitionId=${nodeInfo.nextNode}`"
612
- alt="加载失败"
613
- />
614
- </es-dialog>
615
- <es-dialog
616
- v-if="showReject"
617
- append-to-body
618
- class="flow-dialog"
619
- height="400px"
620
- title="驳回"
621
- ref="showReject"
622
- :close-on-click-modal="false"
623
- :visible.sync="showReject"
624
- >
625
- <ProcessReject
626
- :pending-id="pendingId"
627
- :option="value"
628
- :show-reject="showReject"
629
- :news-info="nextNode.notificationMsg"
630
- @cancel="closeProcess(true, 'showReject')"
631
- />
632
- </es-dialog>
633
- <es-dialog
634
- v-if="showTaskRead"
635
- append-to-body
636
- class="flow-dialog"
637
- height="400px"
638
- ref="showTaskRead"
639
- :close-on-click-modal="false"
640
- :title="taskReadType === 'transfer' ? '转办' : '分阅'"
641
- :visible.sync="showTaskRead"
642
- >
643
- <StartTaskRead
644
- :pending-id="pendingId"
645
- :opinion="value"
646
- :type="taskReadType"
647
- :taskExamine="taskExamineInfo"
648
- :news-info="nextNode.notificationMsg"
649
- @cancel="closeProcess($event, 'showTaskRead')"
650
- />
651
- </es-dialog>
652
- <es-dialog
653
- v-if="showFileList"
654
- append-to-body
655
- title="意见附件"
656
- class="flow-dialog"
657
- :close-on-click-modal="false"
658
- :visible.sync="showFileList"
659
- >
660
- <FileList
661
- :ownId="pendingId"
662
- :code="attachedCode"
663
- @changeFileNum="(val) => (fileNum = val)"
664
- />
665
- </es-dialog>
666
- <es-dialog
667
- v-if="showSendMsg"
668
- append-to-body
669
- height="auto"
670
- title="发送消息"
671
- class="flow-dialog"
672
- ref="showSendMsg"
673
- :close-on-click-modal="false"
674
- :visible.sync="showSendMsg"
675
- >
676
- <SendMsg
677
- @cancel="closeProcess($event, 'showSendMsg')"
678
- :pendingId="pendingId"
679
- :newsList="newsList"
680
- />
681
- </es-dialog>
682
- <es-dialog
683
- v-if="showTaskUnionExamine"
684
- append-to-body
685
- height="auto"
686
- class="flow-dialog"
687
- ref="showTaskUnionExamine"
688
- :close-on-click-modal="false"
689
- :title="flowTitle"
690
- :visible.sync="showTaskUnionExamine"
691
- >
692
- <TaskUnionExamine
693
- @cancel="closeProcess($event, 'showTaskUnionExamine')"
694
- :pendingId="pendingId"
695
- :defaultOpinion="nodeDefaultSubmitOpinion"
696
- :type="flowType"
697
- :multiple="flowMultiple"
698
- :disabled="flowDisabled"
699
- />
700
- </es-dialog>
701
751
  </div>
702
752
  </template>
703
753
 
@@ -711,7 +761,9 @@ import SendMsg from './component/SendMsg.vue';
711
761
  import TimeLimit from './component/TimeLimit.vue';
712
762
  import ProcessReject from './processReject.vue';
713
763
  import StartTaskRead from './startTaskRead.vue';
764
+ import Reset from './reset.vue';
714
765
  import TaskUnionExamine from './component/taskUnionExamine.vue';
766
+ import FreeStartFlow from './freeStartFlow.vue';
715
767
  import SelectUser from './selectUser.vue';
716
768
  import {
717
769
  findSysCodes,
@@ -727,6 +779,7 @@ import {
727
779
  loginUserInfo,
728
780
  getAdjunctFileInfos,
729
781
  rejectAndEnd,
782
+ getFreeStartFlowParams,
730
783
  isCanStartSubFlow,
731
784
  taskHandleHtml
732
785
  } from 'eoss-ui/src/config/api';
@@ -745,7 +798,9 @@ export default {
745
798
  [SendMsg.name]: SendMsg,
746
799
  [SelectUser.name]: SelectUser,
747
800
  [TaskUnionExamine.name]: TaskUnionExamine,
748
- Preset
801
+ [FreeStartFlow.name]: FreeStartFlow,
802
+ Preset,
803
+ Reset
749
804
  },
750
805
  props: {
751
806
  showShrink: { type: Boolean, default: true },
@@ -773,15 +828,29 @@ export default {
773
828
  beforeSubmit: Function,
774
829
  title: { type: String, default: '事务表单办理' },
775
830
  closeParent: Boolean,
831
+ param: {
832
+ type: Object,
833
+ default: () => {}
834
+ },
776
835
  width: {
777
836
  type: String
837
+ },
838
+ resetAppId: { type: String },
839
+ userSelectRange: {
840
+ type: String
778
841
  }
779
842
  },
780
843
  data() {
781
844
  return {
782
845
  styles: {},
783
846
  userModel: {},
847
+ showFreeStartFlow: false, //自由发起流程弹窗
848
+ freeStartFlowParam: {}, //自由发起流程参数
849
+ otherOrgDisabledObjId: [],
850
+ currentOrgDisabledObjId: [],
851
+ nextNodeCheckType: 'select',
784
852
  readOnlyNotificationType: '',
853
+ taskParams: {},
785
854
  notificationMessageReadOnly: false,
786
855
  isCanPreAddSign: false,
787
856
  isStartFlowChartView: undefined,
@@ -807,6 +876,7 @@ export default {
807
876
  isCustomUser: 0,
808
877
  shrink: false,
809
878
  shrinkAbled: false,
879
+ freeValid: true,
810
880
  taskExamineInfo: {},
811
881
  presetUserJson: [],
812
882
  presetList: [],
@@ -953,7 +1023,10 @@ export default {
953
1023
  this.businessId && this.getProcess();
954
1024
  } else if (this.newTypeCode == 'fenyue') {
955
1025
  this.getTaskReadFlow();
956
- } else {
1026
+ } else if (
1027
+ this.newTypeCode != 'reset' &&
1028
+ this.newTypeCode != 'continuation'
1029
+ ) {
957
1030
  this.getHedInfo();
958
1031
  }
959
1032
  },
@@ -1017,6 +1090,10 @@ export default {
1017
1090
  }
1018
1091
  },
1019
1092
  methods: {
1093
+ freeStartFlowSuccess() {
1094
+ this.showFreeStartFlow = false;
1095
+ this.$emit('success');
1096
+ },
1020
1097
  handleChange(val) {
1021
1098
  this.$parent.$emit('flowChange', val);
1022
1099
  },
@@ -1450,6 +1527,28 @@ export default {
1450
1527
  }
1451
1528
  });
1452
1529
  },
1530
+ getFreeStartParams() {
1531
+ const { businessId, processDefinitionId, nodeId } = this.endFlowInfo;
1532
+ let param = {
1533
+ url: getFreeStartFlowParams,
1534
+ params: {
1535
+ businessId,
1536
+ processDefinitionId,
1537
+ nodeId
1538
+ }
1539
+ };
1540
+ util.ajax(param).then((res) => {
1541
+ if (res.rCode == 0 || res.status == 'success') {
1542
+ this.freeStartFlowParams = res.results;
1543
+ if (res.results.useScene === 'multiInsMidwayWithSubmitScene')
1544
+ this.subProcess('同意。', res.results.useScene);
1545
+ if (!this.freeValid) return;
1546
+ this.showFreeStartFlow = true;
1547
+ } else {
1548
+ this.$message.error(res.message || '系统错误,请联系管理员!');
1549
+ }
1550
+ });
1551
+ },
1453
1552
  /**
1454
1553
  * endFlows
1455
1554
  * @desc:直接办结
@@ -1529,6 +1628,7 @@ export default {
1529
1628
  // 获取驳回页面信息:toTaskRejectHtml(注释有误:appId改为pendingId)
1530
1629
  // 驳回:taskRejectHtml
1531
1630
  // 直接办结:endFlowHtml
1631
+ // 自由发起子流程:toFreeStartFlow
1532
1632
  if (res.fun === 'toStartTaskRead()') {
1533
1633
  // 分阅
1534
1634
  this.taskReadBtn();
@@ -1589,6 +1689,13 @@ export default {
1589
1689
  this.flowDisabled = true;
1590
1690
  this.flowTitle = res.value;
1591
1691
  this.toStartDraf(res);
1692
+ } else if (res.fun == 'toFreeStartFlow()') {
1693
+ this.getFreeStartParams();
1694
+ // 报送两办
1695
+ // this.flowType = 'twoOfficesDispatch';
1696
+ // this.flowDisabled = true;
1697
+ // this.flowTitle = res.value;
1698
+ // this.toStartDraf(res);
1592
1699
  } else {
1593
1700
  this.$message.warning('暂未开放,敬请期待!');
1594
1701
  }
@@ -1795,6 +1902,12 @@ export default {
1795
1902
  const { status, message, data } = res;
1796
1903
  this.loading.close();
1797
1904
  if (status === 'success') {
1905
+ data.otherOrgDisabledObjId &&
1906
+ (this.otherOrgDisabledObjId =
1907
+ data.otherOrgDisabledObjId.split(','));
1908
+ data.currentOrgDisabledObjId &&
1909
+ (this.currentOrgDisabledObjId =
1910
+ data.currentOrgDisabledObjId.split(','));
1798
1911
  if (data != null) {
1799
1912
  if (
1800
1913
  data.nodeExtAttr.userSelectionType == 7 ||
@@ -2089,6 +2202,7 @@ export default {
2089
2202
  choiceDeptId,
2090
2203
  readOnlyNotificationType,
2091
2204
  notificationMessageReadOnly,
2205
+ nextNodeCheckType,
2092
2206
  pOrgId,
2093
2207
  currentOrgName,
2094
2208
  otherOrgName,
@@ -2123,6 +2237,7 @@ export default {
2123
2237
  this.endFlowInfo.pOrgId = pOrgId;
2124
2238
  this.canPresetRead = canPresetRead;
2125
2239
  this.isCdjxjTaskHandle = isCdjxjTaskHandle;
2240
+ nextNodeCheckType && (this.nextNodeCheckType = nextNodeCheckType);
2126
2241
  this.operationList = taskOperations || [];
2127
2242
  this.customPresetHintMessage = customPresetHintMessage;
2128
2243
  if (canPresetRead) {
@@ -2375,7 +2490,8 @@ export default {
2375
2490
  flowTypeCode: this.flowTypeCode,
2376
2491
  // defaultProcessKey: this.defaultProcessKey,
2377
2492
  isOnly: true,
2378
- hideTempSave: true
2493
+ hideTempSave: true,
2494
+ ...this.param
2379
2495
  // onlyFlag: true
2380
2496
  };
2381
2497
  this.loading = util.loading(this.$loading, '加载中...');
@@ -2460,15 +2576,25 @@ export default {
2460
2576
  * @param {String} formName 当前form表单ref值
2461
2577
  * @date 2022年5月25日
2462
2578
  **/
2463
- subProcess(val) {
2464
- this.$refs['nextNode'].validate((valid) => {
2579
+ subProcess(val, type) {
2580
+ return this.$refs['nextNode'].validate((valid) => {
2465
2581
  if (valid) {
2466
2582
  if (this.isSubmitButtonShowAgreeAndDisagree == 1) {
2467
2583
  this.value = this.value.replace(RegExp('不同意。', 'g'), '');
2468
2584
  this.value = this.value.replace(RegExp('同意。', 'g'), '');
2469
2585
  this.value = val + this.value;
2470
2586
  }
2471
- if (!this.validInfo()) return;
2587
+ console.log(112);
2588
+ if (!this.validInfo()) {
2589
+ this.freeValid = false;
2590
+ return;
2591
+ } else {
2592
+ this.freeValid = true;
2593
+ }
2594
+ if (type == 'multiInsMidwayWithSubmitScene') {
2595
+ this.sendData(type);
2596
+ return;
2597
+ }
2472
2598
  if (this.beforeSubmit == undefined) {
2473
2599
  this.subFun(this.sendData);
2474
2600
  } else {
@@ -2527,6 +2653,7 @@ export default {
2527
2653
  return false;
2528
2654
  }
2529
2655
  if (!this.value && this.isOpinionRequired === 1) {
2656
+ console.log(1);
2530
2657
  this.$message.warning('请选择输入审批意见');
2531
2658
  return false;
2532
2659
  }
@@ -2536,7 +2663,7 @@ export default {
2536
2663
  }
2537
2664
  return true;
2538
2665
  },
2539
- sendData() {
2666
+ sendData(freetype) {
2540
2667
  this.$refs['nextNode'].validate(async (valid) => {
2541
2668
  if (valid) {
2542
2669
  if (this.isFlow) return (this.handleVisible = true);
@@ -2579,8 +2706,10 @@ export default {
2579
2706
  ) {
2580
2707
  delete this.nextNode.nextNodeId;
2581
2708
  }
2582
- await this.saveInfo('subMit');
2583
- this.loading = util.loading(this.$loading, '加载中...');
2709
+ if (freetype != 'multiInsMidwayWithSubmitScene') {
2710
+ await this.saveInfo('subMit');
2711
+ this.loading = util.loading(this.$loading, '加载中...');
2712
+ }
2584
2713
 
2585
2714
  let notificationType = '';
2586
2715
  notificationType = this.nextNode.notificationType.join(',');
@@ -2626,6 +2755,10 @@ export default {
2626
2755
  if (this.nextNode.isAddSign != '1') {
2627
2756
  delete params.addSignUserId;
2628
2757
  }
2758
+ if (freetype === 'multiInsMidwayWithSubmitScene') {
2759
+ this.taskParams = params;
2760
+ return;
2761
+ }
2629
2762
  this.loading = util.loading(this.$loading, '提交中...');
2630
2763
  const {
2631
2764
  isEndUserTask,