ui-process-h5 2.0.7-beta → 2.1.0-beta

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 (91) hide show
  1. package/README.md +11 -204
  2. package/build/configure/README.md +211 -0
  3. package/build/configure/package.json +32 -0
  4. package/debug.js +9 -0
  5. package/index.html +12 -0
  6. package/package.json +56 -25
  7. package/src/App.vue +233 -0
  8. package/src/assets/font-icon/iconfont.scss +57 -0
  9. package/src/assets/font-icon/iconfont.ttf +0 -0
  10. package/src/assets/img/add-file.png +0 -0
  11. package/src/assets/img/arrow-right.png +0 -0
  12. package/src/assets/img/arrow.png +0 -0
  13. package/src/assets/img/check.png +0 -0
  14. package/src/assets/img/del.png +0 -0
  15. package/src/assets/img/doc.png +0 -0
  16. package/src/assets/img/file.png +0 -0
  17. package/src/assets/img/image.png +0 -0
  18. package/src/assets/img/pdf.png +0 -0
  19. package/src/assets/img/process.png +0 -0
  20. package/src/assets/img/xls.png +0 -0
  21. package/src/assets/img/zip.png +0 -0
  22. package/src/assets/js/auth.js +65 -0
  23. package/src/assets/js/errorCode.js +6 -0
  24. package/src/assets/js/message.js +352 -0
  25. package/src/assets/js/request.js +99 -0
  26. package/src/assets/js/toast.js +239 -0
  27. package/src/assets/js/top.js +229 -0
  28. package/src/assets/js/utils.js +83 -0
  29. package/src/assets/js/vuePopper.js +123 -0
  30. package/src/assets/query.png +0 -0
  31. package/src/assets/status/check.png +0 -0
  32. package/src/assets/status/del.png +0 -0
  33. package/src/assets/status/error.png +0 -0
  34. package/src/assets/status/loading.png +0 -0
  35. package/src/assets/status/success.png +0 -0
  36. package/src/main.js +17 -0
  37. package/src/packages/attchUpload/index.js +375 -0
  38. package/src/packages/attchUpload/index.scss +143 -0
  39. package/src/packages/attchUpload/index.vue +173 -0
  40. package/src/packages/downSelect/index.js +119 -0
  41. package/src/packages/downSelect/index.scss +88 -0
  42. package/src/packages/downSelect/index.vue +62 -0
  43. package/src/packages/index.js +6 -0
  44. package/src/packages/popup/index.js +125 -0
  45. package/src/packages/popup/index.scss +178 -0
  46. package/src/packages/popup/index.vue +80 -0
  47. package/src/packages/preview/index.js +40 -0
  48. package/src/packages/preview/index.vue +15 -0
  49. package/src/packages/previewImage/index.js +286 -0
  50. package/src/packages/previewImage/index.scss +76 -0
  51. package/src/packages/previewImage/index.vue +53 -0
  52. package/src/packages/process/index.js +1016 -0
  53. package/src/packages/process/index.scss +188 -0
  54. package/src/packages/process/index.vue +291 -0
  55. package/src/packages/process/operation/backNode.vue +396 -0
  56. package/src/packages/process/operation/cancel.vue +425 -0
  57. package/src/packages/process/operation/ccTask.vue +256 -0
  58. package/src/packages/process/operation/complete.vue +1384 -0
  59. package/src/packages/process/operation/counterSign.vue +498 -0
  60. package/src/packages/process/operation/delegateTask.vue +493 -0
  61. package/src/packages/process/operation/index.js +8 -0
  62. package/src/packages/process/operation/index.scss +212 -0
  63. package/src/packages/process/operation/msgList.vue +174 -0
  64. package/src/packages/process/operation/treeNode.vue +901 -0
  65. package/src/packages/process/operation/treePerson.vue +304 -0
  66. package/src/packages/submitPopup/index.js +708 -0
  67. package/src/packages/submitPopup/index.scss +190 -0
  68. package/src/packages/submitPopup/index.vue +125 -0
  69. package/src/packages/tab/index.js +236 -0
  70. package/src/packages/tab/index.scss +177 -0
  71. package/src/packages/tab/index.vue +155 -0
  72. package/src/packages/tip/index.js +80 -0
  73. package/src/packages/tip/index.scss +121 -0
  74. package/src/packages/tip/index.vue +57 -0
  75. package/src/packages/viewAttchList/index.js +138 -0
  76. package/src/packages/viewAttchList/index.scss +76 -0
  77. package/src/packages/viewAttchList/index.vue +121 -0
  78. package/src/style.css +80 -0
  79. package/vite.config.ts +118 -0
  80. package/v2/style.css +0 -1
  81. package/v2/ui-process-h5.js +0 -9945
  82. package/v2/ui-process-h5.umd.cjs +0 -18
  83. package/v2.7/style.css +0 -1
  84. package/v2.7/ui-process-h5.js +0 -9322
  85. package/v2.7/ui-process-h5.umd.cjs +0 -18
  86. package/v3/style.css +0 -1
  87. package/v3/ui-process-h5.js +0 -6842
  88. package/v3/ui-process-h5.umd.cjs +0 -6
  89. /package/{scripts → build/scripts}/postinstall.mjs +0 -0
  90. /package/{scripts → build/scripts}/switch-cli.mjs +0 -0
  91. /package/{scripts → build/scripts}/utils.mjs +0 -0
