|
|
@@ -2,46 +2,25 @@
|
|
2
|
2
|
<div class="page">
|
|
3
|
3
|
<div class="roompage" @mouseover="mouseHover" v-if="modileFlag">
|
|
4
|
4
|
<div class="txtContent">
|
|
5
|
|
- <el-tag type="danger" @click="txtContent" v-if="modileFlag"
|
|
6
|
|
- >会议内容</el-tag
|
|
7
|
|
- >
|
|
|
5
|
+ <el-tag type="danger" @click="txtContent" v-if="modileFlag">会议内容</el-tag>
|
|
8
|
6
|
</div>
|
|
9
|
7
|
<div class="content">
|
|
10
|
|
- <div
|
|
11
|
|
- class="screenShare"
|
|
12
|
|
- id="screenShare"
|
|
13
|
|
- v-show="screenShareFlag"
|
|
14
|
|
- ></div>
|
|
|
8
|
+ <div class="screenShare" id="screenShare" v-show="screenShareFlag"></div>
|
|
15
|
9
|
|
|
16
|
10
|
<div :class="videoList">
|
|
17
|
11
|
<div :class="videoClass" id="localStream">
|
|
18
|
12
|
<div class="userName">{{ userId }}</div>
|
|
19
|
13
|
</div>
|
|
20
|
|
- <div
|
|
21
|
|
- :class="videoClass"
|
|
22
|
|
- v-for="(item, index) in userList"
|
|
23
|
|
- :key="index"
|
|
24
|
|
- :id="item"
|
|
25
|
|
- >
|
|
|
14
|
+ <div :class="videoClass" v-for="(item, index) in userList" :key="index" :id="item">
|
|
26
|
15
|
<div class="userName">{{ item }}</div>
|
|
27
|
16
|
</div>
|
|
28
|
17
|
</div>
|
|
29
|
18
|
</div>
|
|
30
|
19
|
<div class="footerList">
|
|
31
|
|
- <roomFooter
|
|
32
|
|
- @exitRoom="exitRoom"
|
|
33
|
|
- @micClickOn="micClickOn"
|
|
34
|
|
- @micClickOff="micClickOff"
|
|
35
|
|
- @videoClickOn="videoClickOn"
|
|
36
|
|
- @videoClickOff="videoClickOff"
|
|
37
|
|
- @sharClickOn="sharClickOn"
|
|
38
|
|
- @sharClickOff="sharClickOff"
|
|
39
|
|
- @mediationPop="mediationPop"
|
|
40
|
|
- :roomId="roomId"
|
|
41
|
|
- :micFlag="micFlag"
|
|
42
|
|
- :videoFlag="videoFlag"
|
|
43
|
|
- :sharFlag="sharFlag"
|
|
44
|
|
- ></roomFooter>
|
|
|
20
|
+ <roomFooter @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff"
|
|
|
21
|
+ @videoClickOn="videoClickOn" @videoClickOff="videoClickOff" @sharClickOn="sharClickOn"
|
|
|
22
|
+ @sharClickOff="sharClickOff" @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag"
|
|
|
23
|
+ :videoFlag="videoFlag" :sharFlag="sharFlag"></roomFooter>
|
|
45
|
24
|
</div>
|
|
46
|
25
|
</div>
|
|
47
|
26
|
<div class="roomPhone" v-if="!modileFlag">
|
|
|
@@ -52,12 +31,7 @@
|
|
52
|
31
|
<div :class="userClassPhone" id="localStream">
|
|
53
|
32
|
<div class="userNamePhone">{{ userId }}</div>
|
|
54
|
33
|
</div>
|
|
55
|
|
- <div
|
|
56
|
|
- :class="userClassPhone"
|
|
57
|
|
- v-for="(item, index) in userList"
|
|
58
|
|
- :key="index"
|
|
59
|
|
- :id="item"
|
|
60
|
|
- >
|
|
|
34
|
+ <div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
|
|
61
|
35
|
<div class="userNamePhone">{{ item }}</div>
|
|
62
|
36
|
</div>
|
|
63
|
37
|
</div>
|
|
|
@@ -156,111 +130,52 @@
|
|
156
|
130
|
</div>
|
|
157
|
131
|
</div>
|
|
158
|
132
|
</div> -->
|
|
159
|
|
- <quill-editor
|
|
160
|
|
- ref="myQuillEditor"
|
|
161
|
|
- v-model="contentValue"
|
|
162
|
|
- :options="editorOption"
|
|
163
|
|
- @blur="onEditorBlur($event)"
|
|
164
|
|
- @focus="onEditorFocus($event)"
|
|
165
|
|
- @ready="onEditorReady($event)"
|
|
166
|
|
- ></quill-editor>
|
|
167
|
|
- <el-button
|
|
168
|
|
- class="updataBtn"
|
|
169
|
|
- @click="updataClick"
|
|
170
|
|
- type="primary"
|
|
171
|
|
- :disabled="!updataFlag"
|
|
172
|
|
- >确认修改内容</el-button
|
|
173
|
|
- >
|
|
|
133
|
+ <quill-editor ref="myQuillEditor" v-model="contentValue" :options="editorOption" @blur="onEditorBlur($event)"
|
|
|
134
|
+ @focus="onEditorFocus($event)" @ready="onEditorReady($event)"></quill-editor>
|
|
|
135
|
+ <el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
|
|
174
|
136
|
</el-drawer>
|
|
175
|
137
|
<!-- 调解 -->
|
|
176
|
138
|
<el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容">
|
|
177
|
|
- <div
|
|
178
|
|
- style="
|
|
|
139
|
+ <div style="
|
|
179
|
140
|
width: 100%;
|
|
180
|
141
|
display: flex;
|
|
181
|
142
|
justify-content: space-around;
|
|
182
|
143
|
margin-bottom: 10px;
|
|
183
|
144
|
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
|
|
- >
|
|
|
145
|
+ ">
|
|
|
146
|
+ <el-upload ref="upload" :limit="1" :action="UploadUrl()" :headers="headers" :data="filedata"
|
|
|
147
|
+ :on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList" v-if="appFlag">
|
|
|
148
|
+ <el-button slot="trigger" size="small" type="primary">申请人上传证据</el-button>
|
|
200
|
149
|
</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
|
|
- >
|
|
|
150
|
+ <el-upload ref="upload1" :limit="1" :action="UploadUrl()" :headers="headers1" :data="filedata1"
|
|
|
151
|
+ :on-change="beforeUpload1" :on-success="handlSuccess1" :file-list="fileList1" v-if="resFlag">
|
|
|
152
|
+ <el-button slot="trigger" size="small" type="primary">被申请人上传证据</el-button>
|
|
215
|
153
|
</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
|
|
- >
|
|
|
154
|
+ <el-upload ref="upload3" :limit="1" :action="UploadUrl()" :headers="headers3" :data="filedata3"
|
|
|
155
|
+ :on-change="beforeUpload3" :on-success="handlSuccess3" :file-list="fileList3" accept=".doc,.docx"
|
|
|
156
|
+ v-if="updataFlag">
|
|
|
157
|
+ <el-button slot="trigger" size="small" type="primary">上传调解书</el-button>
|
|
231
|
158
|
</el-upload>
|
|
232
|
159
|
</div>
|
|
233
|
160
|
<div class="list">
|
|
234
|
161
|
<div class="applicant" v-if="applicantFile.length > 0">
|
|
235
|
162
|
<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
|
|
- >
|
|
|
163
|
+ <div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
|
|
|
164
|
+ @click="preview(item, 0)">
|
|
242
|
165
|
{{ item.annexName }}
|
|
243
|
166
|
</div>
|
|
244
|
167
|
</div>
|
|
245
|
168
|
<div class="res" v-if="resFile.length > 0">
|
|
246
|
169
|
<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
|
|
- >
|
|
|
170
|
+ <div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
|
|
|
171
|
+ @click="preview(item, 0)">
|
|
253
|
172
|
{{ item.annexName }}
|
|
254
|
173
|
</div>
|
|
255
|
174
|
</div>
|
|
256
|
175
|
<div class="mediate" v-if="mediateFile.length > 0">
|
|
257
|
176
|
<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
|
|
- >
|
|
|
177
|
+ <div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
|
|
|
178
|
+ @click="preview(item, 1)">
|
|
264
|
179
|
{{ item.annexName }}
|
|
265
|
180
|
</div>
|
|
266
|
181
|
</div>
|
|
|
@@ -296,7 +211,7 @@
|
|
296
|
211
|
</template>
|
|
297
|
212
|
|
|
298
|
213
|
<script>
|
|
299
|
|
-import { getUsersig, reserveConferenceList,confirmMeetingResult } from "@/api/home";
|
|
|
214
|
+import { getUsersig, reserveConferenceList, confirmMeetingResult } from "@/api/home";
|
|
300
|
215
|
import {
|
|
301
|
216
|
secretaryRoleByUserId,
|
|
302
|
217
|
htmlToPDF,
|
|
|
@@ -352,11 +267,11 @@ export default {
|
|
352
|
267
|
applicantFile: [],
|
|
353
|
268
|
resFile: [],
|
|
354
|
269
|
mediateFile: [],
|
|
355
|
|
- formData:{
|
|
356
|
|
- mediaResult:1,
|
|
357
|
|
- sealFlag:1
|
|
|
270
|
+ formData: {
|
|
|
271
|
+ mediaResult: 1,
|
|
|
272
|
+ sealFlag: 1
|
|
358
|
273
|
},
|
|
359
|
|
- caseFlowId:null,
|
|
|
274
|
+ caseFlowId: null,
|
|
360
|
275
|
headers: {
|
|
361
|
276
|
// Authorization: "Bearer " + token,
|
|
362
|
277
|
Authorization: "",
|
|
|
@@ -532,7 +447,9 @@ export default {
|
|
532
|
447
|
}
|
|
533
|
448
|
let token = sessionStorage.getItem("token");
|
|
534
|
449
|
window.open(
|
|
535
|
|
- `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
|
|
|
450
|
+ // `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
|
|
|
451
|
+ // "_black"
|
|
|
452
|
+ `http://localhost:81/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
|
|
536
|
453
|
"_black"
|
|
537
|
454
|
);
|
|
538
|
455
|
} else {
|
|
|
@@ -619,8 +536,10 @@ export default {
|
|
619
|
536
|
});
|
|
620
|
537
|
this.localStreamAsr.stop();
|
|
621
|
538
|
await trtc.exitRoom();
|
|
622
|
|
- await trtc.updateLocalVideo({ publish: false });
|
|
623
|
|
- await trtc.updateLocalAudio({ publish: false });
|
|
|
539
|
+ // await trtc.updateLocalVideo({ publish: false });
|
|
|
540
|
+ // await trtc.updateLocalAudio({ publish: false });
|
|
|
541
|
+ await trtc.stopLocalVideo();
|
|
|
542
|
+ await trtc.stopLocalAudio();
|
|
624
|
543
|
await trtc.destroy();
|
|
625
|
544
|
this.$router.push({
|
|
626
|
545
|
name: "Home",
|
|
|
@@ -683,30 +602,41 @@ export default {
|
|
683
|
602
|
// })
|
|
684
|
603
|
});
|
|
685
|
604
|
},
|
|
|
605
|
+ /**主持人解散房间监听事件 */
|
|
|
606
|
+ exitRoomAll() {
|
|
|
607
|
+ trtc.on(TRTC.EVENT.KICKED_OUT, event => {
|
|
|
608
|
+ console.log(event.reason);
|
|
|
609
|
+ alert("主持人已经解散会议");
|
|
|
610
|
+ this.$router.push({
|
|
|
611
|
+ name: "Home",
|
|
|
612
|
+ });
|
|
|
613
|
+ this.userList = [];
|
|
|
614
|
+ });
|
|
|
615
|
+ },
|
|
686
|
616
|
// 删除退出会议人员列表
|
|
687
|
617
|
deletePushVideo() {
|
|
688
|
618
|
trtc.on(TRTC.EVENT.REMOTE_VIDEO_UNAVAILABLE, (event) => {
|
|
689
|
619
|
const streamType = event.streamType;
|
|
690
|
620
|
const userId = event.userId;
|
|
691
|
621
|
if (streamType == "main") {
|
|
692
|
|
- if (this.hostId == userId) {
|
|
693
|
|
- alert("主持人已经解散会议");
|
|
694
|
|
- this.$router.push({
|
|
695
|
|
- name: "Home",
|
|
696
|
|
- });
|
|
697
|
|
- this.userList = [];
|
|
698
|
|
- return;
|
|
699
|
|
- }
|
|
|
622
|
+ // if (this.hostId == userId) {
|
|
|
623
|
+ // alert("主持人已经解散会议");
|
|
|
624
|
+ // this.$router.push({
|
|
|
625
|
+ // name: "Home",
|
|
|
626
|
+ // });
|
|
|
627
|
+ // this.userList = [];
|
|
|
628
|
+ // return;
|
|
|
629
|
+ // }
|
|
700
|
630
|
let deleteIndex = this.userList.indexOf(userId);
|
|
701
|
631
|
this.userList = this.userList.filter((item) => item !== userId);
|
|
702
|
632
|
if (deleteIndex !== -1) {
|
|
703
|
633
|
this.userList.splice(deleteIndex, 1);
|
|
704
|
634
|
}
|
|
705
|
|
- if (this.modileFlag) {
|
|
706
|
|
- // this.userHeight = getHeight(this.userList);
|
|
707
|
|
- } else {
|
|
708
|
|
- this.userClassPhone = getWidthPhone(this.userList);
|
|
709
|
|
- }
|
|
|
635
|
+ // if (this.modileFlag) {
|
|
|
636
|
+ // // this.userHeight = getHeight(this.userList);
|
|
|
637
|
+ // } else {
|
|
|
638
|
+ // this.userClassPhone = getWidthPhone(this.userList);
|
|
|
639
|
+ // }
|
|
710
|
640
|
Object.keys(this.asrList).forEach((key) => {
|
|
711
|
641
|
this.asrList[userId].stop();
|
|
712
|
642
|
});
|
|
|
@@ -748,25 +678,25 @@ export default {
|
|
748
|
678
|
}
|
|
749
|
679
|
});
|
|
750
|
680
|
},
|
|
751
|
|
- // 调解
|
|
|
681
|
+ // 调解
|
|
752
|
682
|
mediationPop() {
|
|
753
|
683
|
this.drawerMediatio = true;
|
|
754
|
684
|
this.selectByIdFn(this.caseId);
|
|
755
|
|
- setInterval(() => {
|
|
|
685
|
+ setInterval(() => {
|
|
756
|
686
|
this.selectByIdFn(this.caseId);
|
|
757
|
687
|
}, 8000);
|
|
758
|
688
|
this.selectRoleMenuByCaseIdFn(this.caseId);
|
|
759
|
689
|
this.getMenuPermsByUserFn();
|
|
760
|
690
|
},
|
|
761
|
691
|
// 确定会议结果
|
|
762
|
|
- determineMeeting(){
|
|
|
692
|
+ determineMeeting() {
|
|
763
|
693
|
let valueMeeting = {
|
|
764
|
|
- id:this.caseId,
|
|
|
694
|
+ id: this.caseId,
|
|
765
|
695
|
mediaResult: this.formData.mediaResult,
|
|
766
|
|
- sealFlag:this.formData.sealFlag,
|
|
767
|
|
- caseFlowId:this.caseFlowId
|
|
|
696
|
+ sealFlag: this.formData.sealFlag,
|
|
|
697
|
+ caseFlowId: this.caseFlowId
|
|
768
|
698
|
}
|
|
769
|
|
- confirmMeetingResult(valueMeeting).then(res=>{
|
|
|
699
|
+ confirmMeetingResult(valueMeeting).then(res => {
|
|
770
|
700
|
if (res.code == 200) {
|
|
771
|
701
|
this.$message({
|
|
772
|
702
|
message: "确定成功",
|
|
|
@@ -833,6 +763,7 @@ export default {
|
|
833
|
763
|
});
|
|
834
|
764
|
this.getPushVideo();
|
|
835
|
765
|
this.deletePushVideo();
|
|
|
766
|
+ this.exitRoomAll();
|
|
836
|
767
|
try {
|
|
837
|
768
|
await trtc.enterRoom({
|
|
838
|
769
|
roomId: Number(roomId),
|
|
|
@@ -898,11 +829,13 @@ export default {
|
|
898
|
829
|
width: 100%;
|
|
899
|
830
|
height: 100vh;
|
|
900
|
831
|
}
|
|
|
832
|
+
|
|
901
|
833
|
.content {
|
|
902
|
834
|
width: 100%;
|
|
903
|
835
|
height: 90%;
|
|
904
|
836
|
display: flex;
|
|
905
|
837
|
}
|
|
|
838
|
+
|
|
906
|
839
|
.videoList {
|
|
907
|
840
|
width: 100%;
|
|
908
|
841
|
height: 100%;
|
|
|
@@ -914,6 +847,7 @@ export default {
|
|
914
|
847
|
margin-bottom: 20px;
|
|
915
|
848
|
position: relative;
|
|
916
|
849
|
}
|
|
|
850
|
+
|
|
917
|
851
|
.videoList1 {
|
|
918
|
852
|
width: 20%;
|
|
919
|
853
|
height: 100%;
|
|
|
@@ -925,6 +859,7 @@ export default {
|
|
925
|
859
|
margin-bottom: 20px;
|
|
926
|
860
|
position: relative;
|
|
927
|
861
|
}
|
|
|
862
|
+
|
|
928
|
863
|
.txtContent {
|
|
929
|
864
|
width: 100px;
|
|
930
|
865
|
height: 50px;
|
|
|
@@ -941,18 +876,21 @@ export default {
|
|
941
|
876
|
background: red;
|
|
942
|
877
|
border-radius: 20px;
|
|
943
|
878
|
}
|
|
|
879
|
+
|
|
944
|
880
|
.videoItem1 {
|
|
945
|
881
|
width: 32%;
|
|
946
|
882
|
height: 32%;
|
|
947
|
883
|
background: red;
|
|
948
|
884
|
border-radius: 20px;
|
|
949
|
885
|
}
|
|
|
886
|
+
|
|
950
|
887
|
.videoItem3 {
|
|
951
|
888
|
width: 48%;
|
|
952
|
889
|
height: 100%;
|
|
953
|
890
|
background: red;
|
|
954
|
891
|
border-radius: 20px;
|
|
955
|
892
|
}
|
|
|
893
|
+
|
|
956
|
894
|
.videoItem2 {
|
|
957
|
895
|
width: 90%;
|
|
958
|
896
|
height: 25%;
|
|
|
@@ -970,11 +908,13 @@ export default {
|
|
970
|
908
|
bottom: 0;
|
|
971
|
909
|
z-index: 10;
|
|
972
|
910
|
}
|
|
|
911
|
+
|
|
973
|
912
|
.screenShare {
|
|
974
|
913
|
width: 80%;
|
|
975
|
914
|
height: 100%;
|
|
976
|
915
|
background: yellow;
|
|
977
|
916
|
}
|
|
|
917
|
+
|
|
978
|
918
|
.userName {
|
|
979
|
919
|
border-radius: 10px;
|
|
980
|
920
|
width: 90px;
|
|
|
@@ -988,11 +928,13 @@ export default {
|
|
988
|
928
|
z-index: 9;
|
|
989
|
929
|
color: #ffffff;
|
|
990
|
930
|
}
|
|
|
931
|
+
|
|
991
|
932
|
.footerList {
|
|
992
|
933
|
width: 100%;
|
|
993
|
934
|
height: 10%;
|
|
994
|
935
|
background: green;
|
|
995
|
936
|
}
|
|
|
937
|
+
|
|
996
|
938
|
.userNamePhone {
|
|
997
|
939
|
border-radius: 10px;
|
|
998
|
940
|
min-width: 20%;
|