@lambo-design/workflow-approve 1.0.0-beta.2 → 1.0.0-beta.4

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/src/portrait.vue CHANGED
@@ -6,21 +6,21 @@
6
6
  <template slot="page-extend">
7
7
  <Button type="primary" ghost @click="pageGoBack">返回</Button>
8
8
  </template>
9
- <div class="lamboIndicatorCard" :style="{float: 'left', width: isExpanded ? `calc(100% - ${portraitWidth+10}px)` : '99%'}">
9
+ <div class="portrait-lambo-indicator-card" :style="{float: 'left', width: isExpanded ? `calc(100% - ${portraitWidth+10}px)` : '99%'}">
10
10
  <slot name="business-content">
11
11
  </slot>
12
12
  </div>
13
13
 
14
14
  <a @click="isExpanded = !isExpanded" class="arrow-button-container" :style="{right: isExpanded ? portraitWidth+10 + 'px' : '10px'}">
15
- <Icon class="iconClass" v-if="isExpanded" type="ios-arrow-forward"/>
16
- <Icon class="iconClass" v-if="!isExpanded" type="ios-arrow-back"/>
15
+ <Icon class="icon-class" v-if="isExpanded" type="ios-arrow-forward"/>
16
+ <Icon class="icon-class" v-if="!isExpanded" type="ios-arrow-back"/>
17
17
  </a>
18
18
  <transition name="draw" @before-enter="beforeFlowInfoEnter" @enter="flowInfoEnter"
19
19
  @before-leave="beforeFlowInfoLeave" @leave="flowInfoLeave">
20
- <lamboIndicatorCard v-if="isExpanded" class="lamboIndicatorCard" :style="{width: portraitWidth + 'px', float: 'right'}" :hasExtend="false">
20
+ <lamboIndicatorCard v-if="isExpanded" class="portrait-lambo-indicator-card" :style="{width: portraitWidth + 'px', float: 'right'}" :hasExtend="false">
21
21
  <div slot="content-title">流程信息</div>
22
22
  <a @click="auditShow = !auditShow">
23
- <Title v-if="!handleButtons || handleButtons.includes('opinion.vue') || handleButtons.includes('attachmentFile')">
23
+ <Title v-if="!handleButtons || handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile')">
24
24
  <a style="color: #989898">
25
25
  <Icon v-if="auditShow" type="ios-arrow-down"/>
26
26
  <Icon v-if="!auditShow" type="ios-arrow-up"/>
@@ -30,12 +30,12 @@
30
30
  </a>
31
31
  <transition name="draw" @before-enter="beforeEnter" @enter="enter" @before-leave="beforeLeave" @leave="leave">
32
32
  <div class="box" v-show="auditShow">
33
- <Form ref="auditOpinion" justify="center" :label-width="100"
34
- v-if="!handleButtons || handleButtons.includes('opinion.vue') || handleButtons.includes('attachmentFile')"
33
+ <Form ref="auditOpinion" justify="center" :label-width="100" :model="form"
34
+ v-if="!handleButtons || handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile')"
35
35
  style="margin: 10px 0 0 10px;" :rules="ruleValidate">
36
36
  <FormItem label="审批意见:" prop="auditOpinion" >
37
- <AuditOpinion v-model="auditOpinion" :attachmentFile="handleButtons.includes('attachmentFile')" :attachmentdata="fileList"
38
- :smart-flow-server-context="smartFlowServerContext" :oss-server-context="ossServerContext"></AuditOpinion>
37
+ <AuditOpinion v-model="form.auditOpinion" :attachmentFile="handleButtons.includes('attachmentFile')" :attachmentdata="fileList"
38
+ :smart-flow-server-context="smartFlowServerContext"></AuditOpinion>
39
39
  </FormItem>
40
40
  </Form>
41
41
  </div>
@@ -51,10 +51,10 @@
51
51
  </a>
52
52
  <transition name="draw" @before-enter="beforeEnter" @enter="enter" @before-leave="beforeLeave" @leave="leave">
53
53
  <div class="box" v-show="historyShow">
