@lambo-design/workflow-approve 1.0.0-beta.39 → 1.0.0-beta.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.
@@ -0,0 +1,907 @@
1
+ <template>
2
+ <div style="min-height: 300px;">
3
+ <div style="min-height:5em;border: 1px dotted #a4a4a4;">
4
+ <Tag v-for="(item,index) in countersignersTagsData" :key="item.id" closable @on-close="closeTags(index,item)"
5
+ size="large">
6
+ {{ item.split(':')[1].split(',')[0] }}
7
+ </Tag>
8
+ </div>
9
+ <div class="cont">
10
+ <div
11
+ class="contLeftTwo">
12
+
13
+ <Tabs :animated="false" @on-click="dataNameClick">
14
+ <TabPane label="选人员">
15
+ <div class="overflowAuto">
16
+ <div v-if="readingRange.length === 0">暂无数据</div>
17
+ <Tree v-else v-for="(item,index) in readingRange" :key="index" :data="item" ref="treeEY" check-strictly
18
+ show-checkbox expand-node
19
+ :load-data="loadReadingRangeData" :checkable="true" @on-check-change="selectReRaYHChange"
20
+ @on-select-change="selectReRaYHChange"></Tree>
21
+ </div>
22
+ </TabPane>
23
+
24
+ </Tabs>
25
+
26
+ </div>
27
+ <div class="contRight">
28
+ <Card dis-hover v-if="treeUserCenterValue.length > 0">
29
+ <div class="overflowAuto">
30
+ <CheckboxGroup v-model="treeUserValue" class="checkbox-container" @on-change="getReadingRangeUser">
31
+ <Checkbox v-for="(item) in treeUserCenterValue" :key="item.userId"
32
+ :label="item.userId+','+item.userName">
33
+ {{ item.userName }} {{ showUserDetail(item) }}
34
+ </Checkbox>
35
+ </CheckboxGroup>
36
+ </div>
37
+ </Card>
38
+ </div>
39
+
40
+ </div>
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import ajax from '@lambo-design/shared/utils/ajax'
46
+ import Title from './title'
47
+ import TreeSelect from '@lambo-design/tree-select'
48
+
49
+ export default {
50
+ props: {
51
+ smartFlowServerContext: {
52
+ type: String,
53
+ default: '/api/smart-flow-server',
54
+ },
55
+ upmsServerContext: {
56
+ type: String,
57
+ default: '/api/upms-server',
58
+ },
59
+ item: {
60
+ type: Object,
61
+ default: function () {
62
+ return {}
63
+ }
64
+ },
65
+ permScope: {
66
+ type: String,
67
+ default: ''
68
+ },
69
+
70
+ },
71
+ components: {
72
+ Title,
73
+ TreeSelect
74
+ },
75
+ data() {
76
+ return {
77
+ id: '',
78
+ ucAdapterType: 'x1',
79
+ treePostNameCenterValue: [],
80
+ selectedKeys: [],
81
+ postKeys: [],
82
+ postAllList: [],
83
+ noticeList: [],
84
+ orgList: [],
85
+ userNum: '0',
86
+ // permScope: "",
87
+ organTreeType: '00',
88
+ organId: '',
89
+ countersignersTagsData: [],
90
+ organTree: {
91
+ orgenMap: {},
92
+ userMap: {},
93
+ roleMap: {},
94
+ postMap: {},
95
+ },
96
+ readingRangePost: [],
97
+ treeUserValueCenter: [],
98
+ treeLength: 0,
99
+ treeValueBM: [],
100
+ treeOrgTypeValue: [],
101
+ dataName: '',
102
+ postList: [],//选中岗位集合(右侧显示)
103
+ processPostList: [],//岗位集合
104
+ noticeRoleNameList: [],//角色选择集合
105
+ roleList: [],//角色集合
106
+ noticeRoleList: [],//选中角色集合(右侧显示)
107
+ treeUserValue: [],//选中的人员(右侧显示)
108
+ selectedData: [],
109
+ treePostValue: [],
110
+ treeUserCenterValue: [],
111
+ treePostCenterValue: [],
112
+ readingRangeBM: [],//权限范围数据组织
113
+ readingRange: [],//权限范围数据人员
114
+ readingRangeOrgType: [],//权限范围数据部门
115
+ placeholder: '自动同意',
116
+ loading: false,
117
+ form: {
118
+ userId: '',
119
+ userName: '',
120
+ organId: '',
121
+ organTitle: '',
122
+ directChild: false,
123
+ isAdmin: ''
124
+ },
125
+ value: '2',
126
+ currentNode: {},
127
+ currentNodeUser: {},
128
+ currentNodePost: {},
129
+ ruleValidate: {
130
+ organization: [
131
+ { required: true, message: '请选择指定相对岗位的组织', trigger: 'blur' }
132
+ ],
133
+ position: [
134
+ { required: true, message: '请选择指定岗位', trigger: 'blur' }
135
+ ],
136
+ },
137
+
138
+ }
139
+ },
140
+ created() {
141
+ this.getSystemConfig()
142
+ let permScope = this.item.orgTreeType === this.defaultOrganTreeType ? this.permScope : 'all'
143
+ this.orgTreeType = this.item.orgTreeType ? this.item.orgTreeType : this.organTreeType
144
+ this.toggleShowHelpBox(this.permScope, this.item.candidates, this.orgTreeType, this.item.id)
145
+ },
146
+ computed: {},
147
+ mounted: function () {
148
+ },
149
+ methods: {
150
+ //把已选择的数据放入到已选列表中展示
151
+ getOrgan(row) {
152
+ let self = this
153
+ self.countersignersTagsData = []
154
+ let organs = row.organs
155
+ let organList = organs.split(',')
156
+ if (organs && organList.length > 0) {
157
+ organList.forEach(item => {
158
+ let organ = {
159
+ code: item.split(':')[0],
160
+ name: item.split(':')[1],
161
+ }
162
+ self.treeValueBM.push(organ)
163
+ self.orgList.push(organ)
164
+ self.countersignersTagsData.push(item + ',1')
165
+ self.userNum = '1'
166
+ })
167
+ }
168
+ },
169
+ getUser(row) {
170
+ let self = this
171
+ self.selectedKeys = []
172
+ self.treeUserValue = []
173
+ let users = row.users
174
+ let userList = users.split(',')
175
+ if (users && userList.length > 0) {
176
+ userList.forEach(item => {
177
+ let userId = item.split(':')[0]
178
+ let userName = item.split(':')[1]
179
+ let user = {
180
+ userId: userId,
181
+ userName: userName,
182
+ }
183
+ let userStr = userId + ',' + userName
184
+ self.selectedData.push(userStr)
185
+ self.treeUserValue.push(userStr)
186
+ self.selectedKeys.push(userStr)
187
+ self.countersignersTagsData.push(item + ',2')
188
+ self.userNum = '1'
189
+ })
190
+ }
191
+ },
192
+ getRole(row) {
193
+ let self = this
194
+ self.noticeRoleList = []
195
+ self.noticeList = []
196
+ self.noticeRoleNameList = []
197
+ let roles = row.roles
198
+ let roleList = roles.split(',')
199
+ if (roles && roleList.length > 0) {
200
+ roleList.forEach(item => {
201
+ let roleId = item.split(':')[0]
202
+ let roleName = item.split(':')[1]
203
+ self.noticeRoleNameList.push(roleName)
204
+ self.countersignersTagsData.push(item + ',3')
205
+ let roles = roleId + ',' + roleName
206
+ self.selectedData.push(roles)
207
+ self.noticeList.push(roles)
208
+ })
209
+ }
210
+ },
211
+ getPost(row) {
212
+ let self = this
213
+ self.treePostValue = []
214
+ self.postKeys = []
215
+ self.treePostNameCenterValue = []
216
+ let positions = row.positions
217
+ let positionList = positions.split(',')
218
+ if (positions && positionList.length > 0) {
219
+ positionList.forEach(item => {
220
+ let positionId = item.split(':')[0]
221
+ let positionName = item.split(':')[1]
222
+ let position = {
223
+ positionId: positionId,
224
+ positionName: positionName,
225
+ }
226
+ let post = positionId + ',' + positionName
227
+ self.treePostValue.push(post)
228
+ self.postKeys.push(post)
229
+ // resp.data.data.code = resp.data.data.orgCode
230
+ // self.treePostNameCenterValue.push(resp.data.data)
231
+ self.treePostNameCenterValue.push(position)
232
+ self.countersignersTagsData.push(item + ',4')
233
+ })
234
+ }
235
+ },
236
+ getOrgType(row) {
237
+ let self = this
238
+ let types = row.types
239
+ let typeList = types.split(",")
240
+ if (types && typeList.length > 0) {
241
+ typeList.forEach(item => {
242
+ let type = {
243
+ bizTypeCode: item.split(':')[0],
244
+ typeName: item.split(':')[1],
245
+ }
246
+ self.treeOrgTypeValue.push(type)
247
+ self.updateLength()
248
+ })
249
+ }
250
+ },
251
+
252
+ getRootOrganTree(organTreeType) {
253
+
254
+ let self = this
255
+ let organTreeList = []
256
+ let organTree = []
257
+ if (self.ucAdapterType == 'x1') {
258
+ let parentId = organTreeType == '00' ? 'rootId' : '0'
259
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes', {
260
+ params: {
261
+ organCode: 'rootId',
262
+ orgTreeType: organTreeType
263
+ }
264
+ }).then(resp => {
265
+ if (resp.data.code === 1) {
266
+ let data = resp.data.data
267
+ if (data.length > 0) {
268
+ data.forEach(item => {
269
+ let obj = {}
270
+ obj.type = item.organType
271
+ obj.id = item.organId
272
+ obj.orders = item.orders
273
+ obj.title = item.organName
274
+ obj.name = item.organName
275
+ obj.com = item.com
276
+ obj.code = item.organCode
277
+ obj.loading = false
278
+ obj.children = []
279
+ obj.hasChild = true
280
+ organTreeList.push(obj)
281
+ })
282
+ }
283
+ organTree.push(organTreeList)
284
+ //去重
285
+ const codesSeen = new Map()
286
+ organTree = organTree.reduce((acc, item, index) => {
287
+ if (!codesSeen.has(item.code)) {
288
+ codesSeen.set(item.code, index)
289
+ acc.push(item)
290
+ }
291
+ return acc
292
+ }, [])
293
+ self.readingRangeBM = JSON.parse(JSON.stringify(organTree))
294
+ self.readingRange = JSON.parse(JSON.stringify(organTree))
295
+ self.readingRangePost = JSON.parse(JSON.stringify(organTree))
296
+ }
297
+ })
298
+ } else {
299
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgRootTree', {
300
+ params: {
301
+ treeTypeId: organTreeType
302
+ }
303
+ }).then(resp => {
304
+ if (resp.data.code === 1) {
305
+ let data = resp.data.data
306
+ if (data.length > 0) {
307
+ data.forEach(item => {
308
+ let obj = {}
309
+ obj.type = item.organType
310
+ obj.id = item.organId
311
+ obj.orders = item.orders
312
+ obj.title = item.organName
313
+ obj.name = item.organName
314
+ obj.com = item.com
315
+ obj.code = item.organCode
316
+ obj.loading = false
317
+ obj.children = []
318
+ obj.hasChild = true
319
+ organTreeList.push(obj)
320
+ })
321
+ }
322
+ organTree.push(organTreeList)
323
+ //去重
324
+ const codesSeen = new Map()
325
+ organTree = organTree.reduce((acc, item, index) => {
326
+ if (!codesSeen.has(item.code)) {
327
+ codesSeen.set(item.code, index)
328
+ acc.push(item)
329
+ }
330
+ return acc
331
+ }, [])
332
+ self.readingRangeBM = JSON.parse(JSON.stringify(organTree))
333
+ self.readingRange = JSON.parse(JSON.stringify(organTree))
334
+ self.readingRangePost = JSON.parse(JSON.stringify(organTree))
335
+ }
336
+ })
337
+ }
338
+ },
339
+
340
+ //获取人员树信息(数据初始化)
341
+ getReadingRange(row, organTreeType) {
342
+ let self = this
343
+ let childsTree = []
344
+ let treeValue = []
345
+ var permScope = row.substring(row.indexOf('U:'))
346
+ permScope = permScope.substring(2, permScope.indexOf(','))
347
+ let permScopeTwo = permScope.split(';')
348
+ for (let i = 0; i < permScopeTwo.length; i++) {
349
+ ajax.get(self.upmsServerContext + '/manage/user/get/' + permScopeTwo[i] + '?treeType=' + organTreeType)
350
+ .then(resp => {
351
+ if (resp.data.code == 1) {
352
+ let organCode = resp.data.data.organCode
353
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getParentOrgInfo?organCode=' + organCode + '&orgTreeType=' + organTreeType)
354
+ .then(resp => {
355
+ if (resp.data.code === 1 || resp.data.code === 200) {
356
+ let orgCode = resp.data.data.organCode
357
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes?organCode=' + orgCode + '&orgTreeType=' + organTreeType).then(function (resp) {
358
+ if (resp.data.code === 1) {
359
+ let data = resp.data.data
360
+ if (data && data.length > 0) {
361
+ data.forEach(item => {
362
+ if (item.organCode == organCode) {
363
+ let obj = {}
364
+ obj.type = item.organType
365
+ obj.id = item.organId
366
+ obj.orders = item.orders
367
+ obj.title = item.organName
368
+ obj.name = item.organName
369
+ obj.com = resp.data.data.organId
370
+ obj.code = item.organCode
371
+ obj.loading = false
372
+ obj.checked = false
373
+ obj.children = []
374
+ obj.hasChild = true
375
+ childsTree.push(obj)
376
+ }
377
+ })
378
+ }
379
+ const map = new Map()
380
+ treeValue = childsTree.filter((item) => {
381
+ return !map.has(item.code) && map.set(item.code, true)
382
+ })
383
+ if (i === permScopeTwo.length - 1) {
384
+ self.readingRange.push(treeValue)
385
+ const codesSeen = new Map()
386
+ self.readingRange = self.readingRange.reduce((acc, item, index) => {
387
+ if (!codesSeen.has(item.code)) {
388
+ codesSeen.set(item.code, index)
389
+ acc.push(item)
390
+ }
391
+ return acc
392
+ }, [])
393
+ }
394
+ }
395
+ })
396
+ } else if (resp.data.data === 11006) {
397
+ //当前组织无父节点
398
+ let params = {
399
+ orgTreeType: organTreeType,
400
+ }
401
+ ajax.post(self.upmsServerContext + '/manage/org/get/' + organCode, params)
402
+ .then(resp => {
403
+ let data = resp.data.data
404
+ let obj = {}
405
+ obj.type = data.organType
406
+ obj.id = data.organId
407
+ obj.orders = data.orders
408
+ obj.title = data.organName
409
+ obj.name = data.organName
410
+ obj.com = data.organId
411
+ obj.code = data.organCode
412
+ obj.loading = false
413
+ obj.checked = false
414
+ obj.children = []
415
+ obj.hasChild = true
416
+ childsTree.push(obj)
417
+
418
+ const map = new Map()
419
+ treeValue = childsTree.filter((item) => {
420
+ return !map.has(item.code) && map.set(item.code, true)
421
+ })
422
+ if (i === permScopeTwo.length - 1) {
423
+ self.readingRange.push(treeValue)
424
+ const codesSeen = new Map()
425
+ self.readingRange = self.readingRange.reduce((acc, item, index) => {
426
+ if (!codesSeen.has(item.code)) {
427
+ codesSeen.set(item.code, index)
428
+ acc.push(item)
429
+ }
430
+ return acc
431
+ }, [])
432
+ }
433
+ })
434
+ }
435
+ })
436
+ }
437
+ })
438
+ }
439
+
440
+ },
441
+
442
+ closeTags(index, info) {
443
+ let type = info.split(',')[1]
444
+ let data = info.split(',')[0]
445
+ this.readingRangeScPerDel(index, data)
446
+ },
447
+
448
+ //权限范围人员单条删除
449
+ readingRangeScPerDel(res, info) {
450
+ const index = this.treeUserValue.findIndex(item => {
451
+ return item.replace(',', ':') === info
452
+ })
453
+ if (index !== -1) {
454
+ this.treeUserValue.splice(index, 1)
455
+ this.selectedKeys.splice(index, 1)
456
+ }
457
+ let orgList = []
458
+ let organList = []
459
+ orgList.push(info)
460
+ info = info.replace(',', ':')
461
+ this.countersignersTagsData.forEach(organ => {
462
+ if (organ.indexOf(info) == -1) {
463
+ organList.push(organ)
464
+ }
465
+ })
466
+ this.countersignersTagsData = organList
467
+ },
468
+
469
+ selectUserChange(node) {
470
+ let self = this
471
+ if (node.length > 0) {
472
+ if (self.currentNodeUser !== node[0]) {
473
+ self.currentNodeUser = node[0]
474
+
475
+ self.form.organId = self.currentNodeUser.id
476
+ self.form.organTitle = self.currentNodeUser.title
477
+
478
+ if (node[0].children.length <= 0) {
479
+ self.getReadingRangeData(node[0], function (data) {
480
+ self.$set(node[0], 'children', data)
481
+ })
482
+ }
483
+ self.$set(node[0], 'expand', true)
484
+ }
485
+ } else {
486
+ self.$set(self.currentNodeUser, 'expand', !self.currentNodeUser.expand)
487
+ self.currentNodeUser.selected = true
488
+ }
489
+ },
490
+ //获取用户信息(懒加载)(展开人员树时触发)
491
+ loadReadingRangeData(node, callback) {
492
+ this.getReadingRangeData(node, function (data) {
493
+ if (data.length > 0) {
494
+ callback(data)
495
+ }
496
+ })
497
+ },
498
+ getReadingRangeData(node, callback) {
499
+ let self = this
500
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes', {
501
+ params: {
502
+ organCode: node.code,
503
+ orgTreeType: self.organTreeType
504
+ }
505
+ }).then(function (resp) {
506
+ const childs = []
507
+ if (resp.data.code === 1) {
508
+ let nodeDatas = resp.data.data
509
+ if (nodeDatas.length > 0) {
510
+ nodeDatas.forEach(item => {
511
+ let obj = {}
512
+ let typeName = ''
513
+ if ('com' === item.organType) {
514
+ typeName = '(公司)'
515
+ } else if ('dept' === item.organType) {
516
+ typeName = '(部门)'
517
+ }
518
+ // obj.disableCheckbox = true
519
+ obj.type = item.organType
520
+ obj.id = item.organCode
521
+ obj.title = item.organName + typeName
522
+ obj.name = item.organName
523
+ obj.com = item.organId
524
+ obj.code = item.organCode
525
+ obj.loading = false
526
+ obj.children = []
527
+ obj.hasChild = true
528
+ childs.push(obj)
529
+ })
530
+ } else {
531
+ self.$set(node, 'hasChild', false)
532
+ self.$delete(node, 'loading')
533
+ }
534
+ if (callback) {
535
+ callback(childs)
536
+ }
537
+ } else {
538
+ self.$set(node, 'hasChild', false)
539
+ self.$delete(node, 'loading')
540
+ if (callback) {
541
+ callback()
542
+ }
543
+ }
544
+ })
545
+ },
546
+
547
+
548
+ //权限范围用户点击事件(点击人员树,触发查询,显示在右侧)
549
+ selectReRaYHChange(data, info) {
550
+ let self = this
551
+ const user = sessionStorage.getItem('userInfo')
552
+ const jsonArray = JSON.parse(user)
553
+ var userPermScope = self.permScope.substring(self.permScope.indexOf('U:'))
554
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(','))
555
+ userPermScope = userPermScope.split(';')
556
+ //self.selectUserChange(data)
557
+ let treeUserCenters = []
558
+
559
+ if (self.permScope == 'all' || self.permScope == 'undefined') {
560
+ let userIdSet = new Set()
561
+ data.forEach(itemCom => {
562
+
563
+ ajax.get(self.upmsServerContext + '/manage/user/getList', {
564
+ params: {
565
+ organId: itemCom.id,
566
+ orgTreeType: self.organTreeType,
567
+ limit: '1000',
568
+ directChild: true,
569
+ }
570
+ }).then(function (resp) {
571
+ if (resp.data.message == '成功') {
572
+ let nodeUser = resp.data.data
573
+ nodeUser.forEach(item => {
574
+ if (!userIdSet.has(item.userId)) {
575
+ userIdSet.add(item.userId)
576
+ treeUserCenters.push({
577
+ userId: item.userId,
578
+ userName: item.userName,
579
+ nameItem: item.superiorOrgName,
580
+ organName: item.organName
581
+ })
582
+ }
583
+ })
584
+ }
585
+
586
+ })
587
+ })
588
+ } else {
589
+ let userIdSet = new Set()
590
+ data.forEach(itemCom => {
591
+
592
+ ajax.get(self.upmsServerContext + '/manage/user/getList', {
593
+ params: {
594
+ organId: itemCom.id,
595
+ orgTreeType: self.organTreeType,
596
+ limit: '1000',
597
+ directChild: true,
598
+ }
599
+ }).then(function (resp) {
600
+ if (resp.data.message == '成功') {
601
+ let nodeUser = resp.data.data
602
+ nodeUser.forEach(item => {
603
+ if (!userIdSet.has(item.userId) && userPermScope.includes(item.userId)) {
604
+ userIdSet.add(item.userId)
605
+ treeUserCenters.push({
606
+ userId: item.userId,
607
+ userName: item.userName,
608
+ nameItem: item.superiorOrgName,
609
+ organName: item.organName
610
+ })
611
+ }
612
+ })
613
+ }
614
+
615
+ })
616
+
617
+ })
618
+ }
619
+
620
+ self.treeUserCenterValue = treeUserCenters
621
+ },
622
+
623
+
624
+ //人员选中
625
+ getReadingRangeUser(row) {
626
+ let self = this
627
+ self.userNum = '2'
628
+ if (row.length > self.selectedKeys.length) {
629
+ self.treeUserValue = row
630
+ self.selectedKeys = row
631
+ row = row.reverse()
632
+ let organName = row[0].replace(',', ':') + ',2'
633
+ self.countersignersTagsData.push(organName)
634
+ } else if (row.length < self.selectedKeys.length) {
635
+ let diff = ''
636
+ let orgList = []
637
+ for (let i = 0; i < self.selectedKeys.length; i++) {
638
+ if (!row.includes(self.selectedKeys[i])) {
639
+ diff = self.selectedKeys[i]
640
+ }
641
+ }
642
+ diff = diff.replace(',', ':')
643
+ self.countersignersTagsData.forEach(organ => {
644
+ if (organ.indexOf(diff) == -1) {
645
+ orgList.push(organ)
646
+ }
647
+ })
648
+ self.countersignersTagsData = orgList
649
+ self.selectedKeys = row
650
+ }
651
+ },
652
+
653
+
654
+ //数据初始化?
655
+ organTreeRedis(row) {
656
+ const user = sessionStorage.getItem('userInfo')
657
+ const jsonArray = JSON.parse(user)
658
+ if (row == 'undefined' || row == 'all') {
659
+
660
+ ajax.get(this.smartFlowServerContext + '/manage/processDesign/getOrgan?orgId=' + (jsonArray.organId)
661
+ ).then(resp => {
662
+ if (resp.data.code === '200') {
663
+ this.organTree = resp.data.data
664
+ }
665
+ })
666
+ } else {
667
+
668
+ let orgPermScope = row.substring(2, row.indexOf(','))
669
+ orgPermScope = orgPermScope.split(';')
670
+
671
+ let userPermScope = row.substring(row.indexOf('U:'))
672
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(','))
673
+ userPermScope = userPermScope.split(';')
674
+
675
+ var rolePermScope = row.substring(row.indexOf('R:'))
676
+ rolePermScope = rolePermScope.substring(2, rolePermScope.indexOf(','))
677
+ rolePermScope = rolePermScope.split(';')
678
+
679
+ let postPermScope = row.substring(row.indexOf('P:'))
680
+ postPermScope = postPermScope.substring(2, postPermScope.indexOf(','))
681
+ postPermScope = postPermScope.split(';')
682
+ ajax.get(this.upmsServerContext + '/manage/user/get/' + (jsonArray.accountUuid || jsonArray.userId))
683
+ .then(resp => {
684
+ this.organId = resp.data.data.organId
685
+ ajax.get(this.smartFlowServerContext + '/manage/processDesign/getOrgan?orgId=' + (jsonArray.organId)
686
+ ).then(resp => {
687
+ if (resp.data.code === '200') {
688
+ for (let key in resp.data.data.userMap) {
689
+ for (let i = 0; i < userPermScope.length; i++) {
690
+ if (key == userPermScope[i]) {
691
+ const dataArr = [[key, resp.data.data.userMap[key]]]
692
+ for (let i = 0; i < dataArr.length; i++) {
693
+ const [key, value] = dataArr[i]
694
+ this.$set(this.organTree.userMap, key, value)
695
+ }
696
+ }
697
+ }
698
+ }
699
+
700
+ }
701
+ })
702
+
703
+ })
704
+ }
705
+
706
+ },
707
+
708
+ clearCache() {
709
+ this.readingRangeBM = []
710
+ this.readingRange = []
711
+ this.roleList = []
712
+ this.readingRangePost = []
713
+ this.treeUserCenterValue = []
714
+ this.treePostCenterValue = []
715
+ this.treeValueBM.forEach(item => {
716
+ item.checked = false
717
+ })
718
+ this.treeValueBM = []
719
+ this.treeUserValue = []
720
+ //角色集合
721
+ this.noticeRoleList = []
722
+ this.noticeRoleNameList = []
723
+ this.selectedKeys = []
724
+ //岗位集合
725
+ this.postList = []
726
+ this.treePostValue = []
727
+ this.processPostList = []
728
+ this.treeLength = 0
729
+ this.countersignersTagsData = []
730
+ this.postKeys = []
731
+ //组织类型
732
+ this.readingRangeOrgType = []
733
+ this.readingRangeOrgType.forEach(item => {
734
+ item.checked = false
735
+ })
736
+ this.treeOrgTypeValue = []
737
+ },
738
+ getSystemConfig() {
739
+ const self = this
740
+ ajax.get(self.smartFlowServerContext + '/anon/systemConfig/getSystemConfig').then(function (resp) {
741
+ const result = resp.data
742
+ if (result && result.code === '200') {
743
+ self.ucAdapterType = result.data.ucAdapterType
744
+ }
745
+ }).catch(err => {
746
+ console.log(err)
747
+ })
748
+ },
749
+ //数据初始化
750
+ toggleShowHelpBox(permScope, inputValue, organTreeType, id) {
751
+ this.clearCache()
752
+ this.id = id
753
+ this.permScope = permScope
754
+ this.organTreeType = organTreeType
755
+ this.organTreeRedis(this.permScope)
756
+ if (inputValue) {
757
+ //加入已选择的数据
758
+ this.getUser(inputValue)
759
+ }
760
+ if (this.permScope == 'all') {
761
+ this.getRootOrganTree(organTreeType)
762
+ this.ucAdapterType === 'sc' ? this.getReadingRangeOrgType(permScope, organTreeType) : ''
763
+ } else {
764
+ this.getReadingRange(this.permScope, this.organTreeType)
765
+ }
766
+ },
767
+ findTitleByValue(arr, value) {
768
+ function traverse(items) {
769
+ for (let item of items) {
770
+ if (item.value === value) {
771
+ return item.title
772
+ }
773
+ if (item.children && item.children.length > 0) {
774
+ let result = traverse(item.children)
775
+ if (result) {
776
+ return result
777
+ }
778
+ }
779
+ }
780
+ return ''
781
+ }
782
+
783
+ return traverse(arr)
784
+ },
785
+ showUserDetail(item) {
786
+ if (item.organName) {
787
+ return `(${item.organName} )`
788
+ }
789
+ }
790
+ },
791
+
792
+ watch: {
793
+ countersignersTagsData: {
794
+ handler(newVal, oldVal) {
795
+ let organ = []
796
+ let names = []
797
+ let organs = []
798
+ this.treeValueBM.forEach(item => {
799
+ organ.push(item.code)
800
+ names.push(item.name)
801
+ organs.push(item.code + ':' + item.name)
802
+ })
803
+ let nameValue = []
804
+ let users = []
805
+ //倒着从treeUserValue遍历,保证顺序和显示的一样
806
+ this.treeUserValue.reduceRight((acc, item) => {
807
+ const parts = item.split(',');
808
+ nameValue.push(parts[0]);
809
+ names.push(parts[1]);
810
+ users.push(parts[0] + ':' + parts[1]);
811
+ return acc;
812
+ }, []);
813
+ let roleList = []
814
+ let roles = []
815
+ this.noticeRoleList.forEach(item => {
816
+ roleList.push(item.split(',')[0])
817
+ names.push(item.split(',')[1])
818
+ roles.push(item.split(',')[0] + ':' + item.split(',')[1])
819
+ })
820
+ let postList = []
821
+ let positions = []
822
+ this.treePostValue.forEach(item => {
823
+ postList.push(item.split(',')[0])
824
+ names.push(item.split(',')[1])
825
+ positions.push(item.split(',')[0] + ':' + item.split(',')[1])
826
+ })
827
+ let orgTypeList = []
828
+ let orgTypes = []
829
+ this.treeOrgTypeValue.forEach(item => {
830
+ orgTypeList.push(item.bizTypeCode)
831
+ names.push(item.typeName)
832
+ orgTypes.push(item.bizTypeCode + ':' + item.typeName)
833
+ })
834
+ let value = 'O:' + organ.join(';') + ',' + 'U:' + nameValue.join(';') + ',' + 'P:' + postList.join(';') + ',' + 'R:' + roleList.join(';') + ',' + 'RP:,T:' + orgTypeList.join(';')
835
+ let nameStr = names.join(',')
836
+ let detail = {
837
+ organs: organs.join(','),
838
+ users: users.join(','),
839
+ roles: roles.join(','),
840
+ positions: positions.join(','),
841
+ types: orgTypes.join(','),
842
+ }
843
+ this.$emit('update-cand-groups', value, nameStr, detail, this.item.id)
844
+ },
845
+ deep: true // 深度监听数组的变化
846
+ }
847
+ }
848
+ }
849
+ </script>
850
+
851
+ <style scoped>
852
+ .relativePositionAddButton {
853
+ float: right;
854
+ margin-top: 20px;
855
+ }
856
+
857
+ .relativePositionRemoveButton {
858
+ float: right;
859
+ margin: 2px;
860
+ }
861
+
862
+ .cont {
863
+ display: flex;
864
+ justify-content: left;
865
+ margin-top: 10px;
866
+ border: 1px solid #cecece;
867
+ padding: 10px;
868
+ }
869
+
870
+ .contLeft {
871
+ flex: 0 0 40%;
872
+ z-index: 1;
873
+ margin-right: 10px
874
+ }
875
+
876
+ .contRight {
877
+ flex: 0 0 50%;
878
+ margin-top: 33.98px;
879
+ min-height: 350px;
880
+ }
881
+
882
+ .checkbox-container {
883
+ display: flex;
884
+ flex-direction: column;
885
+ line-height: 30px;
886
+ }
887
+
888
+ .overflowAuto {
889
+ min-height: 350px;
890
+ overflow-y: auto;
891
+ }
892
+
893
+ .contLeftTwo {
894
+ flex: 0 0 50%;
895
+ z-index: 1;
896
+ margin-right: 10px;
897
+ }
898
+
899
+ .contRightTwo {
900
+ flex: 0 0 49%;
901
+ margin-top: 30px;
902
+ }
903
+
904
+ /deep/ .ivu-checkbox-input {
905
+ width: 136px;
906
+ }
907
+ </style>