@lambo-design/workflow-approve 1.0.0-beta.11 → 1.0.0-beta.111

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,30 +1,48 @@
1
1
  <template>
2
2
  <div>
3
- <Modal v-model="modalBoxShow" width="1217" title="选择办理人" @on-ok="onOk" @on-cancel="onCancel" loading>
3
+ <Modal v-model="modalBoxShow" width="1217" :title="title" @on-ok="onOk" @on-cancel="onCancel" loading>
4
4
  <div class="org-info">
5
- <div class="org-tree">
6
- <Tree :data="treeData" :load-data="loadData" @on-select-change="selectChange" > </Tree>
5
+ <div class="org-tree" v-if="!useTransferRangeUsers">
6
+ <div class="tree-content">
7
+ <div v-if="treeData.length === 0">暂无数据</div>
8
+ <Tree v-else v-for="(item,index) in treeData" :key="index" :data="item" ref="treeBM"
9
+ :load-data="loadData" @on-select-change="selectChange"></Tree>
10
+ <!-- <Tree :data="treeData" :load-data="loadData" @on-select-change="selectChange"></Tree>-->
11
+ </div>
7
12
  </div>
8
13
  <div class="org-detil">
9
- <LamboPagingTable ref="selection" :dataUrl="dataUrl" :columns="tableColumn" :searchParams="tableSearchParams"
10
- @on-selection-change="onSelectionChange">
11
- <div slot="search">
12
- <Form :label-width="80">
13
- <FormItem label="账号">
14
- <Input v-model="form.userId" placeholder="按账号搜索" />
15
- </FormItem>
16
- <FormItem label="姓名">
17
- <Input v-model="form.userName" placeholder="按姓名搜索" />
18
- </FormItem>
19
- <FormItem label="是否管理员" prop="isAdmin" :labelWidth="100">
20
- <RadioGroup v-model="form.isAdmin">
21
- <Radio label="">全部</Radio>
22
- <Radio label="1">是</Radio>
23
- <Radio label="0">否</Radio>
24
- </RadioGroup>
25
- </FormItem>
14
+ <LamboPagingTable :key="useTransferRangeUsers" ref="selection" highlight-row :data="tableData" :dataUrl="dataUrl" :columns="tableColumn" :searchParams="tableSearchParams" :height="tableHeight"
15
+ @on-selection-change="onSelectionChange" @on-current-change="onCurrentChange" :page-disable="useTransferRangeUsers" :showTableOption="!useTransferRangeUsers">
16
+ <div slot="search" v-if="!useTransferRangeUsers">
17
+ <Form :label-width="60" label-colon>
18
+ <Row>
19
+ <Col span="6">
20
+ <FormItem label="账号">
21
+ <Input v-model="form.userId" placeholder="按账号搜索" />
22
+ </FormItem>
23
+ </Col>
24
+ <Col span="6">
25
+ <FormItem label="姓名">
26
+ <Input v-model="form.userName" placeholder="按姓名搜索" />
27
+ </FormItem>
28
+ </Col>
29
+ <Col span="8">
30
+ <FormItem label="是否管理员" prop="isAdmin" :labelWidth="100">
31
+ <RadioGroup v-model="form.isAdmin">
32
+ <Radio label="">全部</Radio>
33
+ <Radio label="1">是</Radio>
34
+ <Radio label="0">否</Radio>
35
+ </RadioGroup>
36
+ </FormItem>
37
+ </Col>
38
+ <Col span="4">
39
+ <FormItem >
40
+ <Button type="primary" icon="ios-search" @click="doSearch">查询</Button>
41
+ </FormItem>
42
+ </Col>
43
+ </Row>
44
+
26
45
  <FormItem>
27
- <Button type="primary" icon="ios-search" @click="doSearch">查询</Button>
28
46
  </FormItem>
29
47
  </Form>
30
48
  </div>
@@ -67,12 +85,27 @@ export default {
67
85
  type: String,
68
86
  default: '/api/upms-server',
69
87
  },
