视频调解页面接口开发

This commit is contained in:
gyj
2024-04-23 17:31:31 +08:00
parent c678ede9f5
commit 38c750d711
4 changed files with 199 additions and 19 deletions
+5 -1
View File
@@ -1,6 +1,6 @@
import axios from "@/utils/request"; import axios from "@/utils/request";
// let baseUrlZc = 'https://api.xayunmei.com/zhongcaiapi'; // let baseUrlZc = 'https://api.xayunmei.com/zhongcaiapi';
// let baseUrl = 'https://api.xayunmei.com/tiaojieapitest'; let baseUrl = 'https://api.xayunmei.com/tiaojieapitest';
// let baseUrl = 'http://172.16.1.4:6001'; // let baseUrl = 'http://172.16.1.4:6001';
// 获取usersig // 获取usersig
export function getUsersig(userId) { export function getUsersig(userId) {
@@ -46,3 +46,7 @@ export function msCaseSign(data) {
export function fileList(caseAppliId,annexTypeList) { export function fileList(caseAppliId,annexTypeList) {
return axios.get(`tiaojie/common/fileList?caseAppliId=${caseAppliId}&annexTypeList=${annexTypeList}`); return axios.get(`tiaojie/common/fileList?caseAppliId=${caseAppliId}&annexTypeList=${annexTypeList}`);
} }
// 确定会议结果
export function confirmMeetingResult(data) {
return axios.post(`tiaojie/caseApplication/confirmMeetingResult`, data);
}
+11 -1
View File
@@ -56,6 +56,10 @@
v-else v-else
@click="sharClickOff" @click="sharClickOff"
/> />
</div>
<div class="mediationPop">
<el-button type="warning" @click="mediationPop">调解</el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -107,6 +111,10 @@ export default {
this.sharFlag = true; this.sharFlag = true;
this.$emit("sharClickOff"); this.$emit("sharClickOff");
}, },
// 弹出调解内容
mediationPop(){
this.$emit("mediationPop");
},
exitRoom() { exitRoom() {
if (this.roleFlag) { if (this.roleFlag) {
this.stopVideoFn(); this.stopVideoFn();
@@ -194,7 +202,9 @@ export default {
height: 60px; height: 60px;
margin-left: 20px; margin-left: 20px;
} }
.mediationPop{
margin-left: 20px;
}
.micImg, .micImg,
.videoImg, .videoImg,
.sharImg { .sharImg {
+173 -12
View File
@@ -36,6 +36,7 @@
@videoClickOff="videoClickOff" @videoClickOff="videoClickOff"
@sharClickOn="sharClickOn" @sharClickOn="sharClickOn"
@sharClickOff="sharClickOff" @sharClickOff="sharClickOff"
@mediationPop="mediationPop"
:roomId="roomId" :roomId="roomId"
:micFlag="micFlag" :micFlag="micFlag"
:videoFlag="videoFlag" :videoFlag="videoFlag"
@@ -63,7 +64,7 @@
</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="margin-left: 20px; margin-bottom: 10px">
<div <div
style=" style="
width: 100%; width: 100%;
@@ -87,7 +88,6 @@
>申请人上传证据</el-button >申请人上传证据</el-button
> >
</el-upload> </el-upload>
<!-- https://api.xayunmei.com/tiaojieapitest/video/upload -->
<el-upload <el-upload
v-if="resFlag" v-if="resFlag"
ref="upload1" ref="upload1"
@@ -155,7 +155,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div> -->
<quill-editor <quill-editor
ref="myQuillEditor" ref="myQuillEditor"
v-model="contentValue" v-model="contentValue"
@@ -172,11 +172,131 @@
>确认修改内容</el-button >确认修改内容</el-button
> >
</el-drawer> </el-drawer>
<!-- 调解 -->
<el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容">
<div
style="
width: 100%;
display: flex;
justify-content: space-around;
margin-bottom: 10px;
margin-top: 20px;
"
>
<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
ref="upload1"
:limit="1"
:action="UploadUrl()"
:headers="headers1"
:data="filedata1"
:on-change="beforeUpload1"
:on-success="handlSuccess1"
:file-list="fileList1"
v-if="resFlag"
>
<el-button slot="trigger" size="small" type="primary"
>被申请人上传证据</el-button
>
</el-upload>
<el-upload
ref="upload3"
:limit="1"
:action="UploadUrl()"
:headers="headers3"
:data="filedata3"
:on-change="beforeUpload3"
:on-success="handlSuccess3"
:file-list="fileList3"
accept=".doc,.docx"
v-if="updataFlag"
>
<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>
<el-form label-width="100px">
<el-col :span="24">
<el-form-item label="调解结果:">
<el-radio-group v-model="formData.mediaResult">
<el-radio :label="1">达成调解</el-radio>
<el-radio :label="2">未达成调解</el-radio>
<el-radio :label="3">未达成调解但不在争议</el-radio>
<el-radio :label="4">未达成调解但同意引入仲裁</el-radio>
<el-radio :label="5">达成和解</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否用印申请:">
<el-radio-group v-model="formData.sealFlag">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-form>
</div>
<div>
<el-button style="width:100%;" type="primary" @click="determineMeeting">确定</el-button>
</div>
</el-drawer>
</div> </div>
</template> </template>
<script> <script>
import { getUsersig, reserveConferenceList } from "@/api/home"; import { getUsersig, reserveConferenceList,confirmMeetingResult } from "@/api/home";
import { import {
secretaryRoleByUserId, secretaryRoleByUserId,
htmlToPDF, htmlToPDF,
@@ -217,6 +337,7 @@ export default {
userId: null, userId: null,
id: null, id: null,
showFlag: false, showFlag: false,
drawerMediatio: false,
modileFlag: false, modileFlag: false,
localStreamAsr: null, localStreamAsr: null,
contentValue: "", contentValue: "",
@@ -231,6 +352,11 @@ export default {
applicantFile: [], applicantFile: [],
resFile: [], resFile: [],
mediateFile: [], mediateFile: [],
formData:{
mediaResult:1,
sealFlag:1
},
caseFlowId:null,
headers: { headers: {
// Authorization: "Bearer " + token, // Authorization: "Bearer " + token,
Authorization: "", Authorization: "",
@@ -317,8 +443,8 @@ export default {
// this.videoClass = "videoItem2"; // this.videoClass = "videoItem2";
// this.screenShareFlag = true; // this.screenShareFlag = true;
if (this.screenShareFlag) { if (this.screenShareFlag) {
alert("其他用户已经分享") alert("其他用户已经分享");
return return;
} }
await trtc.startScreenShare().then(() => { await trtc.startScreenShare().then(() => {
this.sharFlag = false; this.sharFlag = false;
@@ -404,7 +530,7 @@ export default {
} else { } else {
flag = 0; flag = 0;
} }
let token = sessionStorage.getItem('token') let token = sessionStorage.getItem("token");
window.open( window.open(
`http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`, `http://121.40.189.20:8002/onlyoffice?id=${item.onlyOfficeFileId}&flag=${flag}&token=${token}`,
"_black" "_black"
@@ -454,15 +580,16 @@ export default {
// 点击显示修改的文本框 // 点击显示修改的文本框
txtContent() { txtContent() {
this.textVisible = true; this.textVisible = true;
setInterval(() => { // setInterval(() => {
this.selectByIdFn(this.caseId); // this.selectByIdFn(this.caseId);
}, 8000); // }, 8000);
this.selectRoleMenuByCaseIdFn(this.caseId); this.selectRoleMenuByCaseIdFn(this.caseId);
this.getMenuPermsByUserFn(); this.getMenuPermsByUserFn();
}, },
/** 获取证据列表 */ /** 获取证据列表 */
selectByIdFn(id) { selectByIdFn(id) {
selectById(id).then((res) => { selectById(id).then((res) => {
this.caseFlowId = res.data.caseFlowId;
this.applicantFile = []; this.applicantFile = [];
this.resFile = []; this.resFile = [];
this.mediateFile = []; this.mediateFile = [];
@@ -511,11 +638,13 @@ export default {
}); });
} else if (streamType == "sub") { } else if (streamType == "sub") {
setTimeout(() => { setTimeout(() => {
trtc.startRemoteVideo({ userId, streamType, view: "screenShare" }).then(()=>{ trtc
.startRemoteVideo({ userId, streamType, view: "screenShare" })
.then(() => {
this.videoList = "videoList1"; this.videoList = "videoList1";
this.videoClass = "videoItem2"; this.videoClass = "videoItem2";
}); });
}) });
this.screenShareFlag = true; this.screenShareFlag = true;
} }
setTimeout(() => { setTimeout(() => {
@@ -619,6 +748,38 @@ export default {
} }
}); });
}, },
// 调解
mediationPop() {
this.drawerMediatio = true;
this.selectByIdFn(this.caseId);
setInterval(() => {
this.selectByIdFn(this.caseId);
}, 8000);
console.log("iiiiiiiiiiiiiiiiiiiiiiiiiiii");
},
// 确定会议结果
determineMeeting(){
let valueMeeting = {
id:this.caseId,
mediaResult: this.formData.mediaResult,
sealFlag:this.formData.sealFlag,
caseFlowId:this.caseFlowId
}
confirmMeetingResult(valueMeeting).then(res=>{
if (res.code == 200) {
this.$message({
message: "确定成功",
type: "success",
});
this.drawerMediatio = false
} else {
this.$message({
message: res.msg,
type: "error",
});
}
})
}
}, },
computed: { computed: {
editor() { editor() {
+5
View File
@@ -32,6 +32,7 @@
@videoClickOff="videoClickOff" @videoClickOff="videoClickOff"
@sharClickOn="sharClickOn" @sharClickOn="sharClickOn"
@sharClickOff="sharClickOff" @sharClickOff="sharClickOff"
@mediationPop="mediationPop"
:roomId="roomId" :roomId="roomId"
:micFlag="micFlag" :micFlag="micFlag"
:videoFlag="videoFlag" :videoFlag="videoFlag"
@@ -472,6 +473,10 @@ export default {
name: "Home", name: "Home",
}); });
}, },
// 调解
async mediationPop(){
console.log()
},
// 获取拉流信息 // 获取拉流信息
getPushVideo() { getPushVideo() {
trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, (event) => { trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, (event) => {