Ver código fonte

链接签收跳转开发与接口联调

hanchaobo 2 anos atrás
pai
commit
433af74d6f
6 arquivos alterados com 212 adições e 135 exclusões
  1. BIN
      dist.zip
  2. 15
    3
      src/api/home.js
  3. 6
    0
      src/router/index.js
  4. 1
    1
      src/utils/request.js
  5. 49
    131
      src/views/room.vue
  6. 141
    0
      src/views/signFor.vue

BIN
dist.zip Ver arquivo


+ 15
- 3
src/api/home.js Ver arquivo

@@ -1,7 +1,7 @@
1 1
 import axios from "@/utils/request";
2 2
 let baseUrlZc = 'https://api.xayunmei.com/zhongcaiapi';
3
-let baseUrl = 'https://api.xayunmei.com/tiaojieapi';
4
-// let baseUrl = 'http://172.16.1.4:6001';
3
+// let baseUrl = 'https://api.xayunmei.com/tiaojieapi';
4
+let baseUrl = 'http://172.16.1.26:6001';
5 5
 // 获取usersig
6 6
 export function getUsersig(userId) {
7 7
     let appType = sessionStorage.getItem('type');
@@ -33,4 +33,16 @@ export function reserveConferenceList(caseId) {
33 33
 //根据id查询密文信息
34 34
 export function getEncryptInfoByid(caseId) {
35 35
         return axios.get(`${baseUrl}/shortMessage/getMeetingInfo?authId=${caseId}`);
36
-}
36
+}
37
+// 案件列表
38
+export function caseApplicationList(param) {
39
+    return axios.get(`${baseUrl}/caseApplication/list?caseId=${param}`);
40
+  }
41
+// 签收案件
42
+export function msCaseSign(data) {
43
+        return axios.post(`${baseUrl}/mssignSeal/msCaseSign`, data);
44
+}
45
+//根据案件id获取附件
46
+export function fileList(caseAppliId,annexTypeList) {
47
+    return axios.get(`${baseUrl}/common/fileList?caseAppliId=${caseAppliId}&annexTypeList=${annexTypeList}`);
48
+  }

+ 6
- 0
src/router/index.js Ver arquivo

@@ -26,6 +26,12 @@ const routes = [
26 26
         name:"onlyOffice",
27 27
         component:()=>import("../views/onlyOffice.vue"),
28 28
         meta:{title:"在线文档"}
29
+      },
30
+      {
31
+        path:"/signFor",
32
+        name:"signFor",
33
+        component:()=>import("../views/signFor.vue"),
34
+        meta:{title:"在线签收"}
29 35
       }
30 36
 ]
31 37
 

+ 1
- 1
src/utils/request.js Ver arquivo

