cloud-module-bpm 6.3.0

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.
Files changed (68) hide show
  1. package/README.md +20 -0
  2. package/babel.config.js +3 -0
  3. package/dist/cloud-module-bpm.common.js +104959 -0
  4. package/dist/cloud-module-bpm.common.js.map +1 -0
  5. package/dist/cloud-module-bpm.css +1 -0
  6. package/dist/cloud-module-bpm.umd.js +104969 -0
  7. package/dist/cloud-module-bpm.umd.js.map +1 -0
  8. package/dist/cloud-module-bpm.umd.min.js +48 -0
  9. package/dist/cloud-module-bpm.umd.min.js.map +1 -0
  10. package/dist/demo.html +10 -0
  11. package/dist/fonts/element-icons.535877f5.woff +0 -0
  12. package/dist/fonts/element-icons.732389de.ttf +0 -0
  13. package/examples/App.vue +221 -0
  14. package/examples/main.js +17 -0
  15. package/package.json +66 -0
  16. package/packages/bpm-back-anylink-dialog/bpm-back-anylink-dialog.vue +377 -0
  17. package/packages/bpm-back-anylink-dialog/index.js +7 -0
  18. package/packages/bpm-back-anylink-dialog/readme.md +1 -0
  19. package/packages/bpm-form-tools/bpm-form-tools.vue +216 -0
  20. package/packages/bpm-form-tools/index.js +7 -0
  21. package/packages/bpm-form-tools/readme.md +5 -0
  22. package/packages/bpm-grid-buttons/bpm-grid-buttons.vue +140 -0
  23. package/packages/bpm-grid-buttons/index.js +7 -0
  24. package/packages/bpm-grid-buttons/readme.md +5 -0
  25. package/packages/bpm-grid-buttons-new/bpm-grid-buttons-new.vue +189 -0
  26. package/packages/bpm-grid-buttons-new/index.js +7 -0
  27. package/packages/bpm-grid-buttons-new/readme.md +8 -0
  28. package/packages/bpm-jump-dialog/bpm-jump-dialog.vue +311 -0
  29. package/packages/bpm-jump-dialog/index.js +7 -0
  30. package/packages/bpm-jump-dialog/readme.md +1 -0
  31. package/packages/bpm-jump-latest-dialog/Tree.vue +91 -0
  32. package/packages/bpm-jump-latest-dialog/bpm-jump-latest-dialog.vue +453 -0
  33. package/packages/bpm-jump-latest-dialog/index.js +7 -0
  34. package/packages/bpm-jump-latest-dialog/readme.md +1 -0
  35. package/packages/bpm-opinion-dialog/bpm-opinion.vue +291 -0
  36. package/packages/bpm-opinion-dialog/index.js +7 -0
  37. package/packages/bpm-proctrack-dialog/bpm-proctrack.vue +102 -0
  38. package/packages/bpm-proctrack-dialog/index.js +7 -0
  39. package/packages/bpm-send-read-dialog/SelectedGrid.vue +99 -0
  40. package/packages/bpm-send-read-dialog/SourceGrid.vue +396 -0
  41. package/packages/bpm-send-read-dialog/Tree.vue +74 -0
  42. package/packages/bpm-send-read-dialog/bpm-next-node.vue +51 -0
  43. package/packages/bpm-send-read-dialog/bpm-send-read.vue +100 -0
  44. package/packages/bpm-send-read-dialog/index.js +7 -0
  45. package/packages/bpm-send-read-opinion-dialog/bpm-send-read-opinion.vue +261 -0
  46. package/packages/bpm-send-read-opinion-dialog/index.js +7 -0
  47. package/packages/bpm-sign-dialog/SelectedGrid.vue +102 -0
  48. package/packages/bpm-sign-dialog/SourceGrid.vue +413 -0
  49. package/packages/bpm-sign-dialog/Tree.vue +197 -0
  50. package/packages/bpm-sign-dialog/bpm-next-node.vue +57 -0
  51. package/packages/bpm-sign-dialog/bpm-sign-select.vue +116 -0
  52. package/packages/bpm-sign-dialog/index.js +7 -0
  53. package/packages/bpm-sign-opinion-dialog/bpm-sign-opinion.vue +259 -0
  54. package/packages/bpm-sign-opinion-dialog/index.js +7 -0
  55. package/packages/bpm-user-select-dialog/SelectedGrid.vue +155 -0
  56. package/packages/bpm-user-select-dialog/SourceGrid.vue +419 -0
  57. package/packages/bpm-user-select-dialog/Tree.vue +98 -0
  58. package/packages/bpm-user-select-dialog/bpm-next-node.vue +51 -0
  59. package/packages/bpm-user-select-dialog/bpm-user-select.vue +108 -0
  60. package/packages/bpm-user-select-dialog/index.js +7 -0
  61. package/packages/i18n/i18n.js +15 -0
  62. package/packages/i18n/langs/en_US.js +42 -0
  63. package/packages/i18n/langs/index.js +6 -0
  64. package/packages/i18n/langs/zh_CN.js +86 -0
  65. package/packages/index.js +48 -0
  66. package/packages/utils/merit-bpm.js +900 -0
  67. package/public/favicon.ico +0 -0
  68. package/vue.config.js +55 -0
