gyj 2 лет назад
Родитель
Сommit
43909812f9

+ 47
- 5
src/views/caseManagement/caseList.vue Просмотреть файл

@@ -61,10 +61,12 @@
61 61
                 <template slot-scope="scope">
62 62
                     <el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text" icon="el-icon-edit">修改</el-button>
63 63
                     <el-button size="mini" @click="checkDetail(scope.row)" type="text" icon="el-icon-view">查看详情</el-button>
64
-                    <el-button size="mini" @click="consultantApplica(scope.row)" type="text"
65
-                        icon="el-icon-tickets">法律顾问用印申请</el-button>
66
-                    <el-button size="mini" @click="departmentApplica(scope.row)" type="text"
67
-                        icon="el-icon-edit-outline">部门长用印申请</el-button>                   
64
+                    <el-button size="mini" @click="consultantApplica(scope.row)" type="text" icon="el-icon-tickets">法律顾问用印申请</el-button>
65
+                    <el-button size="mini" @click="departmentApplica(scope.row)" type="text" icon="el-icon-edit-outline">部门长用印申请</el-button>
66
+                    <el-button size="mini" @click="caseFlow(scope.row)" type="text" icon="el-icon-zoom-in">查看流程</el-button>
67
+                    <el-button size="mini" @click="caseLog(scope.row)" type="text" icon="el-icon-edit-outline">案件日志</el-button>
68
+                    <el-button size="mini" @click="caseFiling(scope.row)" type="text" icon="el-icon-tickets">案件归档</el-button>
69
+                    <el-button size="mini" @click="signMediation(scope.row)" type="text" icon="el-icon-edit-outline">签收调解书</el-button>                 
68 70
                 </template>
69 71
             </el-table-column>
70 72
         </el-table>
@@ -77,6 +79,10 @@
77 79
         <caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams"
78 80
             @cancelCompreess="cancelCompreess" :getList="getList">
79 81
         </caseCompressionPackage>
82
+        <!-- 案件详情 -->
83
+        <mediationCaseDetails :processVisable="processVisable" @cancelViewProcess="cancelViewProcess"></mediationCaseDetails>
84
+        <!-- 案件日志 -->
85
+        <mediationCaseLog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog"></mediationCaseLog>
80 86
     </div>
81 87
 </template>
82 88
 
@@ -86,12 +92,16 @@ import { listDept } from '@/api/system/dept.js'
86 92
 import moment from "moment";
87 93
 import addCase from './components/addCase.vue'
88 94
 import caseCompressionPackage from './components/caseCompressionPackage.vue';
