@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.
@@ -14,10 +14,9 @@
14
14
  </a>
15
15
  <transition name="draw" @before-enter="beforeEnter" @enter="enter" @before-leave="beforeLeave" @leave="leave">
16
16
  <div class="box" v-show="historyShow">
17
- <Card class="processHistory" dis-hover :bordered="false"
17
+ <Card class="process-history" dis-hover :bordered="false"
18
18
  v-if="!handleButtons || handleButtons.includes('auditHistory')">
19
- <processHistory :list="this.processHistory"
20
- :smart-flow-server-context="smartFlowServerContext" :oss-server-context="ossServerContext"></processHistory>
19
+ <processHistory :list="processHistory" :smart-flow-server-context="smartFlowServerContext"></processHistory>
21
20
  </Card>
22
21
  </div>
23
22
  </transition>
@@ -61,11 +60,11 @@
61
60
  </TabPane>
62
61
  <TabPane label="流程跟踪图" :name="auditProcess" v-if="!handleButtons || handleButtons.includes('processTrace')">
63
62
  <div>
64
- <Workflow_Print ref="processTrace" :instanceId="process.instanceId" :applyId="process.applyId"
63
+ <Workflow_Diagram ref="processTrace" :instanceId="process.instanceId" :applyId="process.applyId"
65
64
  :procId="process.procId"
66
65
  :tableData="process.tableData" :hisAudit="hisAudit"
67
66
  :smart-flow-server-context="smartFlowServerContext">
68
- </Workflow_Print>
67
+ </Workflow_Diagram>
69
68
  </div>
70
69
  </TabPane>
71
70
  </Tabs>
@@ -73,7 +72,7 @@
73
72
  <div class="sticky" v-if="custChange.includes('auditInfo')">
74
73
  <lamboIndicatorCard :has-title="false" :hasExtend="false">
75
74
  <a @click="auditShow = !auditShow">
76
- <Title v-if="!handleButtons || handleButtons.includes('opinion.vue') || handleButtons.includes('attachmentFile')">
75
+ <Title v-if="!handleButtons || handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile')">
77
76
  <a style="color: #989898">
78
77
  <Icon v-if="auditShow" type="ios-arrow-down"/>
79
78
  <Icon v-if="!auditShow" type="ios-arrow-up"/>
@@ -82,48 +81,48 @@
82
81
  </Title>
83
82
  </a>
84
83
  <transition name="draw" @before-enter="beforeEnter" @enter="enter" @before-leave="beforeLeave" @leave="leave">
85
- <div class="box" v-show="auditShow" style="min-height: 260px">
84
+ <div class="box horizontal-audit" v-show="auditShow">
86
85
  <Form ref="auditOpinion" justify="center"
87
- v-if="!handleButtons || handleButtons.includes('opinion.vue') || handleButtons.includes('attachmentFile')"
86
+ v-if="!handleButtons || handleButtons.includes('auditOpinion') || handleButtons.includes('attachmentFile')"
88
87
  style=" margin-top: 15px;margin-left: 100px;margin-right: 100px" :rules="ruleValidate">
89
88
  <Row>
90
89
  <Col span="24" offset="0">
91
90
  <FormItem :label-width="120" label="处理意见:" prop="auditOpinion"
92
- v-if="!handleButtons || handleButtons.includes('opinion.vue')">
91
+ v-if="!handleButtons || handleButtons.includes('auditOpinion')">
93
92
  <AuditOpinion v-model="auditOpinion" :smart-flow-server-context="smartFlowServerContext"></AuditOpinion>
94
93
  </FormItem>
95
- <attachment style="margin-left: 120px" :attachmentdata="fileList" :oss-server-context="ossServerContext"
96
- v-if="!handleButtons || handleButtons.includes('attachmentFile')"></attachment>
94
+ <UploadFile style="margin-left: 120px" v-if="!handleButtons || handleButtons.includes('attachmentFile')"
95
+ @upload-result="uploadFile" :multiple="true"
96
+ :oss-server-context="smartFlowServerContext" :oss-file-put-url="ossFilePutUrl"></UploadFile>
97
97
  </Col>