@@ -13,7 +13,7 @@ const server = axios.create({
13 13
 server.interceptors.request.use(config => {
14 14
     // config包含了请求相关的所有信息
15 15
     // 可以同过config对象给请求配置或者修改信息
16
-    config.headers.Authorization = sessionStorage.getItem('token');
16
+    config.headers.Authorization = 'Bearer ' + sessionStorage.getItem('token');
17 17
     return config // 将配置完成的token返回 如果不返回 请求不会继续进行
18 18
 }, err => {
19 19
     // 请求发生错误时的回调函数

+ 49
- 131
src/views/room.vue Ver arquivo

@@ -1,39 +1,18 @@
1 1
 <template>
2
-    <div class="page">
3
-        <div class="roompage" @mouseover="mouseHover" v-if="modileFlag">
4
-            <div class="txtContent">
5
-                <el-tag type="danger" @click="txtContent">会议内容</el-tag>
6
-            </div>
7
-            <div :class="userClass" :style="{ height: userHeight }" id="localStream">
8
-                <div class="userName">{{ userId }}</div>
9
-            </div>
10
-            <div :class="userClass" :style="{ height: userHeight }" v-for="(item, index) in userList" :key="index"
11
-                :id="item">
12
-                <div class="userName">{{ item }}</div>
13
-            </div>
14
-            <div class="footer">
15
-                <roomFooter @exitRoom="exitRoom" :roomId="roomId"></roomFooter>
16
-            </div>
17
-        </div>
18
-        <div class="roomPhone" v-if="!modileFlag">
19
-            <div class="header">
20
-                <roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
21
-            </div>
22
-            <div class="bodyVideo">
23
-                <div :class="userClassPhone" id="localStream">
24
-                    <div class="userNamePhone">{{ userId }}</div>
25
-                </div>
26
-                <div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
27
-                    <div class="userNamePhone">{{ item }}</div>
28
-                </div>
29
-            </div>
30
-        </div>
31
-        <!-- 语音转文字弹窗 -->
32
-        <el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
33
-            <quill-editor ref="myQuillEditor" v-model="contentValue" :options="editorOption" @blur="onEditorBlur($event)"
34
-                @focus="onEditorFocus($event)" @ready="onEditorReady($event)"></quill-editor>
35
-            <el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
36
-        </el-drawer>
2
+  <div class="page">
3
+    <div class="roompage" @mouseover="mouseHover" v-if="modileFlag">
4
+      <div class="txtContent">
5
+        <el-tag type="danger" @click="txtContent">会议内容</el-tag>
6
+      </div>
7
+      <div :class="userClass" :style="{ height: userHeight }" id="localStream">
8
+        <div class="userName">{{ userId }}</div>
9
+      </div>
10
+      <div :class="userClass" :style="{ height: userHeight }" v-for="(item, index) in userList" :key="index" :id="item">
11
+        <div class="userName">{{ item }}</div>
12
+      </div>
13
+      <div class="footer">
14
+        <roomFooter @exitRoom="exitRoom" :roomId="roomId"></roomFooter>
15
+      </div>
37 16
     </div>
38 17
     <div class="roomPhone" v-if="!modileFlag">
39 18
       <div class="header">
@@ -43,12 +22,7 @@
43 22
         <div :class="userClassPhone" id="localStream">
44 23
           <div class="userNamePhone">{{ userId }}</div>
45 24
         </div>
46
-        <div
47
-          :class="userClassPhone"
48
-          v-for="(item, index) in userList"
49
-          :key="index"
50
-          :id="item"
51
-        >
25
+        <div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
52 26
           <div class="userNamePhone">{{ item }}</div>
53 27
         </div>
54 28
       </div>
@@ -56,115 +30,59 @@
56 30
     <!-- 语音转文字弹窗 -->
57 31
     <el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
58 32
       <div style="margin-left: 20px; margin-bottom: 10px">
59
-        <div
60
-          style="
33
+        <div style="
61 34
             width: 100%;
62 35
             display: flex;
63 36
             justify-content: space-around;
64 37
             margin-bottom: 10px;
65
-          "
66
-        >
67
-          <el-upload
68
-            ref="upload"
69
-            :limit="1"
70
-            action="https://api.xayunmei.com/tiaojieapi/video/upload"
71
-            :headers="headers"
72
-            :data="filedata"
73
-            :on-change="beforeUpload"
74
-            :on-success="handlSuccess"
75
-            :file-list="fileList"
76
-            v-if="appFlag"
77
-          >
78
-            <el-button slot="trigger" size="small" type="primary"
79
-              >申请人上传证据</el-button
80
-            >
38
+          ">
39
+          <el-upload ref="upload" :limit="1" action="https://api.xayunmei.com/tiaojieapi/video/upload"
40
+            :headers="headers" :data="filedata" :on-change="beforeUpload" :on-success="handlSuccess"
41
+            :file-list="fileList" v-if="appFlag">
42
+            <el-button slot="trigger" size="small" type="primary">申请人上传证据</el-button>
81 43
           </el-upload>
82
-          <el-upload
83
-            v-if="resFlag"
84
-            ref="upload1"
85
-            :limit="1"
86
-            action="https://api.xayunmei.com/tiaojieapi/video/upload"
87
-            :headers="headers1"
88
-            :data="filedata1"
89
-            :on-change="beforeUpload1"
90
-            :on-success="handlSuccess1"
91
-            :file-list="fileList1"
92
-          >
93
-            <el-button slot="trigger" size="small" type="primary"
94
-              >被申请人上传证据</el-button
95
-            >
44
+          <el-upload v-if="resFlag" ref="upload1" :limit="1" action="https://api.xayunmei.com/tiaojieapi/video/upload"
45
+            :headers="headers1" :data="filedata1" :on-change="beforeUpload1" :on-success="handlSuccess1"
46
+            :file-list="fileList1">
47
+            <el-button slot="trigger" size="small" type="primary">被申请人上传证据</el-button>
96 48
           </el-upload>
97
-          <el-upload
98
-            v-if="editFlag"
99
-            ref="upload3"
100
-            :limit="1"
101
-            action="https://api.xayunmei.com/tiaojieapi/video/upload"
102
-            :headers="headers3"
103
-            :data="filedata3"
104
-            :on-change="beforeUpload3"
105
-            :on-success="handlSuccess3"
106
-            :file-list="fileList3"
107
-            accept=".doc,.docx"
108
-          >
109
-            <el-button slot="trigger" size="small" type="primary"
110
-              >上传调解书</el-button
111
-            >
49
+          <el-upload v-if="editFlag" ref="upload3" :limit="1" action="https://api.xayunmei.com/tiaojieapi/video/upload"
50
+            :headers="headers3" :data="filedata3" :on-change="beforeUpload3" :on-success="handlSuccess3"
51
+            :file-list="fileList3" accept=".doc,.docx">
52
+            <el-button slot="trigger" size="small" type="primary">上传调解书</el-button>
112 53
           </el-upload>
113 54
         </div>
114 55
         <div class="list">
115 56
           <div class="applicant" v-if="applicantFile.length > 0">
116 57
             <div>申请人证据</div>
117
-            <div
118
-              style="color: #104fad; cursor: pointer"
119
-              v-for="(item, index) in applicantFile"
120
-              :key="index"
121
-              @click="preview(item,0)"
122
-            >
58
+            <div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
59
+              @click="preview(item, 0)">
123 60
               {{ item.annexName }}
124 61
             </div>
125 62
           </div>
126 63
           <div class="res" v-if="resFile.length > 0">
127 64
             <div>被申请人证据</div>
128
-            <div
129
-              style="color: #104fad; cursor: pointer"
130
-              v-for="(item, index) in resFile"
131
-              :key="index"
132
-              @click="preview(item,0)"
133
-            >
65
+            <div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
66
+              @click="preview(item, 0)">
134 67
               {{ item.annexName }}
135 68
             </div>
136 69
           </div>
137 70
           <div class="mediate" v-if="mediateFile.length > 0">
138 71
             <div>调解书</div>
139
-            <div
140
-              style="color: #104fad; cursor: pointer"
141
-              v-for="(item, index) in mediateFile"
142
-              :key="index"
143
-              @click="preview(item,1)"
144
-            >
72
+            <div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
73
+              @click="preview(item, 1)">
145 74
               {{ item.annexName }}
146 75
             </div>
147 76
           </div>
148 77
         </div>
149 78
       </div>
150
-      <quill-editor
151
-        ref="myQuillEditor"
152
-        v-model="contentValue"
153
-        :options="editorOption"
154
-        @blur="onEditorBlur($event)"
155
-        @focus="onEditorFocus($event)"
156
-        @ready="onEditorReady($event)"
157
-      ></quill-editor>
158
-      <el-button
159
-        class="updataBtn"
160
-        @click="updataClick"
161
-        type="primary"
162
-        :disabled="!updataFlag"
163
-        >确认修改内容</el-button
164
-      >
79
+      <quill-editor ref="myQuillEditor" v-model="contentValue" :options="editorOption" @blur="onEditorBlur($event)"
80
+        @focus="onEditorFocus($event)" @ready="onEditorReady($event)"></quill-editor>
81
+      <el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
165 82
     </el-drawer>
83
+  </div>
166 84
 </template>
167
-  
85
+
168 86
 <script>
169 87
 import { getUsersig, reserveConferenceList } from "@/api/home";
170 88
 import {
@@ -217,7 +135,7 @@ export default {
217 135
       token: "",
218 136
       applicantFile: [],
219 137
       resFile: [],
220
-      mediateFile:[],
138
+      mediateFile: [],
221 139
       headers: {
222 140
         // Authorization: "Bearer " + token,
223 141
         Authorization: "",
@@ -306,11 +224,11 @@ export default {
306 224
       this.$refs.upload3.clearFiles();
307 225
       this.selectByIdFn(this.caseId);
308 226
     },
309
-    preview(item,flag) {
227
+    preview(item, flag) {
310 228
       if (item.onlyOfficeFileId) {
311 229
         this.$router.push({
312 230
           path: "/onlyoffice",
313
-          query: { id: item.onlyOfficeFileId,flag:flag },
231
+          query: { id: item.onlyOfficeFileId, flag: flag },
314 232
         });
315 233
       } else {
316 234
         window.open(
@@ -378,7 +296,7 @@ export default {
378 296
             this.applicantFile.push(item);
379 297
           } else if (item.annexType == 12) {
380 298
             this.resFile.push(item);
381
-          }else if (item.annexType == 7){
299
+          } else if (item.annexType == 7) {
382 300
             this.mediateFile.push(item)
383 301
           }
384 302
         });
@@ -603,7 +521,7 @@ export default {
603 521
   },
604 522
 };
605 523
 </script>
606
-  
524
+
607 525
 <style scoped>
608 526
 .roompage {
609 527
   width: 100%;
@@ -745,14 +663,17 @@ export default {
745 663
   position: absolute;
746 664
   bottom: 8px;
747 665
 }
666
+
748 667
 .fileList {
749 668
   /* max-height: 300px; */
750 669
   /* overflow-y: scroll; */
751 670
 }
671
+
752 672
 .list {
753 673
   display: flex;
754 674
   flex-wrap: wrap;
755 675
 }
676
+
756 677
 .applicant,
757 678
 .res,
758 679
 .mediate {
@@ -761,7 +682,4 @@ export default {
761 682
   margin-bottom: 10px;
762 683
   color: #38393b;
763 684
 }
764
-</style>
765
-  
766
-  
767
-  
685
+</style>

+ 141
- 0
src/views/signFor.vue Ver arquivo

@@ -0,0 +1,141 @@
1
+<template>
2
+    <div class="signFor">
3
+        <div>
4
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
5
+                <el-col :span="8"><div>案件编号</div></el-col>
6
+                <el-col :span="16"><div>{{ dataList.caseNum }}</div></el-col>
7
+            </el-row>
8
+            <hr>
9
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
10
+                <el-col :span="8"><div>申请人</div></el-col>
11
+                <el-col :span="16"><div>{{ dataList.applicationName }}</div></el-col>
12
+            </el-row>
13
+            <hr>
14
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
15
+                <el-col :span="8"><div>被申请人</div></el-col>
16
+                <el-col :span="16"><div>{{ dataList.respondentName }}</div></el-col>
17
+            </el-row>
18
+            <hr>
19
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
20
+                <el-col :span="8"><div>调解员</div></el-col>
21
+                <el-col :span="16"><div>{{ dataList.mediatorName }}</div></el-col>
22
+            </el-row>
23
+            <hr>
24
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
25
+                <el-col :span="8"><div>调解方式</div></el-col>
26
+                <el-col :span="16"><div>{{ dataList.mediationMethodName }}</div></el-col>
27
+            </el-row>
28
+            <hr>
29
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
30
+                <el-col :span="8"><div>调解时间</div></el-col>
31
+                <el-col :span="16"><div>{{ dataList.hearDate }}</div></el-col>
32
+            </el-row>
33
+            <hr>
34
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
35
+                <el-col :span="8"><div>案件状态</div></el-col>
36
+                <el-col :span="16"><div>{{ dataList.caseStatusName }}</div></el-col>
37
+            </el-row>
38
+            <hr>
39
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
40
+                <el-col :span="8"><div>创建时间</div></el-col>
41
+                <el-col :span="16"><div>{{ dataList.createTime }}</div></el-col>
42
+            </el-row>
43
+            <hr>
44
+            <el-row style="height: 40px;line-height: 40px;text-align: center;">
45
+                <el-col :span="7"><div>调解书</div></el-col>
46
+                <el-col :span="15"><div v-for="(item,index) in fileList" :key="index" style="color: blue; cursor: pointer"  @click="toPreview(item.annexPath)">{{ item.annexName }}</div></el-col>
47
+            </el-row>
48
+            <hr>
49
+            <el-row>
50
+                <el-col :span="24">
51
+                    <div style="width: 90px; margin: 30px auto;">
52
+                        <el-button type="primary" @click="getMsCaseSign(caseId)" v-if="showSign" icon="el-icon-edit">签收</el-button>
53
+                    </div>
54
+                </el-col>
55
+            </el-row>
56
+        </div>
57
+    </div>
58
+    
59
+</template>
60
+
61
+<script>
62
+import { getEncryptInfoByid,caseApplicationList,msCaseSign,fileList } from "@/api/home";
63
+export default {
64
+    name: "signFor",
65
+    components: {},
66
+    data() {
67
+        return {
68
+            dataList: [],
69
+            loading: false,
70
+            token:'',
71
+            caseId:'',
72
+            showSign:true,
73
+            fileURL: 'http://121.40.189.20:8002' + "/API",
74
+            fileList:[]
75
+
76
+        };
77
+    },
78
+    created() {
79
+        console.log(this.fileURL)
80
+    },
81
+    methods: {
82
+        /**获取链接参数 */
83
+        async getEncryptInfoByidFn(data) {
84
+            await getEncryptInfoByid(data).then((res) => {
85
+                this.caseId = res.caseId
86
+                sessionStorage.setItem('token',res.token)
87
+            });
88
+        },
89
+        // 获取案件列表
90
+        async getList(params){
91
+            await caseApplicationList(params).then(res =>{
92
+                res.rows.forEach(item => {
93
+                    this.dataList = item;
94
+                });
95
+            })
96
+        },
97
+        // 案件签收
98
+        async getMsCaseSign(params){
99
+            console.log(params)
100
+            let caseIds = {
101
+                caseId:params
102
+            }
103
+            await msCaseSign(caseIds).then(res =>{
104
+                console.log(res)
105
+                this.$message({
106
+                    message: '签收成功',
107
+                    type: 'success'
108
+                });
109
+                this.showSign = false
110
+            })
111
+        },
112
+        // 查看附件
113
+        async getFileList(caseAppliIds,annexTypeList){
114
+            fileList(caseAppliIds,annexTypeList).then(res=>{
115
+                this.fileList = res.data;
116
+                console.log(this.fileList)
117
+            })
118
+        },
119
+        toPreview(val){
120
+            console.log(val)
121
+            window.open(this.fileURL + val)
122
+        }
123
+    },
124
+    async mounted() {
125
+        let routeParams = this.$route.query;
126
+        await this.getEncryptInfoByidFn(routeParams.authId)
127
+        await this.getList(this.caseId)
128
+        // await this.getList("5461248676208928")
129
+        let caseAppliIds = this.caseId
130
+        let annexTypeList = 7
131
+        await this.getFileList(caseAppliIds,annexTypeList)
132
+    }
133
+};
134
+</script>
135
+
136
+<style scoped>
137
+    .signFor{
138
+        margin-top: 30px;
139
+        width: 100%;
140
+    }
141
+</style>