Merge branch 'hcb' of SH-Arbitrate/Arbitrate-FrontendH5 into master
This commit was merged in pull request #8.
This commit is contained in:
@@ -23,10 +23,4 @@ pnpm-debug.log*
|
|||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.sw?
|
||||||
node_modules
|
node_modules
|
||||||
<<<<<<< HEAD
|
|
||||||
node_modules
|
|
||||||
node_modules
|
|
||||||
node_modules
|
|
||||||
=======
|
|
||||||
>>>>>>> ce7123d0f78fb925333f45cb0f43791061dc0431
|
|
||||||
/dist
|
/dist
|
||||||
|
|||||||
Generated
+11344
-26
File diff suppressed because it is too large
Load Diff
@@ -10,11 +10,11 @@
|
|||||||
<img class="videoImg" src="@/assets/video_on.png" alt="" v-if="videoFlag" @click="videoClickOn" />
|
<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" />
|
<img class="videoImg" src="@/assets/video_off.png" alt="" v-else @click="videoClickOff" />
|
||||||
</div>
|
</div>
|
||||||
<div class="sharing">
|
<!-- <div class="sharing">
|
||||||
<img class="sharImg" src="@/assets/screenShare_on.png" alt="" v-if="sharFlag" @click="sharClickOn" />
|
<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" />
|
<img class="sharImg" src="@/assets/screenShare_off.png" alt="" v-else @click="sharClickOff" />
|
||||||
|
|
||||||
</div>
|
</div> -->
|
||||||
<div class="mediationPop">
|
<div class="mediationPop">
|
||||||
<el-button type="warning" @click="mediationPop">调解</el-button>
|
<el-button type="warning" @click="mediationPop">调解</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
import { startVideo, stopVideo, destructionRoom } from '@/api/room.js'
|
import { startVideo, stopVideo, destructionRoom } from '@/api/room.js'
|
||||||
export default {
|
export default {
|
||||||
name: 'FooterPhone',
|
name: 'FooterPhone',
|
||||||
|
props: ["micFlag", "videoFlag", "sharFlag"],
|
||||||
components: {
|
components: {
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -36,7 +37,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
roomId: null,
|
roomId: null,
|
||||||
taskId: null,
|
taskId: null,
|
||||||
roleFlag: false
|
roleFlag: false,
|
||||||
|
caseId:""
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -45,6 +47,35 @@ export default {
|
|||||||
destructionRoom(data).then(res => {
|
destructionRoom(data).then(res => {
|
||||||
console.log(res, "解散房间");
|
console.log(res, "解散房间");
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
/**开启麦克风 */
|
||||||
|
micClickOn() {
|
||||||
|
this.$emit("micClickOn");
|
||||||
|
},
|
||||||
|
/**关闭麦克风 */
|
||||||
|
micClickOff() {
|
||||||
|
this.$emit("micClickOff");
|
||||||
|
},
|
||||||
|
/**开启摄像头 */
|
||||||
|
videoClickOn() {
|
||||||
|
this.$emit("videoClickOn");
|
||||||
|
},
|
||||||
|
/**关闭摄像头 */
|
||||||
|
videoClickOff() {
|
||||||
|
this.$emit("videoClickOff");
|
||||||
|
},
|
||||||
|
/**共享屏幕 */
|
||||||
|
sharClickOn() {
|
||||||
|
this.$emit("sharClickOn");
|
||||||
|
},
|
||||||
|
/**关闭共享屏幕 */
|
||||||
|
sharClickOff() {
|
||||||
|
this.sharFlag = true;
|
||||||
|
this.$emit("sharClickOff");
|
||||||
|
},
|
||||||
|
// 弹出调解内容
|
||||||
|
mediationPop() {
|
||||||
|
this.$emit("mediationPop");
|
||||||
},
|
},
|
||||||
exitRoom() {
|
exitRoom() {
|
||||||
if (this.roleFlag) {
|
if (this.roleFlag) {
|
||||||
@@ -57,7 +88,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async startVideoFn() {
|
async startVideoFn() {
|
||||||
await startVideo({
|
await startVideo({
|
||||||
caseId: 12865,
|
caseId: this.caseId,
|
||||||
roomId: this.roomId
|
roomId: this.roomId
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
this.taskId = res.data.taskId
|
this.taskId = res.data.taskId
|
||||||
@@ -73,6 +104,7 @@ export default {
|
|||||||
async mounted() {
|
async mounted() {
|
||||||
this.roomId = this.$route.query.roomId;
|
this.roomId = this.$route.query.roomId;
|
||||||
let roleFlag = this.$route.query.flag;
|
let roleFlag = this.$route.query.flag;
|
||||||
|
this.caseId = this.$route.query.caseId;
|
||||||
this.roleFlag = roleFlag || false;
|
this.roleFlag = roleFlag || false;
|
||||||
if (roleFlag) {
|
if (roleFlag) {
|
||||||
await this.startVideoFn();
|
await this.startVideoFn();
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ export default {
|
|||||||
this.roomId = this.$route.query.roomId;
|
this.roomId = this.$route.query.roomId;
|
||||||
this.caseId = this.$route.query.caseId;
|
this.caseId = this.$route.query.caseId;
|
||||||
let roleFlag = this.$route.query.flag;
|
let roleFlag = this.$route.query.flag;
|
||||||
this.roleFlag = roleFlag;
|
this.roleFlag = roleFlag || false;
|
||||||
if (roleFlag) {
|
if (roleFlag) {
|
||||||
await this.startVideoFn();
|
await this.startVideoFn();
|
||||||
}
|
}
|
||||||
|
|||||||
+69
-28
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<div class="iconImg" v-if="!modileFlag && rightType" @click="checkList(1)">
|
<div class="iconImg" v-if="!modileFlag && rightType && rightTypeall" @click="checkList(1)">
|
||||||
<i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;"></i>
|
<i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;"></i>
|
||||||
<!-- <i class="el-icon-d-arrow-right"></i> -->
|
<!-- <i class="el-icon-d-arrow-right"></i> -->
|
||||||
</div>
|
</div>
|
||||||
@@ -21,15 +21,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footerList">
|
<div class="footerList">
|
||||||
<roomFooter @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff"
|
<roomFooter @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff" @videoClickOn="videoClickOn"
|
||||||
@videoClickOn="videoClickOn" @videoClickOff="videoClickOff" @sharClickOn="sharClickOn"
|
@videoClickOff="videoClickOff" @sharClickOn="sharClickOn" @sharClickOff="sharClickOff"
|
||||||
@sharClickOff="sharClickOff" @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag"
|
@mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag" :videoFlag="videoFlag" :sharFlag="sharFlag">
|
||||||
:videoFlag="videoFlag" :sharFlag="sharFlag"></roomFooter>
|
</roomFooter>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="roomPhone">
|
<div class="roomPhone">
|
||||||
<div class="videoPage">
|
<div class="videoPage">
|
||||||
<div :class="sharingType">
|
<div :class="sharingType" id="screenShare">
|
||||||
</div>
|
</div>
|
||||||
<div :class="bodyPhoneType">
|
<div :class="bodyPhoneType">
|
||||||
<div :class="userClassPhone" id="localStream">
|
<div :class="userClassPhone" id="localStream">
|
||||||
@@ -38,10 +38,16 @@
|
|||||||
<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>
|
||||||
<i class="el-icon-d-arrow-right" style="font-size: 30px;color: aqua;" @click="checkList(2)" v-if="!rightType"></i>
|
<i class="el-icon-d-arrow-right" style="font-size: 30px;color: aqua;" @click="checkList(2)"
|
||||||
|
v-if="!rightType && rightTypeall"></i>
|
||||||
|
<!-- <i class="el-icon-d-arrow-left" style="font-size: 30px;color: aqua;" @click="checkList(2)"
|
||||||
|
v-if="!rightType && !rightTypeall"></i> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="footerPhone">
|
<div class="footerPhone">
|
||||||
<roomFooterPhone @exitRoom="exitRoom"></roomFooterPhone>
|
<roomFooterPhone @exitRoom="exitRoom" @micClickOn="micClickOn" @micClickOff="micClickOff"
|
||||||
|
@videoClickOn="videoClickOn" @videoClickOff="videoClickOff" @sharClickOn="sharClickOn"
|
||||||
|
@sharClickOff="sharClickOff" @mediationPop="mediationPop" :roomId="roomId" :micFlag="micFlag"
|
||||||
|
:videoFlag="videoFlag" :sharFlag="sharFlag"></roomFooterPhone>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="header">
|
<!-- <div class="header">
|
||||||
@@ -63,7 +69,7 @@
|
|||||||
<el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
|
<el-button class="updataBtn" @click="updataClick" type="primary" :disabled="!updataFlag">确认修改内容</el-button>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
<!-- 调解 -->
|
<!-- 调解 -->
|
||||||
<el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容">
|
<el-drawer :visible.sync="drawerMediatio" direction="ltr" title="调解内容" :size="drawerSize">
|
||||||
<div style="
|
<div style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -87,28 +93,28 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="applicant" v-if="applicantFile.length > 0">
|
<div class="applicant" v-if="applicantFile.length > 0">
|
||||||
<div>申请人证据</div>
|
<div style="font-size: 20px;margin-bottom: 10PX;">申请人证据:</div>
|
||||||
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
|
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in applicantFile" :key="index"
|
||||||
@click="preview(item, 0)">
|
@click="preview(item, 0)">
|
||||||
{{ item.annexName }}
|
{{ item.annexName }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="res" v-if="resFile.length > 0">
|
<div class="res" v-if="resFile.length > 0">
|
||||||
<div>被申请人证据</div>
|
<div style="font-size: 20px;margin-bottom: 10PX;">被申请人证据:</div>
|
||||||
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
|
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in resFile" :key="index"
|
||||||
@click="preview(item, 0)">
|
@click="preview(item, 0)">
|
||||||
{{ item.annexName }}
|
{{ item.annexName }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mediate" v-if="mediateFile.length > 0">
|
<div class="mediate" v-if="mediateFile.length > 0">
|
||||||
<div>调解书</div>
|
<div style="font-size: 20px;margin-bottom: 10PX;">调解书:</div>
|
||||||
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
|
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in mediateFile" :key="index"
|
||||||
@click="preview(item, 1)">
|
@click="preview(item, 1)">
|
||||||
{{ item.annexName }}
|
{{ item.annexName }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="modileFlag && updataFlag">
|
||||||
<el-form label-width="100px">
|
<el-form label-width="100px">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="调解结果:">
|
<el-form-item label="调解结果:">
|
||||||
@@ -121,7 +127,7 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24" v-if="formData.mediaResult == 1">
|
||||||
<el-form-item label="是否用印申请:">
|
<el-form-item label="是否用印申请:">
|
||||||
<el-radio-group v-model="formData.sealFlag">
|
<el-radio-group v-model="formData.sealFlag">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
@@ -131,7 +137,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="modileFlag && updataFlag">
|
||||||
<el-button style="width:100%;" type="primary" @click="determineMeeting" :disabled="!updataFlag">确定</el-button>
|
<el-button style="width:100%;" type="primary" @click="determineMeeting" :disabled="!updataFlag">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
@@ -167,7 +173,9 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
rightType:true,
|
drawerSize: "30%",
|
||||||
|
rightType: false,
|
||||||
|
rightTypeall: false,
|
||||||
sharingType: "sharing",
|
sharingType: "sharing",
|
||||||
bodyPhoneType: "bodyPhone",
|
bodyPhoneType: "bodyPhone",
|
||||||
videoList: "videoList",
|
videoList: "videoList",
|
||||||
@@ -175,7 +183,7 @@ export default {
|
|||||||
resFlag: null,
|
resFlag: null,
|
||||||
appFlag: null,
|
appFlag: null,
|
||||||
userClassPhone: "userVideoPhone",
|
userClassPhone: "userVideoPhone",
|
||||||
userList: [1, 2],
|
userList: [],
|
||||||
userHeight: "100%",
|
userHeight: "100%",
|
||||||
userPhoneHeight: "92%",
|
userPhoneHeight: "92%",
|
||||||
userSign: "",
|
userSign: "",
|
||||||
@@ -253,11 +261,12 @@ export default {
|
|||||||
this.sharingType = "sharing1";
|
this.sharingType = "sharing1";
|
||||||
this.bodyPhoneType = "bodyPhone1";
|
this.bodyPhoneType = "bodyPhone1";
|
||||||
this.rightType = false;
|
this.rightType = false;
|
||||||
|
// console.log(this.rightType,this.rightTypeall,"Pppppppppp");
|
||||||
} else if (data == 2) {
|
} else if (data == 2) {
|
||||||
console.log("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUu");
|
|
||||||
this.sharingType = "sharing1";
|
this.sharingType = "sharing1";
|
||||||
this.bodyPhoneType = "bodyPhone2";
|
this.bodyPhoneType = "bodyPhone2";
|
||||||
this.rightType = true;
|
this.rightType = true;
|
||||||
|
console.log(this.rightType, this.rightTypeall, "Pppppppppp");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**点击开启麦克风图标,关闭麦克风 */
|
/**点击开启麦克风图标,关闭麦克风 */
|
||||||
@@ -382,8 +391,8 @@ export default {
|
|||||||
this.selectByIdFn(this.caseId);
|
this.selectByIdFn(this.caseId);
|
||||||
},
|
},
|
||||||
preview(item, type) {
|
preview(item, type) {
|
||||||
|
if (this.modileFlag) {
|
||||||
if (item.onlyOfficeFileId) {
|
if (item.onlyOfficeFileId) {
|
||||||
debugger
|
|
||||||
// this.$router.push({
|
// this.$router.push({
|
||||||
// path: "/onlyoffice",
|
// path: "/onlyoffice",
|
||||||
// query: { id: item.onlyOfficeFileId, flag: flag },
|
// query: { id: item.onlyOfficeFileId, flag: flag },
|
||||||
@@ -402,8 +411,12 @@ export default {
|
|||||||
// "_black"
|
// "_black"
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
window.open(window.location.origin + '/tiaojie' + item.annexPath, "_black");
|
window.open(window.location.origin + '/tjformal' + item.annexPath, "_black");
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
window.open(window.location.origin + '/tjformal' + item.annexPath, "_black");
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// 点击提交修改后的内容
|
// 点击提交修改后的内容
|
||||||
updataClick() {
|
updataClick() {
|
||||||
@@ -455,6 +468,7 @@ export default {
|
|||||||
/** 获取证据列表 */
|
/** 获取证据列表 */
|
||||||
selectByIdFn(id) {
|
selectByIdFn(id) {
|
||||||
selectById(id).then((res) => {
|
selectById(id).then((res) => {
|
||||||
|
this.formData.mediaResult = res.data.mediaResult || 1;
|
||||||
this.caseFlowId = res.data.caseFlowId;
|
this.caseFlowId = res.data.caseFlowId;
|
||||||
this.applicantFile = [];
|
this.applicantFile = [];
|
||||||
this.resFile = [];
|
this.resFile = [];
|
||||||
@@ -511,6 +525,11 @@ export default {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
this.videoList = "videoList1";
|
this.videoList = "videoList1";
|
||||||
this.videoClass = "videoItem2";
|
this.videoClass = "videoItem2";
|
||||||
|
this.userClassPhone = "userVideoPhone2"
|
||||||
|
this.sharingType = "sharing1";
|
||||||
|
this.bodyPhoneType = "bodyPhone1";
|
||||||
|
this.rightType = false;
|
||||||
|
this.rightTypeall = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.screenShareFlag = true;
|
this.screenShareFlag = true;
|
||||||
@@ -578,14 +597,20 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if (streamType == "sub") {
|
} else if (streamType == "sub") {
|
||||||
this.sharFlag = true;
|
this.sharFlag = true;
|
||||||
|
this.rightTypeall = false;
|
||||||
this.videoList = "videoList";
|
this.videoList = "videoList";
|
||||||
this.screenShareFlag = false;
|
this.screenShareFlag = false;
|
||||||
if (this.userList.length > 1) {
|
this.bodyPhoneType = 'bodyPhone';
|
||||||
|
this.sharingType = "sharing"
|
||||||
|
if (this.userList.length == 1) {
|
||||||
|
this.videoClass = "videoItem3";
|
||||||
|
this.userClassPhone = "userVideoPhone1";
|
||||||
|
} 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";
|
||||||
} else if (this.userList.length == 1) {
|
this.userClassPhone = "userVideoPhone";
|
||||||
this.videoClass = "videoItem3";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -655,14 +680,26 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
userList(value) {
|
userList(value) {
|
||||||
if (value.length == 1) {
|
if (this.userList.length == 1) {
|
||||||
this.videoClass = "videoItem3";
|
this.videoClass = "videoItem3";
|
||||||
} else if (value.length > 1) {
|
this.userClassPhone = "userVideoPhone1";
|
||||||
|
} else if (this.userList.length > 1) {
|
||||||
this.videoClass = "videoItem1";
|
this.videoClass = "videoItem1";
|
||||||
} else if (value.length < 1) {
|
this.userClassPhone = "userVideoPhone2";
|
||||||
|
} else if (this.userList.length < 1) {
|
||||||
this.videoClass = "videoItem";
|
this.videoClass = "videoItem";
|
||||||
|
this.userClassPhone = "userVideoPhone";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
drawerMediatio(val) {
|
||||||
|
if (val) {
|
||||||
|
if (this.modileFlag) {
|
||||||
|
this.drawerSize = "30%"
|
||||||
|
} else {
|
||||||
|
this.drawerSize = "75%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
if (this.userList.length == 1) {
|
if (this.userList.length == 1) {
|
||||||
@@ -939,8 +976,10 @@ export default {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
background: #353643ba;
|
||||||
}
|
}
|
||||||
.bodyPhone2{
|
|
||||||
|
.bodyPhone2 {
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -952,6 +991,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 移动端样式 */
|
/* 移动端样式 */
|
||||||
|
|
||||||
.bodyVideo {
|
.bodyVideo {
|
||||||
@@ -1028,7 +1068,8 @@ export default {
|
|||||||
height: 0;
|
height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon-d-arrow-right {
|
.el-icon-d-arrow-right,
|
||||||
|
.el-icon-d-arrow-left {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 45%;
|
top: 45%;
|
||||||
|
|||||||
Reference in New Issue
Block a user