Przeglądaj źródła

Merge branch 'hcb' of SH-Arbitrate/Arbitrate-FrontendH5 into master

hanchaobo 2 lat temu
rodzic
commit
b2abddc8d3
6 zmienionych plików z 11467 dodań i 82 usunięć
  1. BIN
      .DS_Store
  2. 0
    6
      .gitignore
  3. 11344
    26
      package-lock.json
  4. 36
    4
      src/views/components/footerPhone.vue
  5. 1
    1
      src/views/components/roomFooter.vue
  6. 86
    45
      src/views/room.vue

BIN
.DS_Store Wyświetl plik


+ 0
- 6
.gitignore Wyświetl plik

23
 *.sln
23
 *.sln
24
 *.sw?
24
 *.sw?
25
 node_modules
25
 node_modules
26
-<<<<<<< HEAD
27
-node_modules
28
-node_modules
29
-node_modules
30
-=======
31
->>>>>>> ce7123d0f78fb925333f45cb0f43791061dc0431
32
 /dist
26
 /dist

+ 11344
- 26
package-lock.json
Plik diff jest za duży
Wyświetl plik


+ 36
- 4
src/views/components/footerPhone.vue Wyświetl plik

10
             <img class="videoImg" src="@/assets/video_on.png" alt="" v-if="videoFlag" @click="videoClickOn" />
10
             <img class="videoImg" src="@/assets/video_on.png" alt="" v-if="videoFlag" @click="videoClickOn" />
11
             <img class="videoImg" src="@/assets/video_off.png" alt="" v-else @click="videoClickOff" />
11
             <img class="videoImg" src="@/assets/video_off.png" alt="" v-else @click="videoClickOff" />
12
         </div>
12
         </div>
13
-        <div class="sharing">
13
+        <!-- <div class="sharing">
14
             <img class="sharImg" src="@/assets/screenShare_on.png" alt="" v-if="sharFlag" @click="sharClickOn" />
14
             <img class="sharImg" src="@/assets/screenShare_on.png" alt="" v-if="sharFlag" @click="sharClickOn" />
15
             <img class="sharImg" src="@/assets/screenShare_off.png" alt="" v-else @click="sharClickOff" />
15
             <img class="sharImg" src="@/assets/screenShare_off.png" alt="" v-else @click="sharClickOff" />
16
 
16
 
17
-        </div>
17
+        </div> -->
18
         <div class="mediationPop">
18
         <div class="mediationPop">
19
             <el-button type="warning" @click="mediationPop">调解</el-button>
19
             <el-button type="warning" @click="mediationPop">调解</el-button>
20
         </div>
20
         </div>
29
 import { startVideo, stopVideo, destructionRoom } from '@/api/room.js'
29
 import { startVideo, stopVideo, destructionRoom } from '@/api/room.js'
30
 export default {
30
 export default {
31
     name: 'FooterPhone',
31
     name: 'FooterPhone',
32
+    props: ["micFlag", "videoFlag", "sharFlag"],
32
     components: {
33
     components: {
33
 
34
 
34
     },
35
     },
36
         return {
37
         return {
37
             roomId: null,
38
             roomId: null,
38
             taskId: null,
39
             taskId: null,
39
-            roleFlag: false
40
+            roleFlag: false,
41
+            caseId:""
40
         };
42
         };
41
     },
43
     },
42
     methods: {
44
     methods: {
46
                 console.log(res, "解散房间");
48
                 console.log(res, "解散房间");
47
             })
49
             })
48
         },
50
         },
