ui-process-h5 0.1.40 → 1.0.1

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 (58) hide show
  1. package/build/configure/README.md +83 -42
  2. package/build/configure/package.json +3 -2
  3. package/package.json +5 -2
  4. package/src/App.vue +87 -16
  5. package/src/assets/js/auth.js +36 -12
  6. package/src/assets/js/request.js +80 -71
  7. package/src/assets/js/utils.js +2 -1
  8. package/src/assets/status/check.png +0 -0
  9. package/src/assets/status/del.png +0 -0
  10. package/src/main.js +14 -12
  11. package/src/packages/attchUpload/index.js +19 -16
  12. package/src/packages/attchUpload/index.scss +10 -3
  13. package/src/packages/downSelect/index.js +25 -7
  14. package/src/packages/downSelect/index.scss +4 -0
  15. package/src/packages/downSelect/index.vue +6 -3
  16. package/src/packages/popup/index.js +17 -5
  17. package/src/packages/popup/index.scss +0 -1
  18. package/src/packages/popup/index.vue +1 -0
  19. package/src/packages/preview/index.vue +1 -1
  20. package/src/packages/previewImage/index.js +125 -2
  21. package/src/packages/previewImage/index.scss +19 -2
  22. package/src/packages/previewImage/index.vue +25 -4
  23. package/src/packages/process/index.js +299 -55
  24. package/src/packages/process/index.scss +12 -1
  25. package/src/packages/process/index.vue +114 -40
  26. package/src/packages/process/operation/backNode.vue +117 -25
  27. package/src/packages/process/operation/cancel.vue +133 -14
  28. package/src/packages/process/operation/ccTask.vue +46 -34
  29. package/src/packages/process/operation/complete.vue +729 -91
  30. package/src/packages/process/operation/counterSign.vue +130 -25
  31. package/src/packages/process/operation/delegateTask.vue +130 -23
  32. package/src/packages/process/operation/msgList.vue +174 -0
  33. package/src/packages/process/operation/restart.vue +15 -4
  34. package/src/packages/submitPopup/index.js +407 -59
  35. package/src/packages/submitPopup/index.scss +51 -46
  36. package/src/packages/submitPopup/index.vue +21 -5
  37. package/src/packages/tab/index.js +34 -5
  38. package/src/packages/tab/index.scss +2 -1
  39. package/src/packages/tab/index.vue +7 -7
  40. package/src/packages/tip/index.js +8 -2
  41. package/src/packages/tip/index.scss +39 -0
  42. package/src/packages/tip/index.vue +1 -1
  43. package/src/packages/viewAttchList/index.js +16 -14
  44. package/vite.config.ts +101 -72
  45. package/ui-process-h5/README.md +0 -171
  46. package/ui-process-h5/package.json +0 -27
  47. package/ui-process-h5/scripts/postinstall.mjs +0 -14
  48. package/ui-process-h5/scripts/switch-cli.mjs +0 -4
  49. package/ui-process-h5/scripts/utils.mjs +0 -60
  50. package/ui-process-h5/v2/style.css +0 -1
  51. package/ui-process-h5/v2/ui-process-h5.js +0 -13467
  52. package/ui-process-h5/v2/ui-process-h5.umd.cjs +0 -67
  53. package/ui-process-h5/v2.7/style.css +0 -1
  54. package/ui-process-h5/v2.7/ui-process-h5.js +0 -12844
  55. package/ui-process-h5/v2.7/ui-process-h5.umd.cjs +0 -67
  56. package/ui-process-h5/v3/style.css +0 -1
  57. package/ui-process-h5/v3/ui-process-h5.js +0 -10336
  58. package/ui-process-h5/v3/ui-process-h5.umd.cjs +0 -55
@@ -1,5 +1,50 @@
1
1
  <template>
2
2
  <div class="process-popup-content">
3
+ <div class="process-pc-label" v-if="param.isDocument">
4
+ 快捷回复
5
+ </div>
6
+ <div
7
+ class="process-pc-value"
8
+ style="display: flex;"
9
+ v-if="param.isDocument"
10
+ >
11
+ <div class="process-radio" style="width: 100%;">
12
+ <div
13
+ class="process-radio-item"
14
+ :class="
15
+ value == commentMsg ? 'process-radio-item--check' : ''
16
+ "
17
+ v-for="value in msgCheckList"
18
+ @click="() => (commentMsg = value)"
19
+ >
20
+ <span>
21
+ <img
22
+ class="process-radio-item-check"
23
+ v-if="value == commentMsg"
24
+ :src="check"
25
+ />
26
+ </span>
27
+ {{ value }}
28
+ </div>
29
+ <div
30
+ class="process-radio-item"
31
+ @click="handleOpenMsg()"
32
+ v-if="param.isMsg"
33
+ style="color: #1389ff; font-size: 14px; margin-left: auto;"
34
+ >
35
+ 常用意见
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <div v-if="param.isMsg && !param.isDocument">
40
+ <div
41
+ class="process-radio-item"
42
+ @click="handleOpenMsg()"
43
+ style="color: #1389ff; font-size: 14px;"
44
+ >
45
+ 常用意见
46
+ </div>
47
+ </div>
3
48
  <div class="process-pc-label">