54
- <Card class="processHistory" dis-hover :bordered="false"
54
+ <Card class="process-history" dis-hover :bordered="false"
55
55
  v-if="!handleButtons || handleButtons.includes('auditHistory')">
56
- <processHistory :portrait-width="portraitWidth" :list="this.processHistory"
57
- :smart-flow-server-context="smartFlowServerContext" :oss-server-context="ossServerContext"></processHistory>
56
+ <processHistory :portrait-width="portraitWidth" :list="processHistory"
57
+ :smart-flow-server-context="smartFlowServerContext"></processHistory>
58
58
  </Card>
59
59
  </div>
60
60
  </transition>
@@ -71,29 +71,29 @@
71
71
  <transition name="draw" @before-enter="beforeEnter" @enter="enter" @before-leave="beforeLeave" @leave="leave">
72
72
  <div class="box" v-show="(!handleButtons || handleButtons.includes('attachmentFile')) && attachmentList.length > 0 && attachListShow">
73
73
  <div v-for="(item, index) in attachmentList" :key="index">
74
- <Card dis-hover class="attachCard">
74
+ <Card dis-hover class="attach-card">
75
75
  <List item-layout="vertical">
76
76
  <ListItem style="margin-top: -8px">
77
77
  <Row style="display: flex; align-items: center;">
78
78
  <!-- 左边:图片 -->
79
79
  <Col span="4" style="margin-top: -25px">
80
- <avatar v-if="item.fileType === 'image'" icon="ios-image-outline" class="attachAvatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
80
+ <avatar v-if="item.fileType === 'image'" icon="ios-image-outline" class="attach-avatar" style="background-color: #005aff" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
81
81
  :size="portraitWidth >= 600 ? 'middle' : 'small'"></avatar>
82
- <avatar v-else-if="item.fileType === 'doc'" icon="ios-document-outline" class="attachAvatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
82
+ <avatar v-else-if="item.fileType === 'doc'" icon="ios-document-outline" class="attach-avatar" style="background-color: #005aff" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
83
83
  :size="portraitWidth >= 600 ? 'middle' : 'small'">
84
84
  </avatar>
85
- <avatar v-else-if="item.fileType === 'xlsx'" icon="ios-document-outline" class="attachAvatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
85
+ <avatar v-else-if="item.fileType === 'xlsx'" icon="ios-document-outline" class="attach-avatar" style="background-color: #19be6b" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
86
86
  :size="portraitWidth >= 600 ? 'middle' : 'small'"></avatar>
87
- <avatar v-else-if="item.fileType === 'pdf'" icon="ios-document-outline" class="attachAvatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
87
+ <avatar v-else-if="item.fileType === 'pdf'" icon="ios-document-outline" class="attach-avatar" style="background-color: #ed4014" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
88
88
  :size="portraitWidth >= 600 ? 'middle' : 'small'"></avatar>
89
- <avatar v-else icon="ios-document-outline" class="attachAvatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
89
+ <avatar v-else icon="ios-document-outline" class="attach-avatar" :style="portraitWidth >= 600 ? 'margin-left: 10px' : ''"
90
90
  :size="portraitWidth >= 600 ? 'middle' : 'small'"></avatar>
91
91
  </Col>
92
92
  <!-- 右边:附件信息 -->
93
93
  <Col span="20">
94
94
  <Row>
95
95
  <tooltip>
96
- <span class="attachNameStyle"> {{ item.attachName }}</span>
96
+ <span class="attach-name-style"> {{ item.attachName }}</span>
97
97
  <div slot="content" style="white-space: normal"> {{ item.attachName }}</div>
98
98
  </tooltip>
99
99
  </Row>
@@ -121,6 +121,15 @@
121
121
  </div>
122
122
  </div>
123
123
  </transition>
124
+ <Modal title="查看附件" v-model="modalVisible" fullscreen scrollable :mask="false">
125
+ <img :src="imageUrl" v-if="modalVisible" alt="" style="width: 100%">
126
+ <div slot="footer">
127
+ <Button type="primary" @click="modalVisible = false">关闭</Button>
128
+ </div>
129
+ </Modal>
130
+ <Modal title="查看附件" v-model="modalDocx" fullscreen scrollable :mask="false">
131
+ <div ref="file" ></div>
132
+ </Modal>
124
133
  <Modal v-model="modal1" title="选择节点"