88
+ //是否展示操作按钮二次弹框
89
+ showConfirmBox: {
90
+ type: Boolean,
91
+ required: false,
92
+ default: false
93
+ },
70
94
  },
71
95
  data() {
72
96
  return {
97
+ id: '',
98
+ title: '选择办理人',
99
+ helpBoxType: 'auditTo82',
100
+ ucAdapterType: 'x1',
101
+ useTransferRangeUsers: false,
102
+ useTransferRangeOrgan: false,
73
103
  loading: false,
104
+ organTreeType: '00',
105
+ permScope: 'all',
74
106
  modalBoxShow: false,
75
107
  dataUrl:'',
108
+ tableData:[],
76
109
  helpBoxColumns: [
77
110
  {
78
111
  title: "用户ID",
@@ -105,20 +138,25 @@ export default {
105
138
  };
106
139
  },
107
140
  created () {
108
- this.init()
141
+ this.getSystemConfig()
109
142
  },
110
143
  computed: {
111
-
144
+ tableHeight(){
145
+ return this.useTransferRangeUsers ? 600 : 0
146
+ },
112
147
  tableColumn () {
113
148
  let columns = []
114
149
  let self = this
115
- columns.push({
116
- title: '#',
117
- key: 'selectId',
118
- type: 'selection',
119
- align: 'center',
120
- width: 55
121
- })
150
+ // 加签/选择候选人可多选
151
+ if (this.helpBoxType === 'addMultitaskInstance' || this.helpBoxType === 'appointHandlerWithCandGroups'){
152
+ columns.push({
153
+ title: '#',
154
+ key: 'selectId',
155
+ type: 'selection',
156
+ align: 'center',
157
+ width: 55
158
+ })
159
+ }
122
160
  columns.push({
123
161
  title: '账号',
124
162
  key: 'userId',
@@ -131,92 +169,221 @@ export default {
131
169
  sortField: 'user_name',
132
170
  sortable: 'custom'
133
171
  })
172
+
173
+ if (self.useTransferRangeUsers && self.ucAdapterType == 'x1'){
174
+ columns.push({
175
+ title: '联系电话',
176
+ key: 'tel',
177
+ sortField: 'tel',
178
+ sortable: 'custom'
179
+ })
180
+ }
134
181
  columns.push({
135
182
  title: '部门名称',
136
183
  key: 'organName',
137
184
  sortField: 'organ_name',
138
185
  sortable: 'custom'
139
186
  })
140
- columns.push({
141
- title: '状态',
142
- key: 'status',
143
- sortable: 'custom',
144
- align: 'center',
145
- width: 100,
146
- render: function (h, param) {
147
- let state = param.row.status
148
- if (state === '00') {
149
- state = '正常'
150
- } else {
151
- state = '锁定'
152
- }
153
- return h('span', state)
187
+ if (self.useTransferRangeUsers && self.ucAdapterType == 'x1'){
188
+ columns.push({
189
+ title: '公司名称',
190
+ key: 'comName',
191
+ sortField: 'com_name',
192
+ sortable: 'custom'
193
+ })
194
+ }
195
+ if (!self.useTransferRangeUsers){
196
+ {
197
+ columns.push({
198
+ title: '状态',
199
+ key: 'status',
200
+ sortable: 'custom',
201
+ align: 'center',
202
+ width: 100,
203
+ render: function (h, param) {
204
+ let state = param.row.status
205
+ if (state === '00') {
206
+ state = '正常'
207
+ } else {
208
+ state = '锁定'
209
+ }
210
+ return h('span', state)
211
+ }
212
+ })
154
213
  }
155
- })
214
+ }
156
215
 
157
216
  return columns
158
217
  }
159
218
  },
160
219
  inject: ['toBeDoneListDoSearch'],
161
220
  methods: {
162
- init () {
221
+ init (organTreeType) {
163
222
  let self = this
164
- self.getRootData()
223
+ self.organTreeType = organTreeType
224
+ self.getRootData(organTreeType)
225
+ },
226
+ clearData(){
227
+ this.idSelectedArr = []
228
+ this.useTransferRangeUsers = false
229
+ //清除表格数据
230
+ this.doSearch()
165
231
  },
166
- toggleShowHelpBox() {
232
+ toggleShowHelpBox(organTreeType, permScope, helpBoxType, id, data) {
233
+ this.clearData()
234
+ this.id = id
235
+ this.helpBoxType = helpBoxType
236
+ this.organTreeType = organTreeType
237
+ if (helpBoxType === 'appointHandlerWithCandGroups'){
238
+ this.title = '选择候选人'
239
+ }
240
+ if (data && (data.orgList || data.userList)){
241
+ const {orgList, userList} = data
242
+ if (orgList && orgList.length > 0){
243
+ this.useTransferRangeOrgan = true
244
+ let childs = []
245
+ orgList.forEach(item => {
246
+ let obj = {}
247
+ obj.organId = item.orgId
248
+ obj.title = item.orgName
249
+ obj.name = item.orgName
250
+ obj.code = item.orgCode
251
+ obj.loading = false
252
+ obj.children = []
253
+ obj.hasChild = true
254
+ childs.push(obj)
255
+ })
256
+ this.treeData.push(childs)
257
+ const codesSeen = new Map();
258
+ this.treeData = this.treeData.reduce((acc, item, index) => {
259
+ if (!codesSeen.has(item.code)) {
260
+ codesSeen.set(item.code, index);
261
+ acc.push(item);
262
+ }
263
+ return acc;
264
+ }, []);
265
+ this.selectChange(this.treeData[0])
266
+ this.modalBoxShow = !this.modalBoxShow;
267
+ this.$forceUpdate()
268
+ return
269
+ }
270
+ if (userList && userList.length > 0){
271
+ this.treeData = []
272
+ this.useTransferRangeUsers = true
273
+ this.tableData = userList.map(item => {
274
+ return {
275
+ ...item,
276
+ organName: item.deptName,
277
+ status: '00'
278
+ }
279
+ })
280
+ this.modalBoxShow = !this.modalBoxShow;
281
+ this.$forceUpdate()
282
+ return
283
+ }
284
+ }
285
+ this.permScope = permScope
286
+ if (permScope && permScope !== 'all'){
287
+ this.getOrgTreeByProType(this.permScope, this.organTreeType)
288
+ } else {
289
+ this.permScopeList = 'all'
290
+ this.getRootData(organTreeType)
291
+ }
167
292
  this.modalBoxShow = !this.modalBoxShow;
293
+ this.$forceUpdate()
168
294
  },
169
295
 
170
296
  onOk(){
171
297
  let self = this
172
298
  let idSelectedArr = self.idSelectedArr
299
+ if (self.idSelectedArr.length === 0) {
300
+ self.onCancel()
301
+ return
302
+ }
173
303
  self.loading = true
174
- if (idSelectedArr.length > 1) {
175
- self.loading = false
176
- self.$Message.info('办理人只能选择一条记录!')
177
- this.$emit('update-selected', ''); // 触发事件并传递 userId
304
+ if (self.helpBoxType ==='addMultitaskInstance'){
305
+ idSelectedArr = [...new Set(idSelectedArr)]
306
+ const assingeeList = idSelectedArr.map(item => item.split(',')[0])
307
+ self.$emit('add-multitask-instance', assingeeList);
308
+ }else if (self.helpBoxType ==='appointHandlerWithCandGroups'){
309
+ idSelectedArr = [...new Set(idSelectedArr)]
310
+ self.$emit('appoint-handler-with-candGroups', idSelectedArr, self.id);
178
311
  } else {
179
- let auditResult = {
180
- code: self.data.auditResult,
181
- name: self.data.auditResultName,
182
- }
183
- self.data.selectedUserId=self.idSelectedArr[0];
184
- console.log("self.data:",self.data);
185
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
186
- ajax.post(url, self.data).then(function (resp) {
187
- let result = resp.data
188
- if (result.code == '200') {
189
- self.loading = false
190
- self.$Message.success(result.message);
191
- if (this.executionCompleted) {
192
- this.executionCompleted(true, self.data.instanceId, self.data.taskId, auditResult, self.data.taskId);
312
+ if (idSelectedArr.length > 1) {
313
+ self.loading = false
314
+ self.$Message.info('办理人只能选择一条记录!')
315
+ this.$emit('update-selected', ''); // 触发事件并传递 userId
316
+ } else {
317
+ let idSelectedArr = self.idSelectedArr[0].split(',')
318
+ if (self.helpBoxType === 'auditTo82'){
319
+ let auditResult = {
320
+ code: self.data.auditResult,
321
+ name: self.data.auditResultName,
193
322
  }
194
- self.toBeDoneListDoSearch();
195
- } else {
196
- self.loading = false
197
- self.$Message.error(result.message)
198
- if (this.executionCompleted) {
199
- this.executionCompleted(false, null, null, auditResult, self.data.taskId);
323
+ if (!self.showConfirmBox){
324
+ self.execute(auditResult)
325
+ return;
200
326
  }
327
+ self.$Modal.confirm({
328
+ title: '提示',
329
+ content: '确定要' + auditResult.name + '吗?',
330
+ onOk: () => {
331
+ self.execute(auditResult)
332
+ },
333
+ onCancel: () => {
334
+ self.loading = false
335
+ self.disable = false
336
+ }
337
+ })
338
+ } else if (self.helpBoxType === 'delegateTask'){
339
+ self.$emit('delegate-task-assignee', idSelectedArr[0]);
340
+ } else {
341
+ self.$emit('update-next-node-assignee', idSelectedArr[0], idSelectedArr[1], self.id);
201
342
  }
202
- })
343
+ }
203
344
  }
204
345
  this.modalBoxShow = false;
205
346
  },
206
-
207
-
347
+ execute(auditResult){
348
+ const self = this
349
+ self.data.selectedUserId=idSelectedArr[0];
350
+ let url = this.smartFlowServerContext + '/manage/processTodo/audit'
351
+ ajax.post(url, self.data).then(function (resp) {
352
+ let result = resp.data
353
+ if (result.code == '200') {
354
+ self.loading = false
355
+ self.$Message.success(result.message);
356
+ if (self.executionCompleted) {
357
+ self.executionCompleted(true, self.data.instanceId, self.data.taskId, auditResult, self.data.taskId);
358
+ }
359
+ self.toBeDoneListDoSearch();
360
+ } else {
361
+ self.loading = false
362
+ self.$Message.error(result.message)
363
+ if (self.executionCompleted) {
364
+ self.executionCompleted(false, null, null, auditResult, self.data.taskId);
365
+ }
366
+ }
367
+ })
368
+ },
208
369
  doSearch: function () {
209
370
  this.tableSearchParams = Object.assign({}, this.form)
210
371
  },
372
+ // 加签、选择下一环节候选人
211
373
  onSelectionChange: function (selection) {
212
374
  let self = this
213
- self.idSelectedArr = []
214
- if (selection.length > 1) {
215
- self.$Message.info('只能选择一条记录!')
216
- this.$refs.selection.selectAll(false);
375
+ if (self.helpBoxType === 'addMultitaskInstance' || self.helpBoxType === 'appointHandlerWithCandGroups') {
376
+ for (let item of selection) {
377
+ self.idSelectedArr.push(item.userId + ',' + item.userName)
378
+ }
217
379
  }
218
- for (let item of selection) {
219
- self.idSelectedArr.push(item.userId)
380
+ },
381
+ // 转办、委派、选择下一环节办理人
382
+ onCurrentChange(selection) {
383
+ let self = this
384
+ if (self.helpBoxType !== 'addMultitaskInstance' && self.helpBoxType !== 'appointHandlerWithCandGroups') {
385
+ self.idSelectedArr = []
386
+ self.idSelectedArr.push(selection.userId + ',' + selection.userName)
220
387
  }
221
388
  },
222
389
  loadData (node, callback) {
@@ -226,50 +393,332 @@ export default {
226
393
  }
227
394
  })
228
395
  },
229
- getRootData () {
396
+ getRootData (organTreeType) {
230
397
  let self = this
231
- let childs = []
232
- ajax.get(this.upmsServerContext + '/manage/ucOrgan/getOrgRootTree').then(function (resp) {
233
- if (resp.data.code === 1) {
234
- let data = resp.data.data
235
- if (data.length > 0) {
236
- data.forEach(item => {
237
- let obj = {}
238
- obj.type = item.organType
239
- obj.id = item.organId
240
- obj.orders = item.orders
241
- obj.title = item.organName
242
- obj.name = item.organName
243
- obj.com = item.com
244
- obj.code = item.organCode
245
- obj.loading = false
246
- obj.children = []
247
- obj.hasChild = true
248
- childs.push(obj)
398
+ let hostChilds = []
399
+ if (self.ucAdapterType === 'x1'){
400
+ let parentId = organTreeType == '00' ? 'rootId' : '0'
401
+ ajax.get(self.smartFlowServerContext + '/manage/organ/getOrgSubNodes', {
402
+ params: {
403
+ code: parentId,
404
+ orgTreeType: organTreeType
405
+ }
406
+ }).then(resp => {
407
+ if (resp.data.code === 200) {
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.id
414
+ obj.organId = item.organId
415
+ obj.orders = item.orders
416
+ obj.title = item.organName
417
+ obj.name = item.organName
418
+ obj.com = item.com
419
+ obj.code = item.organCode
420
+ obj.loading = false
421
+ obj.children = []
422
+ obj.hasChild = true
423
+ hostChilds.push(obj)
424
+ })
425
+ self.treeData.push(hostChilds)
426
+ const codesSeen = new Map();
427
+ self.treeData = self.treeData.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.selectChange(self.treeData[0])
435
+ }
436
+ }
437
+ }).catch(err => {
438
+ console.log(err);
439
+ })
440
+ } else {
441
+ ajax.get(self.smartFlowServerContext + '/manage/bizorgan/getOrgRootTree?bizOrganTreeType=' + organTreeType).then(resp => {
442
+ if (resp.data.code === 200) {
443
+ let data = resp.data.data
444
+ if (data.length > 0) {
445
+ for (let i = 0; i < data.length; i++) {
446
+ {
447
+ let obj = {}
448
+ obj.type = data[i].bizOrganType
449
+ obj.id = data[i].id
450
+ obj.organId = data[i].bizOrganId
451
+ obj.orders = data[i].orders
452
+ obj.title = data[i].bizOrganName
453
+ obj.name = data[i].bizOrganName
454
+ obj.com = data[i].bizOrganId
455
+ obj.code = data[i].bizOrganCode
456
+ obj.loading = false
457
+ obj.children = []
458
+ obj.hasChild = true
459
+ hostChilds.push(obj)
460
+ self.treeData.push(hostChilds);
461
+ const codesSeen = new Map();
462
+ self.treeData = self.treeData.reduce((acc, item, index) => {
463
+ if (!codesSeen.has(item.code)) {
464
+ codesSeen.set(item.code, index);
465
+ acc.push(item);
466
+ }
467
+ return acc;
468
+ }, []);
469
+ }
470
+ }
471
+ self.selectChange(self.treeData[0])
472
+ }
473
+ }
474
+ }).catch(err => {
475
+ console.log(err);
476
+ })
477
+ }
478
+ },
479
+ async getOrgTreeByProType(permScope, organTreeType){
480
+ let self = this
481
+ let userPermScope = permScope.substring(permScope.indexOf("U:"))
482
+ userPermScope = userPermScope.substring(2, userPermScope.indexOf(","))
483
+ let permScopeTwo = userPermScope.split(';')
484
+ if (permScopeTwo.length > 0 && permScopeTwo[0]){
485
+ self.permScopeList = 'U:' + userPermScope + ','
486
+ let promises = []
487
+ for (let i = 0; i < permScopeTwo.length; i++) {
488
+ let promise = ajax.get(self.smartFlowServerContext + "/manage/user/get/" + permScopeTwo[i] + '?treeType=' + organTreeType)
489
+ .then(resp => {
490
+ if (resp.data.code === 200) {
491
+ return resp.data.data.organCode
492
+ }
493
+ })
494
+ promises.push(promise)
495
+ }
496
+ Promise.all(promises).then(async (result) => {
497
+ const uniqueResults = [...new Set(result.filter(Boolean))];
498
+ permScope = uniqueResults.join(';');
499
+ self.treeData = await this.getOrganTreeByProType(permScope, permScope, organTreeType);
500
+ self.selectChange(self.treeData[0])
501
+ })
502
+ } else {
503
+ //对于流程类型中没有规定人员范围但规定组织范围的情况
504
+ self.treeData = await this.getOrganTreeByProType(permScope, permScope.substring(2, permScope.indexOf(",")), organTreeType);
505
+ self.selectChange(self.treeData[0])
506
+ }
507
+ },
508
+ getOrganTreeByProType(row, permScope, organTreeType) {
509
+ const self = this
510
+ return new Promise((resolve, reject) => {
511
+ let organTree = [];
512
+ let childsTree = [];
513
+ if (permScope && permScope.length > 0) {
514
+ let params = {
515
+ orgTreeType: organTreeType,
516
+ };
517
+ permScope = permScope.split(';');
518
+
519
+ const requests = permScope.map(perm => {
520
+ return ajax.get(self.smartFlowServerContext + '/manage/organ/get/' + perm, { params: params })
521
+ .then(resp => {
522
+ if (resp.data.code === 200) {
523
+ return resp.data.data;
524
+ } else {
525
+ return [];
526
+ }
527
+ })
528
+ .catch(err => {
529
+ console.error(err);
530
+ return [];
531
+ });
532
+ });
533
+
534
+ Promise.all(requests)
535
+ .then(results => {
536
+ let tree
537
+ if (self.ucAdapterType === 'x1'){
538
+ tree = self.x1OrganTree(results)
539
+ } else {
540
+ tree = self.scOrganTree(results)
541
+ }
542
+ for (let value of tree) {
543
+ self.formatOrganTree(value, childsTree, organTreeType)
544
+ }
545
+
546
+ organTree.push(childsTree);
547
+ const codesSeen = new Map();
548
+ organTree = organTree.reduce((acc, item, index) => {
549
+ if (!codesSeen.has(item.code)) {
550
+ codesSeen.set(item.code, index);
551
+ acc.push(item);
552
+ }
553
+ return acc;
554
+ }, []);
555
+ resolve(organTree);
249
556
  })
557
+ .catch(err => {
558
+ reject(err);
559
+ });
560
+ } else {
561
+ resolve([]);
562
+ }
563
+ });
564
+ },
565
+ x1OrganTree(results){
566
+ const nodeMap = new Map();
567
+ results.forEach(item => {
568
+ const organCode = item.organCode
569
+ const organStruPath = item.organStruPath
570
+ const parts = organStruPath.split('#').filter(p => p);
571
+ let currentNode = nodeMap.get(organCode) || { organCode, organStruPath, item, children: []};
572
+ currentNode.parts = parts;
573
+ nodeMap.set(organCode, currentNode);
574
+ });
575
+ nodeMap.forEach(node => {
576
+ const { organCode, parts } = node;
577
+ let parentCode = null;
578
+ for (let i = 0; i < parts.length - 1; i++) {
579
+ parentCode = parts[i];
580
+ const parentNode = nodeMap.get(parentCode);
250
581
 
251
- childs[0].selected = true
252
- self.selectChange(childs)
582
+ if (parentNode) {
583
+ if (parentNode.organId === node.item.parentId && !parentNode.children.some(child => child.organCode === organCode)) {
584
+ parentNode.children.push(node);
585
+ } else {
586
+ // 如果直接父节点不在流程类型范围内但祖宗节点在
587
+ let children = parentNode.children;
588
+ for (let j = i + 1; j < parts.length - 1; j++) {
589
+ const partCode = parts[j];
590
+ let existingChild = children.find(child => child.organCode === partCode);
591
+
592
+ if (!existingChild) {
593
+ existingChild = { organCode: partCode, children: [] };
594
+ children.push(existingChild);
595
+ }
596
+ children = existingChild.children;
597
+ }
598
+ // 将当前节点添加到最后一个子节点的 children 中
599
+ children.push(node);
600
+ }
601
+ nodeMap.delete(organCode);
602
+ break;
253
603
  }
254
- self.treeData = childs
255
604
  }
256
- })
605
+
606
+ });
607
+ return nodeMap.values()
608
+ },
609
+ scOrganTree(results){
610
+ const nodeMap = new Map();
611
+ results.forEach(item => {
612
+ const organId = item.organId
613
+ const parentId = item.parentId
614
+ let currentNode = nodeMap.get(organId) || { organId, parentId, item, children: []};
615
+ nodeMap.set(organId, currentNode);
616
+ });
617
+ const tree = [];
618
+ nodeMap.forEach((node, organId) => {
619
+ const parentId = node.parentId;
620
+
621
+ // 如果有父节点,则将当前节点添加到父节点的 children 数组中
622
+ if (parentId && nodeMap.has(parentId)) {
623
+ const parentNode = nodeMap.get(parentId);
624
+ parentNode.children.push(node);
625
+ } else {
626
+ tree.push(node);
627
+ }
628
+ });
629
+ return tree
630
+ },
631
+ formatOrganTree(nodeMap, childsTree, organTreeType){
632
+ const self = this
633
+ let obj = {}
634
+ if (nodeMap.item){
635
+ obj = {
636
+ type: nodeMap.item.organType,
637
+ id: nodeMap.item.id,
638
+ organId: nodeMap.item.organId,
639
+ orders: nodeMap.item.orders,
640
+ title: nodeMap.item.organName,
641
+ name: nodeMap.item.organName,
642
+ com: nodeMap.item.organId,
643
+ code: nodeMap.item.organCode,
644
+ loading: false,
645
+ checked: false,
646
+ hasChild: true,
647
+ children: [],
648
+ };
649
+ if (nodeMap.children && nodeMap.children.length > 0){
650
+ for (let child of nodeMap.children){
651
+ self.formatOrganTree(child, obj.children, organTreeType)
652
+ }
653
+ }
654
+ childsTree.push(obj);
655
+ } else {
656
+ let params = {
657
+ orgTreeType: organTreeType,
658
+ }
659
+ ajax.get(self.smartFlowServerContext + '/manage/organ/get/' + nodeMap.organCode, { params: params })
660
+ .then(resp => {
661
+ if (resp.data.code === 200) {
662
+ let data = resp.data.data
663
+ obj = {
664
+ type: data.organType,
665
+ id: data.id,
666
+ organId: data.organId,
667
+ orders: data.orders,
668
+ title: data.organName,
669
+ name: data.organName,
670
+ com: data.organId,
671
+ code: data.organCode,
672
+ loading: false,
673
+ disabled: true,
674
+ checked: false,
675
+ hasChild: true,
676
+ children: [],
677
+ render: (h, { root, node, data }) => {
678
+ return h('span', {
679
+ style: {
680
+ display: 'inline-block',
681
+ color: '#b9bbc0',
682
+ width: '100%'
683
+ }
684
+ }, [
685
+ h('span', [
686
+ h('span', data.title)
687
+ ])
688
+ ]);
689
+ },
690
+ }
691
+ if (nodeMap.children && nodeMap.children.length > 0){
692
+ for (let child of nodeMap.children){
693
+ self.formatOrganTree(child, obj.children, organTreeType)
694
+ }
695
+ }
696
+ childsTree.push(obj);
697
+ }
698
+ })
699
+ .catch(err => {
700
+ console.error(err);
701
+ return [];
702
+ })
703
+ }
257
704
  },
258
705
  getData (node, callback) {
259
706
  let self = this
260
707
  ajax.get(this.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes', {
261
708
  params: {
262
- organCode: node.code
709
+ organCode: node.code,
710
+ orgTreeType: self.organTreeType
263
711
  }
264
712
  }).then(function (resp) {
265
713
  const childs = []
266
714
  if (resp.data.code === 1) {
267
715
  let nodeDatas = resp.data.data
268
- if (nodeDatas.length > 0) {
716
+ if (nodeDatas && nodeDatas.length > 0) {
269
717
  nodeDatas.forEach(item => {
270
718
  let obj = {}
271
719
  obj.type = item.organType
272
- obj.id = item.organId
720
+ obj.id = item.id
721
+ obj.organId = item.organId
273
722
  obj.orders = item.orders
274
723
  obj.title = item.organName
275
724
  obj.name = item.organName
@@ -299,14 +748,22 @@ export default {
299
748
  },
300
749
  selectChange (node) {
301
750
  let self = this
302
- if (node.length > 0) {
751
+ if (node && node.length > 0) {
303
752
  if (self.currentNode !== node[0]) {
304
753
  self.currentNode = node[0]
305
754
 
306
- self.form.organId = self.currentNode.id
755
+ self.form.organId = self.currentNode.organId
307
756
  self.form.organTitle = self.currentNode.title
308
757
 
309
- self.dataUrl =this.upmsServerContext+ '/manage/user/list'
758
+ let permScopeList = self.permScopeList
759
+ if (permScopeList !== 'all'){
760
+ permScopeList += 'O:' + self.currentNode.code
761
+ }
762
+ self.dataUrl =self.smartFlowServerContext+ '/manage/user/getAssigneeList?orgTreeType=' + self.organTreeType + "&permScopeList=" + permScopeList
763
+
764
+ if (this.useTransferRangeOrgan){
765
+ self.dataUrl = self.upmsServerContext+ '/manage/user/list?orgTreeType=' + self.organTreeType
766
+ }
310
767
  self.doSearch()
311
768
 
312
769
  if (node[0].children.length <= 0) {
@@ -323,11 +780,24 @@ export default {
323
780
  },
324
781
 
325
782
  onCancel () {
326
- this.$emit('update-selected', ''); // 触发事件并传递 userId
783
+ if (this.helpBoxType === 'auditTo82'){
784
+ this.$emit('update-selected', ''); // 触发事件并传递 userId
785
+ }
327
786
  this.modalBoxShow = false;
328
787
 
329
788
  },
330
789
 
790
+ getSystemConfig(){
791
+ const self = this
792
+ ajax.get(self.smartFlowServerContext + '/anon/systemConfig/getSystemConfig').then(function (resp) {
793
+ const result = resp.data;
794
+ if (result && result.code === '200') {
795
+ self.ucAdapterType = result.data.ucAdapterType
796
+ }
797
+ }).catch(err => {
798
+ console.log(err);
799
+ })
800
+ },
331
801
 
332
802
  },
333
803
  };
@@ -336,10 +806,15 @@ export default {
336
806
  <style lang="less" scope>
337
807
  .org-info{
338
808
  display: flex;
809
+ max-height: 700px;
339
810
  .org-tree {
340
811
  width: 265px;
341
812
  min-height: 450px;
342
813
  border-right: 1px solid #dcdee2;
814
+ .tree-content {
815
+ height: 100%;
816
+ overflow-y: auto;
817
+ }
343
818
  }
344
819
 
345
820
  .org-detil {