95
+import mediationCaseDetails from './components/mediationCaseDetails.vue'
96
+import mediationCaseLog from './components/mediationCaseLog.vue'
89 97
 export default {
90 98
     name: "caseList",
91 99
     dicts: ["case_flow_node"],
92 100
     components: {
93 101
         addCase,
94
-        caseCompressionPackage
102
+        caseCompressionPackage,
103
+        mediationCaseDetails,
104
+        mediationCaseLog
95 105
     },
96 106
     data() {
97 107
         return {
@@ -110,6 +120,8 @@ export default {
110 120
             dataList: [],
111 121
             addVisable: false,//新增弹窗
112 122
             openCompressedPackages:false,//压缩包导入弹窗
123
+            processVisable:false,//案件详情
124
+            showcaseLog:false,//案件日志
113 125
             caseData: {},
114 126
             caseDisabled: false,
115 127
             caseTime: '',
@@ -203,6 +215,36 @@ export default {
203 215
         // 部门长用印申请
204 216
         departmentApplica(){
205 217
             
218
+        },
219
+        //案件流程
220
+        caseFlow(row){
221
+           this.processVisable = true 
222
+        },
223
+        cancelViewProcess(){
224
+            this.processVisable = false
225
+        },
226
+        //案件日志
227
+        caseLog(){
228
+           this.showcaseLog = true 
229
+        },
230
+        cancelcaseLog(){
231
+            this.showcaseLog = false
232
+        },
233
+        // 案件归档
234
+        caseFiling(){
235
+           this.$modal.confirm("你确定要案件归档吗?").then((res) => {
236
+                     
237
+                }).catch(() =>{
238
+                    
239
+            }) 
240
+        },
241
+        //签收调解书
242
+        signMediation(){
243
+            this.$modal.confirm("你确定要签收调解书吗?").then((res) => {
244
+                     
245
+                }).catch(() =>{
246
+                    
247
+            })  
206 248
         }
207 249
     },
208 250
 };

+ 76
- 0
src/views/caseManagement/components/mediationCaseDetails.vue Просмотреть файл

@@ -0,0 +1,76 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true">
4
+            <div>
5
+                <!-- <el-steps class="steps" :active="caseStatus">
6
+                    <el-step :title="item.caseNodeName || item.content" v-for="(item,index) in pageData.allCasenode" :key="index" :description="(item.createNickName || '') + (item.caseNodeTime || '')+(item.nextRoleName || '')"></el-step>
7
+                   
8
+                </el-steps> -->
9
+            </div>
10
+            <div slot="footer" class="dialog-footer">
11
+                <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
12
+            </div>
13
+        </el-dialog>
14
+    </div>
15
+</template>
16
+  
17
+<script>
18
+import {selectCaseProgress} from '@/api/caseManagement/caseManagement'
19
+export default {
20
+    props: ["processVisable","processData"],
21
+    data() {
22
+        return {
23
+            processId:null,
24
+            pageData:{},
25
+            caseStatus:0
26
+        };
27
+    },
28
+    watch: {
29
+        processVisable(val){
30
+            if(val){
31
+                // this.processId = this.processData.id;
32
+                // this.selectCaseProgressFn({id:this.processId});
33
+            }
34
+        }
35
+    },
36
+    methods: {
37
+        cancel() {
38
+            this.$emit("cancelViewProcess");
39
+        },
40
+        selectCaseProgressFn(data){
41
+            selectCaseProgress(data).then(res=>{
42
+                 this.pageData = res.data.data; 
43
+                let allCasenode = res.data.data.allCasenode;
44
+                console.log(allCasenode)
45
+                allCasenode.forEach((item,index) => {
46
+                    if(item.caseNode==res.data.data.caseStatus){
47
+                        this.caseStatus = index
48
+                    }
49
+                });
50
+            })
51
+        }
52
+    },
53
+};
54
+</script>
55
+  
56
+<style lang="scss" scoped>
57
+    .steps{
58
+        display: flex;
59
+        flex-wrap: wrap;
60
+    }
61
+    ::v-deep .el-step{
62
+        // width: 150px;
63
+        flex-basis:25% !important;
64
+        margin-right: 20px;
65
+        margin-bottom: 20px;
66
+    }
67
+    ::v-deep .el-dialog__body {
68
+    height: 500px !important;
69
+    overflow: auto !important;
70
+    }
71
+    ::v-deep .el-dialog {
72
+    width: 800px;
73
+    background: #ffffff;
74
+    border-radius: 20px;
75
+    }
76
+</style>

+ 113
- 0
src/views/caseManagement/components/mediationCaseLog.vue Просмотреть файл

@@ -0,0 +1,113 @@
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      title="案件日志"
5
+      :visible="showcaseLog"
6
+      @close="cancel"
7
+      center
8
+      :distroy-on-close="true"
9
+    >
10
+      <!-- <div class="loading" v-if="flagLoading">
11
+        <i class="el-icon-loading"></i>
12
+      </div>
13
+      <div v-else>
14
+        <div class="noData" v-if="noData">暂无数据!</div>
15
+        <el-timeline v-else>
16
+          <el-timeline-item
17
+            v-for="(activity, index) in activities"
18
+            :key="index"
19
+            :timestamp="(index + 1).toString()"
20
+            placement="top"
21
+          >
22
+            <p>{{ activity.content }}</p>
23
+          </el-timeline-item>
24
+        </el-timeline>
25
+      </div> -->
26
+      <div slot="footer" class="dialog-footer">
27
+        <el-button @click="cancel" class="endbutton1"
28
+          ><span>取 消</span></el-button
29
+        >
30
+      </div>
31
+    </el-dialog>
32
+  </div>
33
+</template>
34
+
35
+<script>
36
+export default {
37
+  props: ["showcaseLog", "flagLoading", "caselogDataArr"],
38
+  data() {
39
+    return {
40
+      reverse: true,
41
+      activities: [],
42
+      noData: false,
43
+    };
44
+  },
45
+  watch: {
46
+    caselogDataArr: {
47
+      handler(val) {
48
+        if (val && val.length > 0) {
49
+          this.noData = false;
50
+          this.activities = val;
51
+          this.activities.forEach((item) => {
52
+            item.content = item.content;
53
+          });
54
+        } else {
55
+          this.noData = true;
56
+        }
57
+      },
58
+    },
59
+  },
60
+  methods: {
61
+    cancel() {
62
+      this.$emit("cancelcaseLog");
63
+    },
64
+  },
65
+};
66
+</script>
67
+
68
+<style lang="scss" scoped>
69
+::v-deep .el-dialog__body {
70
+  height: 500px !important;
71
+  overflow: auto !important;
72
+}
73
+::v-deep .el-dialog {
74
+  width: 800px;
75
+  background: #ffffff;
76
+  border-radius: 20px;
77
+}
78
+.endbutton1 {
79
+  width: 154px;
80
+  height: 37px;
81
+  background: #ffffff;
82
+  border: 1px solid #d0d0d0;
83
+  border-radius: 19px;
84
+  span {
85
+    width: 31px;
86
+    height: 13px;
87
+    font-size: 16px;
88
+    font-family: Microsoft YaHei;
89
+    font-weight: 400;
90
+    color: #959595;
91
+  }
92
+}
93
+.loading {
94
+  width: 100%;
95
+  height: 100%;
96
+  display: flex;
97
+  justify-content: center;
98
+  align-items: center;
99
+  .el-icon-loading {
100
+    font-size: 50px;
101
+  }
102
+}
103
+.noData {
104
+  width: 100%;
105
+  height: 400px;
106
+  font-size: 30px;
107
+  font-weight: 700;
108
+  color: #959595;
109
+  display: flex;
110
+  justify-content: center;
111
+  align-items: center;
112
+}
113
+</style>