4
49
  审批意见
5
50
  <span class="process-pc-label--re">*</span>
@@ -15,6 +60,11 @@
15
60
  maxlength="200"
16
61
  ></textarea>
17
62
  </div>
63
+ <div class="msg-btn" v-if="param.isMsg">
64
+ <span class="msg-btn-click" @click="handleMakeMsg()"
65
+ >设置为常用意见</span
66
+ >
67
+ </div>
18
68
  </div>
19
69
 
20
70
  <template
@@ -33,13 +83,16 @@
33
83
  "
34
84
  >
35
85
  <div class="process-pc-label">
36
- {{ item.userTaskModelDTO.name }}
37
- <br />
38
- 审批人:
86
+ <div>
87
+ {{ item.userTaskModelDTO.name }}
88
+ <br />
89
+ 审批人
90
+ <span class="process-pc-label--re">*</span>
91
+ </div>
39
92
  </div>
40
93
  <div
41
94
  class="process-pc-value"
42
- @click="handleOpenPopup(item.id)"
95
+ @click="handleOpenPopup(item)"
43
96
  >
44
97
  <div class="process-pc-value--people">
45
98
  <div
@@ -49,12 +102,17 @@
49
102
  partNode[item.id].length
50
103
  "
51
104
  >
52
- <span v-for="(v, i) in partNode[item.id]">
53
- {{ i == 0 ? v : `,${v}` }}
105
+ <span>
106
+ {{ partNode[item.id].join(",") }}
54
107
  </span>
55
108
  </div>
56
109
  <div
57
- v-else
110
+ v-else-if="
111
+ item.humanPerformerName !==
112
+ '固定账户' &&
113
+ item.humanPerformerName !==
114
+ '与流程申请人相关'
115
+ "
58
116
  class="process-pc-value--data"
59
117
  style="color: #888;"
60
118
  >
@@ -62,9 +120,26 @@
62
120
  请选择审批人
63
121
  </span>
64
122
  </div>
123
+
124
+ <div
125
+ v-else-if="
126
+ item.routeTxt && item.routeTxt.userNames
127
+ "
128
+ class="process-pc-value--data"
129
+ >
130
+ {{ item.routeTxt.userNames }}
131
+ </div>
65
132
  </div>
66
133
  </div>
67
134
  </template>
135
+ <template v-else-if="item.type != 'endEvent'">
136
+ <div class="process-pc-label">
137
+ {{ item.userTaskModelDTO.name }}
138
+ <span v-if="personMakeList[item.id]"
139
+ >:{{ personMakeList[item.id] }}</span
140
+ >
141
+ </div>
142
+ </template>
68
143
  </template>
69
144
  </template>
70
145
 
@@ -72,44 +147,165 @@
72
147
  <template v-for="item in outGatewayUserTaskModel">
73
148
  <template
74
149
  v-if="
75
- item.type != 'endEvent' &&
76
- isOption(item.humanPerformerName)
150
+ outGatewayUserTaskModel.childNode &&
151
+ outGatewayUserTaskModel.childNode.length
77
152
  "
78
153
  >
154
+ <template
155
+ v-if="
156
+ item.type != 'endEvent' &&
157
+ isOption(
158
+ item?.userTaskModelDTO?.humanPerformer?.name
159
+ )
160
+ "
161
+ >
162
+ <div class="process-pc-label">
163
+ <div>
164
+ {{ item.userTaskModelDTO.name }}
165
+ <br />
166
+ 审批人
167
+ <span class="process-pc-label--re">*</span>
168
+ </div>
169
+ </div>
170
+ <div
171
+ class="process-pc-value"
172
+ @click="handleOpenPopup(item)"
173
+ >
174
+ <div class="process-pc-value--people">
175
+ <div
176
+ class="process-pc-value--data"
177
+ v-if="
178
+ partNode[item.id] &&
179
+ partNode[item.id].length
180
+ "
181
+ >
182
+ <span>
183
+ {{ partNode[item.id].join(",") }}
184
+ </span>
185
+ </div>
186
+ <div
187
+ v-else
188
+ class="process-pc-value--data"
189
+ style="color: #888;"
190
+ >
191
+ <span>
192
+ 请选择审批人
193
+ </span>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ </template>
198
+ <template v-else-if="item.type != 'endEvent'">
199
+ <div class="process-pc-label">
200
+ {{ item.userTaskModelDTO.name }}
201
+ </div>
202
+ </template>
203
+ </template>
204
+
205
+ <template v-else>
79
206
  <div class="process-pc-label">
