@lambo-design/workflow-approve 1.0.0-beta.19 → 1.0.0-beta.20

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,1785 @@
1
+ <template>
2
+ <div>
3
+ <Modal v-model="modalBoxShow" :width="1550" title="选择候选人" :closable="false" @on-ok="onOk">
4
+ <div style="margin-top: 10px">
5
+ <Select v-model="organModel" prefix="md-search"
6
+ filterable multiple :max-tag-count="0"
7
+ @on-change="organChange($event)"
8
+ placeholder="输入关键字查询" style="width:60em;">
9
+ <OptionGroup label="组织">
10
+ <Option v-for="(value, key) in organTree.orgenMap" :key="key" :value="`${key}:${value},1`">
11
+ <span>{{ value }}</span>
12
+ </Option>
13
+ </OptionGroup>
14
+ <OptionGroup label="人员">
15
+ <Option v-for="(value, key) in organTree.userMap" :key="key" :value="`${key}:${value},2`">
16
+ <span>{{ value }}</span>
17
+ </Option>
18
+ </OptionGroup>
19
+ <OptionGroup label="角色">
20
+ <Option v-for="(value, key) in organTree.roleMap" :key="key" :value="`${key}:${value},3`">
21
+ <span>{{ value }}</span>
22
+ </Option>
23
+ </OptionGroup>
24
+ <OptionGroup label="岗位">
25
+ <Option v-for="(value, key) in organTree.postMap" :key="key" :value="`${key}:${value},4`">
26
+ <span>{{ value }}</span>
27
+ </Option>
28
+ </OptionGroup>
29
+ </Select>
30
+ <Button type="primary" :loading="loading" @click="organTreeRedisUpdate" style="float: right;">
31
+ <span v-if="!loading">更新查询数据</span>
32
+ <span v-else>更新中...</span>
33
+ </Button>
34
+ </div>
35
+ <div class="cont">
36
+ <div
37
+ :class="[this.dataName == '' || this.dataName == '0' || this.dataName == '2' || this.dataName == '4'? 'contLeftTwo': 'contLeft']">
38
+
39
+ <Tabs :animated="false" @on-click="dataNameClick">
40
+ <TabPane label="选组织">
41
+ <div class="overflowAuto">
42
+ <div v-if="readingRangeBM.length === 0">暂无数据</div>
43
+ <Tree v-else v-for="(item,index) in readingRangeBM" :key="index" :data="item" ref="treeBM"
44
+ check-strictly show-checkbox expand-node
45
+ :load-data="loadDataBm" @on-check-change="selectReRaBMChange"
46
+ @on-select-change="selectOrgChange"></Tree>
47
+ </div>
48
+ </TabPane>
49
+
50
+
51
+ <TabPane label="选人员">
52
+ <div class="overflowAuto">
53
+ <div v-if="readingRange.length === 0">暂无数据</div>
54
+ <Tree v-else v-for="(item,index) in readingRange" :key="index" :data="item" ref="treeEY" check-strictly
55
+ show-checkbox expand-node
56
+ :load-data="loadReadingRangeData" :checkable="true" @on-check-change="selectReRaYHChange"
57
+ @on-select-change="selectReRaYHChange"></Tree>
58
+ </div>
59
+ </TabPane>
60
+
61
+
62
+ <TabPane label="选角色">
63
+ <div class="overflowAuto">
64
+ <CheckboxGroup v-model="noticeRoleList" class="checkbox-container" @on-change="getReadingRangeRole">
65
+ <Checkbox v-for="(item) in roleList" :key="item.roleId" :label="item.roleId+','+item.name">
66
+ {{ item.name }}
67
+ </Checkbox>
68
+ </CheckboxGroup>
69
+ <div v-show="roleList.length == 0">暂无数据</div>
70
+ </div>
71
+ </TabPane>
72
+ <TabPane label="选岗位">
73
+ <div class="overflowAuto">
74
+ <div v-if="readingRangePost.length === 0">暂无数据</div>
75
+ <Tree v-else v-for="(item,index) in readingRangePost" :key="index" :data="item" ref="treePost"
76
+ check-strictly show-checkbox expand-node
77
+ :load-data="loadReadingRangeDataPost" :checkable="true" @on-check-change="selectReRaYHChangePost"
78
+ @on-select-change="selectPostChange"></Tree>
79
+ </div>
80
+ </TabPane>
81
+
82
+ </Tabs>
83
+
84
+ </div>
85
+ <div class="contRight" v-if="this.dataName == '1' || this.dataName == '3'">
86
+ <Card dis-hover>
87
+ <div class="overflowAuto" v-if="dataName === 1">
88
+ <CheckboxGroup v-model="treeUserValue" class="checkbox-container" @on-change="getReadingRangeUser">
89
+ <Checkbox v-for="(item) in treeUserCenterValue" :key="item.userId"
90
+ :label="item.userId+','+item.userName">
91
+ {{ item.userName }} ( {{ item.nameItem }} , {{ item.organName }} )
92
+ </Checkbox>
93
+ </CheckboxGroup>
94
+ <CheckboxGroup v-model="treeUserValue" class="checkbox-container" @on-change="getReadingRangeUser">
95
+ <Checkbox v-for="(item) in treeUserNameCenterValue" :key="item.userId"
96
+ :label="item.userId+','+item.userName">
97
+ {{ item.userName }}
98
+ </Checkbox>
99
+ </CheckboxGroup>
100
+ </div>
101
+ <div class="overflowAuto" v-else-if="dataName === 3">
102
+ <CheckboxGroup v-model="treePostValue" class="checkbox-container" @on-change="getReadingRangePosts">
103
+ <Checkbox v-for="(item) in treePostCenterValue" :key="item.positionId"
104
+ :label="item.positionId+','+item.positionName">
105
+ {{ item.positionName }} ( {{ item.nameItem }} {{ item.orgName ? ',' + item.orgName : '' }} )
106
+ </Checkbox>
107
+ </CheckboxGroup>
108
+ <CheckboxGroup v-model="treePostValue" class="checkbox-container" @on-change="getReadingRangePosts">
109
+ <Checkbox v-for="(item) in treePostNameCenterValue" :key="item.positionId"
110
+ :label="item.positionId+','+item.positionName">
111
+ {{ item.positionName }}
112
+ </Checkbox>
113
+ </CheckboxGroup>
114
+ </div>
115
+ <div class="overflowAuto" v-else></div>
116
+ </Card>
117
+ </div>
118
+ <div
119
+ :class="[this.dataName == '' || this.dataName == '0' || this.dataName == '2' || this.dataName == '4' ? 'contRightTwo': 'contRight']">
120
+ <Card dis-hover>
121
+ <div class="overflowAuto">
122
+ <Title>已选择:{{ treeLength }}/100 <a type="text" style="float: right;color: #989898"
123
+ @click="readingRangeEmpty">清空已选</a></Title>
124
+ <Collapse v-model="value" style="margin-top: 10px">
125
+ <Panel name="1">
126
+ <span class="fontSize">组织</span>
127
+ <template #content>
128
+ <div v-for="(item,index) in treeValueBM" :key="item.key">
129
+ <div v-if="item.type !='user'" style="margin-bottom: 10px">
130
+ <span>{{ item.name }}</span>
131
+ <Icon type="md-close" style="float: right" @click="readingRangeDepDel(index,item)"/>
132
+ </div>
133
+ </div>
134
+ </template>
135
+ </Panel>
136
+ <Panel name="2">
137
+ <span class="fontSize">人员</span>
138
+ <template #content>
139
+ <div v-for="(item,index) in treeUserValue" :key="index">
140
+ <div style="margin-bottom: 10px">
141
+ <span>{{ item }}</span>
142
+ <Icon type="md-close" style="float: right" @click="readingRangeScPerDel(index,item)"/>
143
+ </div>
144
+ </div>
145
+ </template>
146
+ </Panel>
147
+ <Panel name="3">
148
+ <span class="fontSize">角色</span>
149
+ <template #content>
150
+ <div v-for="item in noticeRoleNameList" :key="item.key">
151
+ <div style="margin-bottom: 10px">
152
+ <span>{{ item }}</span>
153
+ <Icon type="md-close" style="float: right" @click="noticeRoleNameListDel(item)"/>
154
+ </div>
155
+ </div>
156
+ </template>
157
+ </Panel>
158
+ <Panel name="4">
159
+ <span class="fontSize">岗位</span>
160
+ <template #content>
161
+ <div v-for="item in treePostValue" :key="item.key">
162
+ <div style="margin-bottom: 10px">
163
+ <span>{{ item }}</span>
164
+ <Icon type="md-close" style="float: right" @click="processPostDel(item)"/>
165
+ </div>
166
+ </div>
167
+ </template>
168
+ </Panel>
169
+ </Collapse>
170
+ </div>
171
+ </Card>
172
+ </div>
173
+ </div>
174
+ </Modal>
175
+ </div>
176
+ </template>
177
+
178
+ <script>
179
+ import ajax from "@lambo-design/shared/utils/ajax";
180
+ import Title from "./title";
181
+ import TreeSelect from '@lambo-design/tree-select'
182
+
183
+ export default {
184
+ name: "candidateGroupsHelpBox",
185
+ props: {
186
+ smartFlowServerContext: {
187
+ type: String,
188
+ default: '/api/smart-flow-server',
189
+ },
190
+ upmsServerContext: {
191
+ type: String,
192
+ default: '/api/upms-server',
193
+ },
194
+ },
195
+ components: {
196
+ Title,
197
+ TreeSelect
198
+ },
199
+ data() {
200
+ return {
201
+ id: "",
202
+ treePostNameCenterValue: [],
203
+ treeUserNameCenterValue: [],
204
+ selectedKeys: [],
205
+ postKeys: [],
206
+ postAllList: [],
207
+ noticeList: [],
208
+ orgList: [],
209
+ userNum: "0",
210
+ permScope: "",
211
+ organTreeType: '00',
212
+ organId: "",
213
+ organModel: [],
214
+ organTree: {
215
+ orgenMap: {},
216
+ userMap: {},
217
+ roleMap: {},
218
+ postMap: {},
219
+ },
220
+ readingRangePost: [],
221
+ treeUserValueCenter: [],
222
+ treeLength: 0,
223
+ treeValueBM: [],
224
+ dataName: "",
225
+ postList: [],//选中岗位集合(右侧显示)
226
+ processPostList: [],//岗位集合
227
+ noticeRoleNameList: [],//角色选择集合
228
+ roleList: [],//角色集合
229
+ noticeRoleList: [],//选中角色集合(右侧显示)
230
+ treeUserValue: [],//选中的人员(右侧显示)
231
+ treePostValue: [],
232
+ treeUserCenterValue: [],
233
+ treePostCenterValue: [],
234
+ readingRangeBM: [],//权限范围数据部门
235
+ readingRange: [],//权限范围数据人员
236
+ modalBoxShow: false,
237
+ placeholder: "自动同意",
238
+ loading: false,
239
+ form: {
240
+ userId: '',
241
+ userName: '',
242
+ organId: '',
243
+ organTitle: '',
244
+ directChild: false,
245
+ isAdmin: ''
246
+ },
247
+ treeSelectData: [
248
+ {
249
+ title: '公司',
250
+ value: 'com',
251
+ },
252
+ {
253
+ title: '部门',
254
+ value: 'dept',
255
+ },
256
+ ],
257
+ value: ['1', '2', '3', '4'],
258
+ currentNode: {},
259
+ currentNodeUser: {},
260
+ currentNodePost: {},
261
+ ruleValidate: {
262
+ organization: [
263
+ {required: true, message: '请选择指定相对岗位的组织', trigger: 'blur'}
264
+ ],
265
+ position: [
266
+ {required: true, message: '请选择指定岗位', trigger: 'blur'}
267
+ ],
268
+ },
269
+
270
+ };
271
+ },
272
+ created() {
273
+ this.init()
274
+ },
275
+ computed: {
276
+ },
277
+ mounted: function () {
278
+ },
279
+ methods: {
280
+ getOrgan(row) {
281
+ let self = this
282
+ self.organModel = []
283
+ let organs = row.organs
284
+ let organList = organs.split(",")
285
+ if (organs && organList.length > 0) {
286
+ organList.forEach(item => {
287
+ let organ = {
288
+ code: item.split(':')[0],
289
+ name: item.split(':')[1],
290
+ }
291
+ self.treeValueBM.push(organ)
292
+ self.orgList.push(organ)
293
+ self.organModel.push(item + ',1')
294
+ self.userNum = "1"
295
+ self.updateLength()
296
+ })
297
+ }
298
+ },
299
+ getUser(row) {
300
+ let self = this
301
+ self.selectedKeys = []
302
+ self.treeUserValue = []
303
+ self.treeUserNameCenterValue = []
304
+ let users = row.users
305
+ let userList = users.split(",")
306
+ if (users && userList.length > 0) {
307
+ userList.forEach(item => {
308
+ let userId = item.split(':')[0]
309
+ let userName = item.split(':')[1]
310
+ let user = {
311
+ userId: userId,
312
+ userName: userName,
313
+ }
314
+ let userStr = userId + "," + userName
315
+ self.treeUserValue.push(userStr)
316
+ self.treeUserNameCenterValue.push(user)
317
+ self.selectedKeys.push(userStr)
318
+ self.organModel.push(item + ",2")
319
+ self.userNum = "1"
320
+ self.updateLength()
321
+ })
322
+ }
323
+ },
324
+ getRole(row) {
325
+ let self = this
326
+ self.noticeRoleList = []
327
+ self.noticeList = []
328
+ self.noticeRoleNameList = []
329
+ let roles = row.roles
330
+ let roleList = roles.split(",")
331
+ if (roles && roleList.length > 0) {
332
+ roleList.forEach(item => {
333
+ let roleId = item.split(':')[0]
334
+ let roleName = item.split(':')[1]
335
+ self.noticeRoleNameList.push(roleName)
336
+ self.organModel.push(item + ',3')
337
+ let roles = roleId + "," + roleName
338
+ self.noticeRoleList.push(roles)
339
+ self.noticeList.push(roles)
340
+ self.updateLength()
341
+ })
342
+ }
343
+ },
344
+ getPost(row) {
345
+ let self = this
346
+ self.treePostValue = []
347
+ self.postKeys = []
348
+ self.treePostNameCenterValue = []
349
+ let positions = row.positions
350
+ let positionList = positions.split(",")
351
+ if (positions && positionList.length > 0) {
352
+ positionList.forEach(item => {
353
+ let positionId = item.split(':')[0]
354
+ let positionName = item.split(':')[1]
355
+ let position = {
356
+ positionId: positionId,
357
+ positionName: positionName,
358
+ }
359
+ let post = positionId + "," + positionName
360
+ self.treePostValue.push(post)
361
+ self.postKeys.push(post)
362
+ // resp.data.data.code = resp.data.data.orgCode
363
+ // self.treePostNameCenterValue.push(resp.data.data)
364
+ self.treePostNameCenterValue.push(position)
365
+ self.organModel.push(item + ',4')
366
+ self.updateLength()
367
+ })
368
+ }
369
+ },
370
+ getOrganTypeList(organTreeType) {
371
+ const self = this
372
+ if (organTreeType === '00') {
373
+ ajax.get(self.upmsServerContext + '/manage/orgType/qryOrgTypeList?parentType=0').then(function (resp) {
374
+ if (resp.data.code == 1) {
375
+ const result = [];
376
+ resp.data.data.rows.forEach(item => {
377
+ const {typeName, organType} = item;
378
+ let node = {title: typeName, value: organType, loading: false, children: []};
379
+ result.push(node);
380
+ });
381
+ self.treeSelectData = result
382
+ }
383
+ }).catch(err => {
384
+ console.log(err);
385
+ })
386
+ } else {
387
+ ajax.get(self.upmsServerContext + '/manage/bizorgan/getOrgTree?bizOrganTreeType=' + organTreeType).then(function (resp) {
388
+ if (resp.data.code == 1) {
389
+ const result = [];
390
+ resp.data.data.forEach(item => {
391
+ const {bizOrganId, bizOrganName} = item;
392
+ result.push({title: bizOrganName, value: bizOrganId, loading: false, children: []});
393
+ });
394
+ self.treeSelectData = result
395
+ }
396
+ }).catch(err => {
397
+ console.log(err);
398
+ })
399
+ }
400
+
401
+ },
402
+
403
+ getRootOrganTree(organTreeType){
404
+ let self = this
405
+ let organTreeList = []
406
+ let organTree = []
407
+ if (organTreeType == '00'){
408
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes', {
409
+ params: {
410
+ organCode: 'rootId',
411
+ orgTreeType: organTreeType
412
+ }
413
+ }).then(resp => {
414
+ if (resp.data.code === 1) {
415
+ let data = resp.data.data
416
+ if (data.length > 0) {
417
+ data.forEach(item => {
418
+ let obj = {}
419
+ obj.type = item.organType
420
+ obj.id = item.organId
421
+ obj.orders = item.orders
422
+ obj.title = item.organName
423
+ obj.name = item.organName
424
+ obj.com = item.com
425
+ obj.code = item.organCode
426
+ obj.loading = false
427
+ obj.children = []
428
+ obj.hasChild = true
429
+ organTreeList.push(obj)
430
+ })
431
+ }
432
+ organTree.push(organTreeList);
433
+ //去重
434
+ const codesSeen = new Map();
435
+ organTree = organTree.reduce((acc, item, index) => {
436
+ if (!codesSeen.has(item.code)) {
437
+ codesSeen.set(item.code, index);
438
+ acc.push(item);
439
+ }
440
+ return acc;
441
+ }, []);
442
+ self.readingRangeBM = JSON.parse(JSON.stringify(organTree))
443
+ self.readingRange = JSON.parse(JSON.stringify(organTree))
444
+ self.readingRangePost = JSON.parse(JSON.stringify(organTree))
445
+ }
446
+ })
447
+ }
448
+ },
449
+ //获取组织
450
+ getReadingRangeBM(row, info, organTreeType) {
451
+ let self = this
452
+ let childsTree = []
453
+ let permScopeTwo = row.substring(2, row.indexOf(","))
454
+ if (permScopeTwo.length > 0) {
455
+ permScopeTwo = permScopeTwo.split(';')
456
+ for (let i = 0; i < permScopeTwo.length; i++) {
457
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getParentOrgInfo?organCode=' + permScopeTwo[i] + '&orgTreeType=' + self.organTreeType)
458
+ .then(resp => {
459
+ let orgCode = resp.data.data.organCode
460
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes?organCode=' + orgCode + '&orgTreeType=' + organTreeType).then(function (resp) {
461
+ if (resp.data.code === 1) {
462
+ let data = resp.data.data
463
+ if (data && data.length > 0) {
464
+ data.forEach(item => {
465
+ if (item.organCode === permScopeTwo[i]) {
466
+ let obj = {}
467
+ obj.type = item.organType
468
+ obj.id = item.organId
469
+ obj.orders = item.orders
470
+ obj.title = item.organName
471
+ obj.name = item.organName
472
+ obj.com = item.com
473
+ obj.code = item.organCode
474
+ obj.loading = false
475
+ obj.children = []
476
+ obj.hasChild = true
477
+ childsTree.push(obj)
478
+ }
479
+ })
480
+ }
481
+ }
482
+ })
483
+ })
484
+ }
485
+ self.readingRangeBM.push(childsTree)
486
+ const codesSeen = new Map();
487
+ self.readingRangeBM = self.readingRangeBM.reduce((acc, item, index) => {
488
+ if (!codesSeen.has(item.code)) {
489
+ codesSeen.set(item.code, index);
490
+ acc.push(item);
491
+ }
492
+ return acc;
493
+ }, []);
494
+ }
495
+ },
496
+ //获取人员树信息
497
+ getReadingRange(row, organTreeType) {
498
+ let self = this
499
+ let childsTree = []
500
+ let treeValue = []
501
+ var permScope = row.substring(row.indexOf("U:"))
502
+ permScope = permScope.substring(2, permScope.indexOf(","))
503
+ let permScopeTwo = permScope.split(';')
504
+ for (let i = 0; i < permScopeTwo.length; i++) {
505
+ ajax.get(self.upmsServerContext + "/manage/user/get/" + permScopeTwo[i] + '?treeType=' + organTreeType)
506
+ .then(resp => {
507
+ if (resp.data.code == 1) {
508
+ let organCode = resp.data.data.organCode
509
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getParentOrgInfo?organCode=' + organCode + '&orgTreeType=' + organTreeType)
510
+ .then(resp => {
511
+ let orgCode = resp.data.data.organCode
512
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes?organCode=' + orgCode + '&orgTreeType=' + organTreeType).then(function (resp) {
513
+ if (resp.data.code === 1) {
514
+ let data = resp.data.data
515
+ if (data && data.length > 0) {
516
+ data.forEach(item => {
517
+ if (item.organCode == organCode) {
518
+ let obj = {}
519
+ obj.type = item.organType
520
+ obj.id = item.organId
521
+ obj.orders = item.orders
522
+ obj.title = item.organName
523
+ obj.name = item.organName
524
+ obj.com = resp.data.data.organId
525
+ obj.code = item.organCode
526
+ obj.loading = false
527
+ obj.checked = false
528
+ obj.children = []
529
+ obj.hasChild = true
530
+ childsTree.push(obj)
531
+ }
532
+ })
533
+ }
534
+ const map = new Map()
535
+ treeValue = childsTree.filter((item) => {
536
+ return !map.has(item.code) && map.set(item.code, true)
537
+ })
538
+ if (i === permScopeTwo.length - 1) {
539
+ self.readingRange.push(treeValue)
540
+ const codesSeen = new Map();
541
+ self.readingRange = self.readingRange.reduce((acc, item, index) => {
542
+ if (!codesSeen.has(item.code)) {
543
+ codesSeen.set(item.code, index);
544
+ acc.push(item);
545
+ }
546
+ return acc;
547
+ }, []);
548
+ }
549
+ }
550
+ })
551
+ })
552
+ }
553
+ })
554
+ }
555
+
556
+ },
557
+ //获取角色列表
558
+ getReadingRangeAllRole: function (row) {
559
+ let self = this;
560
+ self.roleList = []
561
+ if (row == 'undefined' || row == "all") {
562
+ self.optionRoleArr = [];
563
+ ajax.get(self.smartFlowServerContext + "/manage/processDesign/getrolesbyUserId")
564
+ .then(function (resp) {
565
+ if (resp.data.data.code === 200) {
566
+ resp.data.data.data.forEach(role => {
567
+ self.roleList.push(role);
568
+ const codesSeen = new Map();
569
+ self.roleList = self.roleList.reduce((acc, item, index) => {
570
+ if (!codesSeen.has(item.roleId)) {
571
+ codesSeen.set(item.roleId, index);
572
+ acc.push(item);
573
+ }
574
+ return acc;
575
+ }, []);
576
+ })
577
+
578
+ }
579
+ });
580
+ } else {
581
+ var permScope = row.substring(row.indexOf("R:"))
582
+ permScope = permScope.substring(2, permScope.indexOf(","))
583
+ permScope = permScope.split(';')
584
+ self.optionRoleArr = [];
585
+ ajax.get(self.smartFlowServerContext + "/manage/processDesign/getrolesbyUserId")
586
+ .then(function (resp) {
587
+ if (resp.data.data.code === 200) {
588
+ resp.data.data.data.forEach(role => {
589
+ permScope.forEach(perm => {
590
+ if (role.roleId == perm) {
591
+ self.roleList.push(role);
592
+ const codesSeen = new Map();
593
+ self.roleList = self.roleList.reduce((acc, item, index) => {
594
+ if (!codesSeen.has(item.roleId)) {
595
+ codesSeen.set(item.roleId, index);
596
+ acc.push(item);
597
+ }
598
+ return acc;
599
+ }, []);
600
+ }
601
+ })
602
+
603
+ })
604
+
605
+ }
606
+ });
607
+ }
608
+ },
609
+ //获取岗位
610
+ getReadingRangePost(row, organTreeType) {
611
+ let self = this
612
+ let childsTree = []
613
+ let treeValue = []
614
+ var permScope = row.substring(row.indexOf("P:"))
615
+ permScope = permScope.substring(2, permScope.indexOf(","))
616
+ if (permScope.length > 0) {
617
+ let permScopeTwo = permScope.split(';')
618
+ for (let i = 0; i < permScopeTwo.length; i++) {
619
+ ajax.get(self.smartFlowServerContext + "/manage/position/get?positionId=" + permScopeTwo[i])
620
+ .then(resp => {
621
+ if (resp.data.code == 200) {
622
+ let organCode = resp.data.data.orgCode
623
+ if (organCode) {
624
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getParentOrgInfo?organCode=' + organCode + '&orgTreeType=' + organTreeType)
625
+ .then(resp => {
626
+ let orgCode = resp.data.data.organCode
627
+ ajax.get(self.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes?organCode=' + orgCode + '&orgTreeType=' + organTreeType).then(function (resp) {
628
+ if (resp.data.code === 1) {
629
+ let data = resp.data.data
630
+ if (data.length > 0) {
631
+ data.forEach(item => {
632
+ if (item.organCode == organCode) {
633
+ let obj = {}
634
+ obj.type = item.organType
635
+ obj.id = item.organId
636
+ obj.orders = item.orders
637
+ obj.title = item.organName
638
+ obj.name = item.organName
639
+ obj.com = resp.data.data.organId
640
+ obj.code = item.organCode
641
+ obj.loading = false
642
+ obj.checked = false
643
+ obj.children = []
644
+ obj.hasChild = true
645
+ const isExist = childsTree.find(item => item.code === obj.code)
646
+ if (!isExist) {
647
+ childsTree.push(obj)
648
+ }
649
+ }
650
+ })
651
+ }
652
+ const map = new Map()
653
+ treeValue = childsTree.filter((item) => {
654
+ return !map.has(item.code) && map.set(item.code, true)
655
+ })
656
+ if (i === permScopeTwo.length - 1) {
657
+ self.readingRangePost.push(treeValue)
658
+ const codesSeen = new Map();
659
+ self.readingRangePost = self.readingRangePost.reduce((acc, item, index) => {
660
+ if (!codesSeen.has(item.code)) {
661
+ codesSeen.set(item.code, index);
662
+ acc.push(item);
663
+ }
664
+ return acc;
665
+ }, []);
666
+ }
667
+ }
668
+ })
669
+ })
670
+ } else {
671
+ //适配云庭选择岗位
672
+ if (i === permScopeTwo.length - 1) {
673
+ const data = resp.data.data
674
+ let array = [{code: data.orgCode}]
675
+ self.selectReRaYHChangePost(array, array)
676
+ }
677
+ }
678
+ }
679
+ })
680
+ }
681
+ }
682
+ },
683
+
684
+ loadTreeSelectData(data, callback) {
685
+ const self = this
686
+ const result = [];
687
+ if (this.organTreeType === '00') {
688
+ ajax.get(self.upmsServerContext + '/manage/orgType/qryOrgTypeList?parentType=' + data.value).then(function (resp) {
689
+ if (resp.data.code == 1 && resp.data.data.rows.length > 0) {
690
+ resp.data.data.rows.forEach(item => {
691
+ const {typeName, organType} = item;
692
+ result.push({title: typeName, value: organType, loading: false, children: []})
693
+ })
694
+ data.children = result
695
+ callback(result);
696
+ }
697
+ }).catch(err => {
698
+ console.log(err);
699
+ })
700
+ } else {
701
+ ajax.get(self.upmsServerContext + '/manage/bizorgan/getOrgTree?bizOrganTreeType=' + this.organTreeType + '&parentId=' + data.value).then(function (resp) {
702
+ if (resp.data.code == 1 && resp.data.data.length > 0) {
703
+ resp.data.data.forEach(item => {
704
+ const {bizOrganId, bizOrganName} = item;
705
+ result.push({title: bizOrganName, value: bizOrganId, loading: false, children: []})
706
+ })
707
+ data.children = result
708
+ callback(result);
709
+ }
710
+ }).catch(err => {
711
+ console.log(err);
712
+ })
713
+ }
714
+ self.$delete(data, 'loading')
715
+ },
716
+ init() {
717
+ },
718
+
719
+ //权限范围组织部门单条删除
720
+ readingRangeDepDel(res, info) {
721
+ this.treeValueBM[res].checked = false;
722
+ this.treeValueBM.splice(res, 1)
723
+
724
+ let orgList = []
725
+ let organList = []
726
+
727
+ orgList.push(info)
728
+ this.organModel.forEach(organ => {
729
+ if (organ.indexOf(info.code) == -1) {
730
+ organList.push(organ)
731
+ }
732
+ })
733
+ this.userNum = "1"
734
+ this.organModel = organList
735
+
736
+
737
+ this.updateLength();
738
+ },
739
+ //权限范围人员单条删除
740
+ readingRangeScPerDel(res, info) {
741
+ this.treeUserValue.splice(res, 1)
742
+ this.selectedKeys.splice(res, 1)
743
+ let orgList = []
744
+ let organList = []
745
+ orgList.push(info)
746
+ info = info.replace(",", ":")
747
+ this.organModel.forEach(organ => {
748
+ if (organ.indexOf(info) == -1) {
749
+ organList.push(organ)
750
+ }
751
+ })
752
+ this.organModel = organList
753
+ this.updateLength();
754
+ },
755
+ //角色单条删除
756
+ noticeRoleNameListDel(res) {
757
+ let processList = [];
758
+ for (let i = 0; i < this.noticeRoleList.length; i++) {
759
+ if (this.noticeRoleList[i].split(',')[1] !== res) {
760
+ processList.push(this.noticeRoleList[i])
761
+ }
762
+ }
763
+ this.noticeRoleList = processList
764
+ if (this.noticeRoleNameList.indexOf(res) !== -1) {
765
+ this.noticeRoleNameList.splice(this.noticeRoleNameList.indexOf(res), 1)
766
+ }
767
+ let organList = []
768
+ this.organModel.forEach(organ => {
769
+ if (organ.indexOf(res) == -1) {
770
+ organList.push(organ)
771
+ }
772
+ })
773
+ this.organModel = organList
774
+
775
+ this.updateLength();
776
+ },
777
+ //岗位单条删除
778
+ processPostDel(res) {
779
+ this.treePostValue.splice(res, 1)
780
+ this.postKeys.splice(res, 1)
781
+ let organList = []
782
+ res = res.replace(",", ":")
783
+ this.organModel.forEach(organ => {
784
+ if (organ.indexOf(res) == -1) {
785
+ organList.push(organ)
786
+ }
787
+ })
788
+ this.organModel = organList
789
+ // let processPostList = [];
790
+ // for (let i = 0; i < this.processPostList.length; i++) {
791
+ // if (this.processPostList[i].split(',')[1] !== res) {
792
+ // processPostList.push(this.processPostList[i])
793
+ // }
794
+ // }
795
+ // this.processPostList = processPostList
796
+ // if(this.postList.indexOf(res) !== -1){
797
+ // this.postList.splice(this.postList.indexOf(res), 1)
798
+ // }
799
+ this.updateLength();
800
+ },
801
+
802
+ dataNameClick(data) {
803
+ this.dataName = data
804
+ },
805
+
806
+ selectOrgChange(node) {
807
+ let self = this
808
+ if (node.length > 0) {
809
+ if (self.currentNode !== node[0]) {
810
+ self.currentNode = node[0]
811
+
812
+ self.form.organId = self.currentNode.id
813
+ self.form.organTitle = self.currentNode.title
814
+
815
+
816
+ if (node[0].children.length <= 0) {
817
+ self.getDataBm(node[0], function (data) {
818
+ self.$set(node[0], 'children', data)
819
+ })
820
+ }
821
+ self.$set(node[0], 'expand', true)
822
+ }
823
+ } else {
824
+ self.$set(self.currentNode, 'expand', !self.currentNode.expand)
825
+ self.currentNode.selected = true
826
+ }
827
+ },
828
+ loadDataBm(node, callback) {
829
+ this.getDataBm(node, function (data) {
830
+ if (data && data.length > 0) {
831
+ callback(data)
832
+ }
833
+ })
834
+ },
835
+ getDataBm(node, callback) {
836
+ let self = this
837
+ ajax.get(self.upmsServerContext + "/manage/org/getOrgSubNodes", {
838
+ params: {
839
+ code: node.code,
840
+ orgTreeType: self.organTreeType
841
+ }
842
+ }).then(function (resp) {
843
+ const childs = [];
844
+ if (resp.data.code == 1 || resp.data.code === 200) {
845
+ let nodeDatas = resp.data.data
846
+ if (nodeDatas.length > 0) {
847
+ nodeDatas.forEach(item => {
848
+ let obj = {};
849
+ let typeName = '';
850
+ if ('com' == item.organType) {
851
+ typeName = '(公司)'
852
+ }
853
+ if ('dept' == item.organType) {
854
+ typeName = '(部门)'
855
+ }
856
+ self.treeValueBM.forEach(tree => {
857
+ if (item.organId == tree.organId || item.organId == tree.code || item.organCode == tree.organId || item.organCode == tree.code) {
858
+ obj.checked = true
859
+ }
860
+ })
861
+ obj.type = item.organType;
862
+ obj.id = item.id
863
+ obj.orders = item.orders
864
+ obj.title = item.organName + typeName
865
+ obj.name = item.organName
866
+ obj.com = item.organId
867
+ obj.code = item.organCode
868
+ obj.loading = false
869
+ obj.children = []
870
+ obj.hasChild = true
871
+ childs.push(obj)
872
+ })
873
+ } else {
874
+ self.$set(node, "hasChild", false)
875
+ self.$delete(node, 'loading')
876
+ }
877
+ if (callback) {
878
+ callback(childs)
879
+ }
880
+ } else {
881
+ self.$set(node, 'hasChild', false)
882
+ self.$delete(node, 'loading')
883
+ if (callback) {
884
+ callback()
885
+ }
886
+ }
887
+ })
888
+ },
889
+ //阅读范围组织点击事件
890
+ selectReRaBMChange(row, info) {
891
+ let self = this
892
+ let mergedArray = []
893
+ let uniqueArray = []
894
+ let rows = []
895
+
896
+ mergedArray = [].concat(this.treeValueBM, row);
897
+ uniqueArray = Array.from(new Set(mergedArray));
898
+ uniqueArray = uniqueArray.filter((obj, index, self) =>
899
+ index === self.findIndex((o) => o.code === obj.code)
900
+ );
901
+ if (info.checked == true) {
902
+ row.forEach(ro => {
903
+ let organList = []
904
+ organList = row.filter(obj1 => !this.treeValueBM.some(obj2 => obj2.code === obj1.code));
905
+ organList = [...new Set(organList)];
906
+ organList = organList.reverse();
907
+ let code = organList[0] ? organList[0].code : ''
908
+ let name = organList[0] ? organList[0].name : ''
909
+ this.userNum = "1"
910
+ if (code) {
911
+ this.organModel.push(code + ":" + name + "," + "1");
912
+ this.treeValueBM.push(organList[0])
913
+ this.orgList = this.treeValueBM
914
+ }
915
+ })
916
+ } else {
917
+ let orgList = []
918
+ let organList = []
919
+ orgList.push(info)
920
+ this.organModel.forEach(organ => {
921
+ if (organ.indexOf(info.code) == -1) {
922
+ organList.push(organ)
923
+ }
924
+ })
925
+ this.userNum = "1"
926
+ let list = []
927
+ this.orgList = []
928
+ uniqueArray.forEach(item => {
929
+ if (item.code != info.code) {
930
+ list.push(item)
931
+ this.orgList.push(item)
932
+ }
933
+ })
934
+ this.treeValueBM = list
935
+ this.organModel = organList
936
+ }
937
+ this.updateLength()
938
+ },
939
+ selectUserChange(node) {
940
+ let self = this
941
+ if (node.length > 0) {
942
+ if (self.currentNodeUser !== node[0]) {
943
+ self.currentNodeUser = node[0]
944
+
945
+ self.form.organId = self.currentNodeUser.id
946
+ self.form.organTitle = self.currentNodeUser.title
947
+
948
+
949
+ if (node[0].children.length <= 0) {
950
+ self.getReadingRangeData(node[0], function (data) {
951
+ self.$set(node[0], 'children', data)
952
+ })
953
+ }
954
+ self.$set(node[0], 'expand', true)
955
+ }
956
+ } else {
957
+ self.$set(self.currentNodeUser, 'expand', !self.currentNodeUser.expand)
958
+ self.currentNodeUser.selected = true
959
+ }
960
+ },
961
+ //获取用户信息(懒加载)
962
+ loadReadingRangeData(node, callback) {
963
+ this.getReadingRangeData(node, function (data) {
964
+ if (data.length > 0) {
965
+ callback(data)
966
+ }
967
+ })
968
+ },
969
+ getReadingRangeData(node, callback) {
970
+ let self = this
971
+ ajax.get(self.upmsServerContext + "/manage/ucOrgan/getOrgSubNodes", {
972
+ params: {
973
+ organCode: node.code,
974
+ orgTreeType: self.organTreeType
975
+ }
976
+ }).then(function (resp) {
977
+ const childs = [];
978
+ if (resp.data.code === 1) {
979
+ let nodeDatas = resp.data.data
980
+ if (nodeDatas.length > 0) {
981
+ nodeDatas.forEach(item => {
982
+ let obj = {};
983
+ let typeName = '';
984
+ if ('com' === item.organType) {
985
+ typeName = '(公司)'
986
+ } else if ('dept' === item.organType) {
987
+ typeName = '(部门)'
988
+ }
989
+ // obj.disableCheckbox = true
990
+ obj.type = item.organType;
991
+ obj.id = item.organCode
992
+ obj.title = item.organName + typeName
993
+ obj.name = item.organName
994
+ obj.com = item.organId
995
+ obj.code = item.organCode
996
+ obj.loading = false
997
+ obj.children = []
998
+ obj.hasChild = true
999
+ childs.push(obj)
1000
+ })
1001
+ } else {
1002
+ self.$set(node, "hasChild", false)
1003
+ self.$delete(node, 'loading')
1004
+ }
1005
+ if (callback) {
1006
+ callback(childs)
1007
+ }
1008
+ } else {
1009
+ self.$set(node, "hasChild", false)
1010
+ self.$delete(node, 'loading')
1011
+ if (callback) {
1012
+ callback()
1013
+ }
1014
+ }
1015
+ })
1016
+ },
1017
+
1018
+ selectPostChange(node) {
1019
+ let self = this
1020
+ if (node.length > 0) {
1021
+ if (self.currentNodePost !== node[0]) {
1022
+ self.currentNodePost = node[0]
1023
+
1024
+ self.form.organId = self.currentNodePost.id
1025
+ self.form.organTitle = self.currentNodePost.title
1026
+
1027
+
1028
+ if (node[0].children.length <= 0) {
1029
+ self.getReadingRangeDataPost(node[0], function (data) {
1030
+ self.$set(node[0], 'children', data)
1031
+ })
1032
+ }
1033
+ self.$set(node[0], 'expand', true)
1034
+ }
1035
+ } else {
1036
+ self.$set(self.currentNodePost, 'expand', !self.currentNodePost.expand)
1037
+ self.currentNodePost.selected = true
1038
+ }
1039
+ },
1040
+ //获取用户信息(懒加载)
1041
+ loadReadingRangeDataPost(node, callback) {
1042
+ this.getReadingRangeDataPost(node, function (data) {
1043
+ if (data.length > 0) {
1044
+ callback(data)
1045
+ }
1046
+ })
1047
+ },
1048
+ getReadingRangeDataPost(node, callback) {
1049
+ let self = this
1050
+ ajax.get(self.upmsServerContext + "/manage/org/getOrgSubNodes", {
1051
+ params: {
1052
+ code: node.code,
1053
+ orgTreeType: self.organTreeType
1054
+ }
1055
+ }).then(function (resp) {
1056
+ const childs = [];
1057
+ if (resp.data.code === 1 || resp.data.code === 200) {
1058
+ let nodeDatas = resp.data.data
1059
+ if (nodeDatas.length > 0) {
1060
+ nodeDatas.forEach(item => {
1061
+ let obj = {};
1062
+ let typeName = '';
1063
+ if ('com' === item.organType) {
1064
+ typeName = '(公司)'
1065
+ } else if ('dept' === item.organType) {
1066
+ typeName = '(部门)'
1067
+ }
1068
+ // obj.disableCheckbox = true
1069
+ obj.type = item.organType;
1070
+ obj.id = item.id
1071
+ obj.title = item.organName + typeName
1072
+ obj.name = item.organName
1073
+ obj.com = item.organId
1074
+ obj.code = item.organCode
1075
+ obj.loading = false
1076
+ obj.children = []
1077
+ obj.hasChild = true
1078
+ childs.push(obj)
1079
+ })
1080
+ } else {
1081
+ self.$set(node, "hasChild", false)
1082
+ self.$delete(node, 'loading')
1083
+ }
1084
+ if (callback) {
1085
+ callback(childs)
1086
+ }
1087
+ } else {
1088
+ self.$set(node, "hasChild", false)
1089
+ self.$delete(node, 'loading')
1090
+ if (callback) {
1091
+ callback([])
1092
+ }
1093
+ }
1094
+ })
1095
+ },
1096
+
1097
+ //权限范围用户点击事件
1098
+ selectReRaYHChange(data, info) {
1099
+ let self = this
1100
+ const user = sessionStorage.getItem('userInfo');
1101
+ const jsonArray = JSON.parse(user);
1102
+ var userPermScope = self.permScope.substring(self.permScope.indexOf("U:"))
1103
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(","))
1104
+ userPermScope = userPermScope.split(';')
1105
+ //self.selectUserChange(data)
1106
+ let treeUserCenters = [];
1107
+
1108
+ /*if (info.checked == true) {
1109
+ self.$set(info, 'expand', true)
1110
+ } else {
1111
+ self.$set(info, 'expand', false)
1112
+ }*/
1113
+ /*if ((jsonArray.orgCode || jsonArray.organCode) != info.code) {
1114
+ self.getReadingRangeData(info, function (data) {
1115
+ self.$set(info, 'children', data)
1116
+ })
1117
+ }*/
1118
+ if (self.permScope == "all" || self.permScope == "undefined") {
1119
+ let userIdSet = new Set()
1120
+ data.forEach(itemCom => {
1121
+ if ((jsonArray.orgCode || jsonArray.organCode) != itemCom.code) {
1122
+
1123
+ ajax.get(self.upmsServerContext + "/manage/user/getList", {
1124
+ params: {
1125
+ organId: itemCom.id,
1126
+ limit: "0"
1127
+ }
1128
+ }).then(function (resp) {
1129
+ if (resp.data.message == "成功") {
1130
+ let nodeUser = resp.data.data
1131
+ nodeUser.forEach(item => {
1132
+ if (!userIdSet.has(item.userId)) {
1133
+ userIdSet.add(item.userId)
1134
+ treeUserCenters.push({
1135
+ userId: item.userId,
1136
+ userName: item.userName,
1137
+ nameItem: item.superiorOrgName,
1138
+ organName: item.organName
1139
+ })
1140
+ }
1141
+ })
1142
+ }
1143
+
1144
+ })
1145
+ }
1146
+ })
1147
+ } else {
1148
+ let userIdSet = new Set()
1149
+ data.forEach(itemCom => {
1150
+
1151
+ ajax.get(self.upmsServerContext + "/manage/user/getList", {
1152
+ params: {
1153
+ organId: itemCom.id,
1154
+ limit: "0"
1155
+ }
1156
+ }).then(function (resp) {
1157
+ if (resp.data.message == "成功") {
1158
+ let nodeUser = resp.data.data
1159
+ nodeUser.forEach(item => {
1160
+ if (!userIdSet.has(item.userId) && userPermScope.includes(item.userId)) {
1161
+ userIdSet.add(item.userId)
1162
+ treeUserCenters.push({
1163
+ userId: item.userId,
1164
+ userName: item.userName,
1165
+ nameItem: item.superiorOrgName,
1166
+ organName: item.organName
1167
+ })
1168
+ }
1169
+ })
1170
+ }
1171
+
1172
+ })
1173
+
1174
+ })
1175
+ }
1176
+
1177
+ self.treeUserCenterValue = treeUserCenters
1178
+ self.treeUserNameCenterValue = []
1179
+ },
1180
+
1181
+ //权限范围岗位点击事件
1182
+ selectReRaYHChangePost(data, info) {
1183
+ let self = this
1184
+ const user = sessionStorage.getItem('userInfo');
1185
+ const jsonArray = JSON.parse(user);
1186
+ let nodePost = []
1187
+ let treePostCenter = [];
1188
+ /*if (info.checked == true) {
1189
+ self.$set(info, 'expand', true)
1190
+ } else {
1191
+ self.$set(info, 'expand', false)
1192
+ }*/
1193
+ /*if (j(jsonArray.orgCode || jsonArray.organCode) != info.code) {
1194
+ self.getReadingRangeDataPost(info, function (data) {
1195
+ self.$set(info, 'children', data)
1196
+ })
1197
+ }*/
1198
+ if ((jsonArray.orgCode || jsonArray.organCode) != info.code) {
1199
+ self.getReadingRangeDataPost(info, function (data) {
1200
+ self.$set(info, 'children', data)
1201
+ })
1202
+ }
1203
+
1204
+ if (self.permScope == "all" || self.permScope == "undefined") {
1205
+ const positionIdSet = new Set();
1206
+ data.forEach(itemCom => {
1207
+ ajax.get(self.smartFlowServerContext + "/manage/position/qryPositionList?organCode=" + itemCom.code).then(function (resp) {
1208
+ nodePost = resp.data.data
1209
+ nodePost.forEach(item => {
1210
+ if (!positionIdSet.has(item.positionId)) {
1211
+ item.nameItem = item.organName !== '' ? item.organName : item.positionName;
1212
+ treePostCenter.push(item);
1213
+ positionIdSet.add(item.positionId);
1214
+ }
1215
+ });
1216
+ })
1217
+
1218
+ })
1219
+ } else {
1220
+ let postPermScope = self.permScope.substring(self.permScope.indexOf("P:"))
1221
+ postPermScope = postPermScope.substring(2, postPermScope.indexOf(","))
1222
+ postPermScope = postPermScope.split(';')
1223
+ const addedPositionIds = new Set();
1224
+ data.forEach(itemCom => {
1225
+ ajax.get(self.smartFlowServerContext + "/manage/position/qryPositionList?organCode=" + itemCom.code).then(function (resp) {
1226
+ nodePost = resp.data.data;
1227
+ nodePost.forEach(item => {
1228
+ if (postPermScope.includes(item.positionId) && !addedPositionIds.has(item.positionId)) {
1229
+ item.nameItem = item.organName !== '' ? item.organName : item.positionName;
1230
+ treePostCenter.push(item);
1231
+ addedPositionIds.add(item.positionId);
1232
+ }
1233
+ });
1234
+ });
1235
+ });
1236
+ }
1237
+
1238
+ self.treePostCenterValue = treePostCenter
1239
+ self.treePostNameCenterValue = []
1240
+ },
1241
+ getReadingRangeRole(row) {
1242
+ let nameList = [];
1243
+ let self = this
1244
+ self.userNum = "2"
1245
+ if (row.length > self.noticeList.length) {
1246
+ row.forEach(ro => {
1247
+ ro = ro.substring(ro.indexOf(","))
1248
+ })
1249
+ self.noticeRoleNameList = row
1250
+ self.noticeList = row
1251
+ row = row.reverse()
1252
+ let organName = row[0].replace(",", ":") + ",3"
1253
+ self.organModel.push(organName);
1254
+ self.organChange(self.organModel)
1255
+ } else if (row.length < self.noticeList.length) {
1256
+ let diff = ""
1257
+ let orgList = []
1258
+ for (let i = 0; i < self.noticeList.length; i++) {
1259
+ if (!row.includes(self.noticeList[i])) {
1260
+ diff = self.noticeList[i]
1261
+ }
1262
+ }
1263
+ diff = diff.replace(",", ":")
1264
+ self.organModel.forEach(organ => {
1265
+ if (organ.indexOf(diff) == -1) {
1266
+ orgList.push(organ)
1267
+ }
1268
+ })
1269
+ self.organModel = orgList
1270
+ self.noticeList = row
1271
+ }
1272
+ this.updateLength()
1273
+ },
1274
+ getReadingRangeUser(row) {
1275
+ let self = this
1276
+ self.userNum = "2"
1277
+ if (row.length > self.selectedKeys.length) {
1278
+ self.treeUserValue = row
1279
+ self.selectedKeys = row
1280
+ row = row.reverse()
1281
+ let organName = row[0].replace(",", ":") + ",2"
1282
+ self.organModel.push(organName);
1283
+ self.organChange(self.organModel)
1284
+ } else if (row.length < self.selectedKeys.length) {
1285
+ let diff = ""
1286
+ let orgList = []
1287
+ for (let i = 0; i < self.selectedKeys.length; i++) {
1288
+ if (!row.includes(self.selectedKeys[i])) {
1289
+ diff = self.selectedKeys[i]
1290
+ }
1291
+ }
1292
+ diff = diff.replace(",", ":")
1293
+ self.organModel.forEach(organ => {
1294
+ if (organ.indexOf(diff) == -1) {
1295
+ orgList.push(organ)
1296
+ }
1297
+ })
1298
+ self.organModel = orgList
1299
+ self.selectedKeys = row
1300
+ }
1301
+ this.updateLength()
1302
+ },
1303
+ getReadingRangePosts(row) {
1304
+ let self = this
1305
+ self.userNum = "2"
1306
+ if (row.length > self.postKeys.length) {
1307
+ self.treePostValue = row
1308
+ self.postKeys = row
1309
+ row = row.reverse()
1310
+ let organName = row[0].replace(",", ":") + ",4"
1311
+ self.organModel.push(organName);
1312
+ self.organChange(self.organModel)
1313
+ } else if (row.length < self.postKeys.length) {
1314
+ let diff = ""
1315
+ let orgList = []
1316
+ for (let i = 0; i < self.postKeys.length; i++) {
1317
+ if (!row.includes(self.postKeys[i])) {
1318
+ diff = self.postKeys[i]
1319
+ }
1320
+ }
1321
+ diff = diff.replace(",", ":")
1322
+ self.organModel.forEach(organ => {
1323
+ if (organ.indexOf(diff) == -1) {
1324
+ orgList.push(organ)
1325
+ }
1326
+ })
1327
+ self.organModel = orgList
1328
+ self.postKeys = row
1329
+ }
1330
+ this.updateLength()
1331
+ },
1332
+ organTreeRedis(row) {
1333
+ const user = sessionStorage.getItem('userInfo');
1334
+ const jsonArray = JSON.parse(user);
1335
+ if (row == 'undefined' || row == "all") {
1336
+
1337
+ ajax.get(this.smartFlowServerContext + "/manage/processDesign/getOrgan?orgId=" + (jsonArray.organId)
1338
+ ).then(resp => {
1339
+ if (resp.data.code === '200') {
1340
+ this.organTree = resp.data.data;
1341
+ }
1342
+ })
1343
+ } else {
1344
+
1345
+ let orgPermScope = row.substring(2, row.indexOf(","))
1346
+ orgPermScope = orgPermScope.split(';')
1347
+
1348
+ let userPermScope = row.substring(row.indexOf("U:"))
1349
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(","))
1350
+ userPermScope = userPermScope.split(';')
1351
+
1352
+ var rolePermScope = row.substring(row.indexOf("R:"))
1353
+ rolePermScope = rolePermScope.substring(2, rolePermScope.indexOf(","))
1354
+ rolePermScope = rolePermScope.split(';')
1355
+
1356
+ let postPermScope = row.substring(row.indexOf("P:"))
1357
+ postPermScope = postPermScope.substring(2, postPermScope.indexOf(","))
1358
+ postPermScope = postPermScope.split(';')
1359
+ ajax.get(this.upmsServerContext + "/manage/user/get/" + (jsonArray.accountUuid || jsonArray.userId))
1360
+ .then(resp => {
1361
+ this.organId = resp.data.data.organId
1362
+ ajax.get(this.smartFlowServerContext + "/manage/processDesign/getOrgan?orgId=" + (jsonArray.organId)
1363
+ ).then(resp => {
1364
+ if (resp.data.code === '200') {
1365
+ for (let key in resp.data.data.orgenMap) {
1366
+ for (let i = 0; i < orgPermScope.length; i++) {
1367
+ if (key == orgPermScope[i]) {
1368
+ const dataArr = [[key, resp.data.data.orgenMap[key]]]
1369
+
1370
+ for (let i = 0; i < dataArr.length; i++) {
1371
+ const [key, value] = dataArr[i];
1372
+ this.$set(this.organTree.orgenMap, key, value)
1373
+ }
1374
+ }
1375
+ }
1376
+ }
1377
+ for (let key in resp.data.data.userMap) {
1378
+ for (let i = 0; i < userPermScope.length; i++) {
1379
+ if (key == userPermScope[i]) {
1380
+ const dataArr = [[key, resp.data.data.userMap[key]]]
1381
+ for (let i = 0; i < dataArr.length; i++) {
1382
+ const [key, value] = dataArr[i];
1383
+ this.$set(this.organTree.userMap, key, value)
1384
+ }
1385
+ }
1386
+ }
1387
+ }
1388
+
1389
+ for (let key in resp.data.data.roleMap) {
1390
+ for (let i = 0; i < rolePermScope.length; i++) {
1391
+ if (key == rolePermScope[i]) {
1392
+ const dataArr = [[key, resp.data.data.roleMap[key]]]
1393
+
1394
+ for (let i = 0; i < dataArr.length; i++) {
1395
+ const [key, value] = dataArr[i];
1396
+ this.$set(this.organTree.roleMap, key, value)
1397
+ }
1398
+ }
1399
+ }
1400
+ }
1401
+
1402
+ for (let key in resp.data.data.postMap) {
1403
+ for (let i = 0; i < postPermScope.length; i++) {
1404
+ if (key == postPermScope[i]) {
1405
+ const dataArr = [[key, resp.data.data.postMap[key]]]
1406
+
1407
+ for (let i = 0; i < dataArr.length; i++) {
1408
+ const [key, value] = dataArr[i];
1409
+ this.$set(this.organTree.postMap, key, value)
1410
+ }
1411
+ }
1412
+ }
1413
+ }
1414
+ }
1415
+ })
1416
+
1417
+ })
1418
+ }
1419
+
1420
+
1421
+ },
1422
+ organChange(event) {
1423
+ this.organModel = []
1424
+ let orgValue = []
1425
+ let userValue = []
1426
+ let roleValue = []
1427
+ let postValue = []
1428
+ let orgAdjustment = ""
1429
+ let userAdjustment = ""
1430
+ let roleAdjustment = ""
1431
+ let postAdjustment = ""
1432
+ event.forEach(item => {
1433
+ let nameType = item.substring(item.indexOf(":") + 1)
1434
+ nameType = nameType.substring(nameType.indexOf(",") + 1)
1435
+ if (nameType == "1") {
1436
+ orgAdjustment = "1"
1437
+ this.organModel.push(item)
1438
+ orgValue.push({
1439
+ name: item.substring(item.indexOf(":") + 1, item.indexOf(",")),
1440
+ organId: item.substring(0, item.indexOf(":")),
1441
+ code: item.substring(0, item.indexOf(":")),
1442
+ checked: true
1443
+ })
1444
+ } else if (nameType != "1") {
1445
+ orgAdjustment = "1"
1446
+ }
1447
+ if (nameType == "2") {
1448
+ userAdjustment = "2"
1449
+ this.organModel.push(item)
1450
+ let user = item.substring(0, item.indexOf(","))
1451
+ user = user.replace(":", ",")
1452
+ userValue.push(user)
1453
+ } else if (nameType != "2") {
1454
+ userAdjustment = "2"
1455
+ }
1456
+ if (nameType == "3") {
1457
+ roleAdjustment = "3"
1458
+ this.organModel.push(item)
1459
+ let user = item.substring(0, item.indexOf(","))
1460
+ user = user.substring(user.indexOf(":") + 1)
1461
+ roleValue.push(user)
1462
+ } else if (nameType != "3") {
1463
+ roleAdjustment = "3"
1464
+ }
1465
+ if (nameType == "4") {
1466
+ postAdjustment = "4"
1467
+ let postItem = item.substring(0, item.indexOf(","))
1468
+ postItem = postItem.replace(":", ",")
1469
+ this.organModel.push(item)
1470
+ postValue.push(postItem)
1471
+ } else if (nameType != "4") {
1472
+ postAdjustment = "4"
1473
+ }
1474
+
1475
+ // 执行需要的操作
1476
+ });
1477
+ if (event.length == 0) {
1478
+ orgAdjustment = '1'
1479
+ userAdjustment = '2'
1480
+ roleAdjustment = '3'
1481
+ postAdjustment = '4'
1482
+ this.noticeRoleList = []
1483
+ }
1484
+ if (this.userNum != "1") {
1485
+ if (orgAdjustment == "1") {
1486
+ this.treeValueBM = orgValue
1487
+ }
1488
+ if (userAdjustment == "2") {
1489
+ this.treeUserValue = userValue
1490
+ }
1491
+ if (roleAdjustment == "3") {
1492
+ this.noticeRoleNameList = roleValue
1493
+ }
1494
+ if (postAdjustment == "4") {
1495
+ this.treePostValue = postValue
1496
+ }
1497
+ }
1498
+ this.userNum = "2"
1499
+ this.updateLength()
1500
+ },
1501
+ organTreeRedisUpdate() {
1502
+ const user = sessionStorage.getItem('userInfo');
1503
+ const jsonArray = JSON.parse(user);
1504
+ if (this.permScope == "all" || this.permScope == "undefined") {
1505
+ this.loading = true;
1506
+ ajax.get(this.smartFlowServerContext + "/manage/processDesign/getOrgan?orgId=" + (jsonArray.organId)
1507
+ ).then(resp => {
1508
+ if (resp.data.code === '200') {
1509
+ this.organTree = resp.data.data;
1510
+ this.loading = false;
1511
+ } else {
1512
+ this.loading = false;
1513
+ }
1514
+ })
1515
+ } else {
1516
+ this.loading = true;
1517
+ let orgPermScope = this.permScope.substring(2, this.permScope.indexOf(","))
1518
+ orgPermScope = orgPermScope.split(';')
1519
+
1520
+ let userPermScope = this.permScope.substring(this.permScope.indexOf("U:"))
1521
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(","))
1522
+ userPermScope = userPermScope.split(';')
1523
+
1524
+ let rolePermScope = this.permScope.substring(this.permScope.indexOf("R:"))
1525
+ rolePermScope = rolePermScope.substring(2, rolePermScope.indexOf(","))
1526
+ rolePermScope = rolePermScope.split(';')
1527
+
1528
+ let postPermScope = this.permScope.substring(this.permScope.indexOf("P:"))
1529
+ postPermScope = postPermScope.substring(2, postPermScope.indexOf(","))
1530
+ postPermScope = postPermScope.split(';')
1531
+ ajax.get(this.upmsServerContext + "/manage/user/get/" + (jsonArray.accountUuid || jsonArray.userId))
1532
+ .then(resp => {
1533
+ this.organId = resp.data.data.permitOrganId
1534
+ ajax.get(this.smartFlowServerContext + "/manage/processDesign/getOrgan?orgId=" + this.organId
1535
+ ).then(resp => {
1536
+ if (resp.data.code === '200') {
1537
+ for (let key in resp.data.data.orgenMap) {
1538
+ for (let i = 0; i < orgPermScope.length; i++) {
1539
+ if (key == orgPermScope[i]) {
1540
+ const dataArr = [[key, resp.data.data.orgenMap[key]]]
1541
+
1542
+ for (let i = 0; i < dataArr.length; i++) {
1543
+ const [key, value] = dataArr[i];
1544
+ this.$set(this.organTree.orgenMap, key, value)
1545
+ }
1546
+ }
1547
+ }
1548
+ }
1549
+ for (let key in resp.data.data.userMap) {
1550
+ for (let i = 0; i < userPermScope.length; i++) {
1551
+ if (key == userPermScope[i]) {
1552
+ const dataArr = [[key, resp.data.data.userMap[key]]]
1553
+ for (let i = 0; i < dataArr.length; i++) {
1554
+ const [key, value] = dataArr[i];
1555
+ this.$set(this.organTree.userMap, key, value)
1556
+ }
1557
+ }
1558
+ }
1559
+ }
1560
+
1561
+ for (let key in resp.data.data.roleMap) {
1562
+ for (let i = 0; i < rolePermScope.length; i++) {
1563
+ if (key == rolePermScope[i]) {
1564
+ const dataArr = [[key, resp.data.data.roleMap[key]]]
1565
+
1566
+ for (let i = 0; i < dataArr.length; i++) {
1567
+ const [key, value] = dataArr[i];
1568
+ this.$set(this.organTree.roleMap, key, value)
1569
+ }
1570
+ }
1571
+ }
1572
+ }
1573
+
1574
+ for (let key in resp.data.data.postMap) {
1575
+ for (let i = 0; i < postPermScope.length; i++) {
1576
+ if (key == postPermScope[i]) {
1577
+ const dataArr = [[key, resp.data.data.postMap[key]]]
1578
+
1579
+ for (let i = 0; i < dataArr.length; i++) {
1580
+ const [key, value] = dataArr[i];
1581
+ this.$set(this.organTree.postMap, key, value)
1582
+ }
1583
+ }
1584
+ }
1585
+ }
1586
+ this.loading = false;
1587
+ this.$Message.success("更新查询数据成功!")
1588
+ } else {
1589
+ this.$Message.error(resp.data.data);
1590
+ this.loading = false;
1591
+ }
1592
+ })
1593
+
1594
+ })
1595
+ }
1596
+ },
1597
+ readingRangeEmpty() {
1598
+ this.treeValueBM.forEach(item => {
1599
+ item.checked = false
1600
+ })
1601
+ // this.treeUserCenterValue =[];
1602
+ this.treeValueBM = [];
1603
+ this.treeUserValue = [];
1604
+ //角色集合
1605
+ this.noticeRoleList = [];
1606
+ this.noticeRoleNameList = [];
1607
+ this.selectedKeys = []
1608
+ //岗位集合
1609
+ this.postList = [];
1610
+ this.treePostValue = [];
1611
+ this.processPostList = [];
1612
+ this.treeLength = 0
1613
+ this.organModel = []
1614
+ this.postKeys = []
1615
+ },
1616
+ updateLength() {
1617
+ this.treeLength = this.treeValueBM.length + this.treeUserValue.length + this.noticeRoleNameList.length + this.treePostValue.length
1618
+ },
1619
+ clearCache() {
1620
+ this.readingRangeBM = []
1621
+ this.readingRange = []
1622
+ this.roleList = []
1623
+ this.readingRangePost = []
1624
+ this.treeUserCenterValue = []
1625
+ this.treePostCenterValue = []
1626
+ this.treeValueBM.forEach(item => {
1627
+ item.checked = false
1628
+ })
1629
+ this.treeValueBM = [];
1630
+ this.treeUserValue = [];
1631
+ //角色集合
1632
+ this.noticeRoleList = [];
1633
+ this.noticeRoleNameList = [];
1634
+ this.selectedKeys = []
1635
+ //岗位集合
1636
+ this.postList = [];
1637
+ this.treePostValue = [];
1638
+ this.processPostList = [];
1639
+ this.treeLength = 0
1640
+ this.organModel = []
1641
+ this.postKeys = []
1642
+ },
1643
+ toggleShowHelpBox(permScope, inputValue, organTreeType, id) {
1644
+ this.clearCache()
1645
+ this.id = id
1646
+ this.permScope = permScope
1647
+ this.organTreeType = organTreeType
1648
+ this.organTreeRedis(this.permScope)
1649
+ this.getOrganTypeList(this.organTreeType);
1650
+ if (inputValue){
1651
+ this.getOrgan(inputValue)
1652
+ this.getUser(inputValue)
1653
+ this.getRole(inputValue)
1654
+ this.getPost(inputValue)
1655
+ }
1656
+ if (this.permScope == 'all'){
1657
+ this.getRootOrganTree(organTreeType)
1658
+ } else {
1659
+ this.getReadingRangeBM(this.permScope, inputValue, this.organTreeType)
1660
+ this.getReadingRange(this.permScope, this.organTreeType)
1661
+ this.getReadingRangePost(this.permScope, this.organTreeType)
1662
+ }
1663
+ this.getReadingRangeAllRole(this.permScope)
1664
+ this.modalBoxShow = !this.modalBoxShow;
1665
+ },
1666
+ onOk() {
1667
+ let organ = [];
1668
+ let names = [];
1669
+ let organs = [];
1670
+ this.treeValueBM.forEach(item => {
1671
+ organ.push(item.code)
1672
+ names.push(item.name)
1673
+ organs.push(item.code + ':' + item.name)
1674
+ })
1675
+ let nameValue = [];
1676
+ let users = [];
1677
+ this.treeUserValue.forEach(item => {
1678
+ nameValue.push(item.split(',')[0])
1679
+ names.push(item.split(',')[1])
1680
+ users.push(item.split(',')[0] + ':' + item.split(',')[1])
1681
+ })
1682
+ let roleList = [];
1683
+ let roles = [];
1684
+ this.noticeRoleList.forEach(item => {
1685
+ roleList.push(item.split(',')[0])
1686
+ names.push(item.split(',')[1])
1687
+ roles.push(item.split(',')[0] + ':' + item.split(',')[1])
1688
+ })
1689
+ let postList = [];
1690
+ let positions = [];
1691
+ this.treePostValue.forEach(item => {
1692
+ postList.push(item.split(',')[0])
1693
+ names.push(item.split(',')[1])
1694
+ positions.push(item.split(',')[0] + ':' + item.split(',')[1])
1695
+ })
1696
+ let value = 'O:' + organ.join(";") + "," + "U:" + nameValue.join(";") + "," + "P:" + postList.join(";") + "," + "R:" + roleList.join(";") + "," + "RP:";
1697
+ let nameStr = names.join(",")
1698
+ let detail = {
1699
+ organs: organs.join(","),
1700
+ users: users.join(","),
1701
+ roles: roles.join(","),
1702
+ positions: positions.join(",")
1703
+ }
1704
+ this.$emit('update-cand-groups', value, nameStr, detail, this.id);
1705
+ this.modalBoxShow = false;
1706
+ },
1707
+ findTitleByValue(arr, value) {
1708
+ function traverse(items) {
1709
+ for (let item of items) {
1710
+ if (item.value === value) {
1711
+ return item.title;
1712
+ }
1713
+ if (item.children && item.children.length > 0) {
1714
+ let result = traverse(item.children);
1715
+ if (result) {
1716
+ return result;
1717
+ }
1718
+ }
1719
+ }
1720
+ return '';
1721
+ }
1722
+
1723
+ return traverse(arr);
1724
+ },
1725
+ indexToString(index) {
1726
+ return index + ''
1727
+ },
1728
+ },
1729
+ };
1730
+ </script>
1731
+
1732
+ <style scoped>
1733
+ .relativePositionAddButton {
1734
+ float: right;
1735
+ margin-top: 20px;
1736
+ }
1737
+
1738
+ .relativePositionRemoveButton {
1739
+ float: right;
1740
+ margin: 2px;
1741
+ }
1742
+
1743
+ .cont {
1744
+ display: flex;
1745
+ justify-content: left;
1746
+ margin-top: 10px;
1747
+ }
1748
+
1749
+ .contLeft {
1750
+ flex: 0 0 40%;
1751
+ z-index: 1;
1752
+ margin-right: 10px
1753
+ }
1754
+
1755
+ .contRight {
1756
+ flex: 0 0 30%;
1757
+ margin-top: 33.98px;
1758
+ }
1759
+
1760
+ .checkbox-container {
1761
+ display: flex;
1762
+ flex-direction: column;
1763
+ line-height: 30px;
1764
+ }
1765
+
1766
+ .overflowAuto {
1767
+ height: 600px;
1768
+ overflow-y: auto;
1769
+ }
1770
+
1771
+ .contLeftTwo {
1772
+ flex: 0 0 50%;
1773
+ z-index: 1;
1774
+ margin-right: 10px;
1775
+ }
1776
+
1777
+ .contRightTwo {
1778
+ flex: 0 0 49%;
1779
+ margin-top: 30px;
1780
+ }
1781
+
1782
+ /deep/ .ivu-checkbox-input {
1783
+ width: 136px;
1784
+ }
1785
+ </style>