98
98
  </Row>
99
99
  </Form>
100
-
101
100
  <Divider/>
102
101
  <Row type="flex" justify="center" style="margin-top: 10px;margin-bottom: 10px;">
103
102
  <Button style="margin-left: 10px;" v-if="isShowSave && businessFormSave" @click="saveBusinessForm">保存</Button>
104
103
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo30')"
105
- :disabled="disable" :loading="loading" type="success" @click="audit('30')">通过
104
+ :disabled="disable" :loading="loading" @click="audit('30')">通过
106
105
  </Button>
107
106
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo70')"
108
- :disabled="disable" :loading="loading" type="warning" @click="audit('70')">驳回到原点
107
+ :disabled="disable" :loading="loading" @click="audit('70')">驳回到原点
109
108
  </Button>
110
109
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo40')"
111
- :disabled="disable" :loading="loading" type="warning" @click="audit('40')">驳回到上一级
112
- </Button>
113
- <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo80')"
114
- :disabled="disable" :loading="loading" type="info" @click="audit('80')">跳转指定节点
110
+ :disabled="disable" :loading="loading" @click="audit('40')">驳回到上一级
115
111
  </Button>
116
112
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo90')"
117
- :disabled="disable" :loading="loading" type="info" @click="audit('90')">驳回指定节点
113
+ :disabled="disable" :loading="loading" @click="audit('90')">驳回指定节点
114
+ </Button>
115
+ <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo80')"
116
+ :disabled="disable" :loading="loading" @click="audit('80')">跳转指定节点
118
117
  </Button>
119
118
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo82')"
120
- :disabled="disable" :loading="loading" type="info" @click="audit('82')">指定他人处理
119
+ :disabled="disable" :loading="loading" @click="audit('82')">指定他人处理
121
120
  </Button>
122
121
  <Button style="margin-left: 10px;" v-if="!handleButtons || handleButtons.includes('auditTo50')"
123
- :disabled="disable" :loading="loading" type="error" @click="audit('50')">直接结束流程
122
+ :disabled="disable" :loading="loading" @click="audit('50')">直接结束流程
124
123
  </Button>
125
124
  <Button style="margin-left: 10px;" v-if="isShowReturn"
126
- :disabled="disable" :loading="loading" type="default" @click="pageGoBack()">返回
125
+ :disabled="disable" :loading="loading" @click="pageGoBack()">返回
127
126
  </Button>
128
127
  </Row>
129
128
  </div>
@@ -138,8 +137,8 @@
138
137
  <script>
139
138
  import LamboPageContainer from '@lambo-design/page-container'
140
139
  import LamboIndicatorCard from '@lambo-design/indicator-card'
141
- import Attachment from './components/attachment';
142
- import Workflow_Print from './workflow-diagram'
140
+ import Attachment from './components/horizontal/attachment';
141
+ import Workflow_Diagram from './workflow-diagram'
143
142
  import ajax from "@lambo-design/shared/utils/ajax";
144
143
  import { operateBtn } from '@lambo-design/shared/utils/assist';
145
144
  import bus from '@lambo-design/shared/utils/bus';
@@ -149,6 +148,7 @@ import assigneeBox from "./components/assignee-box";
149
148
  import LamboPagingTable from "@lambo-design/paging-table";
150
149
  import axios from "axios";
151
150
  import AuditOpinion from "./components/horizontal/opinion";
151
+ import UploadFile from "@lambo-design/upload-file";
152
152
 
153
153
  // 引入docx-preview插件
154
154
  let docx = require('docx-preview');
@@ -192,10 +192,6 @@ export default {
192
192
  type: String,
193
193
  default: '/api/smart-flow-server',
194
194
  },