80
- {{ item.name }}
81
- <br />
82
- 审批人
207
+ 下一节点审批
83
208
  <span class="process-pc-label--re">*</span>
84
209
  </div>
85
- <div
86
- class="process-pc-value"
87
- @click="handleOpenPopup(item.id)"
88
- >
89
- <div class="process-pc-value--people">
210
+ <div class="process-pc-value">
211
+ <div class="process-radio">
90
212
  <div
91
- class="process-pc-value--data"
92
- v-if="
93
- partNode[item.id] &&
94
- partNode[item.id].length
213
+ class="process-radio-item"
214
+ :class="
215
+ value.id == radioCheck
216
+ ? 'process-radio-item--check'
217
+ : ''
95
218
  "
96
- >
97
- <span v-for="(v, i) in partNode[item.id]">
98
- {{ i == 0 ? v : `,${v}` }}
99
- </span>
100
- </div>
101
- <div
102
- v-else
103
- class="process-pc-value--data"
104
- style="color: #888;"
219
+ v-for="value in item.childNode"
220
+ @click="handleNode(value)"
105
221
  >
106
222
  <span>
107
- 请选择审批人
223
+ <img
224
+ class="process-radio-item-check"
225
+ v-if="value.id == radioCheck"
226
+ :src="check"
227
+ />
108
228
  </span>
229
+ {{ value.nodeName }}
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </template>
234
+ </template>
235
+
236
+ <template v-if="radioCheck">
237
+ <template
238
+ v-if="
239
+ radioCheckChild &&
240
+ radioCheckChild.length &&
241
+ radioCheckChild[0].type !== 'EndEventModel'
242
+ "
243
+ >
244
+ <div v-for="item in radioCheckChild">
245
+ <div
246
+ class="process-pc-label"
247
+ @click="handleSaveNode(item.id)"
248
+ >
249
+ <div class="process-checkbox">
250
+ 下一节点审批:<br />
251
+ <div class="process-checkbox-item">
252
+ {{ item.nodeName }}
253
+ <span>
254
+ <img
255
+ v-if="
256
+ radioCheckNameList.includes(
257
+ item.id
258
+ )
259
+ "
260
+ class="process-checkbox-item-check"
261
+ :src="checkS"
262
+ />
263
+ </span>
264
+ </div>
265
+ </div>
266
+ </div>
267
+
268
+ <div
269
+ class="process-pc-value"
270
+ @click="handleOpenPopup(item)"
271
+ >
272
+ <div class="process-pc-value--people">
273
+ <div
274
+ class="process-pc-value--data"
275
+ v-if="
276
+ partNode[item.id] &&
277
+ partNode[item.id].length
278
+ "
279
+ >
280
+ <span>
281
+ {{ partNode[item.id].join(",") }}
282
+ </span>
283
+ </div>
284
+ <div
285
+ v-else
286
+ class="process-pc-value--data"
287
+ style="color: #888;"
288
+ >
289
+ <span>
290
+ 请选择审批人
291
+ </span>
292
+ </div>
109
293
  </div>
110
294
  </div>
111
295
  </div>
112
296
  </template>
297
+ <template v-else>
298
+ <div class="process-pc-label">
299
+ 下一节点审批
300
+ </div>
301
+ <div class="process-pc-value">
302
+ {{
303
+ radioCheckChild[0].type === "EndEventModel"
304
+ ? "结束事件"
305
+ : radioCheckName
306
+ }}
307
+ </div>
308
+ </template>
113
309
  </template>
114
310
  </template>
115
311
  </template>
@@ -127,15 +323,40 @@
127
323
  :isDrawer="true"
128
324
  >
129
325
  <departPerson
326
+ :isTitle="false"
130
327
  :visible.sync="visible"
131
- :request="param.request"
132
- :businessId="param.formData.businessKey"
133
328
  v-bind="entity"
134
329
  @callback="handleCallback"
135
330
  @cancel="handleCancel"
136
331
  >
137
332
  </departPerson>
