@lambo-design/workflow-approve 1.0.0-beta.91 → 1.0.0-beta.93

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/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import WorkflowHorizontalApprove from "./src/horizontal";
2
2
  import WorkflowPortraitApprove from "./src/portrait";
3
3
  import WorkflowDiagram from "./src/workflow-diagram";
4
+ import { WorkflowOperationButtons, WorkflowInfoButtons } from "./src/utils/const";
4
5
 
5
6
  export {
6
7
  WorkflowHorizontalApprove,
7
8
  WorkflowPortraitApprove,
8
- WorkflowDiagram
9
+ WorkflowDiagram,
10
+ WorkflowOperationButtons,
11
+ WorkflowInfoButtons
9
12
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/workflow-approve",
3
- "version": "1.0.0-beta.91",
3
+ "version": "1.0.0-beta.93",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "lambo",
@@ -12,8 +12,8 @@
12
12
  "devDependencies": {
13
13
  "axios": "^0.24.0",
14
14
  "axios-cache-plugin": "^0.1.0",
15
- "@lambo-design/core": "^4.7.1-beta.168",
16
- "@lambo-design/shared": "^1.0.0-beta.295"
15
+ "@lambo-design/core": "^4.7.1-beta.169",
16
+ "@lambo-design/shared": "^1.0.0-beta.297"
17
17
  },
18
18
  "dependencies": {
19
19
  "bpmn-js": "^7.3.1",
@@ -11,8 +11,8 @@
11
11
  </div>
12
12
  </div>
13
13
  <div class="org-detil">
14
- <LamboPagingTable ref="selection" :data="tableData" :dataUrl="dataUrl" :columns="tableColumn" :searchParams="tableSearchParams"
15
- @on-selection-change="onSelectionChange" :page-disable="useTransferRangeUsers" :showTableOption="!useTransferRangeUsers">
14
+ <LamboPagingTable ref="selection" highlight-row :data="tableData" :dataUrl="dataUrl" :columns="tableColumn" :searchParams="tableSearchParams"
15
+ @on-selection-change="onSelectionChange" @on-current-change="onCurrentChange" :page-disable="useTransferRangeUsers" :showTableOption="!useTransferRangeUsers">
16
16
  <div slot="search" v-if="!useTransferRangeUsers">
17
17
  <Form :label-width="60">
18
18
  <Row>
@@ -139,13 +139,16 @@ export default {
139
139
  tableColumn () {
140
140
  let columns = []
141
141
  let self = this
142
- columns.push({
143
- title: '#',
144
- key: 'selectId',
145
- type: 'selection',
146
- align: 'center',
147
- width: 55
148
- })
142
+ // 加签/选择候选人可多选
143
+ if (this.helpBoxType === 'addMultitaskInstance' || this.helpBoxType === 'appointHandlerWithCandGroups'){
144
+ columns.push({
145
+ title: '#',
146
+ key: 'selectId',
147
+ type: 'selection',
148
+ align: 'center',
149
+ width: 55
150
+ })
151
+ }
149
152
  columns.push({
150
153
  title: '账号',
151
154
  key: 'userId',
@@ -338,15 +341,21 @@ export default {
338
341
  doSearch: function () {
339
342
  this.tableSearchParams = Object.assign({}, this.form)
340
343
  },
344
+ // 加签、选择下一环节候选人
341
345
  onSelectionChange: function (selection) {
342
346
  let self = this
343
- // self.idSelectedArr = []
344
- if (self.helpBoxType !== 'addMultitaskInstance' && self.helpBoxType !== 'appointHandlerWithCandGroups' && selection.length > 1) {
345
- self.$Message.info('只能选择一条记录!')
346
- this.$refs.selection.selectAll(false);
347
+ if (self.helpBoxType === 'addMultitaskInstance' || self.helpBoxType === 'appointHandlerWithCandGroups') {
348
+ for (let item of selection) {
349
+ self.idSelectedArr.push(item.userId + ',' + item.userName)
350
+ }
347
351
  }
348
- for (let item of selection) {
349
- self.idSelectedArr.push(item.userId + ',' + item.userName)
352
+ },
353
+ // 转办、委派、选择下一环节办理人
354
+ onCurrentChange(selection) {
355
+ let self = this
356
+ if (self.helpBoxType !== 'addMultitaskInstance' && self.helpBoxType !== 'appointHandlerWithCandGroups') {
357
+ self.idSelectedArr = []
358
+ self.idSelectedArr.push(selection.userId + ',' + selection.userName)
350
359
  }
351
360
  },
352
361
  loadData (node, callback) {
@@ -239,7 +239,7 @@ export default {
239
239
  //组件宽度
240
240
  portraitWidth: {
241
241
  type: Number,
242
- default: 0
242
+ default: 400
243
243
  },
244
244
  //是否显示竖向布局
245
245
  inHorizontal: {
package/src/portrait.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <LamboPageContainer style="overflow: hidden">
2
+ <LamboPageContainer style="overflow: hidden" :footer-height="footerHeight">
3
3
  <template slot="page-title">
4
4
  <Tabs v-if="processTraceInTab" value="business" @on-click="changeTab">
5
5
  <TabPane :label="title" name="business"></TabPane>
@@ -80,7 +80,7 @@
80
80
 
81
81
  <!-- 竖版 -->
82
82
  <div v-if="!inHorizontal" class="portrait-lambo-indicator-card"
83
- :style="{paddingBottom: '50px', position: 'absolute', top: '55px', height: 'calc(100% - 50px)', left: '0', width: isExpanded && showProcessInfo ? `calc(100% - ${portraitWidth+10}px)` : '99%'}">
83
+ :style="{...pageContainerWithoutPadding, left: '0', width: isExpanded && showProcessInfo ? `calc(100% - ${portraitWidth+10}px)` : '99%'}">
84
84
  <!-- 业务内容区插槽 -->
85
85
  <slot v-if="currentTab === 'business'" name="business-content"></slot>
86
86
  <div ref="processTraceTab" v-if="currentTab === 'processTrace'">
@@ -94,14 +94,14 @@
94
94
  </div>
95
95
  <!-- 流程信息区 -->
96
96
  <a v-if="showProcessInfo && !inHorizontal" @click="isExpanded = !isExpanded" class="arrow-button-container"
97
- :style="{right: isExpanded ? portraitWidth+10 + 'px' : '10px'}">
97
+ :style="{right: isExpanded ? portraitWidth-5 + 'px' : '5px'}">
98
98
  <Icon class="icon-class" v-if="isExpanded" type="ios-arrow-forward"/>
99
99
  <Icon class="icon-class" v-if="!isExpanded" type="ios-arrow-back"/>
100
100
  </a>
101
101
  <transition style="position: relative; overflow-x: hidden" v-if="showProcessInfo && !inHorizontal" name="draw" @before-enter="beforeFlowInfoEnter" @enter="flowInfoEnter"
102
102
  @before-leave="beforeFlowInfoLeave" @leave="flowInfoLeave">
103
103
  <lamboIndicatorCard v-show="isExpanded" class="portrait-lambo-indicator-card"
104
- :style="{width: portraitWidth + 'px', paddingBottom: '50px', position: 'absolute', top: '55px', right: '0', height: 'calc(100% - 50px)'}" :hasExtend="false">
104
+ :style="{width: portraitWidth + 'px', right: '0', ...pageContainerWithoutPadding}" :hasExtend="false">
105
105
  <div slot="content-title">流程信息</div>
106
106
  <ProcessInfo ref="processInfo"
107
107
  v-model="form.auditOpinion"
@@ -275,7 +275,7 @@
275
275
  :key="button.id"
276
276
  style="margin-left: 10px;"
277
277
  v-if="button.condition"
278
- :disabled="button.disabled || disable"
278
+ :disabled="button.disabled"
279
279
  :loading="loading"
280
280
  :type="button.type || 'default'"
281
281
  @click="button.action"
@@ -301,7 +301,7 @@ import CandidateGroupsHelpBox from './components/candidate-groups-box'
301
301
  import CountersingersBox from './components/countersigners-box'
302
302
  import { timestampToTime } from '@lambo-design/shared/utils/date'
303
303
  import ProcessInfo from './components/process-info'
304
- import { nodeType } from './utils/const'
304
+ import { NodeType } from './utils/const'
305
305
 
306
306
  export default {
307
307
  props: {
@@ -332,23 +332,59 @@ export default {
332
332
  required: false,
333
333
  default: '',
334
334
  },
335
+ //业务表单保存方法
336
+ businessFormSave: {
337
+ type: Function,
338
+ required: false
339
+ },
340
+ //按钮执行完毕回调方法
341
+ executionCompleted: {
342
+ type: Function,
343
+ required: false,
344
+ default: () => {}
345
+ },
346
+ smartFlowServerContext: {
347
+ type: String,
348
+ default: '/api/smart-flow-server',
349
+ },
350
+ upmsServerContext: {
351
+ type: String,
352
+ default: '/api/upms-server',
353
+ },
354
+ //标题
355
+ title: {
356
+ type: String,
357
+ default: '流程办理'
358
+ },
359
+ //审批人来源
335
360
  auditGroup: {
336
361
  type: String,
337
362
  required: false,
338
363
  default: '',
339
364
  },
365
+ //默认审批意见
340
366
  defaultAuditOpinion: {
341
367
  type: String,
342
368
  required: false,
343
369
  default: '',
344
370
  },
345
- //详情页催办按钮
371
+ //是否显示竖向布局
372
+ inHorizontal: {
373
+ type: Boolean,
374
+ default: false
375
+ },
376
+ //强制不展示的流程操作按钮
377
+ displayedOperButton: {
378
+ type: Array,
379
+ default: () => ([])
380
+ },
381
+ //是否展示详情页催办按钮
346
382
  pushButton: {
347
383
  type: Boolean,
348
384
  required: false,
349
385
  default: true,
350
386
  },
351
- //流程跟踪图附件列
387
+ //是否展示流程跟踪图附件列
352
388
  showAttachmentFile: {
353
389
  type: Boolean,
354
390
  required: false,
@@ -360,40 +396,11 @@ export default {
360
396
  required: false,
361
397
  default: 'click',
362
398
  },
363
- //业务表单保存方法
364
- businessFormSave: {
365
- type: Function,
366
- required: false
367
- },
368
- //按钮执行完毕回调方法
369
- executionCompleted: {
370
- type: Function,
371
- required: false,
372
- default: () => {
373
- }
374
- },
375
- //是否显示竖向布局
376
- inHorizontal: {
377
- type: Boolean,
378
- default: false
379
- },
380
- title: {
381
- type: String,
382
- default: '流程办理'
383
- },
384
399
  //流程跟踪图以tab形式展示
385
400
  processTraceInTab: {
386
401
  type: Boolean,
387
402
  default: false
388
403
  },
389
- smartFlowServerContext: {
390
- type: String,
391
- default: '/api/smart-flow-server',
392
- },
393
- upmsServerContext: {
394
- type: String,
395
- default: '/api/upms-server',
396
- },
397
404
  },
398
405
  components: {
399
406
  Title,
@@ -409,6 +416,7 @@ export default {
409
416
  data() {
410
417
  return {
411
418
  isExpanded: true,
419
+ footerHeight: 55,
412
420
  showProcessInfo: true,
413
421
  portraitWidth: 0,
414
422
  openProcessInfo: true,
@@ -470,7 +478,7 @@ export default {
470
478
  appointTask: false,
471
479
  instanceId: '',
472
480
  curTaskId: '',
473
- curNodeType: nodeType.userTask,
481
+ curNodeType: NodeType.UserTask,
474
482
  handleButtons: [],
475
483
  handleName: '审批',
476
484
  passName: '通过',
@@ -566,102 +574,127 @@ export default {
566
574
  window.removeEventListener('resize', this.handleWindowResize);
567
575
  },
568
576
  computed: {
577
+ pageContainerWithoutPadding(){
578
+ const top = 55
579
+ let style = {
580
+ position: 'absolute',
581
+ top: `${top}px`,
582
+ height: `calc(100% - ${top + this.footerHeight}px)`,
583
+ }
584
+ return style
585
+ },
569
586
  buttons() {
570
587
  const showButtons = !this.isDetail && !this.appointTask && !this.rejectedTask
571
588
  return [
572
589
  {
573
590
  id: 'auditTo70',
574
591
  label: `${this.rejectName}到原点`,
575
- condition: this.handleButtons?.includes('auditTo70') && showButtons,
576
- action: () => this.audit('70')
592
+ condition: this.handleButtons?.includes('auditTo70') && !this.displayedOperButton.includes('auditTo70') && showButtons,
593
+ action: () => this.audit('70'),
594
+ disabled: this.disable
577
595
  },
578
596
  {
579
597
  id: 'auditTo40',
580
598
  label: `${this.rejectName}上一节点`,
581
- condition: this.handleButtons?.includes('auditTo40') && showButtons,
582
- action: () => this.audit('40')
599
+ condition: this.handleButtons?.includes('auditTo40') && !this.displayedOperButton.includes('auditTo40') && showButtons,
600
+ action: () => this.audit('40'),
601
+ disabled: this.disable
583
602
  },
584
603
  {
585
604
  id: 'auditTo90',
586
605
  label: `${this.rejectName}指定节点`,
587
- condition: this.handleButtons?.includes('auditTo90') && showButtons,
588
- action: () => this.audit('90')
606
+ condition: this.handleButtons?.includes('auditTo90') && !this.displayedOperButton.includes('auditTo90') && showButtons,
607
+ action: () => this.audit('90'),
608
+ disabled: this.disable
589
609
  },
590
610
  {
591
611
  id: 'auditTo80',
592
612
  label: '跳转指定节点',
593
- condition: this.handleButtons?.includes('auditTo80') && showButtons,
594
- action: () => this.audit('80')
613
+ condition: this.handleButtons?.includes('auditTo80') && !this.displayedOperButton.includes('auditTo80') && showButtons,
614
+ action: () => this.audit('80'),
615
+ disabled: this.disable
595
616
  },
596
617
  {
597
618
  id: 'auditTo82',
598
619
  label: '指定他人处理',
599
- condition: this.handleButtons?.includes('auditTo82') && showButtons,
600
- action: () => this.audit('82')
620
+ condition: this.handleButtons?.includes('auditTo82') && !this.displayedOperButton.includes('auditTo82') && showButtons,
621
+ action: () => this.audit('82'),
622
+ disabled: this.disable
601
623
  },
602
624
  {
603
625
  id: 'delegateTask',
604
626
  label: '委派',
605
- condition: this.curNodeType === nodeType.userTask &&
606
- this.handleButtons?.includes('delegateTask') &&
627
+ condition: this.curNodeType === NodeType.UserTask &&
628
+ this.handleButtons?.includes('delegateTask') &&
629
+ !this.displayedOperButton.includes('delegateTask') &&
607
630
  showButtons,
608
- action: () => this.audit('84')
631
+ action: () => this.audit('84'),
632
+ disabled: this.disable
609
633
  },
610
634
  {
611
635
  id: 'addMultitaskInstance',
612
636
  label: '加签',
613
- condition: this.curNodeType === nodeType.multiNode &&
637
+ condition: this.curNodeType === NodeType.MultiNode &&
614
638
  this.handleButtons?.includes('addMultitaskInstance') &&
639
+ !this.displayedOperButton.includes('addMultitaskInstance') &&
615
640
  showButtons,
616
- action: () => this.showUpdateMultitaskInstanceModal('81')
641
+ action: () => this.showUpdateMultitaskInstanceModal('81'),
642
+ disabled: this.disable
617
643
  },
618
644
  {
619
645
  id: 'reductionMultitaskInstance',
620
646
  label: '减签',
621
- condition: this.curNodeType === nodeType.multiNode &&
647
+ condition: this.curNodeType === NodeType.MultiNode &&
622
648
  this.handleButtons?.includes('reductionMultitaskInstance') &&
649
+ !this.displayedOperButton.includes('reductionMultitaskInstance') &&
623
650
  showButtons,
624
- action: () => this.showUpdateMultitaskInstanceModal('83')
651
+ action: () => this.showUpdateMultitaskInstanceModal('83'),
652
+ disabled: this.disable
625
653
  },
626
654
  {
627
655
  id: 'auditTo50',
628
656
  label: '直接结束流程',
629
- condition: this.handleButtons?.includes('auditTo50') && showButtons,
630
- action: () => this.audit('50')
657
+ condition: this.handleButtons?.includes('auditTo50') && !this.displayedOperButton.includes('auditTo50') && showButtons,
658
+ action: () => this.audit('50'),
659
+ disabled: this.disable
631
660
  },
632
661
  {
633
662
  id: 'processTrace',
634
663
  label: '流程跟踪图',
635
- condition: this.handleButtons?.includes('processTrace') && !this.processTraceInTab,
636
- action: () => this.processPrint()
664
+ condition: this.handleButtons?.includes('processTrace') && !this.displayedOperButton.includes('processTrace') && !this.processTraceInTab,
665
+ action: () => this.processPrint(),
666
+ disabled: this.disable
637
667
  },
638
668
  {
639
669
  id: 'auditTo30',
640
670
  label: this.passName,
641
- condition: this.handleButtons?.includes('auditTo30') && !this.isDetail && !this.appointTask,
671
+ condition: this.handleButtons?.includes('auditTo30') && !this.displayedOperButton.includes('auditTo30') && !this.isDetail && !this.appointTask,
642
672
  action: () => this.audit('30'),
643
- type: 'primary'
673
+ type: 'primary',
674
+ disabled: this.disable
644
675
  },
645
676
  {
646
677
  id: 'passContinue',
647
678
  label: `${this.passName}并继续`,
648
- condition: this.handleButtons?.includes('passContinue') && !this.isDetail && !this.appointTask,
679
+ condition: this.handleButtons?.includes('passContinue') && !this.displayedOperButton.includes('passContinue') && !this.isDetail && !this.appointTask,
649
680
  action: () => this.passContinueAudit(),
650
- type: 'primary'
681
+ type: 'primary',
682
+ disabled: this.disable
651
683
  },
652
684
  {
653
685
  id: 'revokeDelegateTask',
654
686
  label: '撤回委派',
655
- condition: this.revokeDelegateTask,
687
+ condition: this.revokeDelegateTask && !this.displayedOperButton.includes('revokeDelegateTask'),
656
688
  action: () => this.audit('62'),
657
689
  disabled: !this.revokeDelegateTask
658
690
  },
659
691
  {
660
692
  id: 'appointTask',
661
693
  label: '交回',
662
- condition: this.appointTask,
694
+ condition: this.appointTask && !this.displayedOperButton.includes('appointTask'),
663
695
  action: () => this.audit('61'),
664
- type: 'primary'
696
+ type: 'primary',
697
+ disabled: this.disable
665
698
  }
666
699
  ];
667
700
  },
@@ -869,6 +902,9 @@ export default {
869
902
  } else if (row.auditResult == '62') {
870
903
  label = '委派任务被撤回'
871
904
  tagColor = 'blue' // 蓝色
905
+ } else if (row.auditResult == '63') {
906
+ label = '委派任务'
907
+ tagColor = 'green' // 绿色
872
908
  } else if (row.auditResult == '80') {
873
909
  label = '跳转到指定节点'
874
910
  tagColor = 'cyan' // 青色
@@ -1158,7 +1194,7 @@ export default {
1158
1194
  if (resp.data.code === '200') {
1159
1195
  self.handleButtons = resp.data.data[0].handleButtons ? resp.data.data[0].handleButtons : ["processTrace","auditHistory","auditOpinion","attachmentFile","auditTo30","auditTo70","auditTo40","auditTo90","auditTo80","auditTo82","auditTo50"];
1160
1196
  if (resp.data.data[0].hasOwnProperty('isSequential')) {
1161
- self.curNodeType = resp.data.data[0].isSequential ? nodeType.sequentialMultiNode : nodeType.multiNode;
1197
+ self.curNodeType = resp.data.data[0].isSequential ? NodeType.SequentialMultiNode : NodeType.MultiNode;
1162
1198
  }
1163
1199
  self.handleName = resp.data.data[0].handleName ? resp.data.data[0].handleName : '审批';
1164
1200
  self.rejectName = resp.data.data[0].rejectName ? resp.data.data[0].rejectName : '驳回';
@@ -1397,7 +1433,7 @@ export default {
1397
1433
  self.businessFormSave ? self.businessFormSave(self.handleSaveResult, auditResult) : self.handleSaveResult(true)
1398
1434
  return
1399
1435
  }
1400
- if ((!self.handleButtons || self.handleButtons.includes('auditOpinion')) && self.auditResult !== '84') {
1436
+ if ((!self.handleButtons || self.handleButtons.includes('auditOpinion')) && self.auditResult !== '84' && self.auditResult !== '62') {
1401
1437
  self.$Message.error(`请输入${self.handleName}意见!`)
1402
1438
  return
1403
1439
  } else {
@@ -1,89 +1,36 @@
1
- export const nodeType = {
2
- userTask: 'userTask',
3
- multiNode: 'multiNode',
4
- sequentialMultiNode: 'sequentialMultiNode'
1
+ export const NodeType = {
2
+ UserTask: 'userTask',
3
+ MultiNode: 'multiNode',
4
+ SequentialMultiNode: 'sequentialMultiNode'
5
5
  }
6
6
 
7
- export const handleButtons = {
8
- //流程信息按钮
9
- processTrace: {
10
- id: 'processTrace',
11
- name: '流程跟踪图',
12
- },
13
- auditHistory: {
14
- id: 'auditHistory',
15
- name: '审批历史',
16
- },
17
- auditOpinion: {
18
- id: 'auditOpinion',
19
- name: '处理意见',
20
- },
21
- attachmentFile: {
22
- id: 'attachmentFile',
23
- name: '上传附件',
24
- },
25
- //流程操作按钮
26
- auditTo30: {
27
- id: 'auditTo30',
28
- name: '同意',
29
- auditResult: '30',
30
- },
31
- auditTo70: {
32
- id: 'auditTo70',
33
- name: '驳回原点',
34
- auditResult: '70',
35
- },
36
- auditTo40: {
37
- id: 'auditTo40',
38
- name: '驳回上一节点',
39
- auditResult: '40',
40
- },
41
- auditTo90: {
42
- id: 'auditTo90',
43
- name: '驳回指定节点',
44
- auditResult: '90',
45
- },
46
- auditTo80: {
47
- id: 'auditTo80',
48
- name: '跳转指定节点',
49
- auditResult: '80',
50
- },
51
- auditTo82: {
52
- id: 'auditTo82',
53
- name: '转办',
54
- auditResult: '82',
55
- },
56
- auditTo50: {
57
- id: 'auditTo50',
58
- name: '人工终止',
59
- auditResult: '50',
60
- },
61
- delegateTask: {
62
- id: 'delegateTask',
63
- name: '委派',
64
- auditResult: 'delegateTask',
65
- },
66
- addMultitaskInstance: {
67
- id: 'addMultitaskInstance',
68
- name: '加签',
69
- auditResult: 'addMultitaskInstance',
70
- },
71
- reductionMultitaskInstance: {
72
- id: 'reductionMultitaskInstance',
73
- name: '减签',
74
- auditResult: 'reductionMultitaskInstance',
75
- },
76
- //后续操作按钮
77
- rejectProcessControl: {
78
- id: 'rejectProcessControl',
79
- name: '允许驳回时控制流转',
80
- },
81
- appointHandler: {
82
- id: 'appointHandler',
83
- name: '指定下一环节的办理人',
84
- },
85
- appointTimeoutTime: {
86
- id: 'appointTimeoutTime',
87
- name: '指定下一环节办理时限(含预警时间)',
88
- },
7
+ // 流程信息按钮
8
+ export const WorkflowInfoButtons = {
9
+ ProcessTrace: 'processTrace',// 流程跟踪图
10
+ AuditHistory: 'auditHistory',// 审批历史
11
+ AuditOpinion: 'auditOpinion',// 审批意见
12
+ AttachmentFile: 'attachmentFile',// 附件
13
+ }
14
+
15
+ // 流程操作按钮
16
+ export const WorkflowOperationButtons = {
17
+ AuditTo30: 'auditTo30',// 通过
18
+ AuditTo70: 'auditTo70',// 驳回原点
19
+ AuditTo40: 'auditTo40',// 驳回上一节点
20
+ AuditTo90: 'auditTo90',// 驳回指定节点
21
+ AuditTo80: 'auditTo80',// 跳转指定节点
22
+ AuditTo82: 'auditTo82',// 转办
23
+ AuditTo50: 'auditTo50',// 人工终止
24
+ DelegateTask: 'delegateTask',// 委派
25
+ RevokeDelegateTask: 'revokeDelegateTask',// 撤回委派
26
+ AppointTask: 'appointTask',// 交回委派
27
+ AddMultitaskInstance: 'addMultitaskInstance',// 会签加签
28
+ ReductionMultitaskInstance: 'reductionMultitaskInstance',// 会签减签
29
+ }
30
+
31
+ // 流程流转控制按钮
32
+ export const WorkflowControlButtons = {
33
+ RejectProcessControl: 'rejectProcessControl',// 允许驳回时控制流转
34
+ AppointHandler: 'appointHandler',// 指定下一环节的办理人
35
+ AppointTimeoutTime: 'appointTimeoutTime',// 指定下一环节办理时限(含预警时间)
89
36
  }