@@ -0,0 +1,413 @@
1
+ <template>
2
+ <div>
3
+ <el-row justify="space-between" style="padding: 5px;">
4
+ <el-col
5
+ :span="7"
6
+ style="float: left;padding-right: 40px;margin-top: 5px;padding-left: 2px;"
7
+ >{{ $t('base.list_alternatives') }}</el-col
8
+ >
9
+ <el-col :span="17" style="float:right;">
10
+ <el-input
11
+ placeholder="请输入姓名或编码"
12
+ v-model="searchName"
13
+ clearable
14
+ @change="requestGridData"
15
+ >
16
+ <el-button
17
+ class="el-icon-search-button"
18
+ slot="append"
19
+ icon="el-icon-search"
20
+ @click="requestGridData"
21
+ ></el-button>
22
+ </el-input>
23
+ </el-col>
24
+ </el-row>
25
+ <el-table
26
+ ref="sourceGrid"
27
+ :data="empTableData"
28
+ stripe
29
+ :ruleEngine="ruleEngine"
30
+ :height="tableHeight"
31
+ style="width: 100%;"
32
+ :element-loading-text="$t('base.table.loading')"
33
+ element-loading-spinner="el-icon-loading"
34
+ element-loading-background="rgba(255, 255, 255, 0.8)"
35
+ @select-all="handleSelectAll"
36
+ @select="handleSelect"
37
+ @row-click="handleRowClick"
38
+ >
39
+ <div class=""></div>
40
+ <el-table-column style="height: 18px" v-if="notOnlyApprove" type="selection"></el-table-column>
41
+ <el-table-column prop="name" :label="$t('base.user.name')" fit="true">
42
+ <template slot-scope="scope">
43
+ <div :title="scope.row.name" class="cell-hidden">
44
+ {{ scope.row.name }}
45
+ </div>
46
+ </template>
47
+ </el-table-column>
48
+ <el-table-column
49
+ prop="code"
50
+ :label="$t('base.user.user_name')"
51
+ fit="true"
52
+ >
53
+ <template slot-scope="scope">
54
+ <div :title="scope.row.code" class="cell-hidden">
55
+ {{ scope.row.code }}
56
+ </div>
57
+ </template>
58
+ </el-table-column>
59
+ <el-table-column prop="deptName" :label="$t('base.dept.name')" fit="true">
60
+ <template slot-scope="scope">
61
+ <div :title="scope.row.deptName" class="cell-hidden">
62
+ {{ scope.row.deptName }}
63
+ </div>
64
+ </template>
65
+ </el-table-column>
66
+ </el-table>
67
+ <el-pagination
68
+ class="SourceGrid"
69
+ @size-change="handleSizeChange"
70
+ @current-change="handleCurrentChange"
71
+ :current-page="currentPage"
72
+ :page-size="pageSize"
73
+ layout="total, prev, pager, next"
74
+ :total="empTotal"
75
+ :pager-count="pagerCount"
76
+ ></el-pagination>
77
+ </div>
78
+ </template>
79
+
80
+ <script>
81
+ import {
82
+ Main,
83
+ Container,
84
+ Row,
85
+ Col,
86
+ Table,
87
+ TableColumn,
88
+ Pagination,
89
+ Input,
90
+ Button
91
+ } from 'element-ui';
92
+ import axios from 'cloud-module-base/packages/httpConfig/http';
93
+ export default {
94
+ props: {
95
+ opt: {
96
+ type: Object,
97
+ required: true
98
+ }
99
+ },
100
+ components: {
101
+ 'el-main': Main,
102
+ 'el-container': Container,
103
+ 'el-row': Row,
104
+ 'el-col': Col,
105
+ 'el-table': Table,
106
+ 'el-table-column': TableColumn,
107
+ 'el-pagination': Pagination,
108
+ 'el-input': Input,
109
+ 'el-button': Button
110
+ },
111
+ data() {
112
+ return {
113
+ signUsersUrl: '/api/engine/bpm/process/getSignUsers',//add by zhang
114
+ searchName: '',
115
+ multipleSelection: [],
116
+ tableHeight: 375,
117
+ currentPage: 1,
118
+ pageSize: 10,
119
+ pagerCount: 5,
120
+ treeNode: {},
121
+ empTableData: [],
122
+ sourceAllData: [],
123
+ empTotal: 0,
124
+ loading: false,
125
+ receiverIds: [],
126
+ ruleEngine:{}
127
+ };
128
+ },
129
+ computed: {
130
+ // 是否是单人审批,如果不是单人审批则展示多选框
131
+ notOnlyApprove() {
132
+ return this.opt.approveType != 'onlyApprove';
133
+ }
134
+ },
135
+ created() {
136
+ // this.tableHeight = window.outerHeight > 900 ? 385 : 265;
137
+ this.opt.nextNodes.forEach(bpmUser => {
138
+ this.receiverIds.push(bpmUser.code);
139
+ });
140
+
141
+ },
142
+ watch: {
143
+ 'opt.nextNodes'(old, newVal) {
144
+ this.empTableData = this.opt.nextNodes;
145
+ this.empTotal = this.opt.nextNodes.length;
146
+ this.opt.nextNodes.forEach(bpmUser => {
147
+ this.receiverIds.push(bpmUser.code);
148
+ });
149
+ this.ruleEngine = this.opt.temRuleEngine;
150
+ }
151
+ },
152
+ //加载时调用方法 函数
153
+ mounted() {
154
+ let _this = this;
155
+
156
+ // this.empTableData = this.opt;
157
+ // this.empTableData = this.opt.bpmUsers;
158
+ // 初始化选择数据分页
159
+ this.sourceAllData = this.opt.nextNodes;
160
+ if (!this.treeNode.code) {
161
+ this.resultDataChange();
162
+ }
163
+ this.empTotal = this.opt.nextNodes.length;
164
+ //点击树节点,刷新待选列表
165
+ this.EventBus.$on('refresh-source-grid', treeNode => {
166
+ _this.pageSize = 10;
167
+ _this.currentPage = 1;
168
+ _this.treeNode = treeNode.attributes || treeNode;
169
+ _this.requestGridData();
170
+ });
171
+ //点击已选列表,取消刷新列表选择
172
+ this.EventBus.$on('cancel-seleced-user', row => {
173
+ _this.cancelSelecedUser(row);
174
+ });
175
+ //监听保存按钮事件。点击后,清除已选择处理人对象
176
+ this.EventBus.$on('save-button-click', function() {
177
+ _this.searchName = '';
178
+ _this.multipleSelection = [];
179
+ });
180
+ },
181
+ methods: {
182
+ //每页显示数据个数变化时调用
183
+ handleSizeChange(val) {
184
+ this.pageSize = val;
185
+ //点击过tree,this.treeNode.code有值进行分页
186
+ if (this.treeNode.code ) {
187
+ this.requestGridData();
188
+ }
189
+ },
190
+ //页码变化时调用
191
+ handleCurrentChange(val) {
192
+ this.currentPage = val;
193
+ //点击过tree,this.treeNode.code有值进行分页
194
+ if (val) {
195
+ this.requestGridData();
196
+ }
197
+ },
198
+ //判断是否是选择一条数据还是取消选择
199
+ selectRow(select, row) {
200
+ return select.some(element => {
201
+ if (element.code == row.code) {
202
+ return true;
203
+ }
204
+ });
205
+ },
206
+ resultDataChange() {
207
+ if (this.sourceAllData) {
208
+ var result = this.sourceAllData.slice(
209
+ this.pageSize * (this.currentPage - 1),
210
+ this.pageSize * this.currentPage
211
+ );
212
+ this.empTableData = result;
213
+ } else {
214
+ this.empTableData = [];
215
+ }
216
+ },
217
+ //判断是否已经选择该条数据
218
+ indexOfMultipleSelection(row) {
219
+ var index = -1;
220
+ var _this = this;
221
+ if (_this.multipleSelection.length > 0) {
222
+ for (var i = 0; i < _this.multipleSelection.length; i++) {
223
+ if (_this.multipleSelection[i].code == row.code) {
224
+ index = i;
225
+ return index;
226
+ }
227
+ }
228
+ }
229
+ return index;
230
+ },
231
+ //行单击事件只有单人审批是选人才生效,其他审批方式,通过checkbox生效
232
+ handleRowClick(row, event, column) {
233
+ let _this = this;
234
+ let index = this.indexOfMultipleSelection(row);
235
+ if(this.notOnlyApprove) {
236
+ this.$refs.sourceGrid.toggleRowSelection(row);
237
+ if (index != -1) {
238
+ this.multipleSelection.splice(index, 1);
239
+ } else {
240
+ this.multipleSelection.push(row);
241
+ }
242
+ } else {
243
+ this.multipleSelection.forEach(element => {
244
+ _this.$refs.sourceGrid.toggleRowSelection(element, false);
245
+ });
246
+ this.multipleSelection = [];
247
+ if (index == -1) {
248
+ this.$refs.sourceGrid.toggleRowSelection(row, true);
249
+ this.multipleSelection.push(row);
250
+ }
251
+ }
252
+
253
+ let dealUserCodes = {};
254
+ this.multipleSelection.forEach(element => {
255
+ dealUserCodes[element.code] = element.name;
256
+ });
257
+ this.EventBus.$emit('refresh-selected-grid', this.multipleSelection);
258
+ this.EventBus.$emit('update-selected-user', {
259
+ dealUserCodes: dealUserCodes
260
+ });
261
+ },
262
+ handleSelect(select, row) {
263
+ if (this.selectRow(select, row)) {
264
+ if (this.indexOfMultipleSelection(row) == -1) {
265
+ this.multipleSelection.push(row);
266
+ }
267
+ } else {
268
+ let index = this.indexOfMultipleSelection(row);
269
+ if (index != -1) {
270
+ this.multipleSelection.splice(index, 1);
271
+ }
272
+ }
273
+ let dealUserCodes = {};
274
+ this.multipleSelection.forEach(element => {
275
+ dealUserCodes[element.code] = element.name;
276
+ });
277
+ this.EventBus.$emit('refresh-selected-grid', this.multipleSelection);
278
+ this.EventBus.$emit('update-selected-user', {
279
+ dealUserCodes: dealUserCodes
280
+ });
281
+ },
282
+ handleSelectAll(selection) {
283
+ if (selection.length == 0) {
284
+ this.empTableData.forEach(row => {
285
+ let index = this.indexOfMultipleSelection(row);
286
+ if (index != -1) {
287
+ this.multipleSelection.splice(index, 1);
288
+ }
289
+ });
290
+ } else {
291
+ selection.forEach(row => {
292
+ if (this.indexOfMultipleSelection(row) == -1) {
293
+ this.multipleSelection.push(row);
294
+ }
295
+ });
296
+ }
297
+
298
+ let dealUserCodes = {};
299
+ this.multipleSelection.forEach(element => {
300
+ dealUserCodes[element.code] = element.name;
301
+ });
302
+ this.EventBus.$emit('refresh-selected-grid' ,this.multipleSelection);
303
+ this.EventBus.$emit('update-selected-user', {
304
+ dealUserCodes: dealUserCodes
305
+ });
306
+ },
307
+ //请求数据
308
+ requestGridData() {
309
+ let _this = this;
310
+ let param = {
311
+ page: this.currentPage,
312
+ rows: this.pageSize,
313
+ deptCode: this.treeNode.code,
314
+ searchName: this.searchName,
315
+ rootId: this.treeNode.id,
316
+ dLevelCode: this.treeNode.dLevelCode
317
+ };
318
+ axios['bpm-engine']
319
+ .post(_this.signUsersUrl + '/' + _this.ruleEngine.procInstId, param)
320
+ .then(function(res) {
321
+ if (res.success) {
322
+ _this.empTableData = res.data.rows;
323
+ _this.empTotal = res.data.total;
324
+ //必须等列表重新渲染完毕,才能执行此方法。
325
+ setTimeout(function() {
326
+ _this.setRowStatus();
327
+ }, 100);
328
+ }
329
+ _this.loading = false;
330
+ })
331
+ .catch(function(err) {
332
+ console.log(err);
333
+ });
334
+ },
335
+ setRowStatus() {
336
+ let _this = this;
337
+ this.empTableData.forEach(row => {
338
+ let index = _this.indexOfMultipleSelection(row);
339
+ if (index != -1) {
340
+ _this.$refs.sourceGrid.toggleRowSelection(row, true);
341
+ }
342
+ });
343
+ },
344
+ cancelSelecedUser(row) {
345
+ //取消已选中的
346
+ let index = this.indexOfMultipleSelection(row);
347
+ if (index != -1) {
348
+ this.multipleSelection.splice(index, 1);
349
+ }
350
+ //更新待选的人员
351
+ for (var i = 0; i < this.empTableData.length; i++) {
352
+ if (this.empTableData[i].code == row.code) {
353
+ this.$refs.sourceGrid.toggleRowSelection(
354
+ this.empTableData[i],
355
+ false
356
+ );
357
+ }
358
+ }
359
+ // this.$refs.sourceGrid.toggleRowSelection(row);
360
+ let dealUserCodes = {};
361
+ this.multipleSelection.forEach(element => {
362
+ dealUserCodes[element.code] = element.name;
363
+ });
364
+ this.EventBus.$emit('update-selected-user', {
365
+ dealUserCodes: dealUserCodes
366
+ });
367
+ }
368
+ }
369
+ };
370
+ </script>
371
+ <style lang="less" scoped>
372
+ .el-pagination {
373
+ position: unset !important;
374
+ }
375
+ .el-table__empty-block {
376
+ width: 100%;
377
+ overflow-x: hidden;
378
+ }
379
+ .el-pagination {
380
+ position: absolute;
381
+ right: 40px;
382
+ margin: 5px auto;
383
+ }
384
+ .el-table th {
385
+ background-color: #fff;
386
+ }
387
+ .table-tools-btn {
388
+ float: left;
389
+ margin-top: 5px;
390
+ padding-right: 40px;
391
+ padding-left: 2px;
392
+ }
393
+ .el-icon-search-button {
394
+ padding: 0 10px;
395
+ margin: -17px -17px;
396
+ }
397
+ .filter-tree {
398
+ width: 100%;
399
+ }
400
+ .span-ellipsis {
401
+ text-align: left;
402
+ width: 100%;
403
+ overflow: hidden;
404
+ white-space: nowrap;
405
+ text-overflow: ellipsis;
406
+ }
407
+ .el-table--scrollable-x .el-table__body-wrapper {
408
+ overflow-x: hidden !important;
409
+ }
410
+ .el-table th {
411
+ background-color: #fff;
412
+ }
413
+ </style>
@@ -0,0 +1,197 @@
1
+ <template>
2
+ <div style="height:100%;width:100%">
3
+ <el-row>
4
+ <el-col :span="24" style="padding: 4px;">
5
+ <el-input
6
+ placeholder="请输入名称或编码"
7
+ v-model="searchName"
8
+ clearable
9
+ @clear="restart"
10
+ @change="searchTree"
11
+ @keyup.enter.native="searchTree"
12
+ suffix-icon="el-icon-search"
13
+ ></el-input>
14
+ </el-col>
15
+ </el-row>
16
+ <el-row style="height:calc(100% - 36px);overflow-y: auto;">
17
+ <div>
18
+ <el-tree
19
+ v-show="isShow"
20
+ :data="treeNode"
21
+ style="height:395px!important;"
22
+ class="flow-tree"
23
+ ref="tree"
24
+ node-key="id"
25
+ :props="treeProps"
26
+ @node-click="handelrNodeClick"
27
+ highlight-current
28
+ :default-expanded-keys="defaultExpandedKeys"
29
+ >
30
+ <span class="custom-tree-node cell-hidden" slot-scope="{ node, data }">
31
+ <span v-if="data.type == 0" class="iconfont icon-jigou"></span>
32
+ <span v-else class="iconfont icon-bumenkaoqin"></span>
33
+ <span :title="node.label">{{ node.label }}</span>
34
+ </span>
35
+
36
+ </el-tree>
37
+ <el-tree
38
+ v-show="!isShow"
39
+ :data="treeNodeSearch"
40
+ ref="treeSearch"
41
+ node-key="id"
42
+ :props="treeProps"
43
+ @node-click="handelrNodeClick"
44
+ highlight-current
45
+ :default-expanded-keys="defaultExpandedKeys"
46
+ >
47
+ <span class="custom-tree-node span-ellipsis" slot-scope="{ node, data }">
48
+ <span v-if="data.dLevel == 0" class="iconfont icon-jigou"></span>
49
+ <span v-else class="iconfont icon-bumenkaoqin"></span>
50
+ <span :title="node.label">{{ node.label }}</span>
51
+ </span>
52
+ </el-tree>
53
+ </div>
54
+ </el-row>
55
+ </div>
56
+ </template>
57
+ <script>
58
+ import { Tree, Container } from "element-ui";
59
+ import axios from "cloud-module-base/packages/httpConfig/http";
60
+ export default {
61
+ components: {
62
+ "el-tree": Tree,
63
+ "el-container": Container
64
+ },
65
+ //初始化数据
66
+ data() {
67
+ return {
68
+ height: 0,
69
+ orgUrl: "/api/identity/bpm-dept/tree-by-deptcodes", //组织机构树接口
70
+ orgListUrl: "/cloud-system-manage/api/ou/org/list", //组织机构列表筛选接口
71
+ treeNode: [],
72
+ searchName: '',
73
+ currentPage: 1,
74
+ pageSize: 10,
75
+ treeNodeSearch: [],
76
+ defaultExpandedKeys: [],
77
+
78
+ treeProps: {
79
+ children: "children",
80
+ label: "name",
81
+ id: "id"
82
+ },
83
+ resultData:{
84
+ nextNodes: [],
85
+ },
86
+ ruleEngine:{},
87
+ isShow: true
88
+ };
89
+ },
90
+ props: {
91
+ opt: {
92
+ type: Object,
93
+ required: false
94
+ }
95
+ },
96
+
97
+ //方法
98
+ methods: {
99
+ //树节点点击事件
100
+ handelrNodeClick(treeNode) {
101
+ this.EventBus.$emit("refresh-source-grid", treeNode);
102
+ },
103
+ restart(){
104
+ let _this = this;
105
+ let param = {
106
+ page: this.currentPage,
107
+ rows: this.pageSize,
108
+ };
109
+ _this.EventBus.$emit('refresh-source-grid', param);
110
+ },
111
+ searchTree() {
112
+ let _this = this;
113
+ if (_this.searchName == null || _this.searchName == '') {
114
+ _this.treeNodeSearch = [];
115
+ _this.isShow = true;
116
+ return;
117
+ }
118
+ axios['default']
119
+ .post(this.orgListUrl, {
120
+ search: this.searchName,
121
+ page: 1,
122
+ rows: 1000
123
+ })
124
+ .then(function(res) {
125
+ if (res.data.total > 0) {
126
+ _this.treeNodeSearch = res.data.rows;
127
+ console.log(222)
128
+ console.log(_this)
129
+ console.log(222)
130
+ _this.$nextTick(() => {
131
+ _this.$refs.treeSearch.setCurrentKey(res.data.rows[0].id);
132
+ });
133
+ _this.handelrNodeClick(res.data.rows[0]);
134
+ } else {
135
+ _this.treeNodeSearch = [];
136
+ }
137
+ _this.isShow = false;
138
+ })
139
+ .catch(function(err) {
140
+ console.log(err);
141
+ });
142
+ }
143
+ },
144
+ //页面渲染之前调用方法 函数
145
+ created() {
146
+ },
147
+ mounted() {
148
+ let _this = this;
149
+ let deptCodes = [];
150
+ this.opt.alldeptcodes.forEach(bpmUser => {
151
+ if (bpmUser.deptCode && !deptCodes.includes(bpmUser.deptCode)) {
152
+ deptCodes.push(bpmUser.deptCode);
153
+ }
154
+ });
155
+ axios['bpm-engine']
156
+ .post(this.orgUrl, { deptCodes: deptCodes.join(',') })
157
+ .then(function(res) {
158
+ _this.treeNode = res.data;
159
+ _this.defaultExpandedKeys.push(res.data[0].id);
160
+ })
161
+ .catch(function(err) {
162
+ console.log(err);
163
+ });
164
+ this.EventBus.$on('reset-checked-node', () => {
165
+ _this.searchName = '';
166
+ if (_this.$refs.tree) {
167
+ _this.$refs.tree.setCurrentKey(_this.$refs.tree.defaultExpandedKeys[0]);
168
+ _this.EventBus.$emit('refresh-source-grid', _this.$refs.tree.getCurrentNode());
169
+ }
170
+ });
171
+ },
172
+ //页面渲染完成调用方法 函数
173
+ watch: {
174
+ 'opt.alldeptcodes'(old, newVal) {
175
+ let _this = this;
176
+ let deptCodes = [];
177
+ this.opt.alldeptcodes.forEach(bpmUser => {
178
+ if (bpmUser.deptCode && !deptCodes.includes(bpmUser.deptCode)) {
179
+ deptCodes.push(bpmUser.deptCode);
180
+ }
181
+ });
182
+ axios['bpm-engine']
183
+ .post(this.orgUrl, { deptCodes: deptCodes.join(',') })
184
+ .then(function(res) {
185
+ _this.treeNode = res.data;
186
+ _this.defaultExpandedKeys.push(res.data[0].id);
187
+ })
188
+ .catch(function(err) {
189
+ console.log(err);
190
+ });
191
+ this.ruleEngine = this.opt.temRuleEngine;
192
+ }
193
+ }
194
+
195
+ };
196
+ </script>
197
+ <style></style>