Просмотр исходного кода

视频调解页面接口开发

gyj 2 лет назад
Родитель
Сommit
38c750d711
4 измененных файлов: 199 добавлений и 19 удалений
  1. 5
    1
      src/api/home.js
  2. 11
    1
      src/views/components/roomFooter.vue
  3. 178
    17
      src/views/room.vue
  4. 5
    0
      src/views/testRoom.vue

+ 5
- 1
src/api/home.js Просмотреть файл

@@ -1,6 +1,6 @@
1 1
 import axios from "@/utils/request";
2 2
 // let baseUrlZc = 'https://api.xayunmei.com/zhongcaiapi';
3
-// let baseUrl = 'https://api.xayunmei.com/tiaojieapitest';
3
+let baseUrl = 'https://api.xayunmei.com/tiaojieapitest';
4 4
 // let baseUrl = 'http://172.16.1.4:6001';
5 5
 // 获取usersig
6 6
 export function getUsersig(userId) {
@@ -46,3 +46,7 @@ export function msCaseSign(data) {
46 46
 export function fileList(caseAppliId,annexTypeList) {
47 47
     return axios.get(`tiaojie/common/fileList?caseAppliId=${caseAppliId}&annexTypeList=${annexTypeList}`);
48 48
   }
49
+// 确定会议结果
50
+export function confirmMeetingResult(data) {
51
+    return axios.post(`tiaojie/caseApplication/confirmMeetingResult`, data);
52
+}

+ 11
- 1
src/views/components/roomFooter.vue Просмотреть файл

@@ -56,6 +56,10 @@
56 56
           v-else
57 57
           @click="sharClickOff"
58 58
         />
59
+        
60
+      </div>
61
+      <div class="mediationPop">
62
+         <el-button type="warning" @click="mediationPop">调解</el-button>
59 63
       </div>
60 64
     </div>
61 65
   </div>
@@ -107,6 +111,10 @@ export default {
107 111
       this.sharFlag = true;
108 112
       this.$emit("sharClickOff");
109 113
     },
114
+    // 弹出调解内容
115
+    mediationPop(){
116
+      this.$emit("mediationPop");
117
+    },
110 118
     exitRoom() {
111 119
       if (this.roleFlag) {
112 120
         this.stopVideoFn();
@@ -194,7 +202,9 @@ export default {
194 202
   height: 60px;
195 203
   margin-left: 20px;
196 204
 }
197
-
205
+.mediationPop{
206
+  margin-left: 20px;
207
+}
198 208
 .micImg,
199 209
 .videoImg,
200 210
 .sharImg {

+ 178
- 17
src/views/room.vue Просмотреть файл

@@ -36,6 +36,7 @@
36 36
           @videoClickOff="videoClickOff"
37 37
           @sharClickOn="sharClickOn"
38 38
           @sharClickOff="sharClickOff"
39
+          @mediationPop="mediationPop"
39 40
           :roomId="roomId"
40 41
           :micFlag="micFlag"
41 42
           :videoFlag="videoFlag"
@@ -63,7 +64,7 @@
63 64
     </div>
64 65
     <!-- 语音转文字弹窗 -->
65 66
     <el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
66
-      <div style="margin-left: 20px; margin-bottom: 10px">
67
+      <!-- <div style="margin-left: 20px; margin-bottom: 10px">
67 68
         <div
68 69
           style="
69 70
             width: 100%;
@@ -87,7 +88,6 @@
87 88
               >申请人上传证据</el-button
88 89
             >
89 90
           </el-upload>
90
-          <!-- https://api.xayunmei.com/tiaojieapitest/video/upload -->
91 91
           <el-upload
92 92
             v-if="resFlag"
93 93
             ref="upload1"
@@ -155,7 +155,7 @@
155 155
             </div>
156 156
           </div>
157 157
         </div>
158
-      </div>
158
+      </div> -->
159 159
       <quill-editor
160 160
         ref="myQuillEditor"
161 161
         v-model="contentValue"
@@ -172,11 +172,131 @@
172 172
         >确认修改内容</el-button
173 173
       >
174 174
     </el-drawer>
175
+    <!-- 调解 -->
176
+    <el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容">
177
+      <div
178
+        style="
179
+          width: 100%;
180
+          display: flex;
181
+          justify-content: space-around;
182
+          margin-bottom: 10px;
183
+          margin-top: 20px;
184
+        "
185
+      >
186
+        <el-upload
187
+          ref="upload"
188
+          :limit="1"
189
+          :action="UploadUrl()"
190
+          :headers="headers"
191
+          :data="filedata"
192
+          :on-change="beforeUpload"
193
+          :on-success="handlSuccess"
194
+          :file-list="fileList"
195
+          v-if="appFlag"
196
+        >
197
+          <el-button slot="trigger" size="small" type="primary"
198
+            >申请人上传证据</el-button
199
+          >
200
+        </el-upload>
201
+        <el-upload
202
+          ref="upload1"
203
+          :limit="1"
204
+          :action="UploadUrl()"
205
+          :headers="headers1"
206
+          :data="filedata1"
207
+          :on-change="beforeUpload1"
208
+          :on-success="handlSuccess1"
209
+          :file-list="fileList1"
210
+          v-if="resFlag"
211
+        >
212
+          <el-button slot="trigger" size="small" type="primary"
213
+            >被申请人上传证据</el-button
214
+          >
215
+        </el-upload>
216
+        <el-upload
217
+          ref="upload3"
218
+          :limit="1"
219
+          :action="UploadUrl()"
220
+          :headers="headers3"
221
+          :data="filedata3"
222
+          :on-change="beforeUpload3"
223
+          :on-success="handlSuccess3"
224
+          :file-list="fileList3"
225
+          accept=".doc,.docx"
226
+          v-if="updataFlag"
227
+        >
228
+          <el-button slot="trigger" size="small" type="primary"
229
+            >上传调解书</el-button
230
+          >
231
+        </el-upload>
232
+      </div>
233
+      <div class="list">
234
+        <div class="applicant" v-if="applicantFile.length > 0">
235
+          <div>申请人证据</div>
236
+          <div
237
+            style="color: #104fad; cursor: pointer"
238
+            v-for="(item, index) in applicantFile"
239
+            :key="index"
240
+            @click="preview(item, 0)"
241
+          >
242
+            {{ item.annexName }}
243
+          </div>
244
+        </div>
245
+        <div class="res" v-if="resFile.length > 0">
246
+          <div>被申请人证据</div>
247
+          <div
248
+            style="color: #104fad; cursor: pointer"
249
+            v-for="(item, index) in resFile"
250
+            :key="index"
251
+            @click="preview(item, 0)"
252
+          >
253
+            {{ item.annexName }}
254
+          </div>
255
+        </div>
256
+        <div class="mediate" v-if="mediateFile.length > 0">
257
+          <div>调解书</div>
258
+          <div
259
+            style="color: #104fad; cursor: pointer"
260
+            v-for="(item, index) in mediateFile"
261
+            :key="index"
262
+            @click="preview(item, 1)"
263
+          >
264
+            {{ item.annexName }}
265
+          </div>
266
+        </div>
267
+      </div>
268
+      <div>
269
+        <el-form label-width="100px">
270
+          <el-col :span="24">
271
+            <el-form-item label="调解结果:">
272
+              <el-radio-group v-model="formData.mediaResult">
273
+                <el-radio :label="1">达成调解</el-radio>
274
+                <el-radio :label="2">未达成调解</el-radio>
275
+                <el-radio :label="3">未达成调解但不在争议</el-radio>
276
+                <el-radio :label="4">未达成调解但同意引入仲裁</el-radio>
277
+                <el-radio :label="5">达成和解</el-radio>
278
+              </el-radio-group>
279
+            </el-form-item>
280
+          </el-col>
281
+          <el-col :span="24">
282
+            <el-form-item label="是否用印申请:">
283
+              <el-radio-group v-model="formData.sealFlag">
284
+                <el-radio :label="1">是</el-radio>
285
+                <el-radio :label="0">否</el-radio>
286
+              </el-radio-group>
287
+            </el-form-item>
288
+          </el-col>
289
+        </el-form>
290
+      </div>
291
+      <div>
292
+        <el-button style="width:100%;" type="primary" @click="determineMeeting">确定</el-button>
293
+      </div>
294
+    </el-drawer>
175 295
   </div>
176 296
 </template>
177 297
 
178 298
 <script>
179
-import { getUsersig, reserveConferenceList } from "@/api/home";
299
+import { getUsersig, reserveConferenceList,confirmMeetingResult } from "@/api/home";
180 300
 import {
181 301
   secretaryRoleByUserId,
182 302
   htmlToPDF,
@@ -217,6 +337,7 @@ export default {
217 337
       userId: null,
218 338
       id: null,
219 339
       showFlag: false,
340
+      drawerMediatio: false,
220 341
       modileFlag: false,
221 342
       localStreamAsr: null,
222 343
       contentValue: "",
@@ -231,6 +352,11 @@ export default {
231 352
       applicantFile: [],
232 353
       resFile: [],
233 354
       mediateFile: [],
355
+      formData:{
356
+        mediaResult:1,
357
+        sealFlag:1
358
+      },
359
+      caseFlowId:null,
234 360
       headers: {
235 361
         // Authorization: "Bearer " + token,
236 362
         Authorization: "",
@@ -316,9 +442,9 @@ export default {
316 442
       // this.videoList = "videoList1";
317 443
       // this.videoClass = "videoItem2";
318 444
       // this.screenShareFlag = true;
319
-      if(this.screenShareFlag){
320
-        alert("其他用户已经分享")
321
-        return
445
+      if (this.screenShareFlag) {
446
+        alert("其他用户已经分享");
447
+        return;
322 448
       }
323 449
       await trtc.startScreenShare().then(() => {
324 450
         this.sharFlag = false;
@@ -404,7 +530,7 @@ export default {
404 530
         } else {
405 531
           flag = 0;
406 532
         }
407
-        let token = sessionStorage.getItem('token')
533
+        let token = sessionStorage.getItem("token");
408 534
         window.open(
409 535
           `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
410 536
           "_black"
@@ -454,15 +580,16 @@ export default {
454 580
     // 点击显示修改的文本框
455 581
     txtContent() {
456 582
       this.textVisible = true;
457
-      setInterval(() => {
458
-        this.selectByIdFn(this.caseId);
459
-      }, 8000);
583
+      // setInterval(() => {
584
+      //   this.selectByIdFn(this.caseId);
585
+      // }, 8000);
460 586
       this.selectRoleMenuByCaseIdFn(this.caseId);
461 587
       this.getMenuPermsByUserFn();
462 588
     },
463 589
     /** 获取证据列表 */
464 590
     selectByIdFn(id) {
465 591
       selectById(id).then((res) => {
592
+        this.caseFlowId = res.data.caseFlowId;
466 593
         this.applicantFile = [];
467 594
         this.resFile = [];
468 595
         this.mediateFile = [];
@@ -510,12 +637,14 @@ export default {
510 637
             trtc.startRemoteVideo({ userId, streamType, view: `${userId}` });
511 638
           });
512 639
         } else if (streamType == "sub") {
513
-          setTimeout(()=>{
514
-            trtc.startRemoteVideo({ userId, streamType, view: "screenShare" }).then(()=>{
515
-              this.videoList = "videoList1";
516
-          this.videoClass = "videoItem2";
517
-            });
518
-          })
640
+          setTimeout(() => {
641
+            trtc
642
+              .startRemoteVideo({ userId, streamType, view: "screenShare" })
643
+              .then(() => {
644
+                this.videoList = "videoList1";
645
+                this.videoClass = "videoItem2";
646
+              });
647
+          });
519 648
           this.screenShareFlag = true;
520 649
         }
521 650
         setTimeout(() => {
@@ -619,6 +748,38 @@ export default {
619 748
         }
620 749
       });
621 750
     },
751
+        // 调解
752
+    mediationPop() {
753
+      this.drawerMediatio = true;
754
+      this.selectByIdFn(this.caseId);
755
+       setInterval(() => {
756
+        this.selectByIdFn(this.caseId);
757
+      }, 8000);
758
+      console.log("iiiiiiiiiiiiiiiiiiiiiiiiiiii");
759
+    },
760
+    // 确定会议结果
761
+    determineMeeting(){
762
+      let valueMeeting = {
763
+        id:this.caseId,
764
+        mediaResult: this.formData.mediaResult,
765
+        sealFlag:this.formData.sealFlag,
766
+        caseFlowId:this.caseFlowId
767
+      }
768
+      confirmMeetingResult(valueMeeting).then(res=>{
769
+        if (res.code == 200) {
770
+          this.$message({
771
+            message: "确定成功",
772
+            type: "success",
773
+          });
774
+          this.drawerMediatio = false
775
+        } else {
776
+          this.$message({
777
+            message: res.msg,
778
+            type: "error",
779
+          });
780
+        }
781
+      })
782
+    }
622 783
   },
623 784
   computed: {
624 785
     editor() {

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

@@ -32,6 +32,7 @@
32 32
           @videoClickOff="videoClickOff"
33 33
           @sharClickOn="sharClickOn"
34 34
           @sharClickOff="sharClickOff"
35
+          @mediationPop="mediationPop"
35 36
           :roomId="roomId"
36 37
           :micFlag="micFlag"
37 38
           :videoFlag="videoFlag"
@@ -472,6 +473,10 @@ export default {
472 473
         name: "Home",
473 474
       });
474 475
     },
476
+    // 调解
477
+    async mediationPop(){
478
+      console.log()
479
+    },
475 480
     // 获取拉流信息
476 481
     getPushVideo() {
477 482
       trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, (event) => {