|
|
@@ -1,88 +1,112 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-table v-loading="loading" :data="dcList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="通道ID" align="center" prop="channelId" />
|
|
|
- <el-table-column label="通道名称" align="center" prop="channelName" />
|
|
|
-<!-- <el-table-column label="仓库名称" align="center" prop="houseName" />-->
|
|
|
-<!-- <el-table-column label="仓库编码" align="center" prop="houseCode" />-->
|
|
|
-<!-- <el-table-column label="主通道" align="center" key="updateBy">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <el-switch-->
|
|
|
-<!-- v-model="scope.row.updateBy"-->
|
|
|
-<!-- active-value="0"-->
|
|
|
-<!-- inactive-value="1"-->
|
|
|
-<!-- @change="handleStatusChange(scope.row)"-->
|
|
|
-<!-- ></el-switch>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
-<!-- <el-table-column label="设备名称" align="center" prop="deviceName" />-->
|
|
|
-<!-- <el-table-column label="设备编号" align="center" prop="deviceCode" />-->
|
|
|
- <el-table-column label="厂商" align="center" prop="manufacturer" />
|
|
|
- <el-table-column label="型号" align="center" prop="model" />
|
|
|
- <el-table-column label="状态" align="center" prop="status" />
|
|
|
-<!-- <el-table-column label="创建人" align="center" prop="createBy" />-->
|
|
|
-<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
-<!-- <el-table-column label="更新人" align="center" prop="updateBy" />-->
|
|
|
-<!-- <el-table-column label="更新时间" align="center" prop="updateTime" width="180">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
-<!-- <el-table-column label="备注" align="center" prop="remark" />-->
|
|
|
+ <el-table-column type="selection" width="55" align="center"/>
|
|
|
+ <el-table-column label="通道ID" align="center" prop="channelId"/>
|
|
|
+ <el-table-column label="通道名称" align="center" prop="channelName"/>
|
|
|
+ <!-- <el-table-column label="仓库名称" align="center" prop="houseName" />-->
|
|
|
+ <!-- <el-table-column label="仓库编码" align="center" prop="houseCode" />-->
|
|
|
+ <!-- <el-table-column label="主通道" align="center" key="updateBy">-->
|
|
|
+ <!-- <template #default="scope">-->
|
|
|
+ <!-- <el-switch-->
|
|
|
+ <!-- v-model="scope.row.updateBy"-->
|
|
|
+ <!-- active-value="0"-->
|
|
|
+ <!-- inactive-value="1"-->
|
|
|
+ <!-- @change="handleStatusChange(scope.row)"-->
|
|
|
+ <!-- ></el-switch>-->
|
|
|
+ <!-- </template>-->
|
|
|
+ <!-- </el-table-column>-->
|
|
|
+ <!-- <el-table-column label="设备名称" align="center" prop="deviceName" />-->
|
|
|
+ <!-- <el-table-column label="设备编号" align="center" prop="deviceCode" />-->
|
|
|
+ <el-table-column label="厂商" align="center" prop="manufacturer"/>
|
|
|
+ <el-table-column label="型号" align="center" prop="model"/>
|
|
|
+ <el-table-column label="状态" align="center" prop="status"/>
|
|
|
+ <!-- <el-table-column label="创建人" align="center" prop="createBy" />-->
|
|
|
+ <!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">-->
|
|
|
+ <!-- <template #default="scope">-->
|
|
|
+ <!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
|
|
|
+ <!-- </template>-->
|
|
|
+ <!-- </el-table-column>-->
|
|
|
+ <!-- <el-table-column label="更新人" align="center" prop="updateBy" />-->
|
|
|
+ <!-- <el-table-column label="更新时间" align="center" prop="updateTime" width="180">-->
|
|
|
+ <!-- <template #default="scope">-->
|
|
|
+ <!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>-->
|
|
|
+ <!-- </template>-->
|
|
|
+ <!-- </el-table-column>-->
|
|
|
+ <!-- <el-table-column label="备注" align="center" prop="remark" />-->
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template #default="scope">
|
|
|
- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">播放视频</el-button>
|
|
|
+ <el-button link type="primary" icon="VideoPlay" @click="handleUpdate(scope.row)">播放视频</el-button>
|
|
|
+ <el-button link type="primary" icon="VideoCameraFilled" @click="handleReplay(scope.row)">查看录像</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
<pagination
|
|
|
- v-show="total>0"
|
|
|
- :total="total"
|
|
|
- v-model:page="queryParams.pageNum"
|
|
|
- v-model:limit="queryParams.pageSize"
|
|
|
- @pagination="getList"
|
|
|
+ v-show="total>0"
|
|
|
+ :total="total"
|
|
|
+ v-model:page="queryParams.pageNum"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
/>
|
|
|
-
|
|
|
- <div class="contrlset" v-show="open">
|
|
|
- <div class="video-play">
|
|
|
- <Player ref="playerVideo"/>
|
|
|
+ <div class="contrlset" v-show="open">
|
|
|
+ <div class="video-play">
|
|
|
+ <Player ref="playerVideo"/>
|
|
|
+ </div>
|
|
|
+ <div class="cloudset">
|
|
|
+ <div><span class="close" @click.stop="cancel()" style="top:10px"></span></div>
|
|
|
+ <div class="camername">{{ playerObj.deviceName }}摄像头</div>
|
|
|
+ <div class="cc">
|
|
|
+ <div class="cc_bg"></div>
|
|
|
+ <div class="cc_01" @click="ccMove(1,5)"></div>
|
|
|
+ <div class="cc_02" @click="ccMove(2,5)"></div>
|
|
|
+ <div class="cc_03" @click="ccMove(3,5)"></div>
|
|
|
+ <div class="cc_04" @click="ccMove(4,5)"></div>
|
|
|
</div>
|
|
|
- <div class="cloudset">
|
|
|
- <div><span class="close" @click.stop="cancel()" style="top:10px"></span></div>
|
|
|
- <div class="camername">{{ playerObj.deviceName }}摄像头</div>
|
|
|
- <div class="cc">
|
|
|
- <div class="cc_bg"></div>
|
|
|
- <div class="cc_01" @click="ccMove(1,5)"></div>
|
|
|
- <div class="cc_02" @click="ccMove(2,5)"></div>
|
|
|
- <div class="cc_03" @click="ccMove(3,5)"></div>
|
|
|
- <div class="cc_04" @click="ccMove(4,5)"></div>
|
|
|
- </div>
|
|
|
- <div class="cc_params"><span class="span1">变倍</span><img src="/images/cc_sub.png" @click="ccParamsSet(1,-1)"><span class="span2">|</span><span class="span3"><span class="span31" :style="{'width':cc_params1+'%'}"></span><span class="span32" :style="{'left':(cc_params1-8)+'px'}"></span></span><span class="span4">|</span><img src="/images/cc_add.png" @click="ccParamsSet(1,1)"></div>
|
|
|
- <div class="cc_params"><span class="span1">变焦</span><img src="/images/cc_sub.png" @click="ccParamsSet(2,-1)"><span class="span2">|</span><span class="span3"><span class="span31" :style="{'width':cc_params2+'%'}"></span><span class="span32" :style="{'left':(cc_params2-8)+'px'}"></span></span><span class="span4">|</span><img src="/images/cc_add.png" @click="ccParamsSet(2,1)"></div>
|
|
|
- <div class="cc_params"><span class="span1">光圈</span><img src="/images/cc_sub.png" @click="ccParamsSet(3,-1)"><span class="span2">|</span><span class="span3"><span class="span31" :style="{'width':cc_params3+'%'}"></span><span class="span32" :style="{'left':(cc_params3-8)+'px'}"></span></span><span class="span4">|</span><img src="/images/cc_add.png" @click="ccParamsSet(3,1)"></div>
|
|
|
- <div class="audio">
|
|
|
- <img v-if="cc_params4>0" src="/images/cc_a.png" @click="cc_params4=0">
|
|
|
- <img v-else src="/images/cc_b.png" @click="cc_params4=50">
|
|
|
- </div>
|
|
|
- <div class="cc_params"><span class="span1">音量</span><img src="/images/cc_sub.png" @click="ccParamsSet(4,-10)"><span class="span2">|</span><span class="span3"><span class="span31" :style="{'width':cc_params4+'%'}"></span><span class="span32" :style="{'left':(cc_params4-8)+'px'}"></span></span><span class="span4">|</span><img src="/images/cc_add.png" @click="ccParamsSet(4,10)"></div>
|
|
|
- </div>
|
|
|
+ <div class="cc_params"><span class="span1">变倍</span><img src="/images/cc_sub.png"
|
|
|
+ @click="ccParamsSet(1,-1)"><span
|
|
|
+ class="span2">|</span><span class="span3"><span class="span31"
|
|
|
+ :style="{'width':cc_params1+'%'}"></span><span
|
|
|
+ class="span32" :style="{'left':(cc_params1-8)+'px'}"></span></span><span class="span4">|</span><img
|
|
|
+ src="/images/cc_add.png" @click="ccParamsSet(1,1)"></div>
|
|
|
+ <div class="cc_params"><span class="span1">变焦</span><img src="/images/cc_sub.png"
|
|
|
+ @click="ccParamsSet(2,-1)"><span
|
|
|
+ class="span2">|</span><span class="span3"><span class="span31"
|
|
|
+ :style="{'width':cc_params2+'%'}"></span><span
|
|
|
+ class="span32" :style="{'left':(cc_params2-8)+'px'}"></span></span><span class="span4">|</span><img
|
|
|
+ src="/images/cc_add.png" @click="ccParamsSet(2,1)"></div>
|
|
|
+ <div class="cc_params"><span class="span1">光圈</span><img src="/images/cc_sub.png"
|
|
|
+ @click="ccParamsSet(3,-1)"><span
|
|
|
+ class="span2">|</span><span class="span3"><span class="span31"
|
|
|
+ :style="{'width':cc_params3+'%'}"></span><span
|
|
|
+ class="span32" :style="{'left':(cc_params3-8)+'px'}"></span></span><span class="span4">|</span><img
|
|
|
+ src="/images/cc_add.png" @click="ccParamsSet(3,1)"></div>
|
|
|
+ <div class="audio">
|
|
|
+ <img v-if="cc_params4>0" src="/images/cc_a.png" @click="cc_params4=0">
|
|
|
+ <img v-else src="/images/cc_b.png" @click="cc_params4=50">
|
|
|
+ </div>
|
|
|
+ <div class="cc_params"><span class="span1">音量</span><img src="/images/cc_sub.png" @click="ccParamsSet(4,-10)"><span
|
|
|
+ class="span2">|</span><span class="span3"><span class="span31"
|
|
|
+ :style="{'width':cc_params4+'%'}"></span><span
|
|
|
+ class="span32" :style="{'left':(cc_params4-8)+'px'}"></span></span><span class="span4">|</span><img
|
|
|
+ src="/images/cc_add.png" @click="ccParamsSet(4,10)"></div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-dialog :title="dialogTitle" v-model="houseConfigOpen" width="100%" append-to-body>
|
|
|
+ <iframe :src="dialogUrl" width="100%" height="480" frameborder="0"></iframe>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup name="Dc">
|
|
|
-import { listDc, getDc, delDc, addDc, updateDc } from "@/api/biz/dc";
|
|
|
-import { useRoute } from "vue-router";
|
|
|
+import {addDc, delDc, listDc, updateDc} from "@/api/biz/dc";
|
|
|
+import {useRoute} from "vue-router";
|
|
|
import request from '@/utils/request';
|
|
|
import Player from '../../components/player.vue'
|
|
|
+import axios from "axios";
|
|
|
|
|
|
-const { proxy } = getCurrentInstance();
|
|
|
+const {proxy} = getCurrentInstance();
|
|
|
|
|
|
const playerVideo = ref(null);
|
|
|
const playerObj = ref({});
|
|
|
@@ -96,11 +120,10 @@ const single = ref(true);
|
|
|
const multiple = ref(true);
|
|
|
const total = ref(0);
|
|
|
const title = ref("");
|
|
|
-const cc_params1=ref(0);
|
|
|
-const cc_params2=ref(0);
|
|
|
-const cc_params3=ref(0);
|
|
|
-const cc_params4=ref(50);
|
|
|
-
|
|
|
+const cc_params1 = ref(0);
|
|
|
+const cc_params2 = ref(0);
|
|
|
+const cc_params3 = ref(0);
|
|
|
+const cc_params4 = ref(50);
|
|
|
const data = reactive({
|
|
|
form: {},
|
|
|
queryParams: {
|
|
|
@@ -120,11 +143,13 @@ const data = reactive({
|
|
|
updateTime: null,
|
|
|
remark: null
|
|
|
},
|
|
|
- rules: {
|
|
|
- }
|
|
|
+ rules: {},
|
|
|
+ dialogUrl: "",
|
|
|
+ dialogTitle: "",
|
|
|
+ houseConfigOpen: false,
|
|
|
});
|
|
|
+const {queryParams, form, rules, dialogUrl, dialogTitle, houseConfigOpen} = toRefs(data);
|
|
|
|
|
|
-const { queryParams, form, rules } = toRefs(data);
|
|
|
/** 用户状态修改 */
|
|
|
function handleStatusChange(row) {
|
|
|
let text = row.status === "0" ? "启用" : "停用";
|
|
|
@@ -136,6 +161,7 @@ function handleStatusChange(row) {
|
|
|
row.status = row.status === "0" ? "1" : "0";
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
/** 查询视频通道列表 */
|
|
|
function getList() {
|
|
|
if (route.query.deviceCode) {
|
|
|
@@ -161,58 +187,59 @@ function cancel() {
|
|
|
//1:向上 ptzcmd=A50F0108007D003A 2:向下 ptzcmd=A50F0104007D0036 3:向右 ptzcmd=A50F01017D000033 4:向左 ptzcmd=A50F01027D000034
|
|
|
//Bearer monibuca
|
|
|
//停止指令:ptzcmd=A50F0100000000B5
|
|
|
-const ccMove=(dir,v)=>{
|
|
|
+const ccMove = (dir, v) => {
|
|
|
let cmd = "";
|
|
|
//http://47.108.159.150:8080/gb28181/api/ptz/34020000001180000003/34020000001310000051?ptzcmd=A50F0108007D003A
|
|
|
- if(dir==1){
|
|
|
+ if (dir == 1) {
|
|
|
cmd = "A50F0108007D003A"
|
|
|
- }else if(dir==2){
|
|
|
+ } else if (dir == 2) {
|
|
|
cmd = "A50F0104007D0036"
|
|
|
- }else if(dir==3){
|
|
|
+ } else if (dir == 3) {
|
|
|
cmd = "A50F01017D000033"
|
|
|
- }else if(dir==4){
|
|
|
+ } else if (dir == 4) {
|
|
|
cmd = "A50F01027D000034"
|
|
|
}
|
|
|
request({
|
|
|
- url: 'http://47.108.159.150:8080/gb28181/api/ptz/34020000001180000003/34020000001310000051?ptzcmd='+cmd,
|
|
|
- headers: {
|
|
|
- authorization: 'Bearer monibuca',
|
|
|
- },
|
|
|
- method: 'get',
|
|
|
- data: null
|
|
|
- }).then(res=>{
|
|
|
- if(res.code==0){
|
|
|
- cmd='A50F0100000000B5';
|
|
|
- request({
|
|
|
- url: 'http://47.108.159.150:8080/gb28181/api/ptz/34020000001180000003/34020000001310000051?ptzcmd='+cmd,
|
|
|
- headers: {
|
|
|
- authorization: 'Bearer monibuca',
|
|
|
- },
|
|
|
- method: 'get',
|
|
|
- data: null
|
|
|
- }).then(res=>{});
|
|
|
- }
|
|
|
+ url: 'http://47.108.159.150:8080/gb28181/api/ptz/34020000001180000003/34020000001310000051?ptzcmd=' + cmd,
|
|
|
+ headers: {
|
|
|
+ authorization: 'Bearer monibuca',
|
|
|
+ },
|
|
|
+ method: 'get',
|
|
|
+ data: null
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ cmd = 'A50F0100000000B5';
|
|
|
+ request({
|
|
|
+ url: 'http://47.108.159.150:8080/gb28181/api/ptz/34020000001180000003/34020000001310000051?ptzcmd=' + cmd,
|
|
|
+ headers: {
|
|
|
+ authorization: 'Bearer monibuca',
|
|
|
+ },
|
|
|
+ method: 'get',
|
|
|
+ data: null
|
|
|
+ }).then(res => {
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-const ccParamsSet=(type,value)=>{
|
|
|
- if(type==1){
|
|
|
+const ccParamsSet = (type, value) => {
|
|
|
+ if (type == 1) {
|
|
|
cc_params1.value += value;
|
|
|
- if(cc_params1.value>100) cc_params1.value=100
|
|
|
- if(cc_params1.value<0) cc_params1.value=0
|
|
|
- } else if(type==2) {
|
|
|
+ if (cc_params1.value > 100) cc_params1.value = 100
|
|
|
+ if (cc_params1.value < 0) cc_params1.value = 0
|
|
|
+ } else if (type == 2) {
|
|
|
cc_params2.value += value;
|
|
|
- if(cc_params2.value>100) cc_params2.value=100
|
|
|
- if(cc_params2.value<0) cc_params2.value=0
|
|
|
- } else if(type==3) {
|
|
|
+ if (cc_params2.value > 100) cc_params2.value = 100
|
|
|
+ if (cc_params2.value < 0) cc_params2.value = 0
|
|
|
+ } else if (type == 3) {
|
|
|
cc_params3.value += value;
|
|
|
- if(cc_params3.value>100) cc_params3.value=100
|
|
|
- if(cc_params3.value<0) cc_params3.value=0
|
|
|
- } else if(type==4) {
|
|
|
+ if (cc_params3.value > 100) cc_params3.value = 100
|
|
|
+ if (cc_params3.value < 0) cc_params3.value = 0
|
|
|
+ } else if (type == 4) {
|
|
|
//音量
|
|
|
cc_params4.value += value;
|
|
|
- if(cc_params4.value>100) cc_params4.value=100
|
|
|
- if(cc_params4.value<0) cc_params4.value=0
|
|
|
+ if (cc_params4.value > 100) cc_params4.value = 100
|
|
|
+ if (cc_params4.value < 0) cc_params4.value = 0
|
|
|
playerVideo.value.volumeChange(cc_params4.value);
|
|
|
}
|
|
|
}
|
|
|
@@ -266,19 +293,27 @@ function handleAdd() {
|
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
function handleUpdate(row) {
|
|
|
+
|
|
|
playerObj.value = row;
|
|
|
open.value=true
|
|
|
const url = `http://47.108.159.150:8080/flv/${row.deviceCode}/${row.channelId}`;
|
|
|
playerVideo.value.play(url);
|
|
|
- // reset();
|
|
|
- // const _channelId = row.channelId || ids.value
|
|
|
- // getDc(_channelId).then(response => {
|
|
|
- // form.value = response.data;
|
|
|
- // open.value = true;
|
|
|
- // title.value = "修改视频通道";
|
|
|
- // });
|
|
|
+ reset();
|
|
|
+ const _channelId = row.channelId || ids.value
|
|
|
+ getDc(_channelId).then(response => {
|
|
|
+ form.value = response.data;
|
|
|
+ open.value = true;
|
|
|
+ title.value = "修改视频通道";
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
+function handleReplay(row) {
|
|
|
+ dialogUrl.value = "/device/channel/record?device=" + row.deviceCode + "&channel=" + row.channelId;
|
|
|
+ dialogTitle.value = row.channelName+"通道录像";
|
|
|
+ houseConfigOpen.value = true;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/** 提交按钮 */
|
|
|
function submitForm() {
|
|
|
proxy.$refs["dcRef"].validate(valid => {
|
|
|
@@ -303,12 +338,13 @@ function submitForm() {
|
|
|
/** 删除按钮操作 */
|
|
|
function handleDelete(row) {
|
|
|
const _channelIds = row.channelId || ids.value;
|
|
|
- proxy.$modal.confirm('是否确认删除视频通道编号为"' + _channelIds + '"的数据项?').then(function() {
|
|
|
+ proxy.$modal.confirm('是否确认删除视频通道编号为"' + _channelIds + '"的数据项?').then(function () {
|
|
|
return delDc(_channelIds);
|
|
|
}).then(() => {
|
|
|
getList();
|
|
|
proxy.$modal.msgSuccess("删除成功");
|
|
|
- }).catch(() => {});
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/** 导出按钮操作 */
|
|
|
@@ -321,186 +357,208 @@ function handleExport() {
|
|
|
getList();
|
|
|
</script>
|
|
|
<style>
|
|
|
-.contrlset{
|
|
|
- position: absolute;
|
|
|
- width: 1088px !important;
|
|
|
- height: 560px !important;
|
|
|
- z-index: 1000;
|
|
|
- left: 50%;
|
|
|
- top: 50%;
|
|
|
- margin-top: -280px !important;
|
|
|
- margin-left: -544px !important;
|
|
|
- border-radius: 10px;
|
|
|
- border: 1px solid #4f555c;
|
|
|
- .video-title{
|
|
|
- border-radius: 10px 10px 0 0 !important;
|
|
|
- }
|
|
|
- .cloudset{
|
|
|
- width: 258px !important;
|
|
|
- margin-left: 4px;
|
|
|
- background-color: #303740;
|
|
|
- border: 1px solid #4f555c;
|
|
|
- height: calc(100% - 0px);
|
|
|
- float: right;
|
|
|
- border-radius: 0 0 10px 0;
|
|
|
- .close{
|
|
|
- position: absolute;
|
|
|
- right: 15px;
|
|
|
- top: 20px;
|
|
|
- background-image: url(/images/close.png);
|
|
|
- cursor: pointer;
|
|
|
- width: 16px;
|
|
|
- height: 16px;
|
|
|
- background-size: 55%;
|
|
|
- background-repeat: no-repeat;
|
|
|
- background-position-x: center;
|
|
|
- background-position-y: center;
|
|
|
- border: 1px solid #ccc;
|
|
|
- }
|
|
|
- .camername{
|
|
|
- color: #dadada;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 20px;
|
|
|
- width: 100%;
|
|
|
- text-align: center;
|
|
|
- height: 80px;
|
|
|
- line-height: 80px;
|
|
|
- }
|
|
|
- .cc{
|
|
|
- position: relative;
|
|
|
- height: 200px;
|
|
|
- width: 100%;
|
|
|
- .cc_bg{
|
|
|
- background-image: url('/images/cc_bg.png');
|
|
|
- width: 150px;
|
|
|
- height: 150px;
|
|
|
- position: absolute;
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- margin-left: -75px;
|
|
|
- margin-top: -75px;
|
|
|
- background-size: contain;
|
|
|
- }
|
|
|
- .cc_01{
|
|
|
- background-image: url('/images/cc_01.png');
|
|
|
- background-size: contain;
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- top:50px;
|
|
|
- left:50%;
|
|
|
- margin-left: -10px;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- .cc_02{
|
|
|
- background-image: url('/images/cc_02.png');
|
|
|
- background-size: contain;
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- bottom:50px;
|
|
|
- left:50%;
|
|
|
- margin-left: -10px;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- .cc_03{
|
|
|
- background-image: url('/images/cc_03.png');
|
|
|
- background-size: contain;
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- top:50%;
|
|
|
- right:73px;
|
|
|
- margin-top: -10px;
|
|
|
- margin-left: -10px;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- .cc_04{
|
|
|
- background-image: url('/images/cc_04.png');
|
|
|
- background-size: contain;
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- top:50%;
|
|
|
- left:82px;
|
|
|
- margin-top: -10px;
|
|
|
- margin-left: -10px;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- }
|
|
|
- .cc_params{
|
|
|
- color: #dadada;
|
|
|
- height: 40px;
|
|
|
- line-height: 40px;
|
|
|
- font-size: 12px;
|
|
|
- width: 100%;
|
|
|
- padding: 0 20px;
|
|
|
- display: flex;
|
|
|
- img{
|
|
|
- height: 32px;
|
|
|
- width: 32px;
|
|
|
- cursor: pointer;
|
|
|
- margin-top: 4px;
|
|
|
- }
|
|
|
- .span1{
|
|
|
- width:36px;
|
|
|
- }
|
|
|
- .span2{
|
|
|
- margin-left:5px;
|
|
|
- font-size: 10px;
|
|
|
- }
|
|
|
- .span3{
|
|
|
- font-size: 10px;
|
|
|
- display: inline-block;
|
|
|
- width: 100px;
|
|
|
- height: 2px;
|
|
|
- background: #ffffff33;
|
|
|
- margin: 20px 0;
|
|
|
- position: relative;
|
|
|
- .span31{
|
|
|
- position: absolute;
|
|
|
- height: 2px;
|
|
|
- background-color: #fff;
|
|
|
- left:0;
|
|
|
- top:0;
|
|
|
- width:0%;
|
|
|
- }
|
|
|
- .span32{
|
|
|
- background-image: url('/images/cc_p.png');
|
|
|
- background-size: contain;
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- top:-9px;
|
|
|
- left:-8px;
|
|
|
- }
|
|
|
- }
|
|
|
- .span4{
|
|
|
- font-size: 10px;
|
|
|
- opacity: 0.2;
|
|
|
- margin-right:5px;
|
|
|
- }
|
|
|
- }
|
|
|
- .audio{
|
|
|
- position: relative;
|
|
|
- height: 50px;
|
|
|
- margin-top: 30px;
|
|
|
- width: 100%;
|
|
|
- img{
|
|
|
- width:48px;
|
|
|
- height: 48px;
|
|
|
- position: absolute;
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- margin-left: -24px;
|
|
|
- margin-top: -24px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .video-play{
|
|
|
- width:824px !important;
|
|
|
- height: calc(100% - 0px);
|
|
|
- float: left;
|
|
|
- }
|
|
|
- }
|
|
|
+.contrlset {
|
|
|
+ position: absolute;
|
|
|
+ width: 1088px !important;
|
|
|
+ height: 560px !important;
|
|
|
+ z-index: 1000;
|
|
|
+ left: 50%;
|
|
|
+ top: 50%;
|
|
|
+ margin-top: -280px !important;
|
|
|
+ margin-left: -544px !important;
|
|
|
+ border-radius: 10px;
|
|
|
+ border: 1px solid #4f555c;
|
|
|
+
|
|
|
+.video-title {
|
|
|
+ border-radius: 10px 10px 0 0 !important;
|
|
|
+}
|
|
|
+
|
|
|
+.cloudset {
|
|
|
+ width: 258px !important;
|
|
|
+ margin-left: 4px;
|
|
|
+ background-color: #303740;
|
|
|
+ border: 1px solid #4f555c;
|
|
|
+ height: calc(100% - 0px);
|
|
|
+ float: right;
|
|
|
+ border-radius: 0 0 10px 0;
|
|
|
+
|
|
|
+.close {
|
|
|
+ position: absolute;
|
|
|
+ right: 15px;
|
|
|
+ top: 20px;
|
|
|
+ background-image: url(/images/close.png);
|
|
|
+ cursor: pointer;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ background-size: 55%;
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-position-x: center;
|
|
|
+ background-position-y: center;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+}
|
|
|
+
|
|
|
+.camername {
|
|
|
+ color: #dadada;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 20px;
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ height: 80px;
|
|
|
+ line-height: 80px;
|
|
|
+}
|
|
|
+
|
|
|
+.cc {
|
|
|
+ position: relative;
|
|
|
+ height: 200px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+.cc_bg {
|
|
|
+ background-image: url('/images/cc_bg.png');
|
|
|
+ width: 150px;
|
|
|
+ height: 150px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ margin-left: -75px;
|
|
|
+ margin-top: -75px;
|
|
|
+ background-size: contain;
|
|
|
+}
|
|
|
+
|
|
|
+.cc_01 {
|
|
|
+ background-image: url('/images/cc_01.png');
|
|
|
+ background-size: contain;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50px;
|
|
|
+ left: 50%;
|
|
|
+ margin-left: -10px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.cc_02 {
|
|
|
+ background-image: url('/images/cc_02.png');
|
|
|
+ background-size: contain;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 50px;
|
|
|
+ left: 50%;
|
|
|
+ margin-left: -10px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.cc_03 {
|
|
|
+ background-image: url('/images/cc_03.png');
|
|
|
+ background-size: contain;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ right: 73px;
|
|
|
+ margin-top: -10px;
|
|
|
+ margin-left: -10px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.cc_04 {
|
|
|
+ background-image: url('/images/cc_04.png');
|
|
|
+ background-size: contain;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ left: 82px;
|
|
|
+ margin-top: -10px;
|
|
|
+ margin-left: -10px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
+.cc_params {
|
|
|
+ color: #dadada;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ font-size: 12px;
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 20px;
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+img {
|
|
|
+ height: 32px;
|
|
|
+ width: 32px;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-top: 4px;
|
|
|
+}
|
|
|
+
|
|
|
+.span1 {
|
|
|
+ width: 36px;
|
|
|
+}
|
|
|
+
|
|
|
+.span2 {
|
|
|
+ margin-left: 5px;
|
|
|
+ font-size: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.span3 {
|
|
|
+ font-size: 10px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 100px;
|
|
|
+ height: 2px;
|
|
|
+ background: #ffffff33;
|
|
|
+ margin: 20px 0;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+.span31 {
|
|
|
+ position: absolute;
|
|
|
+ height: 2px;
|
|
|
+ background-color: #fff;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ width: 0%;
|
|
|
+}
|
|
|
+
|
|
|
+.span32 {
|
|
|
+ background-image: url('/images/cc_p.png');
|
|
|
+ background-size: contain;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ top: -9px;
|
|
|
+ left: -8px;
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
+.span4 {
|
|
|
+ font-size: 10px;
|
|
|
+ opacity: 0.2;
|
|
|
+ margin-right: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
+.audio {
|
|
|
+ position: relative;
|
|
|
+ height: 50px;
|
|
|
+ margin-top: 30px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+img {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ margin-left: -24px;
|
|
|
+ margin-top: -24px;
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
+}
|
|
|
+.video-play {
|
|
|
+ width: 824px !important;
|
|
|
+ height: calc(100% - 0px);
|
|
|
+ float: left;
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
</style>
|