125
134
  @on-cancel="cancel"
126
135
  @on-ok="ok">
@@ -134,11 +143,11 @@
134
143
  <assigneeBox ref="assigneeHelpBox" :executionCompleted="executionCompleted" @update-selected="handleSelectedUser"
135
144
  :data="assigneeBoxData" :smart-flow-server-context="smartFlowServerContext" :upms-server-context="upmsServerContext"/>
136
145
  <Modal v-model="modalBoxShow" width="1000" title="流程跟踪图">
137
- <Workflow_Print ref="processTrace" :instanceId="process.instanceId" :applyId="process.applyId"
146
+ <Workflow_Diagram ref="processTrace" :instanceId="process.instanceId" :applyId="process.applyId"
138
147
  :procId="process.procId"
139
148
  :tableData="process.tableData" :hisAudit="hisAudit"
140
149
  :smart-flow-server-context="smartFlowServerContext">
141
- </Workflow_Print>
150
+ </Workflow_Diagram>
142
151
  </Modal>
143
152
  </lamboIndicatorCard>
144
153
  </transition>
@@ -151,12 +160,12 @@
151
160
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo40')"
152
161
  :disabled="disable" :loading="loading" @click="audit('40')">驳回到上一级
153
162
  </Button>
154
- <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo80')"
155
- :disabled="disable" :loading="loading" @click="audit('80')">跳转指定节点
156
- </Button>
157
163
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo90')"
158
164
  :disabled="disable" :loading="loading" @click="audit('90')">驳回指定节点
159
165
  </Button>
166
+ <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo80')"
167
+ :disabled="disable" :loading="loading" @click="audit('80')">跳转指定节点
168
+ </Button>
160
169
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo82')"
161
170
  :disabled="disable" :loading="loading" @click="audit('82')">指定他人处理
162
171
  </Button>
@@ -177,7 +186,7 @@
177
186
  <script>
178
187
  import LamboPageContainer from '@lambo-design/page-container'
179
188
  import LamboIndicatorCard from '@lambo-design/indicator-card'
180
- import Workflow_Print from './workflow-diagram'
189
+ import Workflow_Diagram from './workflow-diagram'
181
190
  import ajax from "@lambo-design/shared/utils/ajax";
182
191
  import { operateBtn } from '@lambo-design/shared/utils/assist';
183
192
  import bus from '@lambo-design/shared/utils/bus';
@@ -185,8 +194,8 @@ import Title from "./components/title";
185
194
  import processHistory from "./components/history";
186
195
  import assigneeBox from "./components/assignee-box";
187
196
  import LamboPagingTable from "@lambo-design/paging-table";
188
- import axios from "axios";
189
197
  import AuditOpinion from "./components/opinion";
198
+ import axios from "axios";
190
199
 
191
200
  // 引入docx-preview插件
192
201
  let docx = require('docx-preview');