51
+        /**开启麦克风 */
52
+    micClickOn() {
53
+      this.$emit("micClickOn");
54
+    },
55
+    /**关闭麦克风 */
56
+    micClickOff() {
57
+      this.$emit("micClickOff");
58
+    },
59
+    /**开启摄像头 */
60
+    videoClickOn() {
61
+      this.$emit("videoClickOn");
62
+    },
63
+    /**关闭摄像头 */
64
+    videoClickOff() {
65
+      this.$emit("videoClickOff");
66
+    },
67
+    /**共享屏幕 */
68
+    sharClickOn() {
69
+      this.$emit("sharClickOn");
70
+    },
71
+    /**关闭共享屏幕 */
72
+    sharClickOff() {
73
+      this.sharFlag = true;
74
+      this.$emit("sharClickOff");
75
+    },
76
+    // 弹出调解内容
77
+    mediationPop() {
78
+      this.$emit("mediationPop");
79
+    },
49
         exitRoom() {
80
         exitRoom() {
50
             if (this.roleFlag) {
81
             if (this.roleFlag) {
51
                 this.stopVideoFn();
82
                 this.stopVideoFn();
57
         },
88
         },
58
         async startVideoFn() {
89
         async startVideoFn() {
59
             await startVideo({
90
             await startVideo({
60
-                caseId: 12865,
91
+                caseId: this.caseId,
61
                 roomId: this.roomId
92
                 roomId: this.roomId
62
             }).then(res => {
93
             }).then(res => {
63
                 this.taskId = res.data.taskId
94
                 this.taskId = res.data.taskId
73
     async mounted() {
104
     async mounted() {
74
         this.roomId = this.$route.query.roomId;
105
         this.roomId = this.$route.query.roomId;
75
         let roleFlag = this.$route.query.flag;
106
         let roleFlag = this.$route.query.flag;
107
+        this.caseId = this.$route.query.caseId;
76
         this.roleFlag = roleFlag || false;
108
         this.roleFlag = roleFlag || false;
77
         if (roleFlag) {
109
         if (roleFlag) {
78
             await this.startVideoFn();
110
             await this.startVideoFn();

+ 1
- 1
src/views/components/roomFooter.vue Wyświetl plik

103
     this.roomId = this.$route.query.roomId;
103
     this.roomId = this.$route.query.roomId;
104
     this.caseId = this.$route.query.caseId;
104
     this.caseId = this.$route.query.caseId;
105
     let roleFlag = this.$route.query.flag;
105
     let roleFlag = this.$route.query.flag;
106
-    this.roleFlag = roleFlag;
106
+    this.roleFlag = roleFlag || false;
107
     if (roleFlag) {
107
     if (roleFlag) {
108
       await this.startVideoFn();
108
       await this.startVideoFn();
109
     }
109
     }

+ 86
- 45
src/views/room.vue Wyświetl plik

1
 <template>
1
 <template>
2
   <div class="page">
2
   <div class="page">
3
-    <div class="iconImg" v-if="!modileFlag && rightType" @click="checkList(1)">
3
+    <div class="iconImg" v-if="!modileFlag && rightType && rightTypeall" @click="checkList(1)">
4
       <i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;"></i>
4
       <i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;"></i>
5
       <!-- <i class="el-icon-d-arrow-right"></i> -->
5
       <!-- <i class="el-icon-d-arrow-right"></i> -->
6
     </div>
6
     </div>
21
         </div>
21
         </div>
22
       </div>
22
       </div>
23
       <div class="footerList">
23
       <div class="footerList">
24
-        <roomFooter @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff"
25
-          @videoClickOn="videoClickOn" @videoClickOff="videoClickOff" @sharClickOn="sharClickOn"
26
-          @sharClickOff="sharClickOff" @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag"
27
-          :videoFlag="videoFlag" :sharFlag="sharFlag"></roomFooter>
24
+        <roomFooter @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff" @videoClickOn="videoClickOn"
25
+          @videoClickOff="videoClickOff" @sharClickOn="sharClickOn" @sharClickOff="sharClickOff"
26
+          @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag" :videoFlag="videoFlag" :sharFlag="sharFlag">
27
+        </roomFooter>
28
       </div>
28
       </div>
29
     </div>
29
     </div>
30
     <div class="roomPhone">
30
     <div class="roomPhone">
31
       <div class="videoPage">
31
       <div class="videoPage">
32
-        <div :class="sharingType">
32
+        <div :class="sharingType" id="screenShare">
33
         </div>
33
         </div>
34
         <div :class="bodyPhoneType">
34
         <div :class="bodyPhoneType">
35
           <div :class="userClassPhone" id="localStream">
35
           <div :class="userClassPhone" id="localStream">
38
           <div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
38
           <div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
39
             <div class="userNamePhone">{{ item }}</div>
39
             <div class="userNamePhone">{{ item }}</div>
40
           </div>
40
           </div>
41
-          <i class="el-icon-d-arrow-right" style="font-size: 30px;color: aqua;" @click="checkList(2)" v-if="!rightType"></i>
41
+          <i class="el-icon-d-arrow-right" style="font-size: 30px;color: aqua;" @click="checkList(2)"
42
+            v-if="!rightType && rightTypeall"></i>
43
+          <!-- <i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;" @click="checkList(2)"
44
+            v-if="!rightType && !rightTypeall"></i> -->
42
         </div>
45
         </div>
43
         <div class="footerPhone">
46
         <div class="footerPhone">
44
-          <roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
47
+          <roomFooterPhone @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff"
48
+            @videoClickOn="videoClickOn" @videoClickOff="videoClickOff" @sharClickOn="sharClickOn"
49
+            @sharClickOff="sharClickOff" @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag"
50
+            :videoFlag="videoFlag" :sharFlag="sharFlag"></roomFooterPhone>
45
         </div>
51
         </div>
46
       </div>
52
       </div>
47
       <!-- <div class="header">
53
       <!-- <div class="header">
63
       <el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
69
       <el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
64
     </el-drawer>
70
     </el-drawer>
65
     <!-- 调解 -->
71
     <!-- 调解 -->
66
-    <el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容">
72
+    <el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容" :size="drawerSize">
67
       <div style="
73
       <div style="
68
           width: 100%;
74
           width: 100%;
69
           display: flex;
75
           display: flex;
87
       </div>
93
       </div>
88
       <div class="list">
94
       <div class="list">
89
         <div class="applicant" v-if="applicantFile.length > 0">
95
         <div class="applicant" v-if="applicantFile.length > 0">
90
-          <div>申请人证据</div>
96
+          <div style="font-size: 20px;margin-bottom: 10PX;">申请人证据:</div>
91
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
97
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
92
             @click="preview(item, 0)">
98
             @click="preview(item, 0)">
93
             {{ item.annexName }}
99
             {{ item.annexName }}
94
           </div>
100
           </div>
95
         </div>
101
         </div>
96
         <div class="res" v-if="resFile.length > 0">
102
         <div class="res" v-if="resFile.length > 0">
97
-          <div>被申请人证据</div>
103
+          <div style="font-size: 20px;margin-bottom: 10PX;">被申请人证据:</div>
98
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
104
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
99
             @click="preview(item, 0)">
105
             @click="preview(item, 0)">
100
             {{ item.annexName }}
106
             {{ item.annexName }}
101
           </div>
107
           </div>
102
         </div>
108
         </div>
103
         <div class="mediate" v-if="mediateFile.length > 0">
109
         <div class="mediate" v-if="mediateFile.length > 0">
104
-          <div>调解书</div>
110
+          <div style="font-size: 20px;margin-bottom: 10PX;">调解书:</div>
105
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
111
           <div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
106
             @click="preview(item, 1)">
112
             @click="preview(item, 1)">
107
             {{ item.annexName }}
113
             {{ item.annexName }}
108
           </div>
114
           </div>
109
         </div>
115
         </div>
110
       </div>
116
       </div>
111
-      <div>
117
+      <div v-if="modileFlag && updataFlag">
112
         <el-form label-width="100px">
118
         <el-form label-width="100px">
113
           <el-col :span="24">
119
           <el-col :span="24">
114
             <el-form-item label="调解结果:">
120
             <el-form-item label="调解结果:">
121
               </el-radio-group>
127
               </el-radio-group>
122
             </el-form-item>
128
             </el-form-item>
123
           </el-col>
129
           </el-col>
124
-          <el-col :span="24">
130
+          <el-col :span="24" v-if="formData.mediaResult == 1"> 
125
             <el-form-item label="是否用印申请:">
131
             <el-form-item label="是否用印申请:">
126
               <el-radio-group v-model="formData.sealFlag">
132
               <el-radio-group v-model="formData.sealFlag">
127
                 <el-radio :label="1">是</el-radio>
133
                 <el-radio :label="1">是</el-radio>
131
           </el-col>
137
           </el-col>
132
         </el-form>
138
         </el-form>
133
       </div>
139
       </div>
134
-      <div>
140
+      <div v-if="modileFlag && updataFlag">
135
         <el-button style="width:100%;" type="primary" @click="determineMeeting" :disabled="!updataFlag">确定</el-button>
141
         <el-button style="width:100%;" type="primary" @click="determineMeeting" :disabled="!updataFlag">确定</el-button>
136
       </div>
142
       </div>
137
     </el-drawer>
143
     </el-drawer>
167
   },
173
   },
168
   data() {
174
   data() {
169
     return {
175
     return {
170
-      rightType:true,
176
+      drawerSize: "30%",
177
+      rightType: false,
178
+      rightTypeall: false,
171
       sharingType: "sharing",
179
       sharingType: "sharing",
172
       bodyPhoneType: "bodyPhone",
180
       bodyPhoneType: "bodyPhone",
173
       videoList: "videoList",
181
       videoList: "videoList",
175
       resFlag: null,
183
       resFlag: null,
176
       appFlag: null,
184
       appFlag: null,
177
       userClassPhone: "userVideoPhone",
185
       userClassPhone: "userVideoPhone",
178
-      userList: [1, 2],
186
+      userList: [],
179
       userHeight: "100%",
187
       userHeight: "100%",
180
       userPhoneHeight: "92%",
188
       userPhoneHeight: "92%",
181
       userSign: "",
189
       userSign: "",
253
         this.sharingType = "sharing1";
261
         this.sharingType = "sharing1";
254
         this.bodyPhoneType = "bodyPhone1";
262
         this.bodyPhoneType = "bodyPhone1";
255
         this.rightType = false;
263
         this.rightType = false;
264
+        // console.log(this.rightType,this.rightTypeall,"Pppppppppp");
256
       } else if (data == 2) {
265
       } else if (data == 2) {
257
-        console.log("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUu");
258
         this.sharingType = "sharing1";
266
         this.sharingType = "sharing1";
259
         this.bodyPhoneType = "bodyPhone2";
267
         this.bodyPhoneType = "bodyPhone2";
260
         this.rightType = true;
268
         this.rightType = true;
269
+        console.log(this.rightType, this.rightTypeall, "Pppppppppp");
261
       }
270
       }
262
     },
271
     },
263
     /**点击开启麦克风图标,关闭麦克风 */
272
     /**点击开启麦克风图标,关闭麦克风 */
382
       this.selectByIdFn(this.caseId);
391
       this.selectByIdFn(this.caseId);
383
     },
392
     },
384
     preview(item, type) {
393
     preview(item, type) {
385
-      if (item.onlyOfficeFileId) {
386
-        debugger
387
-        // this.$router.push({
388
-        //   path: "/onlyoffice",
389
-        //   query: { id: item.onlyOfficeFileId, flag: flag },
390
-        // });
391
-        let flag = 1;
392
-        if (this.editFlag && type != 0) {
393
-          flag = 1;
394
+      if (this.modileFlag) {
395
+        if (item.onlyOfficeFileId) {
396
+          // this.$router.push({
397
+          //   path: "/onlyoffice",
398
+          //   query: { id: item.onlyOfficeFileId, flag: flag },
399
+          // });
400
+          let flag = 1;
401
+          if (this.editFlag && type != 0) {
402
+            flag = 1;
403
+          } else {
404
+            flag = 0;
405
+          }
406
+          let token = sessionStorage.getItem("token");
407
+          window.open(
408
+            `http://121.40.189.20:9002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
409
+            "_black"
410
+            // `http://localhost:81/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
411
+            // "_black"
412
+          );
394
         } else {
413
         } else {
395
-          flag = 0;
414
+          window.open(window.location.origin + '/tjformal' + item.annexPath, "_black");
396
         }
415
         }
397
-        let token = sessionStorage.getItem("token");
398
-        window.open(
399
-          `http://121.40.189.20:9002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
400
-          "_black"
401
-          // `http://localhost:81/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
402
-          // "_black"
403
-        );
404
-      } else {
405
-        window.open(window.location.origin + '/tiaojie' + item.annexPath, "_black");
416
+      }else{
417
+        window.open(window.location.origin + '/tjformal' + item.annexPath, "_black");
406
       }
418
       }
419
+
407
     },
420
     },
408
     // 点击提交修改后的内容
421
     // 点击提交修改后的内容
409
     updataClick() {
422
     updataClick() {
455
     /** 获取证据列表 */
468
     /** 获取证据列表 */
456
     selectByIdFn(id) {
469
     selectByIdFn(id) {
457
       selectById(id).then((res) => {
470
       selectById(id).then((res) => {
471
+        this.formData.mediaResult = res.data.mediaResult || 1;
458
         this.caseFlowId = res.data.caseFlowId;
472
         this.caseFlowId = res.data.caseFlowId;
459
         this.applicantFile = [];
473
         this.applicantFile = [];
460
         this.resFile = [];
474
         this.resFile = [];
511
               .then(() => {
525
               .then(() => {
512
                 this.videoList = "videoList1";
526
                 this.videoList = "videoList1";
513
                 this.videoClass = "videoItem2";
527
                 this.videoClass = "videoItem2";
528
+                this.userClassPhone = "userVideoPhone2"
529
+                this.sharingType = "sharing1";
530
+                this.bodyPhoneType = "bodyPhone1";
531
+                this.rightType = false;
532
+                this.rightTypeall = true;
514
               });
533
               });
515
           });
534
           });
516
           this.screenShareFlag = true;
535
           this.screenShareFlag = true;
578
           });
597
           });
579
         } else if (streamType == "sub") {
598
         } else if (streamType == "sub") {
580
           this.sharFlag = true;
599
           this.sharFlag = true;
600
+          this.rightTypeall = false;
581
           this.videoList = "videoList";
601
           this.videoList = "videoList";
582
           this.screenShareFlag = false;
602
           this.screenShareFlag = false;
583
-          if (this.userList.length > 1) {
603
+          this.bodyPhoneType = 'bodyPhone';
604
+          this.sharingType = "sharing"
605
+          if (this.userList.length == 1) {
606
+            this.videoClass = "videoItem3";
607
+            this.userClassPhone = "userVideoPhone1";
608
+          } else if (this.userList.length > 1) {
584
             this.videoClass = "videoItem1";
609
             this.videoClass = "videoItem1";
610
+            this.userClassPhone = "userVideoPhone2";
585
           } else if (this.userList.length < 1) {
611
           } else if (this.userList.length < 1) {
586
             this.videoClass = "videoItem";
612
             this.videoClass = "videoItem";
587
-          } else if (this.userList.length == 1) {
588
-            this.videoClass = "videoItem3";
613
+            this.userClassPhone = "userVideoPhone";
589
           }
614
           }
590
         }
615
         }
591
       });
616
       });
655
   },
680
   },