@@ -0,0 +1,901 @@
1
+ <template>
2
+ <div class="treenode" v-if="nodeItems && nodeItems.length">
3
+ <!-- 多分支 -->
4
+ <div class="treenode-multi" v-if="!endNode">
5
+ <div class="treenode-node" style="margin-top: 0">
6
+ <template v-for="value in nodeItems">
7
+ <!-- 多选 -->
8
+ <div
9
+ v-if="checkType == 'InclusiveGatewayModel' && nodeItems.length > 1"
10
+ class="treenode-checkbox"
11
+ :class="
12
+ checkBoxArr.includes(value.id) ? 'treenode-checkbox-active' : ''
13
+ "
14
+ @click="handleCheckBoxClick(value)"
15
+ >
16
+ <span>
17
+ <img
18
+ class="treenode-checkbox-active-img"
19
+ v-if="checkBoxArr.includes(value.id)"
20
+ :src="check"
21
+ />
22
+ </span>
23
+ {{ value.nodeName || value.name }}
24
+ </div>
25
+ <!-- 单选 -->
26
+ <div
27
+ v-else-if="
28
+ checkType == 'ExclusiveGatewayModel' && nodeItems.length > 1
29
+ "
30
+ class="treenode-radio"
31
+ :class="radioArr == value.id ? 'treenode-radio-active' : ''"
32
+ @click="handleRadioClick(value)"
33
+ >
34
+ <span />
35
+ {{ value.nodeName || value.name }}
36
+ </div>
37
+ </template>
38
+ </div>
39
+
40
+ <!-- 多选下一级分支 -->
41
+ <template
42
+ v-if="
43
+ checkType == 'InclusiveGatewayModel' &&
44
+ checkBoxItem &&
45
+ checkBoxItem.length
46
+ "
47
+ >
48
+ <div class="treenode-node" v-for="value in checkBoxItem">
49
+ <div v-if="value.childNode && value.childNode.length">
50
+ <TreeNode
51
+ :items="value.childNode"
52
+ :endNode="value.childNode.length == 1"
53
+ :nodeType="nodeType"
54
+ :param="param"
55
+ :checkType="value.type"
56
+ @onMultiNode="onMultiNode"
57
+ @onVars="onVars"
58
+ />
59
+ </div>
60
+ <div v-else class="personselect">
61
+ <div class="personselect-name">
62
+ {{ value.nodeName || value.name }}
63
+ </div>
64
+ <div class="items-person">
65
+ <template
66
+ v-if="
67
+ value.humanPerformerName !== '固定账户' &&
68
+ value.humanPerformerName !== '与流程申请人相关'
69
+ "
70
+ >
71
+ <div
72
+ class="items-person-set"
73
+ @click.stop="handleOpenPopup(value)"
74
+ >
75
+ 设置
76
+ </div>
77
+ </template>
78
+ <div
79
+ class="items-person-name"
80
+ v-if="
81
+ value.humanPerformerName !== '固定账户' &&
82
+ value.humanPerformerName !== '与流程申请人相关'
83
+ "
84
+ >
85
+ {{ partNode[value.id] ? partNode[value.id].join(",") : "" }}
86
+ </div>
87
+ <div
88
+ class="items-person-name"
89
+ v-else-if="value.routeTxt && value.routeTxt.userNames"
90
+ >
91
+ {{ value.routeTxt.userNames }}
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </template>
97
+
98
+ <template
99
+ v-if="
100
+ checkType == 'ExclusiveGatewayModel' && radioItem && radioItem.length
101
+ "
102
+ >
103
+ <div class="treenode-node" v-for="value in radioItem">
104
+ <div v-if="value.childNode && value.childNode.length">
105
+ <TreeNode
106
+ :items="value.childNode"
107
+ :endNode="value.childNode.length == 1"
108
+ :nodeType="nodeType"
109
+ :param="param"
110
+ :checkType="value.type"
111
+ @onMultiNode="onMultiNode"
112
+ @onVars="onVars"
113
+ />
114
+ </div>
115
+ <div v-else class="personselect">
116
+ <div class="personselect-name">
117
+ {{ value.nodeName || value.name }}
118
+ </div>
119
+ <div class="items-person">
120
+ <template
121
+ v-if="
122
+ value.humanPerformerName !== '固定账户' &&
123
+ value.humanPerformerName !== '与流程申请人相关'
124
+ "
125
+ >
126
+ <div
127
+ class="items-person-set"
128
+ @click.stop="handleOpenPopup(value)"
129
+ >
130
+ 设置
131
+ </div>
132
+ </template>
133
+ <div
134
+ class="items-person-name"
135
+ v-if="
136
+ value.humanPerformerName !== '固定账户' &&
137
+ value.humanPerformerName !== '与流程申请人相关'
138
+ "
139
+ >
140
+ {{ partNode[value.id] ? partNode[value.id].join(",") : "" }}
141
+ </div>
142
+ <div
143
+ class="items-person-name"
144
+ v-else-if="value.routeTxt && value.routeTxt.userNames"
145
+ >
146
+ {{ value.routeTxt.userNames }}
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </template>
152
+ </div>
153
+ <!-- 单分支 -->
154
+ <div class="treenode-single" v-if="endNode">
155
+ <div class="treenode-single-items" v-for="value in nodeItems">
156
+ <div class="personselect">
157
+ <div class="personselect-name">
158
+ {{ value.nodeName || value.name }}
159
+ </div>
160
+ <div class="items-person" v-if="value.type !== 'EndEventModel'">
161
+ <template
162
+ v-if="
163
+ value.humanPerformerName !== '固定账户' &&
164
+ value.humanPerformerName !== '与流程申请人相关'
165
+ "
166
+ >
167
+ <div
168
+ class="items-person-set"
169
+ @click.stop="handleOpenPopup(value)"
170
+ >
171
+ 设置
172
+ </div>
173
+ </template>
174
+ <div class="items-person-name" v-if="personMakeList[value.id]">
175
+ {{ personMakeList[value.id] }}
176
+ </div>
177
+
178
+ <div
179
+ class="items-person-name"
180
+ v-else-if="
181
+ value.humanPerformerName !== '固定账户' &&
182
+ value.humanPerformerName !== '与流程申请人相关'
183
+ "
184
+ >
185
+ {{ partNode[value.id] ? partNode[value.id].join(",") : "" }}
186
+ </div>
187
+ <div
188
+ class="items-person-name"
189
+ v-else-if="value.routeTxt && value.routeTxt.userNames"
190
+ >
191
+ {{ value.routeTxt.userNames }}
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ <!-- 选人 -->
198
+ <TopPopup
199
+ v-bind:visible="visible"
200
+ v-on:update:visible="(val) => (visible = val)"
201
+ ref="TopPopup"
202
+ titleText="选人"
203
+ :isDrawer="true"
204
+ >
205
+ <departPerson
206
+ :isTitle="false"
207
+ v-if="visible"
208
+ v-bind="entity"
209
+ @callback="handleCallback"
210
+ >
211
+ </departPerson>
212
+ </TopPopup>
213
+ <!-- Tips -->
214
+ <TopTips
215
+ ref="topTips"
216
+ :text="textTips"
217
+ :statusTips="statusTips"
218
+ :type="typeTips"
219
+ />
220
+ </div>
221
+ </template>
222
+ <script>
223
+ import TopPopup from "../../popup/index.vue";
224
+ import success from "@/assets/status/success.png";
225
+ import { departPerson } from "checked-pick-app";
226
+ import TopTips from "../../tip/index.vue";
227
+ import "checked-pick-app/style.css";
228
+
229
+ export default {
230
+ name: "TreeNode",
231
+ components: {
232
+ TopPopup,
233
+ TopTips,
234
+ departPerson,
235
+ },
236
+ props: {
237
+ // 传入节点数据
238
+ items: {
239
+ type: Array,
240
+ default: () => [],
241
+ },
242
+ // end节点
243
+ endNode: {
244
+ type: Boolean,
245
+ default: false,
246
+ },
247
+ // 当前类型
248
+ nodeType: {
249
+ type: String,
250
+ default: "outing", // | nexting
251
+ },
252
+ // 通用参数
253
+ param: {
254
+ type: Object,
255
+ default: () => {},
256
+ },
257
+ // 单选,多选
258
+ checkType: {
259
+ type: String,
260
+ default: "", // | nexting
261
+ },
262
+ },
263
+ data() {
264
+ return {
265
+ // 传入节点
266
+ nodeItems: [],
267
+ // 弹窗
268
+ visible: false,
269
+ // 多选选中,
270
+ checkBoxArr: [],
271
+ // 多选选中对象
272
+ checkBoxItem: [],
273
+ //单选选中
274
+ radioArr: "",
275
+ // 单选选中对象
276
+ radioItem: [],
277
+ partObjId: "",
278
+ entity: {
279
+ source: "0",
280
+ type: this.param.isCheckType || "0",
281
+ orgType: this.param.isOrgType || [0],
282
+ request: this.param.request, //'http://59.53.91.231:2100' 0002
283
+ codeType: this.param.isCodeType || [3], // 可选类型 1-主体 2-部门 3-人员
284
+ multiple: true, // 是否多选
285
+ },
286
+ // 选中人员数组
287
+ multiNodeParticipant: {},
288
+ partNode: {},
289
+
290
+ /* tips 相关参数 */
291
+ textTips: "",
292
+ statusTips: false,
293
+ typeTips: "success",
294
+
295
+ gateVars: {},
296
+
297
+ /* 子集 */
298
+ onMultiNodeData: {},
299
+ onVarsData: {},
300
+
301
+ // 固定账户id存储:[]
302
+ personMake: [],
303
+ personMakeList: {},
304
+ };
305
+ },
306
+ watch: {
307
+ items: {
308
+ handler(val, vals) {
309
+ if (val && val.length) {
310
+ console.log("=====item", val);
311
+ console.log("=====checkType", this.checkType);
312
+
313
+ this.multiNodeParticipant = {};
314
+ this.partNode = {};
315
+ this.gateVars = {};
316
+
317
+ // this.handleNode(val);
318
+
319
+ this.$emit("onMultiNode", this.multiNodeParticipant);
320
+ this.$emit("onVars", this.gateVars);
321
+
322
+ // console.log("子集树:", val);
323
+
324
+ if (this.nodeType == "outing") {
325
+ this.nodeItems = JSON.parse(JSON.stringify(val));
326
+ } else if (this.nodeType == "nexting") {
327
+ // this.nodeItems = JSON.parse(JSON.stringify(val));
328
+ // this.nodeItems = JSON.parse(JSON.stringify(val));
329
+ val.forEach((v) => {
330
+ if (
331
+ v.userTaskModelDTO.participantList &&
332
+ v.userTaskModelDTO.participantList.length
333
+ ) {
334
+ v.userTaskModelDTO.participantList.map((value) => {
335
+ /* */
336
+ if (!this.multiNodeParticipant[v.id]) {
337
+ this.multiNodeParticipant[v.id] = [];
338
+ }
339
+ if (!this.partNode[v.id]) {
340
+ this.partNode[v.id] = [];
341
+ }
342
+
343
+ if (!this.multiNodeParticipant[v.id].includes(value.id)) {
344
+ this.multiNodeParticipant[v.id].push(value.id);
345
+ }
346
+
347
+ if (!this.partNode[v.id].includes(value.name)) {
348
+ this.partNode[v.id].push(value.name);
349
+ }
350
+ });
351
+ }
352
+ if (
353
+ v.userTaskModelDTO.humanPerformer.name == "固定账户" ||
354
+ v.userTaskModelDTO.humanPerformer.name == "与流程申请人相关"
355
+ ) {
356
+ this.personMake.push(v.id);
357
+ }
358
+
359
+ if (this.personMake && this.personMake.length) {
360
+ this.param.request
361
+ .post(
362
+ `aws/repository/getParticipantsOfPerformerNames?taskInstId=${this.param.taskInstId}`,
363
+ {
364
+ userTaskDefIds: this.personMake,
365
+ }
366
+ )
367
+ .then((res) => {
368
+ if (res.code == 200) {
369
+ this.personMakeList = res.data;
370
+ }
371
+ });
372
+ }
373
+
374
+ this.nodeItems = JSON.parse(JSON.stringify(val));
375
+ });
376
+ }
377
+
378
+ if (this.checkType == "ExclusiveGatewayModel" && val.length == 1) {
379
+ this.handleRadioClick(val[0]);
380
+ }
381
+ }
382
+ },
383
+ immediate: true,
384
+ deep: true,
385
+ },
386
+ },
387
+ computed: {
388
+ check() {
389
+ return success;
390
+ },
391
+ },
392
+ mounted() {},
393
+ methods: {
394
+ // 清空数据
395
+ clear() {
396
+ this.radioArr = "";
397
+ this.radioItem = [];
398
+ this.checkBoxArr = [];
399
+ this.checkBoxItem = [];
400
+ this.multiNodeParticipant = {};
401
+ this.partNode = {};
402
+ this.gateVars = {};
403
+ },
404
+
405
+ // 校验当前类型
406
+ isOption(humanPerformer) {
407
+ return (
408
+ humanPerformer == "任意指定" ||
409
+ humanPerformer == "固定部门" ||
410
+ humanPerformer == "固定单位" ||
411
+ humanPerformer == "与流程申请人所在组织结构的位置相关" ||
412
+ humanPerformer == "固定群组"
413
+ );
414
+ },
415
+ // 选人数据回调
416
+ handleCallback(res) {
417
+ this.visible = false;
418
+ this.multiNodeParticipant[this.partObjId] = [];
419
+ this.partNode[this.partObjId] = [];
420
+ let arr;
421
+
422
+ res.map((v, i) => {
423
+ this.multiNodeParticipant[this.partObjId].push(v.uid);
424
+ this.partNode[this.partObjId].push(v.name);
425
+ });
426
+
427
+ if (this.onMultiNodeData) {
428
+ this.multiNodeParticipant = {
429
+ ...this.multiNodeParticipant,
430
+ ...this.onMultiNodeData,
431
+ };
432
+ }
433
+
434
+ this.$emit("onMultiNode", this.multiNodeParticipant);
435
+ },
436
+ // 单选交互
437
+ handleRadioClick(val) {
438
+ console.log("=====val", val);
439
+ console.log("=====checkType", this.checkType);
440
+ if (val) {
441
+ this.multiNodeParticipant = {};
442
+ this.gateVars = {};
443
+ this.$emit("onMultiNode", this.multiNodeParticipant);
444
+ if (
445
+ val.incomingConditionItemList.length > 0 &&
446
+ val.incomingConditionItemList[0].itemName &&
447
+ val.incomingConditionItemList[0].compareValue
448
+ ) {
449
+ this.gateVars[val.incomingConditionItemList[0].itemName] =
450
+ val.incomingConditionItemList[0].compareValue;
451
+ }
452
+ this.radioArr = val.id;
453
+ this.radioItem = [val];
454
+
455
+ // console.log("选中单选", val);
456
+ this.handleNode(val);
457
+ this.$emit("onVars", this.gateVars);
458
+ }
459
+ },
460
+ // 多选交互
461
+ handleCheckBoxClick(val) {
462
+ if (val) {
463
+ if (this.checkBoxArr.includes(val.id)) {
464
+ console.log('zhhchoval =====',val);
465
+ if (
466
+ val.incomingConditionItemList.length > 0 &&
467
+ val.incomingConditionItemList[0].itemName &&
468
+ val.incomingConditionItemList[0].compareValue
469
+ ) {
470
+ delete this.gateVars[val.incomingConditionItemList[0].itemName]
471
+ }
472
+ delete this.multiNodeParticipant[val.id];
473
+ this.checkBoxItem.splice(this.checkBoxArr.indexOf(val.id), 1);
474
+ this.checkBoxArr.splice(this.checkBoxArr.indexOf(val.id), 1);
475
+ } else {
476
+ if (
477
+ val.incomingConditionItemList.length > 0 &&
478
+ val.incomingConditionItemList[0].itemName &&
479
+ val.incomingConditionItemList[0].compareValue
480
+ ) {
481
+ this.gateVars[val.incomingConditionItemList[0].itemName] =
482
+ val.incomingConditionItemList[0].compareValue;
483
+ }
484
+ this.checkBoxItem.push(val);
485
+ this.checkBoxArr.push(val.id);
486
+ }
487
+ this.handleNode(val);
488
+ this.$emit("onVars", this.gateVars);
489
+ }
490
+ },
491
+
492
+ // 通用交互处理(单一处理存在预设置人员)
493
+ handleNode(val) {
494
+ console.log("val======", val);
495
+ // return;
496
+ let childArr =
497
+ val.childNode && val.childNode.length
498
+ ? val.childNode
499
+ : val && val.length
500
+ ? val
501
+ : [val];
502
+ console.log("childArr======", childArr);
503
+ console.log("checkBoxItem======", this.checkBoxItem);
504
+
505
+ // if (val.incomingConditionItemList.length>0&&
506
+ // val.incomingConditionItemList[0].itemName &&
507
+ // val.incomingConditionItemList[0].compareValue
508
+ // ) {
509
+ // if (this.gateVars[val.incomingConditionItemList[0].itemName]) {
510
+ // delete this.gateVars[val.incomingConditionItemList[0].itemName];
511
+ // } else {
512
+ // this.gateVars[val.incomingConditionItemList[0].itemName] =
513
+ // val.incomingConditionItemList[0].compareValue;
514
+ // }
515
+ // }
516
+ // let checkBoxItem = {};
517
+ // console.log('gateVars======',this.gateVars);
518
+ // this.checkBoxItem.map(item=>{
519
+ // checkBoxItem[item.incomingConditionItemList[0]['itemName']] = item.incomingConditionItemList[0]['compareValue']
520
+ // })
521
+
522
+ if (childArr && childArr.length) {
523
+ childArr.forEach((v, i) => {
524
+ if (v.participantList && v.participantList.length) {
525
+ v.participantList.forEach((value, index) => {
526
+ if (!this.multiNodeParticipant[v.id]) {
527
+ this.multiNodeParticipant[v.id] = [];
528
+ }
529
+ if (!this.partNode[v.id]) {
530
+ this.partNode[v.id] = [];
531
+ }
532
+
533
+ if (!this.multiNodeParticipant[v.id].includes(value.id)) {
534
+ this.multiNodeParticipant[v.id].push(value.id);
535
+ }
536
+
537
+ if (!this.partNode[v.id].includes(value.name)) {
538
+ this.partNode[v.id].push(value.name);
539
+ }
540
+ });
541
+ } else if (v.id && v.humanPerformerName == "固定人员") {
542
+ this.param.request
543
+ .post(
544
+ `/aws/repository/getParticipantsOfPerformerNames?taskInstId=${this.param.taskInstId}`,
545
+ { userTaskDefIds: [v.id] }
546
+ )
547
+ .then((res) => {
548
+ if (res.code == 200) {
549
+ this.partNode[v.id] = {};
550
+ this.partNode[v.id] = res.data[v.id].split(";");
551
+ }
552
+ });
553
+ }
554
+
555
+ // vars判断(兼容处理)
556
+ if (this.nodeType == "outing") {
557
+ // if (
558
+ // v.incomingConditionItemList &&
559
+ // v.incomingConditionItemList.length
560
+ // ) {
561
+ // if (val && val.length) {
562
+ // this.gateVars[val[0].incomingConditionItemList[0].itemName] =
563
+ // val[0].incomingConditionItemList[0].compareValue;
564
+ // } else {
565
+ // this.gateVars[val.incomingConditionItemList[0].itemName] =
566
+ // val.incomingConditionItemList[0].compareValue;
567
+ // }
568
+ // } else if (
569
+ // v.incomingConditionItemList[0].itemName &&
570
+ // v.incomingConditionItemList[0].compareValue
571
+ // ) {
572
+ // // this.gateVars[v.incomingConditionItemList[0].itemName] =
573
+ // // v.incomingConditionItemList[0].compareValue;
574
+ // }
575
+
576
+ if (this.onVarsData) {
577
+ this.gateVars = {
578
+ ...this.gateVars,
579
+ ...this.onVarsData,
580
+ };
581
+ }
582
+ this.$emit("onVars", this.gateVars);
583
+ }
584
+ });
585
+ }
586
+ },
587
+
588
+ // 开启选人弹窗,根据类型开启
589
+ handleOpenPopup(item) {
590
+ this.visible = true;
591
+ this.partObjId = item.id;
592
+
593
+ console.log("item======", item);
594
+ if (this.nodeType == "nexting") {
595
+ item = {
596
+ ...item,
597
+ ...item.userTaskModelDTO,
598
+ };
599
+ } else if (this.nodeType == "outing") {
600
+ item = {
601
+ ...item,
602
+ humanPerformer: {
603
+ name: item.humanPerformerName,
604
+ },
605
+ };
606
+ } else {
607
+ this.handleTips("加载失败,请刷新", true, "error");
608
+ }
609
+ if (
610
+ item.humanPerformer.name == "固定单位" ||
611
+ item.humanPerformerName == "固定单位"
612
+ ) {
613
+ let subjectName;
614
+ let checkedArray = [];
615
+ item.routeTxt.companyIds.map((v, i) => {
616
+ subjectName = v.name;
617
+ });
618
+
619
+ if (
620
+ this.multiNodeParticipant[item.id] &&
621
+ this.multiNodeParticipant[item.id].length
622
+ ) {
623
+ this.multiNodeParticipant[item.id].map((v, i) => {
624
+ checkedArray.push({
625
+ type: 3,
626
+ uid: v,
627
+ });
628
+ });
629
+ }
630
+
631
+ this.entity = {
632
+ source: "1",
633
+ type: this.param.isCheckType || "0",
634
+ orgType: this.param.isOrgType || [0],
635
+ request: this.param.request,
636
+ codeType: this.param.isCodeType || [3],
637
+ multiple: item.loopCardinality != 1,
638
+ maxMultiple: item.loopCardinality > 0 ? item.loopCardinality : 0,
639
+ subjectName: subjectName,
640
+ checkedArray: checkedArray,
641
+ };
642
+ } else if (
643
+ item.humanPerformer.name == "固定部门" ||
644
+ item.humanPerformerName == "固定部门"
645
+ ) {
646
+ let deptCode;
647
+ let deptCodeArray = [];
648
+ let checkedArray = [];
649
+ item.routeTxt.departmentIds.forEach((v, i) => {
650
+ if (item.routeTxt.departmentIds.length > 1) {
651
+ deptCodeArray.push(v.rangeId);
652
+ // deptCode = v.rangeId;
653
+ } else {
654
+ deptCode = v.rangeId;
655
+ }
656
+ });
657
+
658
+ if (
659
+ this.multiNodeParticipant[item.id] &&
660
+ this.multiNodeParticipant[item.id].length
661
+ ) {
662
+ this.multiNodeParticipant[item.id].forEach((v, i) => {
663
+ checkedArray.push({
664
+ type: 3,
665
+ uid: v,
666
+ deptId: deptCode,
667
+ });
668
+ });
669
+ }
670
+ if (item.routeTxt.departmentIds.length > 1) {
671
+ this.entity = {
672
+ source: "1",
673
+ type: this.param.isCheckType || "0",
674
+ orgType: this.param.isOrgType || [0],
675
+ request: this.param.request,
676
+ codeType: this.param.isCodeType || [3],
677
+ multiple: item.loopCardinality != 1,
678
+ maxMultiple: item.loopCardinality > 0 ? item.loopCardinality : 0,
679
+ deptCodeArray: deptCodeArray,
680
+ // deptCode: deptCode,
681
+ checkedArray: checkedArray,
682
+ };
683
+ } else {
684
+ this.entity = {
685
+ source: "1",
686
+ type: this.param.isCheckType || "0",
687
+ orgType: this.param.isOrgType || [0],
688
+ request: this.param.request,
689
+ codeType: this.param.isCodeType || [3],
690
+ multiple: item.loopCardinality != 1,
691
+ maxMultiple: item.loopCardinality > 0 ? item.loopCardinality : 0,
692
+ deptCode: deptCode,
693
+ checkedArray: checkedArray,
694
+ };
695
+ }
696
+ } else {
697
+ let checkedArray = [];
698
+
699
+ if (
700
+ this.multiNodeParticipant[item.id] &&
701
+ this.multiNodeParticipant[item.id].length
702
+ ) {
703
+ this.multiNodeParticipant[item.id].map((v, i) => {
704
+ checkedArray.push({
705
+ type: 3,
706
+ uid: v,
707
+ });
708
+ });
709
+ }
710
+
711
+ this.entity = {
712
+ source: "1",
713
+ type: this.param.isCheckType || "0",
714
+ orgType: this.param.isOrgType || [0],
715
+ request: this.param.request,
716
+ codeType: this.param.isCodeType || [3],
717
+ multiple: item.loopCardinality != 1,
718
+ maxMultiple: item.loopCardinality > 0 ? item.loopCardinality : 0,
719
+ checkedArray: checkedArray,
720
+ // deptCodeArray:["d603dfca436aa2c8e13a683389e2ca23","7faf6dcaf4fbc41eebc85d5a41035df5"]
721
+ };
722
+ }
723
+ },
724
+ handleTips(text, status, type) {
725
+ this.textTips = text;
726
+ this.statusTips = status;
727
+ this.typeTips = type;
728
+ this.$refs.topTips.handleOpen();
729
+ },
730
+ // 子集元素存储
731
+ onMultiNode(val) {
732
+ if (val) {
733
+ // console.log("子集展示", val);
734
+ this.onMultiNodeData = val;
735
+ this.multiNode = {
736
+ ...this.multiNode,
737
+ ...this.onMultiNodeData,
738
+ };
739
+
740
+ this.$emit("onMultiNode", this.multiNode);
741
+ }
742
+ },
743
+ onVars(val) {
744
+ if (val) {
745
+ this.onVarsData = val;
746
+
747
+ this.getVars = {
748
+ ...this.gateVars,
749
+ ...this.onVarsData,
750
+ };
751
+
752
+ this.$emit("onVars", this.getVars);
753
+ }
754
+ },
755
+ },
756
+ };
757
+ </script>
758
+ <style lang="scss" scoped>
759
+ .treenode {
760
+ &-multi {
761
+ border-radius: 4px;
762
+ background: #f8f8f8;
763
+ padding: 10px;
764
+ /* &-items {
765
+ margin-top: 20px;
766
+ display: inline-block; */
767
+
768
+ .treenode-checkbox,
769
+ .treenode-radio {
770
+ display: inline-flex;
771
+ margin-right: 10px;
772
+ }
773
+
774
+ .treenode-checkbox:last-child,
775
+ .treenode-radio:last-child {
776
+ margin-left: 0;
777
+ }
778
+ }
779
+
780
+ &-single {
781
+ padding: 10px 0;
782
+ }
783
+
784
+ &-node {
785
+ margin-top: 20px;
786
+ }
787
+
788
+ .personselect {
789
+ /* display: flex;
790
+ align-items: center; */
791
+ &-name {
792
+ font-weight: 400;
793
+ font-size: 14px;
794
+ text-align: left;
795
+ color: #333;
796
+ width: 50%;
797
+ display: inline-block;
798
+ vertical-align: top;
799
+ }
800
+ }
801
+
802
+ .items-person {
803
+ width: 50%;
804
+ display: inline-flex;
805
+ vertical-align: top;
806
+ flex-direction: row-reverse;
807
+ &-name {
808
+ font-weight: 400;
809
+ font-size: 14px;
810
+ color: #333;
811
+ }
812
+
813
+ &-set,
814
+ &-setdisible {
815
+ font-weight: 400;
816
+ font-size: 14px;
817
+ color: #1389ff;
818
+ margin-left: 10px;
819
+ min-width: 30px;
820
+ }
821
+ &-setdisible {
822
+ opacity: 0.5;
823
+ }
824
+ }
825
+ /* } */
826
+
827
+ &-items:first-child {
828
+ margin-top: 0;
829
+ }
830
+
831
+ &-radio,
832
+ &-checkbox {
833
+ display: inline-flex;
834
+ align-items: center;
835
+ font-weight: 400;
836
+ font-size: 14px;
837
+ color: #333;
838
+ padding: 6px 0;
839
+ }
840
+
841
+ &-radio {
842
+ span {
843
+ display: inline-block;
844
+ border: 1px solid #d1d1d1;
845
+ border-radius: 50%;
846
+ width: 16px;
847
+ height: 16px;
848
+ box-sizing: border-box;
849
+ background-color: #fff;
850
+ margin-right: 5px;
851
+ position: relative;
852
+ }
853
+
854
+ &-active {
855
+ span {
856
+ border-color: rgb(0, 122, 255);
857
+ &::after {
858
+ content: "";
859
+ background-color: rgb(0, 122, 255);
860
+ border-color: rgb(0, 122, 255);
861
+ width: 12px;
862
+ height: 12px;
863
+ position: absolute;
864
+ border-radius: 50%;
865
+ left: 1px;
866
+ top: 1px;
867
+ }
868
+ }
869
+ }
870
+ }
871
+ &-checkbox {
872
+ span {
873
+ display: inline-block;
874
+ border: 1px solid #d1d1d1;
875
+ border-radius: 3px;
876
+ width: 16px;
877
+ height: 16px;
878
+ box-sizing: border-box;
879
+ background-color: #fff;
880
+ margin-right: 8px;
881
+ }
882
+
883
+ &-active {
884
+ span {
885
+ border-color: rgb(0, 122, 255);
886
+ background-color: rgb(0, 122, 255);
887
+ }
888
+ &-img {
889
+ width: 80%;
890
+ height: 80%;
891
+ transform: translate(12%, -15%);
892
+ }
893
+ }
894
+ }
895
+ }
896
+
897
+ ::v-deep .departPerson-main {
898
+ width: 100%;
899
+ height: 100%;
900
+ }
901
+ </style>