cloud-module-bpm 6.2.6

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