656
   watch: {
681
   watch: {
657
     userList(value) {
682
     userList(value) {
658
-      if (value.length == 1) {
683
+      if (this.userList.length == 1) {
659
         this.videoClass = "videoItem3";
684
         this.videoClass = "videoItem3";
660
-      } else if (value.length > 1) {
685
+        this.userClassPhone = "userVideoPhone1";
686
+      } else if (this.userList.length > 1) {
661
         this.videoClass = "videoItem1";
687
         this.videoClass = "videoItem1";
662
-      } else if (value.length < 1) {
688
+        this.userClassPhone = "userVideoPhone2";
689
+      } else if (this.userList.length < 1) {
663
         this.videoClass = "videoItem";
690
         this.videoClass = "videoItem";
691
+        this.userClassPhone = "userVideoPhone";
664
       }
692
       }
665
     },
693
     },
694
+    drawerMediatio(val) {
695
+      if (val) {
696
+        if (this.modileFlag) {
697
+          this.drawerSize = "30%"
698
+        } else {
699
+          this.drawerSize = "75%"
700
+        }
701
+      }
702
+    }
666
   },
703
   },
667
   async mounted() {
704
   async mounted() {
668
     if (this.userList.length == 1) {
705
     if (this.userList.length == 1) {
939
   flex-wrap: wrap;
976
   flex-wrap: wrap;
940
   align-items: center;
977
   align-items: center;
941
   overflow-y: scroll;
978
   overflow-y: scroll;
979
+  background: #353643ba;
942
 }
980
 }
943
-.bodyPhone2{
981
+
982
+.bodyPhone2 {
944
   width: 0;
983
   width: 0;
945
   height: 0;
984
   height: 0;
946
   position: absolute;
985
   position: absolute;
952
   align-items: center;
991
   align-items: center;
953
   overflow-y: scroll;
992
   overflow-y: scroll;
954
 }
993
 }
994
+
955
 /* 移动端样式 */
995
 /* 移动端样式 */
956
 
996
 
957
 .bodyVideo {
997
 .bodyVideo {
1028
   height: 0;
1068
   height: 0;
1029
 }
1069
 }
1030
 
1070
 
1031
-.el-icon-d-arrow-right {
1071
+.el-icon-d-arrow-right,
1072
+.el-icon-d-arrow-left {
1032
   position: absolute;
1073
   position: absolute;
1033
   left: 0;
1074
   left: 0;
1034
   top: 45%;
1075
   top: 45%;