138
- <!-- 初始测试啊啊啊啊啊啊 -->
333
+ </TopPopup>
334
+
335
+ <TopPopup
336
+ v-bind:visible="visibleListMsg"
337
+ v-on:update:visible="(val) => (visibleListMsg = val)"
338
+ ref="TopPopup"
339
+ titleText="常用意见"
340
+ :isDrawer="true"
341
+ >
342
+ <MsgList
343
+ :visible="visibleListMsg"
344
+ :request="param.request"
345
+ :useInfo="param.userInfo"
346
+ @handleTips="handleTips"
347
+ @handleMsg="handleMsg"
348
+ ></MsgList>
349
+ </TopPopup>
350
+
351
+ <TopPopup
352
+ titleText="操作消息提示"
353
+ :isTips="true"
354
+ :context="`将${commentMsg}设置为常用意见`"
355
+ :cancel="handleTipsCancel"
356
+ :comfig="handleTipsComfig"
357
+ v-bind:visible="visibleMsgComfig"
358
+ v-on:update:visible="(val) => (visibleMsgComfig = val)"
359
+ >
139
360
  </TopPopup>
140
361
 
141
362
  <attchViews
@@ -155,12 +376,18 @@ import TopTips from "../../tip/index.vue";
155
376
  import attchViews from "../../attchUpload/index.vue";
156
377
  import TopPopup from "../../popup/index.vue";
157
378
  import { departPerson } from "checked-pick-app";
