@lambo-design/workflow-approve 1.0.0-beta.22 → 1.0.0-beta.23

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