移动端页面 #6
@@ -1,7 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="roomFooter">
|
<div class="roomFooter">
|
||||||
<el-button type="danger" @click="exitRoom" v-if="!roleFlag">退出房间</el-button>
|
<!-- <el-button type="danger" @click="exitRoom" v-if="!roleFlag">退出房间</el-button>
|
||||||
<el-button type="danger" @click="exitRoom" v-if="roleFlag">解散房间</el-button>
|
<el-button type="danger" @click="exitRoom" v-if="roleFlag">解散房间</el-button> -->
|
||||||
|
<div class="mic">
|
||||||
|
<img class="micImg" src="@/assets/mic_on.png" alt="" v-if="micFlag" @click="micClickOn" />
|
||||||
|
<img class="micImg" src="@/assets/mic_off.png" alt="" v-else @click="micClickOff" />
|
||||||
|
</div>
|
||||||
|
<div class="video">
|
||||||
|
<img class="videoImg" src="@/assets/video_on.png" alt="" v-if="videoFlag" @click="videoClickOn" />
|
||||||
|
<img class="videoImg" src="@/assets/video_off.png" alt="" v-else @click="videoClickOff" />
|
||||||
|
</div>
|
||||||
|
<div class="sharing">
|
||||||
|
<img class="sharImg" src="@/assets/screenShare_on.png" alt="" v-if="sharFlag" @click="sharClickOn" />
|
||||||
|
<img class="sharImg" src="@/assets/screenShare_off.png" alt="" v-else @click="sharClickOff" />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="mediationPop">
|
||||||
|
<el-button type="warning" @click="mediationPop">调解</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="outRoom">
|
||||||
|
<el-button type="danger" @click="exitRoom" v-if="!roleFlag">退出</el-button>
|
||||||
|
<el-button type="danger" @click="exitRoom" v-if="roleFlag">解散</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -66,10 +86,26 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-direction: row-reverse;
|
}
|
||||||
|
|
||||||
|
.mic,
|
||||||
|
.video,
|
||||||
|
.sharing
|
||||||
|
{
|
||||||
|
cursor: pointer;
|
||||||
|
width: 10%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.micImg,
|
||||||
|
.videoImg,
|
||||||
|
.sharImg {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+60
-122
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
|
<div class="iconImg">
|
||||||
|
<i class="el-icon-d-arrow-left"></i>
|
||||||
|
<!-- <i class="el-icon-d-arrow-right"></i> -->
|
||||||
|
</div>
|
||||||
<div class="roompage" @mouseover="mouseHover" v-if="modileFlag">
|
<div class="roompage" @mouseover="mouseHover" v-if="modileFlag">
|
||||||
<div class="txtContent">
|
<div class="txtContent">
|
||||||
<el-tag type="danger" @click="txtContent" v-if="modileFlag">会议内容</el-tag>
|
<el-tag type="danger" @click="txtContent" v-if="modileFlag">会议内容</el-tag>
|
||||||
@@ -24,7 +28,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="roomPhone" v-if="!modileFlag">
|
<div class="roomPhone" v-if="!modileFlag">
|
||||||
<div class="header">
|
<div class="bodyPhone">
|
||||||
|
<div :class="userClassPhone" id="localStream">
|
||||||
|
<div class="userNamePhone">{{ userId }}</div>
|
||||||
|
</div>
|
||||||
|
<div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
|
||||||
|
<div class="userNamePhone">{{ item }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footerPhone">
|
||||||
|
<roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="header">
|
||||||
<roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
|
<roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
|
||||||
</div>
|
</div>
|
||||||
<div class="bodyVideo">
|
<div class="bodyVideo">
|
||||||
@@ -34,102 +49,10 @@
|
|||||||
<div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
|
<div :class="userClassPhone" v-for="(item, index) in userList" :key="index" :id="item">
|
||||||
<div class="userNamePhone">{{ item }}</div>
|
<div class="userNamePhone">{{ item }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<!-- 语音转文字弹窗 -->
|
<!-- 语音转文字弹窗 -->
|
||||||
<el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
|
<el-drawer title="会议内容" :visible.sync="textVisible" :modal="false">
|
||||||
<!-- <div style="margin-left: 20px; margin-bottom: 10px">
|
|
||||||
<div
|
|
||||||
style="
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-around;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<el-upload
|
|
||||||
ref="upload"
|
|
||||||
:limit="1"
|
|
||||||
:action="UploadUrl()"
|
|
||||||
:headers="headers"
|
|
||||||
:data="filedata"
|
|
||||||
:on-change="beforeUpload"
|
|
||||||
:on-success="handlSuccess"
|
|
||||||
:file-list="fileList"
|
|
||||||
v-if="appFlag"
|
|
||||||
>
|
|
||||||
<el-button slot="trigger" size="small" type="primary"
|
|
||||||
>申请人上传证据</el-button
|
|
||||||
>
|
|
||||||
</el-upload>
|
|
||||||
<el-upload
|
|
||||||
v-if="resFlag"
|
|
||||||
ref="upload1"
|
|
||||||
:limit="1"
|
|
||||||
:action="UploadUrl()"
|
|
||||||
:headers="headers1"
|
|
||||||
:data="filedata1"
|
|
||||||
:on-change="beforeUpload1"
|
|
||||||
:on-success="handlSuccess1"
|
|
||||||
:file-list="fileList1"
|
|
||||||
>
|
|
||||||
<el-button slot="trigger" size="small" type="primary"
|
|
||||||
>被申请人上传证据</el-button
|
|
||||||
>
|
|
||||||
</el-upload>
|
|
||||||
<el-upload
|
|
||||||
v-if="updataFlag"
|
|
||||||
ref="upload3"
|
|
||||||
:limit="1"
|
|
||||||
:action="UploadUrl()"
|
|
||||||
:headers="headers3"
|
|
||||||
:data="filedata3"
|
|
||||||
:on-change="beforeUpload3"
|
|
||||||
:on-success="handlSuccess3"
|
|
||||||
:file-list="fileList3"
|
|
||||||
accept=".doc,.docx"
|
|
||||||
>
|
|
||||||
<el-button slot="trigger" size="small" type="primary"
|
|
||||||
>上传调解书</el-button
|
|
||||||
>
|
|
||||||
</el-upload>
|
|
||||||
</div>
|
|
||||||
<div class="list">
|
|
||||||
<div class="applicant" v-if="applicantFile.length > 0">
|
|
||||||
<div>申请人证据</div>
|
|
||||||
<div
|
|
||||||
style="color: #104fad; cursor: pointer"
|
|
||||||
v-for="(item, index) in applicantFile"
|
|
||||||
:key="index"
|
|
||||||
@click="preview(item, 0)"
|
|
||||||
>
|
|
||||||
{{ item.annexName }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="res" v-if="resFile.length > 0">
|
|
||||||
<div>被申请人证据</div>
|
|
||||||
<div
|
|
||||||
style="color: #104fad; cursor: pointer"
|
|
||||||
v-for="(item, index) in resFile"
|
|
||||||
:key="index"
|
|
||||||
@click="preview(item, 0)"
|
|
||||||
>
|
|
||||||
{{ item.annexName }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="mediate" v-if="mediateFile.length > 0">
|
|
||||||
<div>调解书</div>
|
|
||||||
<div
|
|
||||||
style="color: #104fad; cursor: pointer"
|
|
||||||
v-for="(item, index) in mediateFile"
|
|
||||||
:key="index"
|
|
||||||
@click="preview(item, 1)"
|
|
||||||
>
|
|
||||||
{{ item.annexName }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<quill-editor ref="myQuillEditor" v-model="contentValue" :options="editorOption" @blur="onEditorBlur($event)"
|
<quill-editor ref="myQuillEditor" v-model="contentValue" :options="editorOption" @blur="onEditorBlur($event)"
|
||||||
@focus="onEditorFocus($event)" @ready="onEditorReady($event)"></quill-editor>
|
@focus="onEditorFocus($event)" @ready="onEditorReady($event)"></quill-editor>
|
||||||
<el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
|
<el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
|
||||||
@@ -244,7 +167,7 @@ export default {
|
|||||||
resFlag: null,
|
resFlag: null,
|
||||||
appFlag: null,
|
appFlag: null,
|
||||||
userClassPhone: "userVideoPhone",
|
userClassPhone: "userVideoPhone",
|
||||||
userList: [],
|
userList: [1,2,3,4,5],
|
||||||
userHeight: "100%",
|
userHeight: "100%",
|
||||||
userPhoneHeight: "92%",
|
userPhoneHeight: "92%",
|
||||||
userSign: "",
|
userSign: "",
|
||||||
@@ -299,7 +222,7 @@ export default {
|
|||||||
filedata3: {
|
filedata3: {
|
||||||
annexType: 7,
|
annexType: 7,
|
||||||
officeFlag: 0,
|
officeFlag: 0,
|
||||||
isMediaBook:1,
|
isMediaBook: 1,
|
||||||
caseId: null,
|
caseId: null,
|
||||||
},
|
},
|
||||||
fileList3: [],
|
fileList3: [],
|
||||||
@@ -311,7 +234,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
UploadUrl() {
|
UploadUrl() {
|
||||||
return window.location.origin + "/tiaojie/video/upload";
|
return window.location.origin + "/tjformal/video/upload";
|
||||||
},
|
},
|
||||||
/**点击开启麦克风图标,关闭麦克风 */
|
/**点击开启麦克风图标,关闭麦克风 */
|
||||||
micClickOn() {
|
micClickOn() {
|
||||||
@@ -621,24 +544,11 @@ export default {
|
|||||||
const streamType = event.streamType;
|
const streamType = event.streamType;
|
||||||
const userId = event.userId;
|
const userId = event.userId;
|
||||||
if (streamType == "main") {
|
if (streamType == "main") {
|
||||||
// if (this.hostId == userId) {
|
|
||||||
// alert("主持人已经解散会议");
|
|
||||||
// this.$router.push({
|
|
||||||
// name: "Home",
|
|
||||||
// });
|
|
||||||
// this.userList = [];
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
let deleteIndex = this.userList.indexOf(userId);
|
let deleteIndex = this.userList.indexOf(userId);
|
||||||
this.userList = this.userList.filter((item) => item !== userId);
|
this.userList = this.userList.filter((item) => item !== userId);
|
||||||
if (deleteIndex !== -1) {
|
if (deleteIndex !== -1) {
|
||||||
this.userList.splice(deleteIndex, 1);
|
this.userList.splice(deleteIndex, 1);
|
||||||
}
|
}
|
||||||
// if (this.modileFlag) {
|
|
||||||
// // this.userHeight = getHeight(this.userList);
|
|
||||||
// } else {
|
|
||||||
// this.userClassPhone = getWidthPhone(this.userList);
|
|
||||||
// }
|
|
||||||
Object.keys(this.asrList).forEach((key) => {
|
Object.keys(this.asrList).forEach((key) => {
|
||||||
this.asrList[userId].stop();
|
this.asrList[userId].stop();
|
||||||
});
|
});
|
||||||
@@ -733,10 +643,13 @@ export default {
|
|||||||
async mounted() {
|
async mounted() {
|
||||||
if (this.userList.length == 1) {
|
if (this.userList.length == 1) {
|
||||||
this.videoClass = "videoItem3";
|
this.videoClass = "videoItem3";
|
||||||
|
this.userClassPhone = "userVideoPhone1";
|
||||||
} else if (this.userList.length > 1) {
|
} else if (this.userList.length > 1) {
|
||||||
this.videoClass = "videoItem1";
|
this.videoClass = "videoItem1";
|
||||||
|
this.userClassPhone = "userVideoPhone2";
|
||||||
} else if (this.userList.length < 1) {
|
} else if (this.userList.length < 1) {
|
||||||
this.videoClass = "videoItem";
|
this.videoClass = "videoItem";
|
||||||
|
this.userClassPhone = "userVideoPhone";
|
||||||
}
|
}
|
||||||
// 判断设备类型
|
// 判断设备类型
|
||||||
this.modileFlag = getModile();
|
this.modileFlag = getModile();
|
||||||
@@ -827,6 +740,13 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.iconImg{
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
height: 40px;
|
||||||
|
width: 40px;
|
||||||
|
/* right: 10px; */
|
||||||
|
}
|
||||||
.roompage {
|
.roompage {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
@@ -952,19 +872,36 @@ export default {
|
|||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
/* .header {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 8%;
|
height: 8%;
|
||||||
background-color: #716c6c;
|
background-color: #716c6c;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
} */
|
||||||
|
/* 移动端样式 */
|
||||||
.roomPhone {
|
.roomPhone {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
|
background-color: yellow;
|
||||||
}
|
}
|
||||||
|
.footerPhone{
|
||||||
|
width: 100%;
|
||||||
|
height: 8%;
|
||||||
|
background-color: greenyellow;
|
||||||
|
}
|
||||||
|
.bodyPhone{
|
||||||
|
width: 100%;
|
||||||
|
height: 92%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
overflow-y: scroll;
|
||||||
|
background-color: rebeccapurple;
|
||||||
|
}
|
||||||
|
/* 移动端样式 */
|
||||||
|
|
||||||
.bodyVideo {
|
.bodyVideo {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -980,15 +917,16 @@ export default {
|
|||||||
background-color: yellow;
|
background-color: yellow;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
.userVideoPhone1{
|
||||||
.userVideoPhone1 {
|
width: 100%;
|
||||||
width: 50%;
|
height: 49%;
|
||||||
flex-basis: calc(33.333% - 3px);
|
background-color: rgb(43, 0, 255);
|
||||||
max-width: calc(33.333% - 3px);
|
position: relative;
|
||||||
height: 200px;
|
}
|
||||||
/* height: 0; */
|
.userVideoPhone2{
|
||||||
/* padding-bottom: calc(33.333% - 3px); */
|
width: 150px;
|
||||||
margin-bottom: 3px;
|
height: 150px;
|
||||||
|
background-color: rgb(43, 0, 255);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user