@@ -197,7 +206,7 @@ export default {
197
206
  width: {
198
207
  type: Number,
199
208
  required: false,
200
- default: 600
209
+ default: 400
201
210
  },
202
211
  procId: {
203
212
  type: String,
@@ -211,16 +220,6 @@ export default {
211
220
  type: String,
212
221
  required: true,
213
222
  },
214
- isShowSave: {
215
- type: Boolean,
216
- required: false,
217
- default: false
218
- },
219
- isShowReturn: {
220
- type: Boolean,
221
- required: false,
222
- default: false
223
- },
224
223
  //业务表单保存方法
225
224
  businessFormSave: {
226
225
  type: Function,
@@ -239,10 +238,6 @@ export default {
239
238
  type: String,
240
239
  default: '/api/smart-flow-server',
241
240
  },
242
- ossServerContext: {
243
- type: String,
244
- default: '/api/oss-server',
245
- },
246
241
  upmsServerContext: {
247
242
  type: String,
248
243
  default: '/api/upms-server',
@@ -251,7 +246,7 @@ export default {
251
246
  components: {
252
247
  Title,
253
248
  LamboPageContainer,
254
- Workflow_Print,
249
+ Workflow_Diagram,
255
250
  processHistory,
256
251
  assigneeBox,
257
252
  LamboPagingTable,
@@ -282,7 +277,9 @@ export default {
282
277
  ruleValidate: {
283
278
  auditOpinion: [{required: true, trigger: "blur", message: "审批意见不能为空"}]
284
279
  },
285
- auditOpinion: '',
280
+ form: {
281
+ auditOpinion: '',
282
+ },
286
283
  loading: false,
287
284
  disable: false,
288
285
  instanceId: '',
@@ -313,7 +310,8 @@ export default {
313
310
  '30': '同意',
314
311
  '70': '驳回原点',
315
312
  '40': '驳回上一节点',
316
- '80': '驳回指定节点',
313
+ '90': '驳回指定节点',
314
+ '80': '跳转指定节点',
317
315
  '82': '转办',
318
316
  '50': '人工终止'
319
317
  },
@@ -422,106 +420,6 @@ export default {
422
420
  return column
423
421
  },
424
422
 
425
- tableColumn() {
426
- let column = [];
427
- let self = this;
428
- column.push({
429
- title: '序号',
430
- type: 'index',
431
- width: 70,
432
- align: 'center',
433
- });
434
- column.push({
435
- title: '附件名称', key: 'fileName', minWidth: 150, align: 'center',
436
- render(h, {row}) {
437
- const index = row.fileName.lastIndexOf(".");
438
- const fileName = row.fileName.substr(0, index)
439
- return h("span", fileName)
440
-
441
- }
442
- });
443
- column.push({
444
- title: '附件类型', width: 100, align: 'center',
445
- render: (h, {row}) => {
446
- const index = row.fileName.lastIndexOf(".");
447
- const fileType = row.fileName.substr(index + 1)
448
- return h("span", fileType)
449
- }
450
- });
451
-
452
- column.push({
453
- title: "上传人姓名",
454
- key: "uploadUserName",
455
- width: 170,
456
- align: "center",
457
- });
458
-
459
- column.push({
460
- title: "节点名称",
461
- key: "taskName",
462
- width: 170,
463
- align: "center",
464
- });
465
-
466
- column.push({
467
- title: "上传时间",
468
- key: "updTime",
469
- width: 170,
470
- align: "center",
471
- render: (v, param) => {
472
- if (param.row.updTime) {
473
- let date = new Date(param.row.updTime)
474
- let y = date.getFullYear() // 年
475
- let MM = date.getMonth() + 1 // 月
476
- MM = MM < 10 ? ('0' + MM) : MM
477
- let d = date.getDate() // 日
478
- d = d < 10 ? ('0' + d) : d
479
- let h = date.getHours() // 时
480
- h = h < 10 ? ('0' + h) : h
481
- let m = date.getMinutes()// 分
482
- m = m < 10 ? ('0' + m) : m
483
- let s = date.getSeconds()// 秒
484
- s = s < 10 ? ('0' + s) : s
485
- let state = y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
486
- return v("span", state);
487
- }
488
- return v("span", '')
489
- }
490
- });
491
-
492
- column.push({
493
- title: "操作", width: 160, align: 'center', tooltip: true,
494
- render: (h, {row}) => {
495
- const index = row.fileName.lastIndexOf(".");
496
- const fileType = row.fileName.substr(index + 1).toLowerCase()
497
- // const typeList=['jpg','pdf','gif','png','docx']
498
- //由于pdf预览显示乱码 暂时不提供pdf预览功能
499
- const typeList = ['jpg', 'gif', 'png', 'docx']
500
- if (typeList.indexOf(fileType) !== -1) {
501
- return h("div", [
502
- operateBtn(this, h, row, "下载", () => {
503
- this.getAttach(row);
504
- }, "primary"),
505
- operateBtn(this, h, row, "预览", () => {
506
- this.preViewAttach(row);
507
- }, "primary")
508
- ]);
509
- } else {
510
- return h("div", [
511
- operateBtn(this, h, row, "下载", () => {
512
- this.getAttach(row);
513
- }, "primary")
514
- ]);
515
- }
516
-
517
- }
518
-
519
- });
520
-
521
- return column;
522
- },
523
-
524
-
525
423
  },
526
424
  provide() {
527
425
  return {
@@ -552,7 +450,7 @@ export default {
552
450
  procId: this.procId,
553
451
  applyId: this.applyId
554
452
  }
555
- ajax.get(this.smartFlowServerContext + '/manage/processDone/getAttachmentList', {params: param}).then(function (resp) {
453
+ ajax.get(self.smartFlowServerContext + '/manage/processDone/getAttachmentList', {params: param}).then(function (resp) {
556
454
  self.attachmentList = resp.data.data.rows
557
455
  self.attachmentList.forEach(item => {
558
456
  const index = item.fileName.lastIndexOf(".")
@@ -575,12 +473,12 @@ export default {
575
473
  applyId: this.applyId,
576
474
  taskNode:this.taskNode
577
475
  }
578
- ajax.get(this.smartFlowServerContext + "/manage/processTodo/list", {params: param}).then(function (resp) {
476
+ ajax.get(self.smartFlowServerContext + "/manage/processTodo/list", {params: param}).then(function (resp) {
579
477
  if (resp.data.code === '200') {
580
478
  self.taskId = resp.data.data.rows[0].taskId
581
479
  self.instanceId = resp.data.data.rows[0].procInstanceId
582
480
  } else {
583
- this.$Message.error(resp.data.message)
481
+ self.$Message.error(resp.data.message)
584
482
  }
585
483
  }).catch((err) => {
586
484
  console.log(err)
@@ -592,11 +490,11 @@ export default {
592
490
  procId: this.procId,
593
491
  taskNode: this.taskNode
594
492
  }
595
- ajax.post(this.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (resp) {
493
+ ajax.post(self.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (resp) {
596
494
  if (resp.data.code === '200') {
597
495
  self.handleButtons = resp.data.data[0].handleButtons
598
496
  } else {
599
- this.$Message.error(resp.data.message)
497
+ self.$Message.error(resp.data.message)
600
498
  }
601
499
  }).catch((err) => {
602
500
  console.log(err)
@@ -617,7 +515,7 @@ export default {
617
515
  const self = this;
618
516
  if (self.auditResult == '82') {
619
517
  self.assigneeBoxData = self.auditParams
620
- this.$refs.assigneeHelpBox.toggleShowHelpBox();
518
+ self.$refs.assigneeHelpBox.toggleShowHelpBox();
621
519
  } else if (self.auditResult == '80') {
622
520
  self.getNodesBehind()
623
521
  } else if (self.auditResult == '90') {
@@ -625,7 +523,7 @@ export default {
625
523
  } else if (self.auditResult == '40') {
626
524
  self.loading = true
627
525
  self.disable = true
628
- let url = this.smartFlowServerContext + '/manage/processTodo/getPreNode'
526
+ let url = self.smartFlowServerContext + '/manage/processTodo/getPreNode'
629
527
  ajax.post(url, self.auditParams).then(function (resp) {
630
528
  let result = resp.data
631
529
  if (result.code == '30010') {
@@ -634,7 +532,7 @@ export default {
634
532
  content: result.message,
635
533
  onOk: () => {
636
534
  self.auditParams.auditResult = '70'
637
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
535
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
638
536
  ajax.post(url, self.auditParams).then(function (resp) {
639
537
  let result = resp.data
640
538
  if (result.code == '200') {
@@ -661,7 +559,7 @@ export default {
661
559
  } else {
662
560
  self.loading = true
663
561
  self.disable = true
664
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
562
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
665
563
  ajax.post(url, self.auditParams).then(function (resp) {
666
564
  let result = resp.data
667
565
  if (result.code == '200') {
@@ -686,7 +584,7 @@ export default {
686
584
  } else {
687
585
  self.loading = true
688
586
  self.disable = true
689
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
587
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
690
588
  ajax.post(url, self.auditParams).then(function (resp) {
691
589
  let result = resp.data
692
590
  if (result.code == '200') {
@@ -728,22 +626,22 @@ export default {
728
626
  self.submit()
729
627
  },
730
628
  getAttach(row) {
731
- window.open(this.ossServerContext + "/file/get/" + row.fileId, "_blank");
629
+ window.open(this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId, "_blank");
732
630
  },
733
631
  preViewAttach(row) {
734
632
  let reg = /\.(gif|jpg|jpeg|bmp|png|PNG)$/
735
633
  let regs = /\.(pdf)$/
736
634
  if (reg.test(row.fileName)) {
737
- let url = this.ossServerContext + "/file/get/" + row.fileId;
635
+ let url = this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId;
738
636
  this.imgPreview(url);
739
637
  } else if (regs.test(row.fileName)) {
740
- window.open(this.ossServerContext + "/file/getFileStream?fileId=" + row.fileId, "_blank");
638
+ window.open(this.smartFlowServerContext + "/manage/oss/file/getFileStream?fileId=" + row.fileId, "_blank");
741
639
  } else {
742
640
  this.modalDocx = true
743
641
  axios({
744
642
  method: 'get',
745
643
  responseType: 'blob', // 因为是流文件,所以要指定blob类型
746
- url: this.ossServerContext + "/file/get/" + row.fileId// 一个word下载文件的接口
644
+ url: this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId// 一个word下载文件的接口
747
645
  }).then(({data}) => {
748
646
  docx.renderAsync(data, this.$refs.file, null, {
749
647
  className: "docx", //默认和文档样式类的类名/前缀
@@ -775,7 +673,7 @@ export default {
775
673
  procId: self.procId,
776
674
  applyId: self.applyId,
777
675
  taskId: self.taskId,
778
- auditOpinion: self.opinion,
676
+ auditOpinion: self.form.auditOpinion,
779
677
  fileListStr: JSON.stringify(self.fileList),
780
678
  auditResult: self.auditResult,
781
679
  params: JSON.stringify(self.datas),
@@ -783,20 +681,19 @@ export default {
783
681
  selectedUserId: self.selectedUserId,
784
682
  }
785
683
  if (self.auditResult == '' || self.auditResult == null) {
786
- this.$Message.error("请选择审批结果!");
684
+ self.$Message.error("请选择审批结果!");
787
685
  return;
788
686
  }
789
- if (self.opinion == '' || self.opinion == null) {
790
- if (!self.handleButtons || self.handleButtons.includes('opinion.vue')) {
791
- this.$Message.error("请输入审批意见!")
687
+ if (self.form.auditOpinion == '' || self.form.auditOpinion == null) {
688
+ if (!self.handleButtons || self.handleButtons.includes('auditOpinion')) {
689
+ self.$Message.error("请输入审批意见!")
792
690
  return;
793
691
  } else {
794
692
  self.auditParams.auditOpinion = self.handleButtonsNames[self.auditResult];
795
693
  }
796
694
  }
797
695
 
798
- this.businessFormSave ? this.businessFormSave(this.handleSaveResult) : this.handleSaveResult(true)
799
-
696
+ self.businessFormSave ? self.businessFormSave(self.handleSaveResult) : self.handleSaveResult(true)
800
697
  },
801
698
 
802
699
  //打印流程图信息
@@ -808,7 +705,7 @@ export default {
808
705
  procId: self.procId,
809
706
  taskId: self.taskId,
810
707
  }
811
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getPrintData', {params: params}).then(function (resp) {
708
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getPrintData', {params: params}).then(function (resp) {
812
709
  let result = resp.data.data
813
710
  if (resp.data.code === '200') {
814
711
  let tableData = result
@@ -836,7 +733,7 @@ export default {
836
733
  procId: self.procId,
837
734
  taskId: self.taskId
838
735
  }
839
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getHisAudit', {params: params}).then(function (resp) {
736
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getHisAudit', {params: params}).then(function (resp) {
840
737
  if (resp.data.code === '200') {
841
738
  self.hisAudit = resp.data.data
842
739
  let uniqueDataMap = {};
@@ -867,7 +764,7 @@ export default {
867
764
  procId: self.procId,
868
765
  taskId: self.taskId
869
766
  }
870
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getProcessHis', {params: params}).then(function (resp) {
767
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getProcessHis', {params: params}).then(function (resp) {
871
768
  if (resp.data.code === '200') {
872
769
  self.processHistory = resp.data.data
873
770
  }
@@ -875,13 +772,11 @@ export default {
875
772
  },
876
773
  cancel() {
877
774
  this.modal = false
878
- // this.$refs['radio5'].currentValue = false;
879
775
  this.auditResult = '';
880
776
  },
881
777
  ok() {
882
778
  this.modal = false
883
779
  if (this.targetTaskNode == '' || this.targetTaskNode == null) {
884
- // this.$refs['radio5'].currentValue = false;
885
780
  this.auditResult = '';
886
781
  this.$Message.error("请选择审批节点!");
887
782
  } else {
@@ -891,7 +786,7 @@ export default {
891
786
  procId: self.procId,
892
787
  applyId: self.applyId,
893
788
  taskId: self.taskId,
894
- auditOpinion: self.opinion,
789
+ auditOpinion: self.form.auditOpinion,
895
790
  fileListStr: JSON.stringify(self.fileList),
896
791
  auditResult: self.auditResult,
897
792
  params: JSON.stringify(self.datas),
@@ -901,7 +796,7 @@ export default {
901
796
  self.loading = true
902
797
  self.disable = true
903
798
 
904
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
799
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
905
800
  ajax.post(url, self.auditParams).then(function (resp) {
906
801
  let result = resp.data
907
802
  if (result.code === '200') {
@@ -935,10 +830,14 @@ export default {
935
830
  processDefId: self.procId,
936
831
  taskId: self.taskId,
937
832
  }
938
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', {params: params}).then(function (resp) {
833
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', {params: params}).then(function (resp) {
939
834
  if (resp.data.code === '200') {
940
- self.allNode = resp.data.data
941
- self.modal1 = true
835
+ if (resp.data.data.length > 0){
836
+ self.allNode = resp.data.data
837
+ self.modal1 = true
838
+ }else {
839
+ self.$Message.warning('当前流程无前序节点')
840
+ }
942
841
  } else {
943
842
  self.$Message.error(resp.data.message)
944
843
  }
@@ -950,21 +849,21 @@ export default {
950
849
  processDefId: self.procId,
951
850
  taskId: self.taskId,
952
851
  }
953
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getNodesBehind', {params: params}).then(function (resp) {
852
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getNodesBehind', {params: params}).then(function (resp) {
954
853
  if (resp.data.code === '200') {
955
- self.allNode = resp.data.data
956
- self.modal1 = true
854
+ if (resp.data.data.length > 0){
855
+ self.allNode = resp.data.data
856
+ self.modal1 = true
857
+ }else {
858
+ self.$Message.warning('当前流程无后续节点')
859
+ }
957
860
  } else {
958
861
  self.$Message.error(resp.data.message)
959
862
  }
960
863
  })
961
864
  },
962
865
  handleSelectedUser(userId) {
963
- // 处理选中的用户ID,比如将其保存到数据中或执行其他逻辑
964
866
  this.selectedUserId = userId;
965
- // if (userId == null || userId == '') {
966
- // this.$refs['radio6'].currentValue = false;
967
- // }
968
867
  },
969
868
 
970
869
  //折叠动画效果
@@ -1010,7 +909,7 @@ export default {
1010
909
  },
1011
910
  watch: {
1012
911
  auditOpinionText(label) {
1013
- this.auditOpinion = label;
912
+ this.form.auditOpinion = label;
1014
913
  },
1015
914
  procId(val) {
1016
915
  this.procId = val;
@@ -1021,159 +920,11 @@ export default {
1021
920
  </script>
1022
921
 
1023
922
  <style lang="less" scoped>
1024
- .lamboIndicatorCard{
1025
- height: 100%;
1026
- position: relative;
1027
- overflow-y: auto;
1028
- margin-bottom: -10px;
1029
- }
1030
- .lamboIndicatorCard::-webkit-scrollbar {
1031
- width: 5px;
1032
- height: 5px;
1033
- }
1034
-
1035
- .lamboIndicatorCard::-webkit-scrollbar-thumb {
1036
- background: linear-gradient(to bottom right, #bbbbbb 0%, #bbbbbb 100%);
1037
- border-radius: 5px;
1038
- }
1039
- .header-text {
1040
- display: flex;
1041
- font-size: 18px;
1042
- font-weight: bold;
1043
- color: black;
1044
- }
1045
-
1046
- .cont {
1047
- display: flex;
1048
- width: 100%;
1049
- height: 100%;
1050
- }
1051
-
1052
- .contLeft {
1053
- flex: 0 0 20%;
1054
- margin-right: 5px
1055
- }
1056
-
1057
- .contRight {
1058
- display: flex;
1059
- flex: 0 0 80%;
1060
- height: 100%;
1061
- flex-direction: column;
1062
-
1063
- }
1064
-
1065
- .iframe {
1066
- height: 70vh;
1067
- width: 100%;
1068
- border-style: none;
1069
- }
1070
-
1071
- .fontType {
1072
- font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
1073
- font-weight: bold;
1074
- color: #657180;
1075
- font-size: 14px
1076
- }
1077
-
1078
- .processHistory {
1079
- height: 40vh;
1080
- width: 100%;
1081
- overflow-y: auto;
1082
- }
1083
-
1084
- .processHistory::-webkit-scrollbar {
1085
- width: 5px;
1086
- height: 5px;
1087
- }
1088
-
1089
- .processHistory::-webkit-scrollbar-thumb {
1090
- background: linear-gradient(to bottom right, #bbbbbb 0%, #bbbbbb 100%);
1091
- border-radius: 5px;
1092
- }
1093
-
923
+ @import "./styles/css/index.less";
1094
924
  /deep/ .ivu-table-row-highlight td {
1095
925
  background-color: #50c1ff !important;
1096
926
  color: #fff !important;
1097
927
  }
1098
-
1099
- .box {
1100
- overflow: hidden;
1101
- transition: height 0.3s ease;
1102
- height: auto;
1103
- width: auto;
1104
- margin-left: -15px;
1105
- }
1106
-
1107
- .draw-enter-active, .draw-leave-active {
1108
-
1109
- }
1110
-
1111
- .draw-enter, .draw-leave-to {
1112
- height: 0;
1113
- }
1114
-
1115
- .sticky {
1116
- position: sticky;
1117
- top: 0;
1118
- z-index: 100;
1119
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
1120
- }
1121
-
1122
- .attachNameStyle {
1123
- margin-bottom: -5px;
1124
- white-space: nowrap;
1125
- display: inline-block;
1126
- width: auto;
1127
- font-size: 14px;
1128
- color: #17233d;
1129
- overflow: hidden;
1130
- text-overflow: ellipsis;
1131
- }
1132
-
1133
- .leftImageLarge{
1134
- height: 10%;
1135
- width: 60px;
1136
- margin-top: -20px;
1137
- margin-left: 10px;
1138
- }
1139
- .leftImageSmall{
1140
- height: 40px;
1141
- width: 40px;
1142
- margin-top: -10px;
1143
- }
1144
- .ivu-divider-horizontal{
1145
- margin: 10px;
1146
- }
1147
- .arrow-button-container {
1148
- position: absolute;
1149
- z-index: 50;
1150
- width: 12px;
1151
- height: 50px;
1152
- border-radius: 4px;
1153
- border: none;
1154
- background-color: #cccccc;
1155
- color: white;
1156
- display: inline-block;
1157
- transition: 0.5s;
1158
- top: 50%;
1159
- transform: translateX(0)
1160
- }
1161
- .iconClass{
1162
- margin-top: 18px;
1163
- }
1164
- .attachCard{
1165
- border:solid;
1166
- border-width: thin;
1167
- border-color: #f1f1f1;
1168
- width: auto;
1169
- border-radius: 10px;
1170
- margin: 10px 0 10px 10px
1171
- }
1172
- .attachAvatar{
1173
- background-color: #ed4014;
1174
- margin-right: 5px;
1175
- zoom: 150%
1176
- }
1177
928
  /deep/ .ivu-card-body{
1178
929
  padding: 10px;
1179
930
  }