@lambo-design/workflow-approve 1.0.0-beta.54 → 1.0.0-beta.56
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/package.json +1 -1
- package/src/components/assignee-box.vue +696 -694
- package/src/components/candidate-groups-box.vue +103 -201
- package/src/components/history.vue +7 -3
- package/src/portrait.vue +408 -279
- package/src/workflow-diagram.vue +10 -0
package/src/portrait.vue
CHANGED
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
<Title
|
|
27
27
|
v-if="handleButtons && (handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile'))">
|
|
28
28
|
<a style="color: #989898">
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
<Icon v-if="auditShow" type="ios-arrow-down"/>
|
|
30
|
+
<Icon v-if="!auditShow" type="ios-arrow-up"/>
|
|
31
|
+
{{ handleName }}信息
|
|
32
32
|
</a>
|
|
33
33
|
</Title>
|
|
34
34
|
</a>
|
|
@@ -64,13 +64,14 @@
|
|
|
64
64
|
<Title
|
|
65
65
|
v-if="handleButtons && (handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile'))">
|
|
66
66
|
<a style="color: #989898">
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
<Icon v-if="auditShow" type="ios-arrow-down"/>
|
|
68
|
+
<Icon v-if="!auditShow" type="ios-arrow-up"/>
|
|
69
|
+
{{ handleName }}信息
|
|
70
70
|
</a>
|
|
71
71
|
</Title>
|
|
72
72
|
</a>
|
|
73
|
-
<transition v-if="taskNode && isDetail && hisAuditOpinion[0].auditOpinion" name="draw"
|
|
73
|
+
<transition v-if="taskNode && isDetail && hisAuditOpinion[0].auditOpinion" name="draw"
|
|
74
|
+
@before-enter="beforeEnter"
|
|
74
75
|
@enter="enter" @before-leave="beforeLeave" @leave="leave">
|
|
75
76
|
<div class="box" v-show="auditShow">
|
|
76
77
|
<Form ref="auditOpinion" justify="center" :model="form"
|
|
@@ -91,9 +92,9 @@
|
|
|
91
92
|
<a @click="historyShow = !historyShow">
|
|
92
93
|
<Title v-if="handleButtons && handleButtons.includes('auditHistory')">
|
|
93
94
|
<a style="color: #989898">
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
<Icon v-if="historyShow" type="ios-arrow-down"/>
|
|
96
|
+
<Icon v-if="!historyShow" type="ios-arrow-up"/>
|
|
97
|
+
{{ handleName }}记录
|
|
97
98
|
</a>
|
|
98
99
|
</Title>
|
|
99
100
|
</a>
|
|
@@ -101,7 +102,8 @@
|
|
|
101
102
|
<div class="box" v-show="historyShow">
|
|
102
103
|
<Card class="process-history" :style="processHistoryHeight" dis-hover :bordered="false"
|
|
103
104
|
v-if="handleButtons && handleButtons.includes('auditHistory')">
|
|
104
|
-
<processHistory :portrait-width="portraitWidth" :list="processHistory" :done-page="isDetail"
|
|
105
|
+
<processHistory :portrait-width="portraitWidth" :list="processHistory" :done-page="isDetail"
|
|
106
|
+
:push-button="pushButton"
|
|
105
107
|
:smart-flow-server-context="smartFlowServerContext"></processHistory>
|
|
106
108
|
</Card>
|
|
107
109
|
</div>
|
|
@@ -110,9 +112,9 @@
|
|
|
110
112
|
<a @click="attachListShow = !attachListShow">
|
|
111
113
|
<Title v-if="handleButtons && handleButtons.includes('attachmentFile') && attachmentList.length > 0">
|
|
112
114
|
<a style="color: #989898">
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
<Icon v-if="attachListShow" type="ios-arrow-down"/>
|
|
116
|
+
<Icon v-if="!attachListShow" type="ios-arrow-up"/>
|
|
117
|
+
查看附件
|
|
116
118
|
</a>
|
|
117
119
|
</Title>
|
|
118
120
|
</a>
|
|
@@ -202,13 +204,15 @@
|
|
|
202
204
|
</Table>
|
|
203
205
|
</Modal>
|
|
204
206
|
<assigneeBox ref="assigneeHelpBox" :execution-completed="executionCompleted"
|
|
205
|
-
@update-selected="handleSelectedUser" @update-next-node-assignee="updateNextNodeAssignee"
|
|
207
|
+
@update-selected="handleSelectedUser" @update-next-node-assignee="updateNextNodeAssignee"
|
|
208
|
+
@add-multitask-instance="addMultitaskInstance" @delegate-task-assignee="delegateTask"
|
|
206
209
|
:data="assigneeBoxData" :smart-flow-server-context="smartFlowServerContext"
|
|
207
210
|
:upms-server-context="upmsServerContext"/>
|
|
208
211
|
<Modal v-model="modalBoxShow" width="1000" title="流程跟踪图">
|
|
209
212
|
<Workflow_Diagram ref="processTrace" :instanceId="process.instanceId" :applyId="process.applyId"
|
|
210
213
|
:procId="process.procId" :table-columns="diagramTableColumns"
|
|
211
|
-
:tableData="process.tableData" :hisAudit="hisAudit"
|
|
214
|
+
:tableData="process.tableData" :hisAudit="hisAudit"
|
|
215
|
+
:approve-detail-show-way="approveDetailShowWay"
|
|
212
216
|
:smart-flow-server-context="smartFlowServerContext">
|
|
213
217
|
</Workflow_Diagram>
|
|
214
218
|
</Modal>
|
|
@@ -246,7 +250,8 @@
|
|
|
246
250
|
@on-focus="readingRangeClick(item)"
|
|
247
251
|
@on-click="readingRangeClick(item)"/>
|
|
248
252
|
</FormItem>
|
|
249
|
-
<FormItem label="候选人员:" prop="candidateGroups"
|
|
253
|
+
<FormItem label="候选人员:" prop="candidateGroups"
|
|
254
|
+
v-if="!item.isMultiInstance && item.actionType === 'CAND'">
|
|
250
255
|
<Input v-model="item.candidateNames"
|
|
251
256
|
placeholder="请选择候选人"
|
|
252
257
|
style="width: 68%"
|
|
@@ -254,11 +259,15 @@
|
|
|
254
259
|
@on-focus="candidateGroupsReadingRangeClick(item)"
|
|
255
260
|
@on-click="candidateGroupsReadingRangeClick(item)"/>
|
|
256
261
|
</FormItem>
|
|
257
|
-
<FormItem label="候选人员:" prop="candidateGroups"
|
|
262
|
+
<FormItem label="候选人员:" prop="candidateGroups"
|
|
263
|
+
v-if="item.isMultiInstance && item.actionType === 'CAND'">
|
|
258
264
|
</FormItem>
|
|
259
265
|
|
|
260
|
-
<countersingersBox style="margin-bottom: 10px" v-model="item.candidateNames"
|
|
261
|
-
|
|
266
|
+
<countersingersBox style="margin-bottom: 10px" v-model="item.candidateNames"
|
|
267
|
+
v-if="item.isMultiInstance && item.actionType === 'CAND'"
|
|
268
|
+
:item="item" :permScope="permScope" @update-cand-groups="updateCandGroups"
|
|
269
|
+
:upms-server-context="upmsServerContext"
|
|
270
|
+
:smart-flow-server-context="smartFlowServerContext"/>
|
|
262
271
|
</div>
|
|
263
272
|
<div v-if="handleButtons && handleButtons.includes('appointTimeoutTime')">
|
|
264
273
|
<Row>
|
|
@@ -302,41 +311,53 @@
|
|
|
302
311
|
</Form>
|
|
303
312
|
</Card>
|
|
304
313
|
</Modal>
|
|
305
|
-
<candidateGroupsHelpBox ref="candidateGroupsHelpBox" :show="candidateGroupsHelpBoxShow"
|
|
306
|
-
|
|
314
|
+
<candidateGroupsHelpBox ref="candidateGroupsHelpBox" :show="candidateGroupsHelpBoxShow"
|
|
315
|
+
@update-cand-groups="updateCandGroups"
|
|
316
|
+
:upms-server-context="upmsServerContext"
|
|
317
|
+
:smart-flow-server-context="smartFlowServerContext"/>
|
|
307
318
|
<template slot="page-footer">
|
|
308
319
|
<div>
|
|
309
320
|
<slot name="footer-button"></slot>
|
|
310
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo70') && !isDetail"
|
|
321
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo70') && !isDetail && !appointTask"
|
|
311
322
|
:disabled="disable" :loading="loading" @click="audit('70')">驳回到原点
|
|
312
323
|
</Button>
|
|
313
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo40') && !isDetail"
|
|
324
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo40') && !isDetail && !appointTask"
|
|
314
325
|
:disabled="disable" :loading="loading" @click="audit('40')">驳回上一节点
|
|
315
326
|
</Button>
|
|
316
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo90') && !isDetail"
|
|
327
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo90') && !isDetail && !appointTask"
|
|
317
328
|
:disabled="disable" :loading="loading" @click="audit('90')">驳回指定节点
|
|
318
329
|
</Button>
|
|
319
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo80') && !isDetail"
|
|
330
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo80') && !isDetail && !appointTask"
|
|
320
331
|
:disabled="disable" :loading="loading" @click="audit('80')">跳转指定节点
|
|
321
332
|
</Button>
|
|
322
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo82') && !isDetail"
|
|
333
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo82') && !isDetail && !appointTask"
|
|
323
334
|
:disabled="disable" :loading="loading" @click="audit('82')">指定他人处理
|
|
324
335
|
</Button>
|
|
325
|
-
<Button style="margin-left: 10px;"
|
|
336
|
+
<Button style="margin-left: 10px;"
|
|
337
|
+
v-if="curNodeType === 'userTask' && handleButtons && handleButtons.includes('delegateTask') && !isDetail && !appointTask"
|
|
338
|
+
:disabled="disable" :loading="loading" @click="audit('84')">委派
|
|
339
|
+
</Button>
|
|
340
|
+
<Button style="margin-left: 10px;"
|
|
341
|
+
v-if="curNodeType === 'multiNode' && handleButtons && handleButtons.includes('addMultitaskInstance') && !isDetail && !appointTask"
|
|
326
342
|
:disabled="disable" :loading="loading" @click="showUpdateMultitaskInstanceModal('81')">加签
|
|
327
343
|
</Button>
|
|
328
|
-
<Button style="margin-left: 10px;"
|
|
344
|
+
<Button style="margin-left: 10px;"
|
|
345
|
+
v-if="curNodeType === 'multiNode' && handleButtons && handleButtons.includes('reductionMultitaskInstance') && !isDetail && !appointTask"
|
|
329
346
|
:disabled="disable" :loading="loading" @click="showUpdateMultitaskInstanceModal('83')">减签
|
|
330
347
|
</Button>
|
|
331
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo50') && !isDetail"
|
|
348
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo50') && !isDetail && !appointTask"
|
|
332
349
|
:disabled="disable" :loading="loading" @click="audit('50')">直接结束流程
|
|
333
350
|
</Button>
|
|
334
351
|
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('processTrace')"
|
|
335
352
|
@click="processPrint">流程跟踪图
|
|
336
353
|
</Button>
|
|
337
|
-
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo30') && !isDetail"
|
|
354
|
+
<Button style="margin-left: 10px;" v-if="handleButtons && handleButtons.includes('auditTo30') && !isDetail && !appointTask"
|
|
338
355
|
:disabled="disable" :loading="loading" type="primary" @click="audit('30')">通过
|
|
339
356
|
</Button>
|
|
357
|
+
<Button style="margin-left: 10px;" v-if="revokeDelegateTask"
|
|
358
|
+
:disabled="!revokeDelegateTask && disable" :loading="loading" @click="audit('62')">撤回委派
|
|
359
|
+
</Button>
|
|
360
|
+
<Button style="margin-left: 10px;" v-if="appointTask" :disabled="disable" :loading="loading" type="primary" @click="audit('61')">交回</Button>
|
|
340
361
|
</div>
|
|
341
362
|
</template>
|
|
342
363
|
</LamboPageContainer>
|
|
@@ -347,22 +368,21 @@
|
|
|
347
368
|
import LamboPageContainer from '@lambo-design/page-container'
|
|
348
369
|
import LamboIndicatorCard from '@lambo-design/indicator-card'
|
|
349
370
|
import Workflow_Diagram from './workflow-diagram'
|
|
350
|
-
import ajax from
|
|
351
|
-
import bus from '@lambo-design/shared/utils/bus'
|
|
352
|
-
import Title from
|
|
353
|
-
import processHistory from
|
|
354
|
-
import assigneeBox from
|
|
355
|
-
import CandidateGroupsHelpBox from
|
|
356
|
-
import CountersingersBox from
|
|
357
|
-
import LamboPagingTable from
|
|
358
|
-
import AuditOpinion from
|
|
359
|
-
import axios from
|
|
360
|
-
import UploadFile from
|
|
361
|
-
import {timestampToTime} from
|
|
371
|
+
import ajax from '@lambo-design/shared/utils/ajax'
|
|
372
|
+
import bus from '@lambo-design/shared/utils/bus'
|
|
373
|
+
import Title from './components/title'
|
|
374
|
+
import processHistory from './components/history'
|
|
375
|
+
import assigneeBox from './components/assignee-box'
|
|
376
|
+
import CandidateGroupsHelpBox from './components/candidate-groups-box'
|
|
377
|
+
import CountersingersBox from './components/countersigners-box'
|
|
378
|
+
import LamboPagingTable from '@lambo-design/paging-table'
|
|
379
|
+
import AuditOpinion from './components/opinion'
|
|
380
|
+
import axios from 'axios'
|
|
381
|
+
import UploadFile from '@lambo-design/upload-file'
|
|
382
|
+
import { timestampToTime } from '@lambo-design/shared/utils/date'
|
|
362
383
|
|
|
363
384
|
// 引入docx-preview插件
|
|
364
|
-
let docx = require('docx-preview')
|
|
365
|
-
|
|
385
|
+
let docx = require('docx-preview')
|
|
366
386
|
|
|
367
387
|
export default {
|
|
368
388
|
props: {
|
|
@@ -430,11 +450,12 @@ export default {
|
|
|
430
450
|
executionCompleted: {
|
|
431
451
|
type: Function,
|
|
432
452
|
required: false,
|
|
433
|
-
default: () => {
|
|
453
|
+
default: () => {
|
|
454
|
+
}
|
|
434
455
|
},
|
|
435
456
|
title: {
|
|
436
457
|
type: String,
|
|
437
|
-
default:
|
|
458
|
+
default: '流程办理'
|
|
438
459
|
},
|
|
439
460
|
smartFlowServerContext: {
|
|
440
461
|
type: String,
|
|
@@ -463,7 +484,7 @@ export default {
|
|
|
463
484
|
isExpanded: true,
|
|
464
485
|
showProcessInfo: true,
|
|
465
486
|
portraitWidth: 0,
|
|
466
|
-
requestSuccessCodes: [200,
|
|
487
|
+
requestSuccessCodes: [200, '200'],
|
|
467
488
|
auditShow: true,
|
|
468
489
|
historyShow: true,
|
|
469
490
|
attachListShow: true,
|
|
@@ -492,26 +513,28 @@ export default {
|
|
|
492
513
|
organTreeType: '00',
|
|
493
514
|
defaultOrganTreeType: '00',
|
|
494
515
|
ruleValidate: {
|
|
495
|
-
auditOpinion: [{required: true, trigger:
|
|
496
|
-
assignee: [{required: true, trigger:
|
|
497
|
-
candidateGroups: [{required: true, trigger:
|
|
516
|
+
auditOpinion: [{ required: true, trigger: 'blur', message: '意见不能为空' }],
|
|
517
|
+
assignee: [{ required: true, trigger: 'blur', message: '办理人不能为空' }],
|
|
518
|
+
candidateGroups: [{ required: true, trigger: 'blur', message: '候选人不能为空' }],
|
|
498
519
|
},
|
|
499
520
|
form: {
|
|
500
521
|
auditOpinion: '',
|
|
501
522
|
},
|
|
502
523
|
loading: false,
|
|
503
524
|
disable: false,
|
|
525
|
+
revokeDelegateTask: false,
|
|
526
|
+
appointTask: false,
|
|
504
527
|
instanceId: '',
|
|
505
528
|
curTaskId: '',
|
|
506
|
-
|
|
529
|
+
curNodeType: 'userTask',
|
|
507
530
|
handleButtons: [],
|
|
508
531
|
handleName: '',
|
|
509
532
|
auditOpinionTitle: '',
|
|
510
533
|
auditResult: '',
|
|
511
534
|
curAuditGroup: '',
|
|
512
535
|
custChange: 'auditInfo',
|
|
513
|
-
auditInfo:
|
|
514
|
-
auditProcess:
|
|
536
|
+
auditInfo: 'auditInfo',
|
|
537
|
+
auditProcess: 'auditProcess',
|
|
515
538
|
fileList: [],
|
|
516
539
|
ossFilePutUrl: '/manage/oss/file/put',
|
|
517
540
|
hisAudit: [],
|
|
@@ -520,8 +543,8 @@ export default {
|
|
|
520
543
|
auditTime: '',
|
|
521
544
|
}],
|
|
522
545
|
datas: {
|
|
523
|
-
orgName:
|
|
524
|
-
orgId:
|
|
546
|
+
orgName: '',
|
|
547
|
+
orgId: ''
|
|
525
548
|
},
|
|
526
549
|
editForm: {
|
|
527
550
|
approvalCost: '',
|
|
@@ -541,7 +564,10 @@ export default {
|
|
|
541
564
|
'90': '驳回指定节点',
|
|
542
565
|
'80': '跳转指定节点',
|
|
543
566
|
'82': '指定他人处理',
|
|
544
|
-
'50': '直接结束流程'
|
|
567
|
+
'50': '直接结束流程',
|
|
568
|
+
'84': '委派任务',
|
|
569
|
+
'61': '交回委派任务',
|
|
570
|
+
'62': '撤回委派任务',
|
|
545
571
|
},
|
|
546
572
|
handleTypeList: [
|
|
547
573
|
{
|
|
@@ -574,23 +600,23 @@ export default {
|
|
|
574
600
|
},
|
|
575
601
|
computed: {
|
|
576
602
|
processHistoryHeight() {
|
|
577
|
-
let str = ''
|
|
603
|
+
let str = ''
|
|
578
604
|
const hasAuditOpinion = this.taskNode && this.handleButtons && this.handleButtons.includes('auditOpinion')
|
|
579
605
|
const hasAttachmentFile = this.handleButtons && this.handleButtons.includes('auditHistory') && this.attachmentList.length > 0
|
|
580
606
|
const isDetail = this.isDetail && !this.hisAuditOpinion[0].auditOpinion.length > 0
|
|
581
607
|
if (hasAuditOpinion && !hasAttachmentFile && !isDetail) {
|
|
582
|
-
str +=
|
|
608
|
+
str += 'height: 43vh'
|
|
583
609
|
} else if (hasAuditOpinion && hasAttachmentFile && !isDetail) {
|
|
584
|
-
str +=
|
|
610
|
+
str += 'height: 40vh'
|
|
585
611
|
} else {
|
|
586
|
-
str +=
|
|
612
|
+
str += 'height: 67vh'
|
|
587
613
|
}
|
|
588
|
-
return str
|
|
614
|
+
return str
|
|
589
615
|
},
|
|
590
616
|
nodeColumn: function () {
|
|
591
617
|
let column = []
|
|
592
|
-
column.push({title: '序号', type: 'index', width: 70, align: 'center', fixed: 'left'})
|
|
593
|
-
column.push({title: '节点名称', key: 'taskName', minWidth: 150, align: 'center', fixed: 'left'})
|
|
618
|
+
column.push({ title: '序号', type: 'index', width: 70, align: 'center', fixed: 'left' })
|
|
619
|
+
column.push({ title: '节点名称', key: 'taskName', minWidth: 150, align: 'center', fixed: 'left' })
|
|
594
620
|
|
|
595
621
|
column.push({
|
|
596
622
|
title: '节点状态', key: 'auditResult', minWidth: 150, align: 'center', fixed: 'left',
|
|
@@ -636,6 +662,22 @@ export default {
|
|
|
636
662
|
}
|
|
637
663
|
}, '已撤回')
|
|
638
664
|
])
|
|
665
|
+
} else if (params.row.auditResult == '61' && params.row.taskNode != this.taskNode) {
|
|
666
|
+
return h('div', [
|
|
667
|
+
h('tag', {
|
|
668
|
+
props: {
|
|
669
|
+
color: '#19be6b'
|
|
670
|
+
}
|
|
671
|
+
}, '已交回委派任务')
|
|
672
|
+
])
|
|
673
|
+
} else if (params.row.auditResult == '62' && params.row.taskNode != this.taskNode) {
|
|
674
|
+
return h('div', [
|
|
675
|
+
h('tag', {
|
|
676
|
+
props: {
|
|
677
|
+
color: '#ed4014'
|
|
678
|
+
}
|
|
679
|
+
}, '委派任务已撤回')
|
|
680
|
+
])
|
|
639
681
|
} else if (params.row.auditResult == '80' && params.row.taskNode != this.taskNode) {
|
|
640
682
|
return h('div', [
|
|
641
683
|
h('tag', {
|
|
@@ -657,7 +699,7 @@ export default {
|
|
|
657
699
|
}
|
|
658
700
|
})
|
|
659
701
|
column.push({
|
|
660
|
-
title:
|
|
702
|
+
title: '操作', width: 100, align: 'center',
|
|
661
703
|
render: (h, params) => {
|
|
662
704
|
return h('div', [
|
|
663
705
|
h('Button', {
|
|
@@ -681,86 +723,85 @@ export default {
|
|
|
681
723
|
},
|
|
682
724
|
reductionColumn: function () {
|
|
683
725
|
let column = []
|
|
684
|
-
column.push({title: '#', key: 'selectId', type: 'selection', align: 'center', width: 55})
|
|
685
|
-
column.push({title: '账号', key: 'auditId', align: 'center'})
|
|
686
|
-
column.push({title: '姓名', key: 'auditName', align: 'center'})
|
|
726
|
+
column.push({ title: '#', key: 'selectId', type: 'selection', align: 'center', width: 55 })
|
|
727
|
+
column.push({ title: '账号', key: 'auditId', align: 'center' })
|
|
728
|
+
column.push({ title: '姓名', key: 'auditName', align: 'center' })
|
|
687
729
|
return column
|
|
688
730
|
},
|
|
689
731
|
diagramTableColumns: function () {
|
|
690
732
|
let column = []
|
|
691
|
-
column.push({title: '序号', type: 'index', width: 60})
|
|
692
|
-
column.push({title: `${this.handleName}节点`, key: 'taskName', minWidth: 130})
|
|
693
|
-
column.push({title: `${this.handleName}人`, key: 'auditName', minWidth: 150, tooltip: true})
|
|
733
|
+
column.push({ title: '序号', type: 'index', width: 60 })
|
|
734
|
+
column.push({ title: `${this.handleName}节点`, key: 'taskName', minWidth: 130 })
|
|
735
|
+
column.push({ title: `${this.handleName}人`, key: 'auditName', minWidth: 150, tooltip: true })
|
|
694
736
|
column.push({
|
|
695
737
|
title: `${this.handleName}结果`, key: 'auditResult', minWidth: 150, align: 'center',
|
|
696
|
-
render: (h, {row, column, index}) => {
|
|
697
|
-
let label =
|
|
698
|
-
let tagColor =
|
|
699
|
-
if (row.auditResult == '00'){
|
|
700
|
-
label = '流程发起'
|
|
701
|
-
tagColor = 'green'
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
else if (row.auditResult == '
|
|
712
|
-
label = '
|
|
713
|
-
tagColor = '
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
else if (row.auditResult == '
|
|
724
|
-
label = '
|
|
725
|
-
tagColor = 'blue'
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
else
|
|
736
|
-
label = '
|
|
737
|
-
tagColor = '
|
|
738
|
-
}
|
|
739
|
-
else{
|
|
740
|
-
label = '待审核';
|
|
741
|
-
tagColor = 'orange'; // 默认橙色
|
|
738
|
+
render: (h, { row, column, index }) => {
|
|
739
|
+
let label = ''
|
|
740
|
+
let tagColor = ''
|
|
741
|
+
if (row.auditResult == '00') {
|
|
742
|
+
label = '流程发起'
|
|
743
|
+
tagColor = 'green' // 绿色
|
|
744
|
+
} else if (row.auditResult == '10') {
|
|
745
|
+
label = '自动跳过'
|
|
746
|
+
tagColor = 'green' // 绿色
|
|
747
|
+
} else if (row.auditResult == '30') {
|
|
748
|
+
label = '通过'
|
|
749
|
+
tagColor = 'green' // 绿色
|
|
750
|
+
} else if (row.auditResult == '40') {
|
|
751
|
+
label = '驳回到上一级'
|
|
752
|
+
tagColor = 'volcano' // 火红色
|
|
753
|
+
} else if (row.auditResult == '50') {
|
|
754
|
+
label = '驳回到原点'
|
|
755
|
+
tagColor = 'red' // 红色
|
|
756
|
+
} else if (row.auditResult == '51') {
|
|
757
|
+
label = '流程终止'
|
|
758
|
+
tagColor = 'purple' // 紫色
|
|
759
|
+
} else if (row.auditResult == '60') {
|
|
760
|
+
label = '撤回'
|
|
761
|
+
tagColor = 'blue' // 蓝色
|
|
762
|
+
} else if (row.auditResult == '61') {
|
|
763
|
+
label = '交回委派任务'
|
|
764
|
+
tagColor = 'green' // 绿色
|
|
765
|
+
} else if (row.auditResult == '62') {
|
|
766
|
+
label = '委派任务被撤回'
|
|
767
|
+
tagColor = 'blue' // 蓝色
|
|
768
|
+
} else if (row.auditResult == '80') {
|
|
769
|
+
label = '跳转到指定节点'
|
|
770
|
+
tagColor = 'cyan' // 青色
|
|
771
|
+
} else if (row.auditResult == '83') {
|
|
772
|
+
label = '会签减签'
|
|
773
|
+
tagColor = 'red' // 青色
|
|
774
|
+
} else if (row.auditResult == '90') {
|
|
775
|
+
label = '驳回到指定节点'
|
|
776
|
+
tagColor = 'magenta' // 品红色
|
|
777
|
+
} else {
|
|
778
|
+
label = '待审核'
|
|
779
|
+
tagColor = 'orange' // 默认橙色
|
|
742
780
|
}
|
|
743
781
|
return h('Tag', {
|
|
744
782
|
props: {
|
|
745
783
|
color: tagColor,
|
|
746
784
|
value: row.auditResult
|
|
747
785
|
}
|
|
748
|
-
}, label)
|
|
786
|
+
}, label)
|
|
749
787
|
}
|
|
750
788
|
})
|
|
751
789
|
column.push({
|
|
752
790
|
title: `${this.handleName}时间`, key: 'auditTime', minWidth: 150,
|
|
753
|
-
render: (h, {row}) => {
|
|
754
|
-
const displayDate = row.startDate || row.auditDate
|
|
755
|
-
return h('span', displayDate)
|
|
791
|
+
render: (h, { row }) => {
|
|
792
|
+
const displayDate = row.startDate || row.auditDate
|
|
793
|
+
return h('span', displayDate)
|
|
756
794
|
}
|
|
757
795
|
})
|
|
758
796
|
column.push({
|
|
759
797
|
title: `${this.handleName}意见`, key: 'auditComment', minWidth: 180, tooltip: true,
|
|
760
|
-
render: (h, {row, column, index}) => {
|
|
761
|
-
let label =
|
|
762
|
-
if (row.auditComment == '' || row.auditComment == null)
|
|
763
|
-
|
|
798
|
+
render: (h, { row, column, index }) => {
|
|
799
|
+
let label = ''
|
|
800
|
+
if (row.auditComment == '' || row.auditComment == null) {
|
|
801
|
+
label = '无'
|
|
802
|
+
} else {
|
|
803
|
+
label = row.auditComment
|
|
804
|
+
}
|
|
764
805
|
return h('Label', {
|
|
765
806
|
props: {
|
|
766
807
|
value: row.auditComment
|
|
@@ -768,12 +809,12 @@ export default {
|
|
|
768
809
|
}, label)
|
|
769
810
|
}
|
|
770
811
|
})
|
|
771
|
-
if (this.showAttachmentFile){
|
|
812
|
+
if (this.showAttachmentFile) {
|
|
772
813
|
column.push({
|
|
773
814
|
title: `附件`, key: 'fileList', minWidth: 200,
|
|
774
815
|
render: (h, { row }) => {
|
|
775
816
|
if (!row.fileList || row.fileList.length === 0) {
|
|
776
|
-
return h('span', '无')
|
|
817
|
+
return h('span', '无') // 如果没有附件,显示“无”
|
|
777
818
|
}
|
|
778
819
|
|
|
779
820
|
//显示所有附件
|
|
@@ -782,7 +823,7 @@ export default {
|
|
|
782
823
|
style: {
|
|
783
824
|
display: 'block',
|
|
784
825
|
marginTop: '5px',
|
|
785
|
-
marginRight:'5px',
|
|
826
|
+
marginRight: '5px',
|
|
786
827
|
whiteSpace: 'nowrap',
|
|
787
828
|
overflow: 'hidden',
|
|
788
829
|
textOverflow: 'ellipsis',
|
|
@@ -793,11 +834,11 @@ export default {
|
|
|
793
834
|
},
|
|
794
835
|
on: {
|
|
795
836
|
click: () => {
|
|
796
|
-
this.getAttach(file)
|
|
837
|
+
this.getAttach(file)
|
|
797
838
|
}
|
|
798
839
|
},
|
|
799
|
-
}, file.attachName)
|
|
800
|
-
}))
|
|
840
|
+
}, file.attachName)
|
|
841
|
+
}))
|
|
801
842
|
}
|
|
802
843
|
})
|
|
803
844
|
}
|
|
@@ -808,7 +849,7 @@ export default {
|
|
|
808
849
|
provide() {
|
|
809
850
|
return {
|
|
810
851
|
toBeDoneListDoSearch: this.doSearch
|
|
811
|
-
}
|
|
852
|
+
}
|
|
812
853
|
},
|
|
813
854
|
methods: {
|
|
814
855
|
getWidth() {
|
|
@@ -834,24 +875,28 @@ export default {
|
|
|
834
875
|
taskId: this.taskId,
|
|
835
876
|
auditGroup: this.auditGroup
|
|
836
877
|
}
|
|
837
|
-
ajax.get(self.smartFlowServerContext +
|
|
878
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/list', { params: param }).then(function (resp) {
|
|
838
879
|
if (resp.data.code === '200') {
|
|
839
|
-
|
|
840
|
-
self.
|
|
841
|
-
self.
|
|
842
|
-
|
|
843
|
-
|
|
880
|
+
let todoData = resp.data.data.rows[0]
|
|
881
|
+
self.curTaskId = todoData.taskId
|
|
882
|
+
self.instanceId = todoData.procInstanceId
|
|
883
|
+
self.curAuditGroup = todoData.auditGroup
|
|
884
|
+
self.revokeDelegateTask = todoData.delegateStatus ? todoData.delegateStatus === '10' : false
|
|
885
|
+
self.appointTask = todoData.delegateStatus ? todoData.delegateStatus === '20' : false
|
|
886
|
+
if (self.revokeDelegateTask) self.disable = true
|
|
887
|
+
let procType = todoData.procType
|
|
888
|
+
ajax.get(self.smartFlowServerContext + '/manage/processType/lists?proType=' + procType)
|
|
844
889
|
.then(resp => {
|
|
845
890
|
let data = resp.data.data.rows
|
|
846
891
|
self.permScope = data[0].permScope
|
|
847
892
|
self.defaultOrganTreeType = data[0].organTreeType ? data[0].organTreeType : '00'
|
|
848
893
|
self.getNodeOrganTreeType(procType)
|
|
849
894
|
}).catch(err => {
|
|
850
|
-
console.log(err)
|
|
895
|
+
console.log(err)
|
|
851
896
|
})
|
|
852
897
|
self.getAttachList(self.curTaskId)
|
|
853
|
-
self.getHisAudit(self.curTaskId)
|
|
854
|
-
self.getProcessHistory(self.curTaskId)
|
|
898
|
+
self.getHisAudit(self.curTaskId)
|
|
899
|
+
self.getProcessHistory(self.curTaskId)
|
|
855
900
|
} else {
|
|
856
901
|
self.$Message.error(resp.data.message)
|
|
857
902
|
}
|
|
@@ -859,14 +904,14 @@ export default {
|
|
|
859
904
|
console.log(err)
|
|
860
905
|
})
|
|
861
906
|
},
|
|
862
|
-
getNodeOrganTreeType(procType){
|
|
907
|
+
getNodeOrganTreeType(procType) {
|
|
863
908
|
const self = this
|
|
864
909
|
let param = {
|
|
865
910
|
procType: procType,
|
|
866
911
|
procId: this.procId,
|
|
867
912
|
taskNode: this.taskNode
|
|
868
913
|
}
|
|
869
|
-
ajax.get(self.smartFlowServerContext +
|
|
914
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getNodeOrganTreeType', { params: param }).then(function (resp) {
|
|
870
915
|
if (resp.data.code === '200') {
|
|
871
916
|
self.organTreeType = resp.data.data ? resp.data.data : self.defaultOrganTreeType
|
|
872
917
|
} else {
|
|
@@ -885,7 +930,7 @@ export default {
|
|
|
885
930
|
taskId: this.taskId,
|
|
886
931
|
auditGroup: this.auditGroup
|
|
887
932
|
}
|
|
888
|
-
ajax.get(self.smartFlowServerContext +
|
|
933
|
+
ajax.get(self.smartFlowServerContext + '/manage/processDone/getDoneDetail', { params: param }).then(function (resp) {
|
|
889
934
|
if (resp.data.code === '200') {
|
|
890
935
|
let rows = resp.data.data.rows
|
|
891
936
|
if (rows.length > 0) {
|
|
@@ -901,7 +946,7 @@ export default {
|
|
|
901
946
|
self.curTaskId = taskList[0].taskId
|
|
902
947
|
self.instanceId = taskList[0].procInstanceId
|
|
903
948
|
} else {
|
|
904
|
-
ajax.get(self.smartFlowServerContext +
|
|
949
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/list', { params: param }).then(function (todoResp) {
|
|
905
950
|
if (todoResp.data.code === '200') {
|
|
906
951
|
self.curTaskId = todoResp.data.data.rows[0].taskId
|
|
907
952
|
self.instanceId = todoResp.data.data.rows[0].procInstanceId
|
|
@@ -914,8 +959,8 @@ export default {
|
|
|
914
959
|
})
|
|
915
960
|
}
|
|
916
961
|
self.getAttachList(self.curTaskId)
|
|
917
|
-
self.getHisAudit(self.curTaskId)
|
|
918
|
-
self.getProcessHistory(self.curTaskId)
|
|
962
|
+
self.getHisAudit(self.curTaskId)
|
|
963
|
+
self.getProcessHistory(self.curTaskId)
|
|
919
964
|
} else {
|
|
920
965
|
self.$Message.error(resp.data.message)
|
|
921
966
|
}
|
|
@@ -932,12 +977,12 @@ export default {
|
|
|
932
977
|
ajax.post(self.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (resp) {
|
|
933
978
|
if (resp.data.code === '200') {
|
|
934
979
|
self.handleButtons = resp.data.data[0].handleButtons
|
|
935
|
-
if (resp.data.data[0].hasOwnProperty('isSequential')){
|
|
936
|
-
self.
|
|
980
|
+
if (resp.data.data[0].hasOwnProperty('isSequential')) {
|
|
981
|
+
self.curNodeType = resp.data.data[0].isSequential ? 'sequentialMultiNode' : 'multiNode'
|
|
937
982
|
}
|
|
938
983
|
self.handleName = resp.data.data[0].handleName ? resp.data.data[0].handleName : '审批'
|
|
939
984
|
self.auditOpinionTitle = resp.data.data[0].handleName ? resp.data.data[0].handleName + '意见' : '审批意见'
|
|
940
|
-
if (!self.handleButtons || (!self.handleButtons.includes('auditOpinion') && !self.handleButtons.includes('attachmentFile') && !self.handleButtons.includes('auditHistory'))){
|
|
985
|
+
if (!self.handleButtons || (!self.handleButtons.includes('auditOpinion') && !self.handleButtons.includes('attachmentFile') && !self.handleButtons.includes('auditHistory'))) {
|
|
941
986
|
self.showProcessInfo = false
|
|
942
987
|
}
|
|
943
988
|
} else {
|
|
@@ -947,7 +992,7 @@ export default {
|
|
|
947
992
|
console.log(err)
|
|
948
993
|
})
|
|
949
994
|
},
|
|
950
|
-
getNextNodes(){
|
|
995
|
+
getNextNodes() {
|
|
951
996
|
const self = this
|
|
952
997
|
self.nextNodesFormList = []
|
|
953
998
|
self.nextNodesOldSettings = []
|
|
@@ -975,38 +1020,38 @@ export default {
|
|
|
975
1020
|
candidateGroups: '',
|
|
976
1021
|
isMultiInstance: data[i].isMultiInstance,
|
|
977
1022
|
actionType: 'ASSIGNEE',
|
|
978
|
-
remainDay
|
|
979
|
-
remainTime
|
|
980
|
-
inAdvanceDay
|
|
981
|
-
inAdvanceTime
|
|
982
|
-
processing
|
|
1023
|
+
remainDay: 0,
|
|
1024
|
+
remainTime: 0,
|
|
1025
|
+
inAdvanceDay: 0,
|
|
1026
|
+
inAdvanceTime: 0,
|
|
1027
|
+
processing: '00'
|
|
983
1028
|
}
|
|
984
1029
|
//显示具体候选人信息
|
|
985
|
-
if (data[i].candidateGroups){
|
|
1030
|
+
if (data[i].candidateGroups) {
|
|
986
1031
|
nextNodeForm.actionType = 'CAND'
|
|
987
|
-
let names = []
|
|
988
|
-
let candidates = {}
|
|
1032
|
+
let names = []
|
|
1033
|
+
let candidates = {}
|
|
989
1034
|
for (let groupName in data[i].candidateGroups) {
|
|
990
1035
|
if (data[i].candidateGroups.hasOwnProperty(groupName)) {
|
|
991
|
-
let group = data[i].candidateGroups[groupName]
|
|
1036
|
+
let group = data[i].candidateGroups[groupName]
|
|
992
1037
|
group.forEach(item => {
|
|
993
|
-
names.push(item.name)
|
|
994
|
-
})
|
|
995
|
-
candidates[groupName] = group.map(item => item.id + ':' + item.name).join(',')
|
|
1038
|
+
names.push(item.name)
|
|
1039
|
+
})
|
|
1040
|
+
candidates[groupName] = group.map(item => item.id + ':' + item.name).join(',')
|
|
996
1041
|
}
|
|
997
1042
|
}
|
|
998
|
-
nextNodeForm.candidateNames = names.join(',')
|
|
999
|
-
nextNodeForm.candidates = candidates
|
|
1000
|
-
nextNodeOldForm.candidates = candidates
|
|
1043
|
+
nextNodeForm.candidateNames = names.join(',')
|
|
1044
|
+
nextNodeForm.candidates = candidates
|
|
1045
|
+
nextNodeOldForm.candidates = candidates
|
|
1001
1046
|
}
|
|
1002
1047
|
if (data[i].timeLimit) {
|
|
1003
|
-
let expireTime = data[i].timeLimit.split(
|
|
1004
|
-
let warningTime = data[i].timeLimit.split(
|
|
1005
|
-
let handleType = data[i].timeLimit.split(
|
|
1006
|
-
let days = expireTime.slice(0, expireTime.indexOf(
|
|
1007
|
-
let hourOfDay = expireTime.slice(expireTime.indexOf(
|
|
1008
|
-
let daysWarn = warningTime.slice(0, warningTime.indexOf(
|
|
1009
|
-
let hourOfDayWarn = warningTime.slice(warningTime.indexOf(
|
|
1048
|
+
let expireTime = data[i].timeLimit.split(';')[0].split(':')[1]
|
|
1049
|
+
let warningTime = data[i].timeLimit.split(';')[1].split(':')[1]
|
|
1050
|
+
let handleType = data[i].timeLimit.split(';')[2].split(':')[1]
|
|
1051
|
+
let days = expireTime.slice(0, expireTime.indexOf('D')) //过期天
|
|
1052
|
+
let hourOfDay = expireTime.slice(expireTime.indexOf('D') + 1, expireTime.indexOf('H')) //过期小时
|
|
1053
|
+
let daysWarn = warningTime.slice(0, warningTime.indexOf('D')) //警告天
|
|
1054
|
+
let hourOfDayWarn = warningTime.slice(warningTime.indexOf('D') + 1, warningTime.indexOf('H')) //警告小时
|
|
1010
1055
|
nextNodeForm.remainDay = parseInt(days)
|
|
1011
1056
|
nextNodeForm.remainTime = parseInt(hourOfDay)
|
|
1012
1057
|
nextNodeForm.inAdvanceDay = parseInt(daysWarn)
|
|
@@ -1030,10 +1075,10 @@ export default {
|
|
|
1030
1075
|
procId: this.procId,
|
|
1031
1076
|
applyId: this.applyId
|
|
1032
1077
|
}
|
|
1033
|
-
ajax.get(self.smartFlowServerContext + '/manage/processDone/getAttachmentList', {params: param}).then(function (resp) {
|
|
1078
|
+
ajax.get(self.smartFlowServerContext + '/manage/processDone/getAttachmentList', { params: param }).then(function (resp) {
|
|
1034
1079
|
self.attachmentList = resp.data.data.rows
|
|
1035
1080
|
self.attachmentList.forEach(item => {
|
|
1036
|
-
const index = item.fileName.lastIndexOf(
|
|
1081
|
+
const index = item.fileName.lastIndexOf('.')
|
|
1037
1082
|
const fileType = item.fileName.substr(index + 1).toLowerCase()
|
|
1038
1083
|
const imageList = ['jpg', 'gif', 'png', 'svg']
|
|
1039
1084
|
const docList = ['doc', 'docx']
|
|
@@ -1043,7 +1088,7 @@ export default {
|
|
|
1043
1088
|
item.showPreview = typeList.indexOf(fileType) !== -1
|
|
1044
1089
|
})
|
|
1045
1090
|
}).catch(err => {
|
|
1046
|
-
console.log(err)
|
|
1091
|
+
console.log(err)
|
|
1047
1092
|
})
|
|
1048
1093
|
},
|
|
1049
1094
|
getHisAudit(taskId) {
|
|
@@ -1054,14 +1099,14 @@ export default {
|
|
|
1054
1099
|
procId: self.procId,
|
|
1055
1100
|
taskId: taskId
|
|
1056
1101
|
}
|
|
1057
|
-
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getHisAudit', {params: params}).then(function (resp) {
|
|
1102
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getHisAudit', { params: params }).then(function (resp) {
|
|
1058
1103
|
if (resp.data.code === '200') {
|
|
1059
1104
|
self.hisAudit = resp.data.data
|
|
1060
|
-
let uniqueDataMap = {}
|
|
1105
|
+
let uniqueDataMap = {}
|
|
1061
1106
|
self.hisAudit.forEach((item) => {
|
|
1062
|
-
uniqueDataMap[item[
|
|
1107
|
+
uniqueDataMap[item['taskNode']] = item
|
|
1063
1108
|
})
|
|
1064
|
-
self.hisNode = Object.values(uniqueDataMap)
|
|
1109
|
+
self.hisNode = Object.values(uniqueDataMap)
|
|
1065
1110
|
|
|
1066
1111
|
}
|
|
1067
1112
|
})
|
|
@@ -1074,7 +1119,7 @@ export default {
|
|
|
1074
1119
|
procId: self.procId,
|
|
1075
1120
|
taskId: taskId
|
|
1076
1121
|
}
|
|
1077
|
-
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getProcessHis', {params: params}).then(function (resp) {
|
|
1122
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getProcessHis', { params: params }).then(function (resp) {
|
|
1078
1123
|
if (resp.data.code === '200') {
|
|
1079
1124
|
self.processHistory = resp.data.data
|
|
1080
1125
|
}
|
|
@@ -1087,7 +1132,7 @@ export default {
|
|
|
1087
1132
|
self.submit()
|
|
1088
1133
|
},
|
|
1089
1134
|
submit() {
|
|
1090
|
-
let self = this
|
|
1135
|
+
let self = this
|
|
1091
1136
|
self.auditParams = {
|
|
1092
1137
|
procId: self.procId,
|
|
1093
1138
|
applyId: self.applyId,
|
|
@@ -1100,33 +1145,33 @@ export default {
|
|
|
1100
1145
|
selectedUserId: self.selectedUserId,
|
|
1101
1146
|
}
|
|
1102
1147
|
if (self.auditResult == '' || self.auditResult == null) {
|
|
1103
|
-
self.$Message.error(`请选择${self.handleName}结果!`)
|
|
1104
|
-
return
|
|
1148
|
+
self.$Message.error(`请选择${self.handleName}结果!`)
|
|
1149
|
+
return
|
|
1105
1150
|
}
|
|
1106
1151
|
if (self.form.auditOpinion == '' || self.form.auditOpinion == null) {
|
|
1107
|
-
if (self.auditResult === '30'){
|
|
1152
|
+
if (self.auditResult === '30') {
|
|
1108
1153
|
self.auditParams.auditOpinion = '通过'
|
|
1109
1154
|
self.businessFormSave ? self.businessFormSave(self.handleSaveResult) : self.handleSaveResult(true)
|
|
1110
|
-
return
|
|
1155
|
+
return
|
|
1111
1156
|
}
|
|
1112
|
-
if (!self.handleButtons || self.handleButtons.includes('auditOpinion')) {
|
|
1157
|
+
if ((!self.handleButtons || self.handleButtons.includes('auditOpinion')) && self.auditResult !== '84') {
|
|
1113
1158
|
self.$Message.error(`请输入${self.handleName}意见!`)
|
|
1114
|
-
return
|
|
1159
|
+
return
|
|
1115
1160
|
} else {
|
|
1116
|
-
self.auditParams.auditOpinion = self.handleButtonsNames[self.auditResult]
|
|
1161
|
+
self.auditParams.auditOpinion = self.handleButtonsNames[self.auditResult]
|
|
1117
1162
|
}
|
|
1118
1163
|
}
|
|
1119
1164
|
self.businessFormSave ? self.businessFormSave(self.handleSaveResult) : self.handleSaveResult(true)
|
|
1120
1165
|
},
|
|
1121
1166
|
handleSaveResult(saveResult, businessParams) {
|
|
1122
1167
|
if (saveResult) {
|
|
1123
|
-
this.executeButtonAction(businessParams)
|
|
1168
|
+
this.executeButtonAction(businessParams)
|
|
1124
1169
|
} else {
|
|
1125
|
-
console.error('保存失败')
|
|
1170
|
+
console.error('保存失败')
|
|
1126
1171
|
}
|
|
1127
1172
|
},
|
|
1128
1173
|
executeButtonAction(businessParams) {
|
|
1129
|
-
const self = this
|
|
1174
|
+
const self = this
|
|
1130
1175
|
if (businessParams) {
|
|
1131
1176
|
Object.assign(self.datas, businessParams)
|
|
1132
1177
|
self.auditParams.params = JSON.stringify(self.datas)
|
|
@@ -1136,15 +1181,57 @@ export default {
|
|
|
1136
1181
|
name: self.handleButtonsNames[self.auditResult]
|
|
1137
1182
|
}
|
|
1138
1183
|
if (self.auditResult === '82') {
|
|
1184
|
+
//指定他人处理
|
|
1139
1185
|
self.assigneeBoxData = self.auditParams
|
|
1140
1186
|
self.assigneeBoxData.auditResultName = self.handleButtonsNames[self.auditResult]
|
|
1141
1187
|
self.assigneeBoxData.instanceId = self.instanceId
|
|
1142
1188
|
self.$refs.assigneeHelpBox.toggleShowHelpBox(self.organTreeType, '', 'transferCurTask')
|
|
1189
|
+
} else if (self.auditResult === '84') {
|
|
1190
|
+
//委派任务
|
|
1191
|
+
self.$refs.assigneeHelpBox.toggleShowHelpBox(self.organTreeType, '', 'delegateTask')
|
|
1192
|
+
} else if (self.auditResult === '62') {
|
|
1193
|
+
//撤回委派任务
|
|
1194
|
+
ajax.post(self.smartFlowServerContext + '/manage/processTodo/audit', self.auditParams).then(resp => {
|
|
1195
|
+
let result = resp.data
|
|
1196
|
+
if (result.code == '200') {
|
|
1197
|
+
self.loading = false
|
|
1198
|
+
self.disable = false
|
|
1199
|
+
self.revokeDelegateTask = false
|
|
1200
|
+
self.$Message.success('撤回委派成功')
|
|
1201
|
+
} else {
|
|
1202
|
+
self.loading = false
|
|
1203
|
+
self.disable = false
|
|
1204
|
+
self.$Message.error(result.message)
|
|
1205
|
+
}
|
|
1206
|
+
})
|
|
1207
|
+
} else if (self.auditResult === '61') {
|
|
1208
|
+
//交回委派任务
|
|
1209
|
+
ajax.post(self.smartFlowServerContext + '/manage/processTodo/audit', self.auditParams).then(resp => {
|
|
1210
|
+
let result = resp.data
|
|
1211
|
+
if (result.code == '200') {
|
|
1212
|
+
self.loading = false
|
|
1213
|
+
self.disable = false
|
|
1214
|
+
self.$Message.success('交回委派任务成功')
|
|
1215
|
+
if (result.data) {
|
|
1216
|
+
let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
|
|
1217
|
+
setTimeout(() => {
|
|
1218
|
+
self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
|
|
1219
|
+
}, 1000)
|
|
1220
|
+
}
|
|
1221
|
+
} else {
|
|
1222
|
+
self.loading = false
|
|
1223
|
+
self.disable = false
|
|
1224
|
+
self.$Message.error(result.message)
|
|
1225
|
+
}
|
|
1226
|
+
})
|
|
1143
1227
|
} else if (self.auditResult === '80') {
|
|
1228
|
+
//跳转到后序指定节点
|
|
1144
1229
|
self.getNodesBehind()
|
|
1145
1230
|
} else if (self.auditResult === '90') {
|
|
1231
|
+
//驳回到前序指定节点
|
|
1146
1232
|
self.getAllPreNodes()
|
|
1147
1233
|
} else if (self.auditResult === '40') {
|
|
1234
|
+
//驳回到上一级
|
|
1148
1235
|
self.loading = true
|
|
1149
1236
|
self.disable = true
|
|
1150
1237
|
let url = self.smartFlowServerContext + '/manage/processTodo/getPreNode'
|
|
@@ -1155,11 +1242,11 @@ export default {
|
|
|
1155
1242
|
self.$Message.warning(result.message)
|
|
1156
1243
|
//避免未提示消息直接回调
|
|
1157
1244
|
setTimeout(() => {
|
|
1158
|
-
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1245
|
+
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1159
1246
|
}, 1000)
|
|
1160
1247
|
} else if (result.code == '30010') {
|
|
1161
1248
|
self.$Modal.confirm({
|
|
1162
|
-
title:
|
|
1249
|
+
title: '提示',
|
|
1163
1250
|
content: result.message,
|
|
1164
1251
|
onOk: () => {
|
|
1165
1252
|
self.auditParams.auditResult = '70'
|
|
@@ -1169,10 +1256,10 @@ export default {
|
|
|
1169
1256
|
if (result.code == '200') {
|
|
1170
1257
|
self.loading = false
|
|
1171
1258
|
self.disable = false
|
|
1172
|
-
self.$Message.success(result.message)
|
|
1259
|
+
self.$Message.success(result.message)
|
|
1173
1260
|
//后端没有返回数据
|
|
1174
1261
|
setTimeout(() => {
|
|
1175
|
-
self.executionCompleted(true, null, null, auditResult, self.curTaskId)
|
|
1262
|
+
self.executionCompleted(true, null, null, auditResult, self.curTaskId)
|
|
1176
1263
|
}, 1000)
|
|
1177
1264
|
bus.$emit('triggerTimer')
|
|
1178
1265
|
} else {
|
|
@@ -1180,7 +1267,7 @@ export default {
|
|
|
1180
1267
|
self.disable = false
|
|
1181
1268
|
self.$Message.error(result.message)
|
|
1182
1269
|
setTimeout(() => {
|
|
1183
|
-
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1270
|
+
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1184
1271
|
}, 1000)
|
|
1185
1272
|
}
|
|
1186
1273
|
bus.$emit('triggerTimer')
|
|
@@ -1208,10 +1295,10 @@ export default {
|
|
|
1208
1295
|
if (result.code == '200') {
|
|
1209
1296
|
self.loading = false
|
|
1210
1297
|
self.disable = false
|
|
1211
|
-
self.$Message.success(result.message)
|
|
1298
|
+
self.$Message.success(result.message)
|
|
1212
1299
|
setTimeout(() => {
|
|
1213
1300
|
if (result.data) {
|
|
1214
|
-
let taskIds = result.data.map(item => item.id).join(',')
|
|
1301
|
+
let taskIds = result.data.map(item => item.id).join(',')
|
|
1215
1302
|
self.executionCompleted(true, result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
|
|
1216
1303
|
} else {
|
|
1217
1304
|
self.executionCompleted(true, null, null, auditResult, self.curTaskId)
|
|
@@ -1222,7 +1309,7 @@ export default {
|
|
|
1222
1309
|
self.disable = false
|
|
1223
1310
|
self.$Message.error(result.message)
|
|
1224
1311
|
setTimeout(() => {
|
|
1225
|
-
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1312
|
+
self.executionCompleted(false, null, null, auditResult, self.curTaskId)
|
|
1226
1313
|
}, 1000)
|
|
1227
1314
|
}
|
|
1228
1315
|
bus.$emit('triggerTimer')
|
|
@@ -1230,7 +1317,7 @@ export default {
|
|
|
1230
1317
|
}
|
|
1231
1318
|
})
|
|
1232
1319
|
} else {
|
|
1233
|
-
if (self.auditResult === '30' && (!self.handleButtons || self.handleButtons.includes('appointHandler') || self.handleButtons.includes('appointTimeoutTime'))){
|
|
1320
|
+
if (self.auditResult === '30' && (!self.handleButtons || self.handleButtons.includes('appointHandler') || self.handleButtons.includes('appointTimeoutTime'))) {
|
|
1234
1321
|
self.getNextNodes()
|
|
1235
1322
|
self.appointBoxShow = true
|
|
1236
1323
|
} else {
|
|
@@ -1238,16 +1325,16 @@ export default {
|
|
|
1238
1325
|
}
|
|
1239
1326
|
}
|
|
1240
1327
|
},
|
|
1241
|
-
doPass(){
|
|
1242
|
-
let self = this
|
|
1328
|
+
doPass() {
|
|
1329
|
+
let self = this
|
|
1243
1330
|
this.modal = false
|
|
1244
1331
|
let auditResult = {
|
|
1245
1332
|
code: self.auditResult,
|
|
1246
1333
|
name: self.handleButtonsNames[self.auditResult]
|
|
1247
1334
|
}
|
|
1248
1335
|
if (self.auditResult === '82' && (self.targetTaskNode == '' || self.targetTaskNode == null)) {
|
|
1249
|
-
self.auditResult = ''
|
|
1250
|
-
self.$Message.error(`请选择${self.handleName}节点!`)
|
|
1336
|
+
self.auditResult = ''
|
|
1337
|
+
self.$Message.error(`请选择${self.handleName}节点!`)
|
|
1251
1338
|
} else {
|
|
1252
1339
|
self.loading = true
|
|
1253
1340
|
self.disable = true
|
|
@@ -1258,9 +1345,9 @@ export default {
|
|
|
1258
1345
|
if (result.code == '200') {
|
|
1259
1346
|
self.loading = false
|
|
1260
1347
|
self.disable = false
|
|
1261
|
-
self.$Message.success(result.message ? result.message : `${self.handleName}成功`)
|
|
1262
|
-
if (result.data){
|
|
1263
|
-
let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
|
|
1348
|
+
self.$Message.success(result.message ? result.message : `${self.handleName}成功`)
|
|
1349
|
+
if (result.data) {
|
|
1350
|
+
let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
|
|
1264
1351
|
setTimeout(() => {
|
|
1265
1352
|
self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
|
|
1266
1353
|
}, 1000)
|
|
@@ -1297,9 +1384,9 @@ export default {
|
|
|
1297
1384
|
})
|
|
1298
1385
|
}
|
|
1299
1386
|
},
|
|
1300
|
-
showUpdateMultitaskInstanceModal(updateType){
|
|
1387
|
+
showUpdateMultitaskInstanceModal(updateType) {
|
|
1301
1388
|
const self = this
|
|
1302
|
-
if (updateType === '81'){
|
|
1389
|
+
if (updateType === '81') {
|
|
1303
1390
|
this.$refs.assigneeHelpBox.toggleShowHelpBox(this.organTreeType, '', 'addMultitaskInstance')
|
|
1304
1391
|
} else if (updateType === '83') {
|
|
1305
1392
|
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getUnapprovedListOfMultiNode?taskId=' + self.curTaskId).then(function (resp) {
|
|
@@ -1310,11 +1397,11 @@ export default {
|
|
|
1310
1397
|
self.$Message.error(resp.data.message)
|
|
1311
1398
|
}
|
|
1312
1399
|
}).catch(err => {
|
|
1313
|
-
console.log(err)
|
|
1400
|
+
console.log(err)
|
|
1314
1401
|
})
|
|
1315
1402
|
}
|
|
1316
1403
|
},
|
|
1317
|
-
updateMultitaskInstance(updateType, assignees){
|
|
1404
|
+
updateMultitaskInstance(updateType, assignees) {
|
|
1318
1405
|
const self = this
|
|
1319
1406
|
self.loading = true
|
|
1320
1407
|
self.disable = true
|
|
@@ -1329,24 +1416,57 @@ export default {
|
|
|
1329
1416
|
if (result.code == '200') {
|
|
1330
1417
|
self.loading = false
|
|
1331
1418
|
self.disable = false
|
|
1332
|
-
self.$Message.success(result.message)
|
|
1419
|
+
self.$Message.success(result.message)
|
|
1333
1420
|
} else {
|
|
1334
1421
|
self.loading = false
|
|
1335
1422
|
self.disable = false
|
|
1336
1423
|
self.$Message.error(result.message)
|
|
1337
1424
|
}
|
|
1338
1425
|
}).catch(err => {
|
|
1339
|
-
console.log(err)
|
|
1426
|
+
console.log(err)
|
|
1427
|
+
})
|
|
1428
|
+
},
|
|
1429
|
+
//委派
|
|
1430
|
+
delegateTask(assignee) {
|
|
1431
|
+
const self = this
|
|
1432
|
+
if (!assignee){
|
|
1433
|
+
self.$Message.error('请选择加签人员')
|
|
1434
|
+
return
|
|
1435
|
+
}
|
|
1436
|
+
let auditResult = {
|
|
1437
|
+
code: self.auditResult,
|
|
1438
|
+
name: self.handleButtonsNames[self.auditResult]
|
|
1439
|
+
}
|
|
1440
|
+
self.auditParams.selectedUserId = assignee
|
|
1441
|
+
ajax.post(self.smartFlowServerContext + '/manage/processTodo/audit', self.auditParams).then(resp => {
|
|
1442
|
+
let result = resp.data
|
|
1443
|
+
if (result.code == '200') {
|
|
1444
|
+
self.loading = false
|
|
1445
|
+
self.disable = false
|
|
1446
|
+
self.$Message.success('委派成功')
|
|
1447
|
+
if (result.data) {
|
|
1448
|
+
let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
|
|
1449
|
+
setTimeout(() => {
|
|
1450
|
+
self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
|
|
1451
|
+
}, 1000)
|
|
1452
|
+
}
|
|
1453
|
+
} else {
|
|
1454
|
+
self.loading = false
|
|
1455
|
+
self.disable = false
|
|
1456
|
+
self.$Message.error(result.message)
|
|
1457
|
+
}
|
|
1458
|
+
}).catch(err => {
|
|
1459
|
+
console.log(err)
|
|
1340
1460
|
})
|
|
1341
1461
|
},
|
|
1342
1462
|
//加签
|
|
1343
|
-
addMultitaskInstance(assingeeList){
|
|
1463
|
+
addMultitaskInstance(assingeeList) {
|
|
1344
1464
|
const assingees = assingeeList.join(',')
|
|
1345
1465
|
this.updateMultitaskInstance('81', assingees)
|
|
1346
1466
|
},
|
|
1347
1467
|
//减签
|
|
1348
|
-
reductionMultitaskInstance(){
|
|
1349
|
-
if (this.reductionAssigneeList.length === 0){
|
|
1468
|
+
reductionMultitaskInstance() {
|
|
1469
|
+
if (this.reductionAssigneeList.length === 0) {
|
|
1350
1470
|
this.$Message.error('请选择减签人员')
|
|
1351
1471
|
return
|
|
1352
1472
|
}
|
|
@@ -1361,25 +1481,25 @@ export default {
|
|
|
1361
1481
|
console.log(tab)
|
|
1362
1482
|
},
|
|
1363
1483
|
getAttach(row) {
|
|
1364
|
-
window.open(this.smartFlowServerContext +
|
|
1484
|
+
window.open(this.smartFlowServerContext + '/manage/oss/file/get/' + row.fileId, '_blank')
|
|
1365
1485
|
},
|
|
1366
1486
|
preViewAttach(row) {
|
|
1367
1487
|
let reg = /\.(gif|jpg|jpeg|bmp|png|PNG)$/
|
|
1368
1488
|
let regs = /\.(pdf)$/
|
|
1369
1489
|
if (reg.test(row.fileName)) {
|
|
1370
|
-
let url = this.smartFlowServerContext +
|
|
1371
|
-
this.imgPreview(url)
|
|
1490
|
+
let url = this.smartFlowServerContext + '/manage/oss/file/get/' + row.fileId
|
|
1491
|
+
this.imgPreview(url)
|
|
1372
1492
|
} else if (regs.test(row.fileName)) {
|
|
1373
|
-
window.open(this.smartFlowServerContext +
|
|
1493
|
+
window.open(this.smartFlowServerContext + '/manage/oss/file/getFileStream?fileId=' + row.fileId, '_blank')
|
|
1374
1494
|
} else {
|
|
1375
1495
|
this.modalDocx = true
|
|
1376
1496
|
axios({
|
|
1377
1497
|
method: 'get',
|
|
1378
1498
|
responseType: 'blob', // 因为是流文件,所以要指定blob类型
|
|
1379
|
-
url: this.smartFlowServerContext +
|
|
1380
|
-
}).then(({data}) => {
|
|
1499
|
+
url: this.smartFlowServerContext + '/manage/oss/file/get/' + row.fileId// 一个word下载文件的接口
|
|
1500
|
+
}).then(({ data }) => {
|
|
1381
1501
|
docx.renderAsync(data, this.$refs.file, null, {
|
|
1382
|
-
className:
|
|
1502
|
+
className: 'docx', //默认和文档样式类的类名/前缀
|
|
1383
1503
|
inWrapper: true, //启用围绕文档内容呈现包装器
|
|
1384
1504
|
ignoreWidth: false, //禁用页面的渲染宽度
|
|
1385
1505
|
ignoreHeight: false, //禁用页面的渲染高度
|
|
@@ -1398,8 +1518,8 @@ export default {
|
|
|
1398
1518
|
}
|
|
1399
1519
|
},
|
|
1400
1520
|
imgPreview(url) {
|
|
1401
|
-
this.imageUrl = url
|
|
1402
|
-
this.modalVisible = true
|
|
1521
|
+
this.imageUrl = url
|
|
1522
|
+
this.modalVisible = true
|
|
1403
1523
|
},
|
|
1404
1524
|
|
|
1405
1525
|
//打印流程图信息
|
|
@@ -1411,7 +1531,7 @@ export default {
|
|
|
1411
1531
|
procId: self.procId,
|
|
1412
1532
|
taskId: self.curTaskId,
|
|
1413
1533
|
}
|
|
1414
|
-
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getPrintData', {params: params}).then(function (resp) {
|
|
1534
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getPrintData', { params: params }).then(function (resp) {
|
|
1415
1535
|
let result = resp.data.data
|
|
1416
1536
|
if (resp.data.code === '200') {
|
|
1417
1537
|
let tableData = result
|
|
@@ -1430,16 +1550,16 @@ export default {
|
|
|
1430
1550
|
if (this.processHistory.length > 0) {
|
|
1431
1551
|
let task = null
|
|
1432
1552
|
this.processHistory.some(itemList => {
|
|
1433
|
-
task = itemList.find(item => item.taskId === taskId)
|
|
1434
|
-
return task !== undefined
|
|
1435
|
-
})
|
|
1553
|
+
task = itemList.find(item => item.taskId === taskId)
|
|
1554
|
+
return task !== undefined
|
|
1555
|
+
})
|
|
1436
1556
|
return task ? task.taskName : ''
|
|
1437
1557
|
}
|
|
1438
1558
|
return ''
|
|
1439
1559
|
},
|
|
1440
1560
|
cancel() {
|
|
1441
1561
|
this.modal = false
|
|
1442
|
-
this.auditResult = ''
|
|
1562
|
+
this.auditResult = ''
|
|
1443
1563
|
},
|
|
1444
1564
|
reductionModalCancel() {
|
|
1445
1565
|
this.reductionMultitaskInstanceModal = false
|
|
@@ -1458,7 +1578,7 @@ export default {
|
|
|
1458
1578
|
processDefId: self.procId,
|
|
1459
1579
|
taskId: self.curTaskId,
|
|
1460
1580
|
}
|
|
1461
|
-
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', {params: params}).then(function (resp) {
|
|
1581
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', { params: params }).then(function (resp) {
|
|
1462
1582
|
if (resp.data.code === '200') {
|
|
1463
1583
|
if (resp.data.data.length > 0) {
|
|
1464
1584
|
self.allNode = resp.data.data
|
|
@@ -1477,7 +1597,7 @@ export default {
|
|
|
1477
1597
|
processDefId: self.procId,
|
|
1478
1598
|
taskId: self.curTaskId,
|
|
1479
1599
|
}
|
|
1480
|
-
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getNodesBehind', {params: params}).then(function (resp) {
|
|
1600
|
+
ajax.get(self.smartFlowServerContext + '/manage/processTodo/getNodesBehind', { params: params }).then(function (resp) {
|
|
1481
1601
|
if (resp.data.code === '200') {
|
|
1482
1602
|
if (resp.data.data.length > 0) {
|
|
1483
1603
|
self.allNode = resp.data.data
|
|
@@ -1491,57 +1611,57 @@ export default {
|
|
|
1491
1611
|
})
|
|
1492
1612
|
},
|
|
1493
1613
|
handleSelectedUser(userId) {
|
|
1494
|
-
this.selectedUserId = userId
|
|
1614
|
+
this.selectedUserId = userId
|
|
1495
1615
|
},
|
|
1496
1616
|
|
|
1497
1617
|
//折叠动画效果
|
|
1498
1618
|
beforeEnter(el) {
|
|
1499
|
-
el.style.height = '0'
|
|
1619
|
+
el.style.height = '0'
|
|
1500
1620
|
},
|
|
1501
1621
|
enter(el, done) {
|
|
1502
1622
|
setTimeout(() => {
|
|
1503
|
-
el.style.height = el.scrollHeight + 'px'
|
|
1504
|
-
}, 0)
|
|
1623
|
+
el.style.height = el.scrollHeight + 'px'
|
|
1624
|
+
}, 0)
|
|
1505
1625
|
|
|
1506
|
-
el.addEventListener('transitionend', done)
|
|
1626
|
+
el.addEventListener('transitionend', done)
|
|
1507
1627
|
},
|
|
1508
1628
|
beforeLeave(el) {
|
|
1509
|
-
el.style.height = el.scrollHeight + 'px'
|
|
1629
|
+
el.style.height = el.scrollHeight + 'px'
|
|
1510
1630
|
},
|
|
1511
1631
|
leave(el, done) {
|
|
1512
1632
|
setTimeout(() => {
|
|
1513
|
-
el.style.height = '0'
|
|
1514
|
-
}, 0)
|
|
1633
|
+
el.style.height = '0'
|
|
1634
|
+
}, 0)
|
|
1515
1635
|
|
|
1516
|
-
el.addEventListener('transitionend', done)
|
|
1636
|
+
el.addEventListener('transitionend', done)
|
|
1517
1637
|
},
|
|
1518
1638
|
|
|
1519
1639
|
beforeFlowInfoEnter(el) {
|
|
1520
|
-
el.style.transform = 'translateX(100%)'
|
|
1640
|
+
el.style.transform = 'translateX(100%)'
|
|
1521
1641
|
},
|
|
1522
1642
|
flowInfoEnter(el, done) {
|
|
1523
|
-
const transitionDuration = 0.5
|
|
1524
|
-
el.style.transition = `transform ${transitionDuration}s
|
|
1525
|
-
el.style.transform = 'translateX(0)'
|
|
1526
|
-
el.addEventListener('transitionend', done)
|
|
1643
|
+
const transitionDuration = 0.5
|
|
1644
|
+
el.style.transition = `transform ${transitionDuration}s`
|
|
1645
|
+
el.style.transform = 'translateX(0)'
|
|
1646
|
+
el.addEventListener('transitionend', done)
|
|
1527
1647
|
},
|
|
1528
1648
|
beforeFlowInfoLeave(el) {
|
|
1529
|
-
el.style.transform = 'translateX(0)'
|
|
1649
|
+
el.style.transform = 'translateX(0)'
|
|
1530
1650
|
},
|
|
1531
1651
|
flowInfoLeave(el, done) {
|
|
1532
|
-
const transitionDuration = 0.5
|
|
1533
|
-
el.style.transition = `transform ${transitionDuration}s
|
|
1534
|
-
el.style.transform = 'translateX(100%)'
|
|
1535
|
-
el.addEventListener('transitionend', done)
|
|
1652
|
+
const transitionDuration = 0.5
|
|
1653
|
+
el.style.transition = `transform ${transitionDuration}s`
|
|
1654
|
+
el.style.transform = 'translateX(100%)'
|
|
1655
|
+
el.addEventListener('transitionend', done)
|
|
1536
1656
|
},
|
|
1537
1657
|
uploadFile(file) {
|
|
1538
|
-
const self = this
|
|
1658
|
+
const self = this
|
|
1539
1659
|
self.fileList = []
|
|
1540
1660
|
file.forEach(item => {
|
|
1541
1661
|
self.fileList.push({
|
|
1542
1662
|
fileName: item.fileName,
|
|
1543
1663
|
fileId: item.fileCode,
|
|
1544
|
-
})
|
|
1664
|
+
})
|
|
1545
1665
|
})
|
|
1546
1666
|
},
|
|
1547
1667
|
|
|
@@ -1555,55 +1675,64 @@ export default {
|
|
|
1555
1675
|
item.assignee ? acc[item.id].assignee = item.assignee : ''
|
|
1556
1676
|
item.candidateGroups ? acc[item.id].candidateGroup = item.candidateGroups : ''
|
|
1557
1677
|
let timeLimit = 'expireTime:0D0H;warningTime:0D0H;handleType:00'
|
|
1558
|
-
if(!(item.remainDay === 0 && item.remainTime === 0 && item.inAdvanceDay === 0 && item.inAdvanceTime === 0)) {
|
|
1559
|
-
timeLimit = 'expireTime:' + parseInt(item.remainDay) +
|
|
1678
|
+
if (!(item.remainDay === 0 && item.remainTime === 0 && item.inAdvanceDay === 0 && item.inAdvanceTime === 0)) {
|
|
1679
|
+
timeLimit = 'expireTime:' + parseInt(item.remainDay) + 'D' + parseInt(item.remainTime) + 'H' + ';warningTime:' + parseInt(item.inAdvanceDay) + 'D' + parseInt(item.inAdvanceTime) + 'H;' + 'handleType:' + item.processing
|
|
1560
1680
|
acc[item.id].timeLimit = timeLimit
|
|
1561
1681
|
} else {
|
|
1562
1682
|
acc[item.id].timeLimit = ''
|
|
1563
1683
|
}
|
|
1564
1684
|
oldSettings = self.nextNodesOldSettings.filter(oldSetting => oldSetting.id === item.id)[0]
|
|
1565
|
-
if (oldSettings.assignee !== item.assignee || self.checkGroupsUpdate(oldSettings.candidates, item.candidateGroups) || self.checkTimeLimitUpdate(oldSettings.timeLimit, timeLimit)) {
|
|
1685
|
+
if (oldSettings.assignee !== item.assignee || self.checkGroupsUpdate(oldSettings.candidates, item.candidateGroups, item.isMultiInstance) || self.checkTimeLimitUpdate(oldSettings.timeLimit, timeLimit)) {
|
|
1566
1686
|
acc[item.id].needUpdate = 'true'
|
|
1567
1687
|
}
|
|
1568
|
-
return acc
|
|
1569
|
-
}, {})
|
|
1688
|
+
return acc
|
|
1689
|
+
}, {})
|
|
1570
1690
|
self.auditParams.nodeConfigMaps = JSON.stringify(params)
|
|
1571
1691
|
self.doPass((execResult, instanceId, taskIds, auditResult, curTaskId) => {
|
|
1572
1692
|
if (this.executionCompleted) {
|
|
1573
|
-
this.executionCompleted(execResult, instanceId, taskIds, auditResult, curTaskId)
|
|
1693
|
+
this.executionCompleted(execResult, instanceId, taskIds, auditResult, curTaskId)
|
|
1574
1694
|
}
|
|
1575
1695
|
})
|
|
1576
1696
|
},
|
|
1577
|
-
checkGroupsUpdate(oldSetting, newSetting) {
|
|
1697
|
+
checkGroupsUpdate(oldSetting, newSetting, isMultiInstance) {
|
|
1578
1698
|
if (oldSetting && newSetting) {
|
|
1579
1699
|
let oldIdList = []
|
|
1580
1700
|
for (let [key, value] of Object.entries(oldSetting)) {
|
|
1581
1701
|
if (value) {
|
|
1582
1702
|
value.split(',').forEach(part => {
|
|
1583
|
-
const [id] = part.split(':')
|
|
1703
|
+
const [id] = part.split(':')
|
|
1584
1704
|
if (id) {
|
|
1585
|
-
oldIdList.push(id)
|
|
1705
|
+
oldIdList.push(id)
|
|
1586
1706
|
}
|
|
1587
1707
|
})
|
|
1588
1708
|
}
|
|
1589
1709
|
}
|
|
1590
|
-
const regex = /(?:O:|U:|P:|R:|T:)([^,]+)/g
|
|
1591
|
-
let match
|
|
1592
|
-
const newIds = []
|
|
1710
|
+
const regex = /(?:O:|U:|P:|R:|T:)([^,]+)/g
|
|
1711
|
+
let match
|
|
1712
|
+
const newIds = []
|
|
1593
1713
|
while ((match = regex.exec(newSetting)) !== null) {
|
|
1594
1714
|
newIds.push(...match[1].split(';'))
|
|
1595
1715
|
}
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1716
|
+
|
|
1717
|
+
if (isMultiInstance) {
|
|
1718
|
+
//串签的情况下可能只有顺序发生了变化
|
|
1719
|
+
const oldStr = oldIdList.join(',')
|
|
1720
|
+
const newStr = newIds.join(',')
|
|
1721
|
+
return oldStr !== newStr
|
|
1722
|
+
}else {
|
|
1723
|
+
const allInString = oldIdList.every(item => newIds.includes(item));
|
|
1724
|
+
const hasExtra = newIds.some(item => !oldIdList.includes(item));
|
|
1725
|
+
return !allInString || hasExtra
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1599
1728
|
}
|
|
1600
1729
|
return false
|
|
1601
1730
|
},
|
|
1602
|
-
checkTimeLimitUpdate(oldSetting, newSetting){
|
|
1603
|
-
if (oldSetting && newSetting){
|
|
1731
|
+
checkTimeLimitUpdate(oldSetting, newSetting) {
|
|
1732
|
+
if (oldSetting && newSetting) {
|
|
1604
1733
|
return oldSetting !== newSetting
|
|
1605
1734
|
}
|
|
1606
|
-
if (!oldSetting){
|
|
1735
|
+
if (!oldSetting) {
|
|
1607
1736
|
return newSetting !== 'expireTime:0D0H;warningTime:0D0H;handleType:00'
|
|
1608
1737
|
}
|
|
1609
1738
|
return false
|
|
@@ -1616,9 +1745,9 @@ export default {
|
|
|
1616
1745
|
candidateGroupsReadingRangeClick(item) {
|
|
1617
1746
|
let permScope = item.orgTreeType === this.defaultOrganTreeType ? this.permScope : 'all'
|
|
1618
1747
|
let orgTreeType = item.orgTreeType ? item.orgTreeType : this.defaultOrganTreeType
|
|
1619
|
-
this.$refs.candidateGroupsHelpBox.toggleShowHelpBox(permScope, item.candidates, orgTreeType, item.id)
|
|
1748
|
+
this.$refs.candidateGroupsHelpBox.toggleShowHelpBox(permScope, item.candidates, orgTreeType, item.id)
|
|
1620
1749
|
},
|
|
1621
|
-
updateCandGroups(newCandGroups, nameStr, detail, nodeId){
|
|
1750
|
+
updateCandGroups(newCandGroups, nameStr, detail, nodeId) {
|
|
1622
1751
|
let oldSettings = this.nextNodesOldSettings.filter(item => item.id === nodeId)[0]
|
|
1623
1752
|
if (JSON.stringify(oldSettings.candidates) != JSON.stringify(detail)) {
|
|
1624
1753
|
let node = this.nextNodesFormList.filter(item => item.id === nodeId)[0]
|
|
@@ -1626,26 +1755,26 @@ export default {
|
|
|
1626
1755
|
node.candidateNames = nameStr
|
|
1627
1756
|
node.candidates = detail
|
|
1628
1757
|
node.needUpdate = true
|
|
1629
|
-
this.$forceUpdate()
|
|
1758
|
+
this.$forceUpdate()
|
|
1630
1759
|
}
|
|
1631
1760
|
},
|
|
1632
|
-
updateNextNodeAssignee(selectedAssigneeId, selectedAssigneeName, nodeId){
|
|
1761
|
+
updateNextNodeAssignee(selectedAssigneeId, selectedAssigneeName, nodeId) {
|
|
1633
1762
|
let oldSettings = this.nextNodesOldSettings.filter(item => item.id === nodeId)[0]
|
|
1634
1763
|
if (oldSettings.assignee != selectedAssigneeId) {
|
|
1635
1764
|
let node = this.nextNodesFormList.filter(item => item.id === nodeId)[0]
|
|
1636
1765
|
node.assignee = selectedAssigneeId
|
|
1637
1766
|
node.assigneeName = selectedAssigneeName
|
|
1638
1767
|
node.needUpdate = true
|
|
1639
|
-
this.$forceUpdate()
|
|
1768
|
+
this.$forceUpdate()
|
|
1640
1769
|
}
|
|
1641
1770
|
}
|
|
1642
1771
|
},
|
|
1643
1772
|
watch: {
|
|
1644
1773
|
auditOpinionText(label) {
|
|
1645
|
-
this.form.auditOpinion = label
|
|
1774
|
+
this.form.auditOpinion = label
|
|
1646
1775
|
},
|
|
1647
1776
|
procId(val) {
|
|
1648
|
-
this.procId = val
|
|
1777
|
+
this.procId = val
|
|
1649
1778
|
this.initData()
|
|
1650
1779
|
},
|
|
1651
1780
|
}
|