cloud-module-bpm 6.13.2 → 6.13.3
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.
- package/dist/cloud-module-bpm.common.js +3965 -1347
- package/dist/cloud-module-bpm.common.js.map +1 -1
- package/dist/cloud-module-bpm.css +1 -1
- package/dist/cloud-module-bpm.umd.js +3965 -1347
- package/dist/cloud-module-bpm.umd.js.map +1 -1
- package/dist/cloud-module-bpm.umd.min.js +6 -6
- package/dist/cloud-module-bpm.umd.min.js.map +1 -1
- package/package.json +5 -2
- package/packages/bpm-back-anylink-dialog/Tree.vue +222 -0
- package/packages/bpm-back-anylink-dialog/bpm-back-anylink-dialog.vue +466 -213
- package/packages/bpm-form-tools/bpm-form-tools.vue +33 -10
- package/packages/bpm-jump-dialog/Tree.vue +222 -0
- package/packages/bpm-jump-dialog/bpm-jump-dialog.vue +425 -161
- package/packages/bpm-jump-latest-dialog/Tree.vue +180 -41
- package/packages/bpm-jump-latest-dialog/bpm-jump-latest-dialog.vue +200 -30
- package/packages/bpm-opinion-dialog/bpm-opinion.vue +105 -44
- package/packages/bpm-send-read-dialog/SelectedGrid.vue +1 -1
- package/packages/bpm-send-read-dialog/SourceGrid.vue +90 -102
- package/packages/bpm-send-read-dialog/Tree.vue +145 -24
- package/packages/bpm-send-read-dialog/bpm-next-node.vue +3 -3
- package/packages/bpm-send-read-opinion-dialog/bpm-send-read-opinion.vue +35 -34
- package/packages/bpm-sign-dialog/SelectedGrid.vue +2 -2
- package/packages/bpm-sign-dialog/SourceGrid.vue +96 -113
- package/packages/bpm-sign-dialog/Tree.vue +125 -87
- package/packages/bpm-sign-dialog/bpm-next-node.vue +11 -8
- package/packages/bpm-user-select-dialog/SourceGrid.vue +127 -51
- package/packages/bpm-user-select-dialog/Tree.vue +151 -61
- package/packages/bpm-user-select-dialog/bpm-next-node.vue +17 -5
- package/packages/i18n/langs/zh_CN.js +6 -6
- package/packages/utils/merit-bpm.js +121 -8
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<el-row
|
|
3
|
+
<el-row
|
|
4
|
+
justify="space-between"
|
|
5
|
+
style="padding: 5px;"
|
|
6
|
+
>
|
|
4
7
|
<el-col
|
|
5
8
|
:span="7"
|
|
6
9
|
style="float: left;margin-top: 5px;padding-left: 2px;"
|
|
7
|
-
|
|
10
|
+
>{{ $t('base.list_alternatives') }}</el-col>
|
|
11
|
+
<el-col
|
|
12
|
+
:span="17"
|
|
13
|
+
style="float:right;"
|
|
8
14
|
>
|
|
9
|
-
<el-col :span="17" style="float:right;">
|
|
10
15
|
<el-input
|
|
11
|
-
class="custom_input_1"
|
|
12
16
|
placeholder="请输入姓名或编码"
|
|
13
17
|
v-model="searchName"
|
|
14
18
|
clearable
|
|
15
19
|
@change="searchGridData"
|
|
16
|
-
@keyup.enter.native="searchGridData"
|
|
17
|
-
suffix-icon="el-icon-search"
|
|
18
20
|
>
|
|
19
|
-
|
|
21
|
+
<el-button
|
|
20
22
|
class="el-icon-search-button"
|
|
21
23
|
slot="append"
|
|
22
24
|
icon="el-icon-search"
|
|
23
25
|
@click="searchGridData"
|
|
24
|
-
></el-button>
|
|
26
|
+
></el-button>
|
|
25
27
|
</el-input>
|
|
26
28
|
</el-col>
|
|
27
29
|
</el-row>
|
|
@@ -44,9 +46,16 @@
|
|
|
44
46
|
type="selection"
|
|
45
47
|
v-if="notOnlyApprove"
|
|
46
48
|
></el-table-column>
|
|
47
|
-
<el-table-column
|
|
49
|
+
<el-table-column
|
|
50
|
+
prop="name"
|
|
51
|
+
:label="$t('base.user.name')"
|
|
52
|
+
fit="true"
|
|
53
|
+
>
|
|
48
54
|
<template slot-scope="scope">
|
|
49
|
-
<div
|
|
55
|
+
<div
|
|
56
|
+
:title="scope.row.name"
|
|
57
|
+
class="cell-hidden"
|
|
58
|
+
>
|
|
50
59
|
{{ scope.row.name }}
|
|
51
60
|
</div>
|
|
52
61
|
</template>
|
|
@@ -57,14 +66,24 @@
|
|
|
57
66
|
fit="true"
|
|
58
67
|
>
|
|
59
68
|
<template slot-scope="scope">
|
|
60
|
-
<div
|
|
69
|
+
<div
|
|
70
|
+
:title="scope.row.code"
|
|
71
|
+
class="cell-hidden"
|
|
72
|
+
>
|
|
61
73
|
{{ scope.row.code }}
|
|
62
74
|
</div>
|
|
63
75
|
</template>
|
|
64
76
|
</el-table-column>
|
|
65
|
-
<el-table-column
|
|
77
|
+
<el-table-column
|
|
78
|
+
prop="deptName"
|
|
79
|
+
:label="$t('base.dept.name')"
|
|
80
|
+
fit="true"
|
|
81
|
+
>
|
|
66
82
|
<template slot-scope="scope">
|
|
67
|
-
<div
|
|
83
|
+
<div
|
|
84
|
+
:title="scope.row.deptName"
|
|
85
|
+
class="cell-hidden"
|
|
86
|
+
>
|
|
68
87
|
{{ scope.row.deptName }}
|
|
69
88
|
</div>
|
|
70
89
|
</template>
|
|
@@ -101,6 +120,10 @@ export default {
|
|
|
101
120
|
opt: {
|
|
102
121
|
type: Object,
|
|
103
122
|
required: true
|
|
123
|
+
},
|
|
124
|
+
treeNode: {
|
|
125
|
+
type: Object,
|
|
126
|
+
required: true
|
|
104
127
|
}
|
|
105
128
|
},
|
|
106
129
|
components: {
|
|
@@ -114,7 +137,7 @@ export default {
|
|
|
114
137
|
'el-input': Input,
|
|
115
138
|
'el-button': Button
|
|
116
139
|
},
|
|
117
|
-
data() {
|
|
140
|
+
data () {
|
|
118
141
|
return {
|
|
119
142
|
empUrl: '/api/identity/bpm-user/list-by-deptcode', //人员数据接口
|
|
120
143
|
searchName: '',
|
|
@@ -133,11 +156,11 @@ export default {
|
|
|
133
156
|
},
|
|
134
157
|
computed: {
|
|
135
158
|
//是否是单人审批,如果不是单人审批则展示多选框
|
|
136
|
-
notOnlyApprove() {
|
|
159
|
+
notOnlyApprove () {
|
|
137
160
|
return this.opt.approve.type != 'onlyApprove';
|
|
138
161
|
}
|
|
139
162
|
},
|
|
140
|
-
created() {
|
|
163
|
+
created () {
|
|
141
164
|
// this.tableHeight = window.outerHeight > 900 ? 385 : 265;
|
|
142
165
|
this.opt.bpmUsers.forEach(bpmUser => {
|
|
143
166
|
this.receiverIds.push(bpmUser.code);
|
|
@@ -146,22 +169,38 @@ export default {
|
|
|
146
169
|
watch: {
|
|
147
170
|
opt: {
|
|
148
171
|
deep: true,
|
|
149
|
-
handler: function(newVal, old) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
this.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
this.
|
|
159
|
-
|
|
172
|
+
handler: function (newVal, old) {
|
|
173
|
+
if (newVal && newVal.runtime && newVal.runtime.nextNodes && newVal.runtime.nextNodes.length > 0) {
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
let nextNodeWatch = newVal.runtime.nextNodes[0];
|
|
177
|
+
this.empTotal = nextNodeWatch.bpmUsers.length;
|
|
178
|
+
// this.sourceAllData = nextNodeWatch.bpmUsers || [];
|
|
179
|
+
// this.empTableData = this.sourceAllData.slice(
|
|
180
|
+
// this.pageSize * (this.currentPage - 1),
|
|
181
|
+
// this.pageSize * this.currentPage
|
|
182
|
+
// );
|
|
183
|
+
this.receiverIds = [];
|
|
184
|
+
nextNodeWatch.bpmUsers.forEach(bpmUser => {
|
|
185
|
+
var obj = {};
|
|
186
|
+
obj.name = bpmUser.name;
|
|
187
|
+
obj.code = bpmUser.code;
|
|
188
|
+
obj.deptName = bpmUser.deptName;
|
|
189
|
+
this.empTableData.push(obj);
|
|
190
|
+
this.receiverIds.push(bpmUser.code);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
treeNode: {
|
|
196
|
+
deep: true,
|
|
197
|
+
handler (treeNode) {
|
|
198
|
+
this.treeClickData(treeNode);
|
|
160
199
|
}
|
|
161
200
|
}
|
|
162
201
|
},
|
|
163
202
|
//加载时调用方法 函数
|
|
164
|
-
mounted() {
|
|
203
|
+
mounted () {
|
|
165
204
|
let _this = this;
|
|
166
205
|
|
|
167
206
|
// 初始化选择数据分页
|
|
@@ -183,15 +222,53 @@ export default {
|
|
|
183
222
|
_this.cancelSelecedUser(row);
|
|
184
223
|
});
|
|
185
224
|
//监听保存按钮事件。点击后,清除已选择处理人对象
|
|
186
|
-
this.EventBus.$on('save-button-click', function() {
|
|
225
|
+
this.EventBus.$on('save-button-click', function () {
|
|
187
226
|
_this.searchName = '';
|
|
188
227
|
_this.currentPage = 1;
|
|
189
228
|
_this.multipleSelection = [];
|
|
190
229
|
});
|
|
191
230
|
},
|
|
192
231
|
methods: {
|
|
232
|
+
treeClickData (treeNode) {
|
|
233
|
+
if (treeNode) {
|
|
234
|
+
this.treeNode = treeNode;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
let _this = this;
|
|
238
|
+
let param = {
|
|
239
|
+
page: this.currentPage,
|
|
240
|
+
rows: this.pageSize,
|
|
241
|
+
deptCode: this.treeNode.code ? this.treeNode.code : this.treeNode.deptCode,
|
|
242
|
+
search: this.searchName,
|
|
243
|
+
userNames: this.receiverIds.join(',')
|
|
244
|
+
};
|
|
245
|
+
axios['bpm-engine']
|
|
246
|
+
.post(this.empUrl, param)
|
|
247
|
+
.then(function (res) {
|
|
248
|
+
if (res.success) {
|
|
249
|
+
_this.empTableData = [];
|
|
250
|
+
res.data.rows.forEach(arr => {
|
|
251
|
+
|
|
252
|
+
var obj = {};
|
|
253
|
+
obj.name = arr.name;
|
|
254
|
+
obj.code = arr.code;
|
|
255
|
+
obj.deptName = arr.deptName;
|
|
256
|
+
_this.empTableData.push(obj);
|
|
257
|
+
});
|
|
258
|
+
// _this.empTableData = res.data.rows;
|
|
259
|
+
_this.empTotal = res.data.total;
|
|
260
|
+
_this.isShowPagination = true;
|
|
261
|
+
//必须等列表重新渲染完毕,才能执行此方法。
|
|
262
|
+
|
|
263
|
+
}
|
|
264
|
+
_this.loading = false;
|
|
265
|
+
})
|
|
266
|
+
.catch(function (err) {
|
|
267
|
+
console.log(err);
|
|
268
|
+
});
|
|
269
|
+
},
|
|
193
270
|
//每页显示数据个数变化时调用
|
|
194
|
-
handleSizeChange(val) {
|
|
271
|
+
handleSizeChange (val) {
|
|
195
272
|
this.pageSize = val;
|
|
196
273
|
//点击过tree,this.treeNode.code有值进行分页
|
|
197
274
|
if (this.treeNode.code) {
|
|
@@ -201,7 +278,7 @@ export default {
|
|
|
201
278
|
this.resultDataChange();
|
|
202
279
|
}
|
|
203
280
|
},
|
|
204
|
-
searchGridData() {
|
|
281
|
+
searchGridData () {
|
|
205
282
|
this.currentPage = 1;
|
|
206
283
|
if (this.treeNode.code) {
|
|
207
284
|
this.requestGridData();
|
|
@@ -210,7 +287,7 @@ export default {
|
|
|
210
287
|
}
|
|
211
288
|
},
|
|
212
289
|
//页码变化时调用
|
|
213
|
-
handleCurrentChange(val) {
|
|
290
|
+
handleCurrentChange (val) {
|
|
214
291
|
this.currentPage = val;
|
|
215
292
|
if (this.treeNode.code) {
|
|
216
293
|
this.requestGridData();
|
|
@@ -219,15 +296,15 @@ export default {
|
|
|
219
296
|
}
|
|
220
297
|
},
|
|
221
298
|
//判断是否是选择一条数据还是取消选择
|
|
222
|
-
selectRow(select, row) {
|
|
299
|
+
selectRow (select, row) {
|
|
223
300
|
return select.some(element => {
|
|
224
301
|
if (element.code == row.code) {
|
|
225
302
|
return true;
|
|
226
303
|
}
|
|
227
304
|
});
|
|
228
305
|
},
|
|
229
|
-
resultDataChange() {
|
|
230
|
-
if (this.sourceAllData
|
|
306
|
+
resultDataChange () {
|
|
307
|
+
if (this.sourceAllData) {
|
|
231
308
|
// 按照模糊次进行匹配
|
|
232
309
|
if (this.searchName) {
|
|
233
310
|
const filteredData = this.sourceAllData.filter(item => {
|
|
@@ -238,7 +315,7 @@ export default {
|
|
|
238
315
|
});
|
|
239
316
|
this.empTotal = filteredData.length;
|
|
240
317
|
if (filteredData) {
|
|
241
|
-
|
|
318
|
+
var result = filteredData.slice(
|
|
242
319
|
this.pageSize * (this.currentPage - 1),
|
|
243
320
|
this.pageSize * this.currentPage
|
|
244
321
|
);
|
|
@@ -247,7 +324,7 @@ export default {
|
|
|
247
324
|
this.empTableData = [];
|
|
248
325
|
}
|
|
249
326
|
} else {
|
|
250
|
-
|
|
327
|
+
var result = this.sourceAllData.slice(
|
|
251
328
|
this.pageSize * (this.currentPage - 1),
|
|
252
329
|
this.pageSize * this.currentPage
|
|
253
330
|
);
|
|
@@ -263,7 +340,7 @@ export default {
|
|
|
263
340
|
this.empTotal = 0;
|
|
264
341
|
}
|
|
265
342
|
},
|
|
266
|
-
setRowChecked() {
|
|
343
|
+
setRowChecked () {
|
|
267
344
|
let _this = this;
|
|
268
345
|
this.empTableData.forEach(row => {
|
|
269
346
|
let index = _this.indexOfMultipleSelection(row);
|
|
@@ -273,7 +350,7 @@ export default {
|
|
|
273
350
|
});
|
|
274
351
|
},
|
|
275
352
|
//判断是否已经选择该条数据
|
|
276
|
-
indexOfMultipleSelection(row) {
|
|
353
|
+
indexOfMultipleSelection (row) {
|
|
277
354
|
let index = -1;
|
|
278
355
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
|
279
356
|
const element = this.multipleSelection[i];
|
|
@@ -284,7 +361,7 @@ export default {
|
|
|
284
361
|
return index;
|
|
285
362
|
},
|
|
286
363
|
//行单击事件只有单人审批是选人才生效,其他审批方式,通过checkbox生效
|
|
287
|
-
handleRowClick(row, event, column) {
|
|
364
|
+
handleRowClick (row, event, column) {
|
|
288
365
|
let _this = this;
|
|
289
366
|
let index = this.indexOfMultipleSelection(row);
|
|
290
367
|
if (this.notOnlyApprove) {
|
|
@@ -317,7 +394,7 @@ export default {
|
|
|
317
394
|
dealUserCodes: dealUserCodes.join(',')
|
|
318
395
|
});
|
|
319
396
|
},
|
|
320
|
-
handleSelect(select, row) {
|
|
397
|
+
handleSelect (select, row) {
|
|
321
398
|
if (this.selectRow(select, row)) {
|
|
322
399
|
if (this.indexOfMultipleSelection(row) == -1) {
|
|
323
400
|
this.multipleSelection.push(row);
|
|
@@ -341,7 +418,7 @@ export default {
|
|
|
341
418
|
dealUserCodes: dealUserCodes.join(',')
|
|
342
419
|
});
|
|
343
420
|
},
|
|
344
|
-
handleSelectAll(selection) {
|
|
421
|
+
handleSelectAll (selection) {
|
|
345
422
|
let _this = this;
|
|
346
423
|
if (selection == 0) {
|
|
347
424
|
this.empTableData.forEach(row => {
|
|
@@ -371,7 +448,7 @@ export default {
|
|
|
371
448
|
});
|
|
372
449
|
},
|
|
373
450
|
//请求数据
|
|
374
|
-
requestGridData() {
|
|
451
|
+
requestGridData () {
|
|
375
452
|
let _this = this;
|
|
376
453
|
let param = {
|
|
377
454
|
page: this.currentPage,
|
|
@@ -382,23 +459,22 @@ export default {
|
|
|
382
459
|
};
|
|
383
460
|
axios['bpm-engine']
|
|
384
461
|
.post(this.empUrl, param)
|
|
385
|
-
.then(function(res) {
|
|
462
|
+
.then(function (res) {
|
|
386
463
|
if (res.success) {
|
|
387
464
|
_this.empTableData = res.data.rows;
|
|
388
465
|
_this.empTotal = res.data.total;
|
|
389
466
|
//必须等列表重新渲染完毕,才能执行此方法。
|
|
390
|
-
setTimeout(function() {
|
|
467
|
+
setTimeout(function () {
|
|
391
468
|
_this.setRowStatus();
|
|
392
469
|
}, 100);
|
|
393
470
|
}
|
|
394
471
|
_this.loading = false;
|
|
395
472
|
})
|
|
396
|
-
.catch(function(err) {
|
|
473
|
+
.catch(function (err) {
|
|
397
474
|
console.log(err);
|
|
398
475
|
});
|
|
399
476
|
},
|
|
400
|
-
|
|
401
|
-
setRowStatus() {
|
|
477
|
+
setRowStatus () {
|
|
402
478
|
let _this = this;
|
|
403
479
|
this.empTableData.forEach(row => {
|
|
404
480
|
let index = _this.indexOfMultipleSelection(row);
|
|
@@ -407,7 +483,7 @@ export default {
|
|
|
407
483
|
}
|
|
408
484
|
});
|
|
409
485
|
},
|
|
410
|
-
cancelSelecedUser(row) {
|
|
486
|
+
cancelSelecedUser (row) {
|
|
411
487
|
let index = this.indexOfMultipleSelection(row);
|
|
412
488
|
if (index != -1) {
|
|
413
489
|
this.multipleSelection.splice(index, 1);
|
|
@@ -426,7 +502,7 @@ export default {
|
|
|
426
502
|
dealUserCodes: dealUserCodes.join(',')
|
|
427
503
|
});
|
|
428
504
|
},
|
|
429
|
-
getRow(code) {
|
|
505
|
+
getRow (code) {
|
|
430
506
|
let row = null;
|
|
431
507
|
for (let i = 0; i < this.empTableData.length; i++) {
|
|
432
508
|
const element = this.empTableData[i];
|
|
@@ -459,7 +535,7 @@ export default {
|
|
|
459
535
|
.table-tools-btn {
|
|
460
536
|
float: left;
|
|
461
537
|
margin-top: 5px;
|
|
462
|
-
|
|
538
|
+
padding-right: 40px;
|
|
463
539
|
padding-left: 2px;
|
|
464
540
|
}
|
|
465
541
|
.el-icon-search-button {
|
|
@@ -1,20 +1,76 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
<div style="height:100%;width:100%">
|
|
3
|
+
<el-row>
|
|
4
|
+
<el-col
|
|
5
|
+
:span="24"
|
|
6
|
+
style="padding: 4px;"
|
|
7
|
+
>
|
|
8
|
+
<el-input
|
|
9
|
+
placeholder="请输入名称或编码"
|
|
10
|
+
v-model="searchName"
|
|
11
|
+
clearable
|
|
12
|
+
@change="searchTree"
|
|
13
|
+
@keyup.enter.native="searchTree"
|
|
14
|
+
suffix-icon="el-icon-search"
|
|
15
|
+
></el-input>
|
|
16
|
+
</el-col>
|
|
17
|
+
</el-row>
|
|
18
|
+
<el-row style="overflow-y: auto;height:91%">
|
|
19
|
+
<div>
|
|
20
|
+
<el-tree
|
|
21
|
+
:data="treeNode"
|
|
22
|
+
class="flow-tree"
|
|
23
|
+
ref="tree"
|
|
24
|
+
v-show="isShow"
|
|
25
|
+
node-key="id"
|
|
26
|
+
:props="treeProps"
|
|
27
|
+
@node-click="handelrNodeClick"
|
|
28
|
+
highlight-current
|
|
29
|
+
:default-expanded-keys="defaultExpandedKeys"
|
|
30
|
+
>
|
|
31
|
+
<span
|
|
32
|
+
class="custom-tree-node cell-hidden"
|
|
33
|
+
slot-scope="{ node, data }"
|
|
34
|
+
>
|
|
35
|
+
<span
|
|
36
|
+
v-if="data.type == 0"
|
|
37
|
+
class="iconfont icon-jigou"
|
|
38
|
+
></span>
|
|
39
|
+
<span
|
|
40
|
+
v-else
|
|
41
|
+
class="iconfont icon-bumenkaoqin"
|
|
42
|
+
></span>
|
|
43
|
+
<span :title="node.label">{{ node.label }}</span>
|
|
44
|
+
</span>
|
|
45
|
+
</el-tree>
|
|
46
|
+
<el-tree
|
|
47
|
+
v-show="!isShow"
|
|
48
|
+
:data="treeNodeSearch"
|
|
49
|
+
ref="treeSearch"
|
|
50
|
+
node-key="id"
|
|
51
|
+
:props="treeProps"
|
|
52
|
+
@node-click="handelrNodeClick"
|
|
53
|
+
highlight-current
|
|
54
|
+
:default-expanded-keys="defaultExpandedKeys"
|
|
55
|
+
>
|
|
56
|
+
<span
|
|
57
|
+
class="custom-tree-node span-ellipsis"
|
|
58
|
+
slot-scope="{ node, data }"
|
|
59
|
+
>
|
|
60
|
+
<span
|
|
61
|
+
v-if="data.dLevel == 0"
|
|
62
|
+
class="iconfont icon-jigou"
|
|
63
|
+
></span>
|
|
64
|
+
<span
|
|
65
|
+
v-else
|
|
66
|
+
class="iconfont icon-bumenkaoqin"
|
|
67
|
+
></span>
|
|
68
|
+
<span :title="node.label">{{ node.label }}</span>
|
|
69
|
+
</span>
|
|
70
|
+
</el-tree>
|
|
71
|
+
</div>
|
|
72
|
+
</el-row>
|
|
73
|
+
</div>
|
|
18
74
|
</template>
|
|
19
75
|
<script>
|
|
20
76
|
import { Tree, Container } from 'element-ui';
|
|
@@ -25,17 +81,22 @@ export default {
|
|
|
25
81
|
'el-container': Container
|
|
26
82
|
},
|
|
27
83
|
//初始化数据下
|
|
28
|
-
data() {
|
|
84
|
+
data () {
|
|
29
85
|
return {
|
|
30
|
-
height: 0,
|
|
31
|
-
orgUrl: '/api/identity/bpm-dept/tree-by-deptcodes', //组织机构树接口
|
|
32
86
|
treeNode: [],
|
|
87
|
+
treeData: [],
|
|
88
|
+
defaultExpandedKeys: [],
|
|
89
|
+
treeNodeSearch: [],
|
|
90
|
+
searchName: '',
|
|
91
|
+
orgUrl: '/api/identity/bpm-dept/tree-by-deptcodes', //组织机构树接口
|
|
92
|
+
orgListUrl: "/api/identity/bpm-dept/tree-by-search", //组织机构列表筛选接口
|
|
93
|
+
isShow: true,
|
|
94
|
+
id: "-1",
|
|
33
95
|
treeProps: {
|
|
34
96
|
children: 'children',
|
|
35
97
|
label: 'name',
|
|
36
98
|
id: 'id'
|
|
37
99
|
},
|
|
38
|
-
defaultExpandedKeys: []
|
|
39
100
|
};
|
|
40
101
|
},
|
|
41
102
|
props: {
|
|
@@ -44,53 +105,82 @@ export default {
|
|
|
44
105
|
required: false
|
|
45
106
|
}
|
|
46
107
|
},
|
|
108
|
+
watch: {
|
|
109
|
+
opt: {
|
|
110
|
+
deep: true,
|
|
111
|
+
handler (opt) {
|
|
112
|
+
let _this = this;
|
|
113
|
+
let deptCodes = [];
|
|
114
|
+
opt.bpmUsers.forEach(bpmUser => {
|
|
115
|
+
if (bpmUser.deptCode && !deptCodes.includes(bpmUser.deptCode)) {
|
|
116
|
+
deptCodes.push(bpmUser.deptCode);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
axios['bpm-engine']
|
|
120
|
+
.post(this.orgUrl, { deptCodes: deptCodes.join(',') })
|
|
121
|
+
.then(function (res) {
|
|
122
|
+
|
|
123
|
+
_this.treeNode = res.data;
|
|
124
|
+
console.log(_this.treeNode);
|
|
125
|
+
_this.defaultExpandedKeys.push(res.data[0].id);
|
|
126
|
+
_this.$emit('refreshGrid', res.data[0]);
|
|
127
|
+
})
|
|
128
|
+
.catch(function (err) {
|
|
129
|
+
console.log(err);
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
immediate: true
|
|
133
|
+
},
|
|
134
|
+
treeNode: {
|
|
135
|
+
deep: true,
|
|
136
|
+
handler (treeNode) {
|
|
137
|
+
console.log("333" + treeNode);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
47
141
|
//方法
|
|
48
142
|
methods: {
|
|
49
143
|
//树节点点击事件
|
|
50
|
-
handelrNodeClick(treeNode) {
|
|
51
|
-
this
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (bpmUser.deptCode && !deptCodes.includes(bpmUser.deptCode)) {
|
|
61
|
-
deptCodes.push(bpmUser.deptCode);
|
|
144
|
+
handelrNodeClick (treeNode) {
|
|
145
|
+
this.$emit('refreshGrid', treeNode);
|
|
146
|
+
},
|
|
147
|
+
searchTree () {
|
|
148
|
+
let _this = this;
|
|
149
|
+
if (_this.searchName == null || _this.searchName == '') {
|
|
150
|
+
_this.treeNodeSearch = [];
|
|
151
|
+
_this.isShow = true;
|
|
152
|
+
_this.$emit('refreshGrid', this.treeNode[0]);
|
|
153
|
+
return
|
|
62
154
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})
|
|
70
|
-
.catch(function(err) {
|
|
71
|
-
console.log(err);
|
|
155
|
+
|
|
156
|
+
let deptCodes = [];
|
|
157
|
+
this.opt.bpmUsers.forEach(bpmUser => {
|
|
158
|
+
if (bpmUser.deptCode && !deptCodes.includes(bpmUser.deptCode)) {
|
|
159
|
+
deptCodes.push(bpmUser.deptCode);
|
|
160
|
+
}
|
|
72
161
|
});
|
|
162
|
+
_this.isShow = false;
|
|
163
|
+
axios['bpm-engine']
|
|
164
|
+
.post(this.orgListUrl, {
|
|
165
|
+
search: this.searchName,
|
|
166
|
+
deptCodes: deptCodes.join(',')
|
|
167
|
+
})
|
|
168
|
+
.then(function (res) {
|
|
169
|
+
_this.treeNodeSearch = res.data;
|
|
170
|
+
_this.$nextTick(() => {
|
|
171
|
+
_this.$refs.treeSearch.setCurrentKey(res.data[0].id);
|
|
172
|
+
});
|
|
173
|
+
_this.handelrNodeClick(res.data[0]);
|
|
174
|
+
|
|
175
|
+
})
|
|
176
|
+
.catch(function (err) {
|
|
177
|
+
console.log(err);
|
|
178
|
+
});
|
|
179
|
+
},
|
|
73
180
|
},
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// let _this = this;
|
|
78
|
-
// let deptCodes = [];
|
|
79
|
-
// this.opt.bpmUsers.forEach(bpmUser => {
|
|
80
|
-
// if (bpmUser.deptCodes && !deptCodes.includes(bpmUser.deptCodes)) {
|
|
81
|
-
// deptCodes.push(bpmUser.deptCodes);
|
|
82
|
-
// }
|
|
83
|
-
// });
|
|
84
|
-
// axios['bpm-engine']
|
|
85
|
-
// .post(this.orgUrl, { deptCodes: deptCodes.join(',') })
|
|
86
|
-
// .then(function(res) {
|
|
87
|
-
// _this.treeNode = res.data;
|
|
88
|
-
// })
|
|
89
|
-
// .catch(function(err) {
|
|
90
|
-
// console.log(err);
|
|
91
|
-
// });
|
|
92
|
-
// }
|
|
93
|
-
}
|
|
181
|
+
//页面渲染之前调用方法 函数
|
|
182
|
+
created () { },
|
|
183
|
+
mounted () { },
|
|
94
184
|
};
|
|
95
185
|
</script>
|
|
96
186
|
<style></style>
|
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
<el-aside style="height:456px;width:65%;margin-right: 0px;margin-left: 0px;background-color: #e8ecf3">
|
|
4
4
|
<el-container>
|
|
5
5
|
<el-aside style="height:456px;width: 40%;max-width: 400px;padding-top:5px;margin:0px;border-radius: 0px;">
|
|
6
|
-
<v-tree
|
|
6
|
+
<v-tree
|
|
7
|
+
:opt="nextNode"
|
|
8
|
+
@refreshGrid="treeClickData"
|
|
9
|
+
/>
|
|
7
10
|
</el-aside>
|
|
8
11
|
<el-main style="height:456px;width:45%;padding: 0px;margin-left:2px">
|
|
9
|
-
<v-source-grid
|
|
12
|
+
<v-source-grid
|
|
13
|
+
:opt="nextNode"
|
|
14
|
+
:treeNode="treeNode"
|
|
15
|
+
/>
|
|
10
16
|
</el-main>
|
|
11
17
|
</el-container>
|
|
12
18
|
</el-aside>
|
|
@@ -37,15 +43,21 @@ export default {
|
|
|
37
43
|
'el-main': Main,
|
|
38
44
|
'el-container': Container
|
|
39
45
|
},
|
|
40
|
-
data() {
|
|
46
|
+
data () {
|
|
41
47
|
return {
|
|
42
48
|
opt: {
|
|
43
49
|
maxHeight: '483px'
|
|
44
|
-
}
|
|
50
|
+
},
|
|
51
|
+
treeNode: {},
|
|
45
52
|
};
|
|
46
53
|
},
|
|
47
|
-
created() {
|
|
54
|
+
created () {
|
|
48
55
|
this.maxHeight = window.outerHeight > 900 ? '483px' : '361px';
|
|
56
|
+
},
|
|
57
|
+
methods: {
|
|
58
|
+
treeClickData (treeNode) {
|
|
59
|
+
this.treeNode = treeNode;
|
|
60
|
+
}
|
|
49
61
|
}
|
|
50
62
|
};
|
|
51
63
|
</script>
|
|
@@ -48,9 +48,9 @@ var base_zh = {
|
|
|
48
48
|
please_select: '请选择',
|
|
49
49
|
for_personnel: '待选列表',
|
|
50
50
|
selected_personnel_list: '已选列表',
|
|
51
|
-
name: '
|
|
52
|
-
coding: '
|
|
53
|
-
department: '
|
|
51
|
+
name: '人员姓名',
|
|
52
|
+
coding: '人员编码',
|
|
53
|
+
department: '部门名称',
|
|
54
54
|
please_personnel: '请选择人员'
|
|
55
55
|
},
|
|
56
56
|
back_anyLink: {
|
|
@@ -60,9 +60,9 @@ var base_zh = {
|
|
|
60
60
|
please_select: '请选择',
|
|
61
61
|
for_personnel: '待选列表',
|
|
62
62
|
selected_personnel_list: '已选列表',
|
|
63
|
-
name: '
|
|
64
|
-
coding: '
|
|
65
|
-
department: '
|
|
63
|
+
name: '人员姓名',
|
|
64
|
+
coding: '人员编码',
|
|
65
|
+
department: '部门名称',
|
|
66
66
|
please_personnel: '请选择人员'
|
|
67
67
|
},
|
|
68
68
|
jump_latest: {
|