Преглед изворни кода

视频调解页面接口开发

gyj пре 2 година
родитељ
комит
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
 import axios from "@/utils/request";
1
 import axios from "@/utils/request";
2
 // let baseUrlZc = 'https://api.xayunmei.com/zhongcaiapi';
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
 // let baseUrl = 'http://172.16.1.4:6001';
4
 // let baseUrl = 'http://172.16.1.4:6001';
5
 // 获取usersig
5
 // 获取usersig
6
 export function getUsersig(userId) {
6
 export function getUsersig(userId) {
46
 export function fileList(caseAppliId,annexTypeList) {
46
 export function fileList(caseAppliId,annexTypeList) {
47
     return axios.get(`tiaojie/common/fileList?caseAppliId=${caseAppliId}&annexTypeList=${annexTypeList}`);
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
           v-else
56
           v-else
57
           @click="sharClickOff"
57
           @click="sharClickOff"
58
         />
58
         />
59
+        
60
+      </div>
61
+      <div class="mediationPop">
62
+         <el-button type="warning" @click="mediationPop">调解</el-button>
59
       </div>
63
       </div>
60
     </div>
64
     </div>
61
   </div>
65
   </div>
107
       this.sharFlag = true;
111
       this.sharFlag = true;
108
       this.$emit("sharClickOff");
112
       this.$emit("sharClickOff");
109
     },
113
     },
114
+    // 弹出调解内容
115
+    mediationPop(){
116
+      this.$emit("mediationPop");
117
+    },
110
     exitRoom() {
118
     exitRoom() {
111
       if (this.roleFlag) {
119
       if (this.roleFlag) {
112
         this.stopVideoFn();
120
         this.stopVideoFn();
194
   height: 60px;
202
   height: 60px;
195
   margin-left: 20px;
203
   margin-left: 20px;
196
 }
204
 }
197
-
205
+.mediationPop{
206
+  margin-left: 20px;
207
+}
198
 .micImg,
208
 .micImg,
199
 .videoImg,
209
 .videoImg,
200
 .sharImg {
210
 .sharImg {

+ 178
- 17
src/views/room.vue Прегледај датотеку

36
           @videoClickOff="videoClickOff"
36
           @videoClickOff="videoClickOff"
37
           @sharClickOn="sharClickOn"
37
           @sharClickOn="sharClickOn"
38
           @sharClickOff="sharClickOff"
38
           @sharClickOff="sharClickOff"
39
+          @mediationPop="mediationPop"
39
           :roomId="roomId"
40
           :roomId="roomId"
40
           :micFlag="micFlag"
41
           :micFlag="micFlag"
41
           :videoFlag="videoFlag"
42
           :videoFlag="videoFlag"
63
     </div>
64
     </div>
64
     <!-- 语音转文字弹窗 -->
65
     <!-- 语音转文字弹窗 -->
65
     <el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
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
         <div
68
         <div
68
           style="
69
           style="
69
             width: 100%;
70
             width: 100%;
87
               >申请人上传证据</el-button
88
               >申请人上传证据</el-button
88
             >
89
             >
89
           </el-upload>
90
           </el-upload>
90
-          <!-- https://api.xayunmei.com/tiaojieapitest/video/upload -->
91
           <el-upload
91
           <el-upload
92
             v-if="resFlag"
92
             v-if="resFlag"
93
             ref="upload1"
93
             ref="upload1"
155
             </div>
155
             </div>
156
           </div>
156
           </div>
157
         </div>
157
         </div>
158
-      </div>
158
+      </div> -->
159
       <quill-editor
159
       <quill-editor
160
         ref="myQuillEditor"
160
         ref="myQuillEditor"
161
         v-model="contentValue"
161
         v-model="contentValue"
172
         >确认修改内容</el-button
172
         >确认修改内容</el-button
173
       >
173
       >
174
     </el-drawer>
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
   </div>
295
   </div>
176
 </template>
296
 </template>
177
 
297
 
178
 <script>
298
 <script>
179
-import { getUsersig, reserveConferenceList } from "@/api/home";
299
+import { getUsersig, reserveConferenceList,confirmMeetingResult } from "@/api/home";
180
 import {
300
 import {
181
   secretaryRoleByUserId,
301
   secretaryRoleByUserId,
182
   htmlToPDF,
302
   htmlToPDF,
217
       userId: null,
337
       userId: null,
218
       id: null,
338
       id: null,
219
       showFlag: false,
339
       showFlag: false,
340
+      drawerMediatio: false,
220
       modileFlag: false,
341
       modileFlag: false,
221
       localStreamAsr: null,
342
       localStreamAsr: null,
222
       contentValue: "",
343
       contentValue: "",
231
       applicantFile: [],
352
       applicantFile: [],
232
       resFile: [],
353
       resFile: [],
233
       mediateFile: [],
354
       mediateFile: [],
355
+      formData:{
356
+        mediaResult:1,
357
+        sealFlag:1
358
+      },
359
+      caseFlowId:null,
234
       headers: {
360
       headers: {
235
         // Authorization: "Bearer " + token,
361
         // Authorization: "Bearer " + token,
236
         Authorization: "",
362
         Authorization: "",
316
       // this.videoList = "videoList1";
442
       // this.videoList = "videoList1";
317
       // this.videoClass = "videoItem2";
443
       // this.videoClass = "videoItem2";
318
       // this.screenShareFlag = true;
444
       // this.screenShareFlag = true;
319
-      if(this.screenShareFlag){
320
-        alert("其他用户已经分享")
321
-        return
445
+      if (this.screenShareFlag) {
446
+        alert("其他用户已经分享");
447
+        return;
322
       }
448
       }
323
       await trtc.startScreenShare().then(() => {
449
       await trtc.startScreenShare().then(() => {
324
         this.sharFlag = false;
450
         this.sharFlag = false;
404
         } else {
530
         } else {
405
           flag = 0;
531
           flag = 0;
406
         }
532
         }
407
-        let token = sessionStorage.getItem('token')
533
+        let token = sessionStorage.getItem("token");
408
         window.open(
534
         window.open(
409
           `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
535
           `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
410
           "_black"
536
           "_black"
454
     // 点击显示修改的文本框
580
     // 点击显示修改的文本框
455
     txtContent() {
581
     txtContent() {
456
       this.textVisible = true;
582
       this.textVisible = true;
457
-      setInterval(() => {
458
-        this.selectByIdFn(this.caseId);
459
-      }, 8000);
583
+      // setInterval(() => {
584
+      //   this.selectByIdFn(this.caseId);
585
+      // }, 8000);
460
       this.selectRoleMenuByCaseIdFn(this.caseId);
586
       this.selectRoleMenuByCaseIdFn(this.caseId);
461
       this.getMenuPermsByUserFn();
587
       this.getMenuPermsByUserFn();
462
     },
588
     },
463
     /** 获取证据列表 */
589
     /** 获取证据列表 */
464
     selectByIdFn(id) {
590
     selectByIdFn(id) {
465
       selectById(id).then((res) => {
591
       selectById(id).then((res) => {
592
+        this.caseFlowId = res.data.caseFlowId;
466
         this.applicantFile = [];
593
         this.applicantFile = [];
467
         this.resFile = [];
594
         this.resFile = [];
468
         this.mediateFile = [];
595
         this.mediateFile = [];
510
             trtc.startRemoteVideo({ userId, streamType, view: `${userId}` });
637
             trtc.startRemoteVideo({ userId, streamType, view: `${userId}` });
511
           });
638
           });
512
         } else if (streamType == "sub") {
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
           this.screenShareFlag = true;
648
           this.screenShareFlag = true;
520
         }
649
         }
521
         setTimeout(() => {
650
         setTimeout(() => {
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
   computed: {
784
   computed: {
624
     editor() {
785
     editor() {

+ 5
- 0
src/views/testRoom.vue Прегледај датотеку

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