195
- ossServerContext: {
196
- type: String,
197
- default: '/api/oss-server',
198
- },
199
195
  upmsServerContext: {
200
196
  type: String,
201
197
  default: '/api/upms-server',
@@ -204,13 +200,14 @@ export default {
204
200
  components: {
205
201
  Title,
206
202
  LamboPageContainer,
207
- Workflow_Print,
203
+ Workflow_Diagram,
208
204
  Attachment,
209
205
  processHistory,
210
206
  assigneeBox,
211
207
  LamboPagingTable,
212
208
  AuditOpinion,
213
- LamboIndicatorCard
209
+ LamboIndicatorCard,
210
+ UploadFile
214
211
  },
215
212
  data() {
216
213
  return {
@@ -245,6 +242,7 @@ export default {
245
242
  auditInfo:"auditInfo",
246
243
  auditProcess:"auditProcess",
247
244
  fileList: [],
245
+ ossFilePutUrl: '/manage/oss/file/put',
248
246
  hisAudit: [],
249
247
  datas: {
250
248
  orgName: "",
@@ -265,7 +263,8 @@ export default {
265
263
  '30': '同意',
266
264
  '70': '驳回原点',
267
265
  '40': '驳回上一节点',
268
- '80': '驳回指定节点',
266
+ '90': '驳回指定节点',
267
+ '80': '跳转指定节点',
269
268
  '82': '转办',
270
269
  '50': '人工终止'
271
270
  }
@@ -499,7 +498,7 @@ export default {
499
498
  procId: this.procId,
500
499
  applyId: this.applyId
501
500
  }
502
- ajax.get(this.smartFlowServerContext + '/manage/processDone/getAttachmentList', {params: param}).then(function (resp) {
501
+ ajax.get(self.smartFlowServerContext + '/manage/processDone/getAttachmentList', {params: param}).then(function (resp) {
503
502
  self.tableData = resp.data.data.rows
504
503
  self.attachListShow = true
505
504
  }).catch(err => {
@@ -513,13 +512,13 @@ export default {
513
512
  applyId: this.applyId,
514
513
  taskNode:this.taskNode
515
514
  }
516
- ajax.get(this.smartFlowServerContext + "/manage/processTodo/list", {params: param}).then(function (resp) {
515
+ ajax.get(self.smartFlowServerContext + "/manage/processTodo/list", {params: param}).then(function (resp) {
517
516
  if (resp.data.code === '200') {
518
517
  self.taskId = resp.data.data.rows[0].taskId
519
518
  self.instanceId = resp.data.data.rows[0].procInstanceId
520
519
  self.processPrint()
521
520
  }else {
522
- this.$Message.error(resp.data.message)
521
+ self.$Message.error(resp.data.message)
523
522
  }
524
523
  }).catch((err)=>{
525
524
  console.log(err)
@@ -531,11 +530,11 @@ export default {
531
530
  procId: this.procId,
532
531
  taskNode: this.taskNode
533
532
  }
534
- ajax.post(this.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (resp) {
533
+ ajax.post(self.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (resp) {
535
534
  if (resp.data.code === '200') {
536
535
  self.handleButtons = resp.data.data[0].handleButtons
537
536
  }else {
538
- this.$Message.error(resp.data.message)
537
+ self.$Message.error(resp.data.message)
539
538
  }
540
539
  }).catch((err)=>{
541
540
  console.log(err)
@@ -556,7 +555,7 @@ export default {
556
555
  const self = this;
557
556
  if (self.auditResult == '82') {
558
557
  self.assigneeBoxData = self.auditParams
559
- this.$refs.assigneeHelpBox.toggleShowHelpBox();
558
+ self.$refs.assigneeHelpBox.toggleShowHelpBox();
560
559
  } else if (self.auditResult == '80') {
561
560
  self.getNodesBehind()
562
561
  } else if (self.auditResult == '90') {
@@ -564,7 +563,7 @@ export default {
564
563
  } else if (self.auditResult == '40') {
565
564
  self.loading = true
566
565
  self.disable = true
567
- let url = this.smartFlowServerContext + '/manage/processTodo/getPreNode'
566
+ let url = self.smartFlowServerContext + '/manage/processTodo/getPreNode'
568
567
  ajax.post(url, self.auditParams).then(function (resp) {
569
568
  let result = resp.data
570
569
  if (result.code == '30010') {
@@ -573,7 +572,7 @@ export default {
573
572
  content: result.message,
574
573
  onOk: () => {
575
574
  self.auditParams.auditResult = '70'
576
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
575
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
577
576
  ajax.post(url, self.auditParams).then(function (resp) {
578
577
  let result = resp.data
579
578
  if (result.code == '200') {
@@ -600,7 +599,7 @@ export default {
600
599
  } else {
601
600
  self.loading = true
602
601
  self.disable = true
603
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
602
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
604
603
  ajax.post(url, self.auditParams).then(function (resp) {
605
604
  let result = resp.data
606
605
  if (result.code == '200') {
@@ -625,7 +624,7 @@ export default {
625
624
  } else {
626
625
  self.loading = true
627
626
  self.disable = true
628
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
627
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
629
628
  ajax.post(url, self.auditParams).then(function (resp) {
630
629
  let result = resp.data
631
630
  if (result.code == '200') {
@@ -667,24 +666,24 @@ export default {
667
666
  self.submit()
668
667
  },
669
668
  getAttach(row) {
670
- window.open(this.ossServerContext + "/file/get/" + row.fileId, "_blank");
669
+ window.open(this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId, "_blank");
671
670
  },
672
671
  preViewAttach(row) {
673
672
  let reg = /\.(gif|jpg|jpeg|bmp|png|PNG)$/
674
673
  let regs = /\.(pdf)$/
675
674
  if (reg.test(row.fileName)) {
676
- let url = this.ossServerContext + "/file/get/" + row.fileId;
675
+ let url = this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId;
677
676
  this.imgPreview(url);
678
677
  } else if (regs.test(row.fileName)) {
679
- window.open(this.ossServerContext + "/file/getFileStream?fileId=" + row.fileId, "_blank");
678
+ window.open(this.smartFlowServerContext + "/manage/oss/file/getFileStream?fileId=" + row.fileId, "_blank");
680
679
  } else {
681
- this.modalDocx=true
680
+ this.modalDocx = true
682
681
  axios({
683
682
  method: 'get',
684
683
  responseType: 'blob', // 因为是流文件,所以要指定blob类型
685
- url: this.ossServerContext + "/file/get/" + row.fileId// 一个word下载文件的接口
684
+ url: this.smartFlowServerContext + "/manage/oss/file/get/" + row.fileId// 一个word下载文件的接口
686
685
  }).then(({data}) => {
687
- docx.renderAsync(data, this.$refs.file,null, {
686
+ docx.renderAsync(data, this.$refs.file, null, {
688
687
  className: "docx", //默认和文档样式类的类名/前缀
689
688
  inWrapper: true, //启用围绕文档内容呈现包装器
690
689
  ignoreWidth: false, //禁用页面的渲染宽度
@@ -714,7 +713,7 @@ export default {
714
713
  procId: self.procId,
715
714
  applyId: self.applyId,
716
715
  taskId: self.taskId,
717
- auditOpinion: self.opinion,
716
+ auditOpinion: self.auditOpinion,
718
717
  fileListStr: JSON.stringify(self.fileList),
719
718
  auditResult: self.auditResult,
720
719
  params: JSON.stringify(self.datas),
@@ -722,20 +721,19 @@ export default {
722
721
  selectedUserId: self.selectedUserId,
723
722
  }
724
723
  if (self.auditResult == '' || self.auditResult == null) {
725
- this.$Message.error("请选择审批结果!");
724
+ self.$Message.error("请选择审批结果!");
726
725
  return;
727
726
  }
728
- if (self.opinion == '' || self.opinion == null) {
729
- if (!self.handleButtons || self.handleButtons.includes('opinion.vue')) {
730
- this.$Message.error("请输入审批意见!")
727
+ if (self.auditOpinion == '' || self.auditOpinion == null) {
728
+ if (!self.handleButtons || self.handleButtons.includes('auditOpinion')) {
729
+ self.$Message.error("请输入审批意见!")
731
730
  return;
732
731
  } else {
733
732
  self.auditParams.auditOpinion = self.handleButtonsNames[self.auditResult];
734
733
  }
735
734
  }
736
735
 
737
- this.businessFormSave ? this.businessFormSave(this.handleSaveResult) : this.handleSaveResult(true)
738
-
736
+ self.businessFormSave ? self.businessFormSave(self.handleSaveResult) : self.handleSaveResult(true)
739
737
  },
740
738
 
741
739
  //打印流程图信息
@@ -747,7 +745,7 @@ export default {
747
745
  procId: self.procId,
748
746
  taskId: self.taskId,
749
747
  }
750
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getPrintData', {params: params}).then(function (resp) {
748
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getPrintData', {params: params}).then(function (resp) {
751
749
  let result = resp.data.data
752
750
  if (resp.data.code === '200') {
753
751
  let tableData = result
@@ -774,7 +772,7 @@ export default {
774
772
  procId: self.procId,
775
773
  taskId: self.taskId
776
774
  }
777
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getHisAudit', {params: params}).then(function (resp) {
775
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getHisAudit', {params: params}).then(function (resp) {
778
776
  if (resp.data.code === '200') {
779
777
  self.hisAudit = resp.data.data
780
778
  let uniqueDataMap = {};
@@ -795,7 +793,7 @@ export default {
795
793
  procId: self.procId,
796
794
  taskId: self.taskId
797
795
  }
798
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getProcessHis', {params: params}).then(function (resp) {
796
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getProcessHis', {params: params}).then(function (resp) {
799
797
  if (resp.data.code === '200') {
800
798
  self.processHistory = resp.data.data
801
799
  }
@@ -819,7 +817,7 @@ export default {
819
817
  procId: self.procId,
820
818
  applyId: self.applyId,
821
819
  taskId: self.taskId,
822
- auditOpinion: self.opinion,
820
+ auditOpinion: self.auditOpinion,
823
821
  fileListStr: JSON.stringify(self.fileList),
824
822
  auditResult: self.auditResult,
825
823
  params: JSON.stringify(self.datas),
@@ -829,7 +827,7 @@ export default {
829
827
  self.loading = true
830
828
  self.disable = true
831
829
 
832
- let url = this.smartFlowServerContext + '/manage/processTodo/audit'
830
+ let url = self.smartFlowServerContext + '/manage/processTodo/audit'
833
831
  ajax.post(url, self.auditParams).then(function (resp) {
834
832
  let result = resp.data
835
833
  if (result.code === '200') {
@@ -864,10 +862,14 @@ export default {
864
862
  processDefId: self.procId,
865
863
  taskId: self.taskId,
866
864
  }
867
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', {params: params}).then(function (resp) {
865
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getAllPreNodes', {params: params}).then(function (resp) {
868
866
  if (resp.data.code === '200') {
869
- self.allNode = resp.data.data
870
- self.modal1 = true
867
+ if (resp.data.data.length > 0){
868
+ self.allNode = resp.data.data
869
+ self.modal1 = true
870
+ }else {
871
+ self.$Message.warning('当前流程无前序节点')
872
+ }
871
873
  } else {
872
874
  self.$Message.error(resp.data.message)
873
875
  }
@@ -879,10 +881,14 @@ export default {
879
881
  processDefId: self.procId,
880
882
  taskId: self.taskId,
881
883
  }
882
- ajax.get(this.smartFlowServerContext + '/manage/processTodo/getNodesBehind', {params: params}).then(function (resp) {
884
+ ajax.get(self.smartFlowServerContext + '/manage/processTodo/getNodesBehind', {params: params}).then(function (resp) {
883
885
  if (resp.data.code === '200') {
884
- self.allNode = resp.data.data
885
- self.modal1 = true
886
+ if (resp.data.data.length > 0){
887
+ self.allNode = resp.data.data
888
+ self.modal1 = true
889
+ }else {
890
+ self.$Message.warning('当前流程无后续节点')
891
+ }
886
892
  } else {
887
893
  self.$Message.error(resp.data.message)
888
894
  }
@@ -917,6 +923,15 @@ export default {
917
923
 
918
924
  el.addEventListener('transitionend', done);
919
925
  },
926
+ uploadFile(file){
927
+ const self = this;
928
+ file.forEach(item => {
929
+ self.fileList.push({
930
+ fileName: item.fileName,
931
+ fileId: item.fileCode,
932
+ });
933
+ })
934
+ },
920
935
  },
921
936
  watch: {
922
937
  auditOpinionText(label) {
@@ -931,66 +946,28 @@ export default {
931
946
  </script>
932
947
 
933
948
  <style lang="less" scoped>
934
- .header-text {
935
- display: flex;
936
- font-size: 18px;
937
- font-weight: bold;
938
- color: black;
939
- }
940
-
941
- .cont {
942
- display: flex;
943
- width: 100%;
944
- height: 100%;
945
- }
946
-
947
- .contLeft {
948
- flex: 0 0 20%;
949
- margin-right: 5px
950
- }
951
-
952
- .contRight {
953
- display: flex;
954
- flex: 0 0 80%;
955
- height: 100%;
956
- flex-direction: column;
957
-
958
- }
959
-
960
- .iframe {
961
- height: 70vh;
962
- width: 100%;
963
- border-style: none;
964
- }
965
949
 
966
- .fontType {
967
- font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
968
- font-weight: bold;
969
- color: #657180;
970
- font-size: 14px
950
+ /deep/ .ivu-table-row-highlight td {
951
+ background-color: #50c1ff !important;
952
+ color: #fff !important;
971
953
  }
972
954
 
973
- .processHistory {
955
+ .process-history {
974
956
  height: 68vh;
975
957
  width: 100%;
976
958
  overflow-y: auto;
977
959
  }
978
960
 
979
- .processHistory::-webkit-scrollbar {
961
+ .process-history::-webkit-scrollbar {
980
962
  width: 5px;
981
963
  height: 5px;
982
964
  }
983
965
 
984
- .processHistory::-webkit-scrollbar-thumb {
966
+ .process-history::-webkit-scrollbar-thumb {
985
967
  background: linear-gradient(to bottom right, #bbbbbb 0%, #bbbbbb 100%);
986
968
  border-radius: 5px;
987
969
  }
988
970
 
989
- /deep/ .ivu-table-row-highlight td {
990
- background-color: #50c1ff !important;
991
- color: #fff !important;
992
- }
993
-
994
971
  .box {
995
972
  overflow: hidden;
996
973
  transition: height 0.3s ease;
@@ -1000,7 +977,18 @@ export default {
1000
977
  .draw-enter-active, .draw-leave-active {
1001
978
 
1002
979
  }
980
+ .horizontal-audit{
981
+ overflow-y: auto;
982
+ }
983
+ .horizontal-audit::-webkit-scrollbar {
984
+ width: 5px;
985
+ height: 5px;
986
+ }
1003
987
 
988
+ .horizontal-audit::-webkit-scrollbar-thumb {
989
+ background: linear-gradient(to bottom right, #bbbbbb 0%, #bbbbbb 100%);
990
+ border-radius: 5px;
991
+ }
1004
992
  .draw-enter, .draw-leave-to {
1005
993
  height: 0;
1006
994
  }