379
+ import success from "@/assets/status/success.png";
380
+ import checks from "@/assets/status/check.png";
381
+ import MsgList from "./msgList.vue";
382
+ import "checked-pick-app-style";
158
383
  export default {
159
384
  name: "complete",
160
385
  props: {
161
386
  param: {
162
387
  type: Object,
163
- defalut: () => {},
388
+ defalut: () => {
389
+ visible: false;
390
+ },
164
391
  },
165
392
  },
166
393
  components: {
@@ -168,6 +395,15 @@ export default {
168
395
  attchViews,
169
396
  TopPopup,
170
397
  departPerson,
398
+ MsgList,
399
+ },
400
+ computed: {
401
+ check() {
402
+ return success;
403
+ },
404
+ checkS() {
405
+ return checks;
406
+ },
171
407
  },
172
408
  data() {
173
409
  return {
@@ -198,7 +434,6 @@ export default {
198
434
  source: "0",
199
435
  type: "0",
200
436
  request: this.param.request, //'http://59.53.91.231:2100' 0002
201
- businessId: this.param.businessKey,
202
437
  codeType: [3], // 可选类型 1-主体 2-部门 3-人员
203
438
  multiple: true, // 是否多选
204
439
  },
@@ -216,6 +451,30 @@ export default {
216
451
  partObjId: [],
217
452
  // 选中人员信息
218
453
  partNode: {},
454
+ // 是否可选
455
+ canCheck: true,
456
+ // radio
457
+ radioCheck: "",
458
+ radioCheckChild: [],
459
+ radioCheckName: "",
460
+ radioCheckNameList: [],
461
+ // 选人回显
462
+ partList: [],
463
+
464
+ //
465
+ gateVars: {},
466
+
467
+ // 固定账户id存储:[]
468
+ personMake: [],
469
+ personMakeList: {},
470
+
471
+ // 常用意见列表
472
+ visibleListMsg: false,
473
+ visibleMsgComfig: false,
474
+ msgCheck: "",
475
+ msgCheckList: ["同意", "如拟", "已阅"],
476
+
477
+ actionName: "",
219
478
  };
220
479
  },
221
480
  watch: {
@@ -224,53 +483,331 @@ export default {
224
483
  this.nextNodeData = val.nextNodeData;
225
484
  this.taskNode = val.taskNode;
226
485
  this.outGatewayUserTaskModel = val.outGatewayUserTaskModel;
227
- if (val.nextNodeData.length) {
228
- console.log("handler::::", this.nextNodeData[0]);
229
- if (
230
- this.nextNodeData[0].type == "userTask" ||
231
- this.nextNodeData[0].type == "UserTaskModel"
232
- ) {
233
- this.entity.multiple = false;
234
- this.entity.codeType = [3];
235
- this.entity.source = "1";
236
- } else if (
237
- this.nextNodeData[0].type == "ExclusiveGatewayModel"
238
- ) {
239
- } else if (
240
- this.nextNodeData[0].type == "InclusiveGatewayModel"
241
- ) {
242
- }
243
- } else if (val.outGatewayUserTaskModel.length) {
244
- if (
245
- val.outGatewayUserTaskModel[0].type == "userTask" ||
246
- val.outGatewayUserTaskModel[0].type == "UserTaskModel"
247
- ) {
248
- this.entity.multiple = false;
249
- this.entity.codeType = [3];
250
- this.entity.source = "1";
251
- } else if (
252
- val.outGatewayUserTaskModel[0].type ==
253
- "ExclusiveGatewayModel"
254
- ) {
255
- } else if (
256
- val.outGatewayUserTaskModel[0].type ==
257
- "InclusiveGatewayModel"
258
- ) {
486
+ this.actionName = val.actionName;
487
+
488
+ console.log("param:::", val);
489
+ /* if(this.nextNodeData) */
490
+
491
+ if (
492
+ this.outGatewayUserTaskModel &&
493
+ this.outGatewayUserTaskModel.length
494
+ ) {
495
+ this.outGatewayUserTaskModel.map((v) => {
496
+ if (v.type === "endEvent") return;
497
+ v.userTaskModelDTO = {
498
+ name: v.name,
499
+ humanPerformer: {
500
+ name: v.humanPerformerName,
501
+ },
502
+ };
503
+ v.humanPerformer = {
504
+ name: v.humanPerformerName,
505
+ };
506
+ });
507
+ }
508
+
509
+ ///userTaskModelDTO
510
+ if (this.nextNodeData && this.nextNodeData.length) {
511
+ this.nextNodeData.map((v, i) => {
512
+ if (v.type === "endEvent") return;
513
+
514
+ if (
515
+ v.userTaskModelDTO.participantList &&
516
+ v.userTaskModelDTO.participantList.length
517
+ ) {
518
+ v.userTaskModelDTO.participantList.map((value) => {
519
+ /* */
520
+ if (!this.multiNodeParticipant[v.id]) {
521
+ this.multiNodeParticipant[v.id] = [];
522
+ }
523
+ if (!this.partNode[v.id]) {
524
+ this.partNode[v.id] = [];
525
+ }
526
+
527
+ if (
528
+ !this.multiNodeParticipant[v.id].includes(
529
+ value.id
530
+ )
531
+ ) {
532
+ this.multiNodeParticipant[v.id].push(
533
+ value.id
534
+ );
535
+ }
536
+
537
+ if (!this.partNode[v.id].includes(value.name)) {
538
+ this.partNode[v.id].push(value.name);
539
+ }
540
+ });
541
+ }
542
+
543
+ /* console.log(
544
+ "nextData",
545
+ v.userTaskModelDTO.humanPerformer.name
546
+ ); */
547
+ if (
548
+ v.userTaskModelDTO.humanPerformer.name ==
549
+ "固定账户" ||
550
+ v.userTaskModelDTO.humanPerformer.name ==
551
+ "与流程申请人相关"
552
+ ) {
553
+ this.personMake.push(v.id);
554
+ }
555
+ });
556
+
557
+ if (this.personMake && this.personMake.length) {
558
+ this.param.request
559
+ .post(
560
+ `aws/repository/getParticipantsOfPerformerNames?taskInstId=${this.param.taskInstId}`,
561
+ {
562
+ userTaskDefIds: this.personMake,
563
+ }
564
+ )
565
+ .then((res) => {
566
+ if (res.code == 200) {
567
+ this.personMakeList = res.data;
568
+ }
569
+ });
259
570
  }
571
+ } else if (
572
+ this.outGatewayUserTaskModel &&
573
+ this.outGatewayUserTaskModel.length
574
+ ) {
575
+ this.outGatewayUserTaskModel.map((v, i) => {
576
+ if (v.type === "endEvent") return;
577
+ if (v.participantList && v.participantList.length) {
578
+ v.participantList.map((value) => {
579
+ /* */
580
+ if (!this.multiNodeParticipant[v.id]) {
581
+ this.multiNodeParticipant[v.id] = [];
582
+ }
583
+ if (!this.partNode[v.id]) {
584
+ this.partNode[v.id] = [];
585
+ }
586
+
587
+ if (
588
+ !this.multiNodeParticipant[v.id].includes(
589
+ value.id
590
+ )
591
+ ) {
592
+ this.multiNodeParticipant[v.id].push(
593
+ value.id
594
+ );
595
+ }
596
+
597
+ if (!this.partNode[v.id].includes(value.name)) {
598
+ this.partNode[v.id].push(value.name);
599
+ }
600
+ });
601
+ }
602
+ });
260
603
  }
604
+ console.log("userTaskModelDTO", this.multiNodeParticipant);
605
+ console.log(
606
+ "outGatewayUserTaskModel",
607
+ this.outGatewayUserTaskModel
608
+ );
261
609
  },
262
610
  immediate: true,
263
611
  deep: true,
264
612
  },
265
613
  },
266
614
  created() {
267
- console.log("isVue2", this.param);
615
+ // console.log("isVue2", this.param);
268
616
  this.makeDelegateTaskButtonAnnex();
269
617
  },
270
618
  methods: {
271
- handleOpenPopup(id) {
619
+ // 设置msg
620
+ handleMakeMsg() {
621
+ if (this.commentMsg == "" && !this.commentMsg.length) {
622
+ this.handleTips("请输入审批意见!", false, "success");
623
+ this.visibleMsgComfig = false;
624
+ } else {
625
+ this.visibleMsgComfig = true;
626
+ }
627
+ },
628
+
629
+ handleTipsCancel() {
630
+ this.visibleMsgComfig = false;
631
+ },
632
+ handleTipsComfig() {
633
+ this.handleTips("", true, "loading");
634
+ this.visibleMsgComfig = false;
635
+ this.param.request
636
+ .post("/auth//user/opinion/save", {
637
+ opinionName: this.commentMsg,
638
+ })
639
+ .then((res) => {
640
+ if (res.code === 200) {
641
+ this.handleTips("设置成功!", true, "success");
642
+ } else {
643
+ this.handleTips(res.msg, true, "error");
644
+ }
645
+ })
646
+ .catch((error) => {
647
+ this.handleTips(error.msg, true, "error");
648
+ });
649
+ },
650
+ handleMsg(val) {
651
+ this.commentMsg = val;
652
+ this.visibleListMsg = false;
653
+ },
654
+ handleSaveNode(id) {
655
+ if (this.radioCheckNameList.includes(id)) {
656
+ this.radioCheckNameList.splice(
657
+ this.radioCheckNameList.indexOf(id),
658
+ 1
659
+ );
660
+ } else {
661
+ this.radioCheckNameList.push(id);
662
+ }
663
+
664
+ // console.log("查看::", this.radioCheckNameList);
665
+ },
666
+ handleNode(item) {
667
+ this.radioCheck = item.id;
668
+ this.radioCheckName = item.nodeName;
669
+ this.radioCheckChild =
670
+ item.childNode && item.childNode.length
671
+ ? item.childNode
672
+ : [item];
673
+ console.log("当前选中", item, this.radioCheckChild);
674
+
675
+ if (
676
+ this.outGatewayUserTaskModel &&
677
+ this.outGatewayUserTaskModel.length
678
+ ) {
679
+ if (this.radioCheckChild && this.radioCheckChild.length) {
680
+ this.gateVars[
681
+ this.radioCheckChild[0].incomingConditionItemList[0].itemName
682
+ ] = this.radioCheckChild[0].incomingConditionItemList[0].compareValue;
683
+
684
+ this.gateVars[item.incomingConditionItemList[0].itemName] =
685
+ item.incomingConditionItemList[0].compareValue;
686
+ } else {
687
+ this.gateVars[item.incomingConditionItemList[0].itemName] =
688
+ item.incomingConditionItemList[0].compareValue;
689
+ }
690
+ }
691
+ },
692
+ handleOpenPopup(item) {
272
693
  this.visible = true;
273
- this.partObjId = id;
694
+ this.partObjId = item.id;
695
+
696
+ if (this.nextNodeData && this.nextNodeData.length) {
697
+ item = {
698
+ ...item,
699
+ ...item.userTaskModelDTO,
700
+ };
701
+ }
702
+ console.log("partNode", this.partObjId, item);
703
+ if (item.humanPerformer.name == "固定单位") {
704
+ let subjectName;
705
+ let checkedArray = [];
706
+ item.routeTxt.companyIds.map((v, i) => {
707
+ subjectName = v.name;
708
+ });
709
+
710
+ if (
711
+ this.multiNodeParticipant[item.id] &&
712
+ this.multiNodeParticipant[item.id].length
713
+ ) {
714
+ this.multiNodeParticipant[item.id].map((v, i) => {
715
+ checkedArray.push({
716
+ type: 3,
717
+ uid: v,
718
+ });
719
+ });
720
+ }
721
+
722
+ this.entity = {
723
+ source: "1",
724
+ type: "0",
725
+ request: this.param.request,
726
+ codeType: [3],
727
+ multiple:
728
+ item.type == "InclusiveGatewayModel" ||
729
+ item.loopCardinality > 1,
730
+ maxMultiple: item.loopCardinality
731
+ ? item.loopCardinality
732
+ : item.loopCardinality,
733
+ subjectName: subjectName,
734
+ checkedArray: checkedArray,
735
+ };
736
+ } else if (item.humanPerformer.name == "固定部门") {
737
+ let deptCode;
738
+ let checkedArray = [];
739
+ item.routeTxt.departmentIds.map((v, i) => {
740
+ deptCode = v.rangeId;
741
+ });
742
+
743
+ if (
744
+ this.multiNodeParticipant[item.id] &&
745
+ this.multiNodeParticipant[item.id].length
746
+ ) {
747
+ this.multiNodeParticipant[item.id].map((v, i) => {
748
+ checkedArray.push({
749
+ type: 3,
750
+ uid: v,
751
+ deptId: deptCode,
752
+ });
753
+ });
754
+ }
755
+
756
+ console.log(
757
+ "multiNodeParticipant",
758
+ this.multiNodeParticipant[item.id],
759
+ checkedArray
760
+ );
761
+
762
+ this.entity = {
763
+ source: "1",
764
+ type: "0",
765
+ request: this.param.request,
766
+ codeType: [3],
767
+ multiple:
768
+ item.type == "InclusiveGatewayModel" ||
769
+ item.loopCardinality > 1,
770
+ maxMultiple: item.loopCardinality
771
+ ? item.loopCardinality
772
+ : item.loopCardinality,
773
+ deptCode: deptCode,
774
+ checkedArray: checkedArray,
775
+ };
776
+ } else {
777
+ let checkedArray = [];
778
+
779
+ if (
780
+ this.multiNodeParticipant[item.id] &&
781
+ this.multiNodeParticipant[item.id].length
782
+ ) {
783
+ this.multiNodeParticipant[item.id].map((v, i) => {
784
+ checkedArray.push({
785
+ type: 3,
786
+ uid: v,
787
+ });
788
+ });
789
+ }
790
+
791
+ this.entity = {
792
+ source: "1",
793
+ type: "0",
794
+ request: this.param.request,
795
+ codeType: [3],
796
+ multiple:
797
+ item.type == "InclusiveGatewayModel" ||
798
+ item.loopCardinality > 1,
799
+ maxMultiple: item.loopCardinality
800
+ ? item.loopCardinality
801
+ : item.loopCardinality,
802
+ checkedArray: checkedArray,
803
+ };
804
+
805
+ console.log("任意选人节点参数", this.entity);
806
+ }
807
+ },
808
+
809
+ handleOpenMsg() {
810
+ this.visibleListMsg = true;
274
811
  },
275
812
 
276
813
  async confirm() {
@@ -284,18 +821,42 @@ export default {
284
821
  return;
285
822
  }
286
823
 
287
- /* let multiNodeParticipant = {
288
- [this.nextNodeData[0].id]:this.nextNodeData[0].
289
- } */
824
+ let multiNodeParticipant = {};
825
+ if (this.radioCheckNameList && this.radioCheckNameList.length) {
826
+ let num = 0;
827
+ this.radioCheckNameList.map((v, i) => {
828
+ if (
829
+ !this.multiNodeParticipant[v] ||
830
+ !this.multiNodeParticipant[v].length
831
+ ) {
832
+ num += 1;
833
+ }
834
+ multiNodeParticipant[v] = this.multiNodeParticipant[v];
835
+ });
836
+
837
+ if (num > 0) {
838
+ this.handleTips("请选择审批人!", false, "success");
839
+ return;
840
+ }
841
+ } else {
842
+ if (
843
+ this.multiNodeParticipant[this.partObjId] &&
844
+ !this.multiNodeParticipant[this.partObjId].length
845
+ ) {
846
+ this.handleTips("请选择审批人!", false, "success");
847
+ return;
848
+ }
849
+ multiNodeParticipant = this.multiNodeParticipant;
850
+ }
290
851
 
291
852
  this.handleTips("", true, "loading");
292
853
  await this.param.request
293
854
  .post("/aws/tis/complete", {
294
- actionName: "提交",
855
+ actionName: this.param.actionComplete,
295
856
  commentMsg: this.commentMsg,
296
857
  taskInstId: this.param.taskInstId,
297
- vars: this.param.vars,
298
- multiNodeParticipant: this.multiNodeParticipant,
858
+ vars: this.param.vars || this.gateVars,
859
+ multiNodeParticipant: multiNodeParticipant,
299
860
  })
300
861
  .then((res) => {
301
862
  if (res.code == 200) {
@@ -303,7 +864,6 @@ export default {
303
864
  this.uploadAttch();
304
865
  return;
305
866
  }
306
-
307
867
  this.$emit("handleClosePopup1");
308
868
  this.handleTips("提交成功!", false, "success");
309
869
  this.handleFinal();
@@ -320,31 +880,27 @@ export default {
320
880
  this.limit = str[2];
321
881
  this.requires = JSON.parse(str[1]);
322
882
  this.labels = str[0];
323
- console.log(
324
- "makeDelegateTaskButtonAnnex",
325
- this.otherList,
326
- this.limit,
327
- this.requires,
328
- this.labels
329
- );
330
883
  }
331
884
  },
332
885
 
333
886
  handleCallback(res) {
887
+ this.visible = false;
334
888
  this.multiNodeParticipant[this.partObjId] = [];
335
889
  this.partNode[this.partObjId] = [];
890
+
336
891
  res.map((v, i) => {
337
892
  this.multiNodeParticipant[this.partObjId].push(v.uid);
338
893
  this.partNode[this.partObjId].push(v.name);
339
894
  });
340
- console.log("callback_OK", res, this.multiNodeParticipant);
895
+
896
+ // console.log("callback_OK", res, this.multiNodeParticipant);
341
897
  },
342
898
  handleCancel() {
343
- console.log("cancel_No");
899
+ // console.log("cancel_No");
344
900
  },
345
901
 
346
902
  getValues(data) {
347
- console.log("获取当前附件信息::::", data);
903
+ // console.log("获取当前附件信息::::", data);
348
904
  this.attchLists = data;
349
905
  },
350
906
 
@@ -368,10 +924,11 @@ export default {
368
924
  saveMetaAnnexCmdList: param,
369
925
  }
370
926
  );
371
- console.log("asd", ress);
927
+ // console.log("asd", ress);
372
928
  if (ress.success) {
373
929
  this.$emit("handleClosePopup1");
374
930
  this.handleTips("提交成功!", false, "success");
931
+ this.handleFinal();
375
932
  this.commentMsg = "";
376
933
  } else {
377
934
  this.handleTips("上传失败", true, "error");
@@ -398,7 +955,7 @@ export default {
398
955
 
399
956
  handleFinal() {
400
957
  if (this.param.endFunction) {
401
- this.param.endFunction();
958
+ this.param.endFunction("complete");
402
959
  }
403
960
  },
404
961
  },
@@ -463,6 +1020,11 @@ export default {
463
1020
  margin: 0;
464
1021
  text-decoration: inherit;
465
1022
  height: 100%;
1023
+ font-size: 14px;
1024
+ }
1025
+
1026
+ .process-popup-textarea .textarea-item::placeholder {
1027
+ line-height: 4;
466
1028
  }
467
1029
  .process-pc-label--re {
468
1030
  color: #ee0000;
@@ -470,10 +1032,11 @@ export default {
470
1032
 
471
1033
  .process-pc-value--people {
472
1034
  width: 100%;
473
- height: 43px;
1035
+ min-height: 43px;
474
1036
  padding: 10px 26px 10px 0;
475
1037
  box-sizing: border-box;
476
1038
  position: relative;
1039
+ font-size: 14px;
477
1040
  }
478
1041
 
479
1042
  .process-pc-value--people::after {
@@ -485,4 +1048,79 @@ export default {
485
1048
  bottom: 0;
486
1049
  left: 0;
487
1050
  }
1051
+
1052
+ .process-tag {
1053
+ width: 36px;
1054
+ height: 20px;
1055
+ box-sizing: border-box;
1056
+ border: 1px solid #2979ff;
1057
+ color: #2979ff;
1058
+ font-size: 12px;
1059
+ display: flex;
1060
+ justify-content: center;
1061
+ align-items: center;
1062
+ margin-right: 5px;
1063
+ }
1064
+
1065
+ .process-radio {
1066
+ display: flex;
1067
+ justify-content: flex-start;
1068
+ }
1069
+ .process-radio-item,
1070
+ .process-checkbox-item {
1071
+ display: flex;
1072
+ align-items: center;
1073
+ margin-right: 10px;
1074
+ padding-top: 10px;
1075
+ }
1076
+ .process-radio-item span {
1077
+ display: inline-block;
1078
+ border: 1px solid #d1d1d1;
1079
+ border-radius: 50%;
1080
+ width: 24px;
1081
+ height: 24px;
1082
+ box-sizing: border-box;
1083
+ background-color: #fff;
1084
+ margin-right: 5px;
1085
+ }
1086
+
1087
+ .process-checkbox-item span {
1088
+ display: inline-block;
1089
+ border: 1px solid #d1d1d1;
1090
+ border-radius: 3px;
1091
+ width: 24px;
1092
+ height: 24px;
1093
+ box-sizing: border-box;
1094
+ background-color: #fff;
1095
+ margin-left: 5px;
1096
+ }
1097
+
1098
+ .process-radio-item--check span {
1099
+ background-color: rgb(0, 122, 255);
1100
+ border-color: rgb(0, 122, 255);
1101
+ }
1102
+
1103
+ .process-radio-item-check {
1104
+ width: 80%;
1105
+ height: 80%;
1106
+ transform: translate(12%, 18%);
1107
+ }
1108
+
1109
+ .process-checkbox-item-check {
1110
+ width: 80%;
1111
+ height: 80%;
1112
+ transform: translate(12%, 18%);
1113
+ }
1114
+
1115
+ ::v-deep .departPerson-main {
1116
+ width: 100% !important;
1117
+ height: 100% !important;
1118
+ }
1119
+
1120
+ .msg-btn {
1121
+ font-size: 14px;
1122
+ margin: 8px 0;
1123
+ text-align: right;
1124
+ color: #1890ff;
1125
+ }
488
1126
  </style>