设备中台视频字段注释、中间四CIM+数据更新、萤石视频点击播放

This commit is contained in:
jxj_gmj 2023-04-04 13:58:09 +08:00
parent f700f8e405
commit c1e39f0317
5 changed files with 231 additions and 36 deletions

View File

@ -10,10 +10,10 @@
<ul class="alarm-left"> <ul class="alarm-left">
<li class="alarm-item alarm-item-title"> <li class="alarm-item alarm-item-title">
{{ $t('message.videoManage.equipment_list.name') }}{{ {{ $t('message.videoManage.equipment_list.name') }}{{
i.videoInfo.deviceName i.videoName
}} }}
</li> </li>
<li class="alarm-item"> <!-- <li class="alarm-item">
<p>{{ $t('message.videoManage.equipment_list.live_addressName') }}</p> <p>{{ $t('message.videoManage.equipment_list.live_addressName') }}</p>
<div> <div>
<img <img
@ -45,8 +45,8 @@
i.videoInfo.rtmpHd i.videoInfo.rtmpHd
}} }}
</div> </div>
</li> </li> -->
<li class="alarm-item"> <!-- <li class="alarm-item">
<p> <p>
{{ $t('message.videoManage.equipment_list.monitor_addressName') }} {{ $t('message.videoManage.equipment_list.monitor_addressName') }}
</p> </p>
@ -82,11 +82,10 @@
i.videoInfo.hdFlvAddress i.videoInfo.hdFlvAddress
}} }}
</div> </div>
</li> </li> -->
<li class="alarm-item btn-box"> <li class="alarm-item btn-box">
<div> <!-- <div>
{{ $t('message.videoManage.equipment_list.statusTitle') }} {{ $t('message.videoManage.equipment_list.statusTitle') }}
<!-- <tag type="danger" :text="i.videoInfo.status===1?'使用中':i.videoInfo.status===2?'已过期':i.videoInfo.status===3?'直播已暂停':''"></tag>-->
<tag <tag
:type=" :type="
i.videoInfo.status === 1 i.videoInfo.status === 1
@ -103,10 +102,9 @@
] ]
" "
></tag> ></tag>
</div> </div> -->
<div> <!-- <div>
{{ $t('message.videoManage.equipment_list.exceptionTitle') }} {{ $t('message.videoManage.equipment_list.exceptionTitle') }}
<!-- <tag type="success" :text="i.videoInfo.exception===0?'正常':i.videoInfo.exception===1?'设备不在线':i.videoInfo.exception===2?'设备开启视频加密':i.videoInfo.exception===3?'设备删除':i.videoInfo.exception===4?'失效':i.videoInfo.exception===5?'未绑定':i.videoInfo.exception===6?'账户下流':''"></tag>-->
<tag <tag
:type="tag_exception[i.videoInfo.exception]" :type="tag_exception[i.videoInfo.exception]"
:text=" :text="
@ -115,19 +113,27 @@
] ]
" "
></tag> ></tag>
</div> </div> -->
<div> <!-- <div>
{{ $t('message.videoManage.equipment_list.deviceTypeTitle') }} {{ $t('message.videoManage.equipment_list.deviceTypeTitle') }}
<!-- <tag type="info" :text="i.deviceType===1?'枪机':i.deviceType===2?'球机':i.deviceType===3?'热成像':i.deviceType===4?'单兵':i.deviceType===5?'全景':i.deviceType===6?'无人机':''"></tag>-->
<tag <tag
type="info" type="info"
:text="$t('message.videoManage.deviceType')[i.deviceType - 1]" :text="$t('message.videoManage.deviceType')[i.deviceType - 1]"
></tag> ></tag>
</div> </div> -->
<!-- <div>
{{ $t('message.videoManage.equipment_list.deviceTypeTitle') }}
<tag
type="info"
:text="$t('message.videoManage.deviceType')[i.deviceType - 1]"
></tag>
</div> -->
<!-- 通道号 -->
通道号{{ i.verificationCode }}
</li> </li>
</ul> </ul>
<ul class="alarm-right"> <ul class="alarm-right">
<li class="alarm-item alarm-item-title"> <!-- <li class="alarm-item alarm-item-title">
{{ $t('message.videoManage.equipment_list.serial_number') }}{{ {{ $t('message.videoManage.equipment_list.serial_number') }}{{
i.videoInfo.deviceSerial i.videoInfo.deviceSerial
}} }}
@ -199,7 +205,7 @@
i.videoInfo.channelNo i.videoInfo.channelNo
}}.rec }}.rec
</div> </div>
</li> </li> -->
<li class="alarm-item" v-show="current === index"> <li class="alarm-item" v-show="current === index">
<div class="operation"> <div class="operation">
<span @click="beforeEdit(i)" <span @click="beforeEdit(i)"
@ -361,6 +367,7 @@ export default {
getSelectVideoItemListByTypeApi(id) { getSelectVideoItemListByTypeApi(id) {
this.videoInfo.groupId = id this.videoInfo.groupId = id
selectVideoItemListByTypeApi(this.videoInfo).then((result) => { selectVideoItemListByTypeApi(this.videoInfo).then((result) => {
console.log('result=========数据',result);
if (result.success) { if (result.success) {
this.cameraList = result.result this.cameraList = result.result
console.log('videoInfo', this.videoInfo, '视频列表', this.cameraList) console.log('videoInfo', this.videoInfo, '视频列表', this.cameraList)
@ -392,20 +399,21 @@ export default {
console.log('编辑的item', obj) console.log('编辑的item', obj)
}, },
beforeDelete(itemId) { beforeDelete(itemId) {
console.log('删除的设备信息', itemId)
this.Popup.delete = true this.Popup.delete = true
this.Popup.params.itemId = itemId.itemId this.Popup.params.itemId = itemId.itemId
this.Popup.title = itemId.videoInfo.deviceName this.Popup.title = itemId.videoName
console.log('删除的设备', itemId.videoInfo.deviceName)
}, },
ToDelete() { ToDelete() {
deleteVideoItemApi({ itemId: this.Popup.params.itemId }).then( deleteVideoItemApi({ itemId: this.Popup.params.itemId }).then(
(result) => { (result) => {
console.log('删除成功', result) console.log('删除成功', result)
if (result.success) {
this.$message.success(result.message) this.$message.success(result.message)
this.Popup.newVideo = false this.Popup.newVideo = false
this.getSelectVideoItemListByTypeApi() this.getSelectVideoItemListByTypeApi()
}
} }
) )
} }

View File

@ -545,7 +545,6 @@
<!-- 萤石云设备验证码 --> <!-- 萤石云设备验证码 -->
<el-form-item v-if="videoType == '1'" label="通道号"> <el-form-item v-if="videoType == '1'" label="通道号">
<el-input <el-input
:disabled="operation === 'edit'"
v-model="currentVideoTypeDetail.verificationCode" v-model="currentVideoTypeDetail.verificationCode"
placeholder="请输入" placeholder="请输入"
></el-input> ></el-input>

View File

@ -49,6 +49,15 @@ export default {
data() { data() {
return { return {
contentList: [ contentList: [
{
time: '2023-04-02',
question: 1,
utils: '中国建筑第四工程局有限公司',
safe: '王昊',
type: '安全',
position: '地下室',
change: '是'
},
{ {
time: '2023-03-16', time: '2023-03-16',
question: 1, question: 1,

View File

@ -43,6 +43,141 @@ export default {
data() { data() {
return { return {
dataList: [ dataList: [
{
date: '2023/3/26',
building: '1-4轴×C-K轴首层梁板',
quantity: 1131.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴首层梁板',
quantity: 1131.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴首层梁板',
quantity: 1131.5
},
{
date: '2023/3/26',
building: '1/2轴-4轴xD-H轴首层型钢梁',
quantity: 97.5
},
{
date: '2023/3/26',
building: '1/2轴-4轴xD-H轴首层型钢梁',
quantity: 97.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层钢管柱',
quantity: 30
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层钢管柱',
quantity: 30
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层型钢柱 ',
quantity: 112.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层型钢柱 ',
quantity: 112.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层外墙 ',
quantity: 282.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层外墙 ',
quantity: 282.5
},
{
date: '2023/3/26',
building: '1-4轴×C-K轴负一层外墙 ',
quantity: 282.5
},
{
date: '2023/3/23',
building: '1/2轴-4轴×D-H轴首层型钢梁 ',
quantity: 70.5
},
{
date: '2023/3/23',
building: '1/2轴-4轴×D-H轴首层型钢梁 ',
quantity: 70.5
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层外墙 ',
quantity: 488
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层外墙 ',
quantity: 488
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层外墙 ',
quantity: 488
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层内墙、柱 ',
quantity: 375.5
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层内墙、柱 ',
quantity: 375.5
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层内墙、柱 ',
quantity: 375.5
},
{
date: '2023/3/23',
building: '负一层核心筒剪力墙、柱 ',
quantity: 333
},
{
date: '2023/3/23',
building: '负一层核心筒剪力墙、柱 ',
quantity: 333
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴首层梁、板 ',
quantity: 1288.5
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴首层梁、板 ',
quantity: 1288.5
},
{
date: '2023/3/23',
building: '1-4轴×A-C轴及4-8轴×A-K轴首层梁、板 ',
quantity: 1288.5
},
{
date: '2023/3/20',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层钢管柱 ',
quantity: 103
},
{
date: '2023/3/20',
building: '1-4轴×A-C轴及4-8轴×A-K轴负一层钢管柱 ',
quantity: 103
},
{ {
date: '2023/3/1', date: '2023/3/1',
building: '1-4轴×C-K轴及1-1/2轴往西5.5米×A-C轴负一层梁板 ', building: '1-4轴×C-K轴及1-1/2轴往西5.5米×A-C轴负一层梁板 ',

View File

@ -17,13 +17,14 @@
:key="item" :key="item"
:class="select == 1 ? 'width' : select == 2 ? 'width2' : 'width3'" :class="select == 1 ? 'width' : select == 2 ? 'width2' : 'width3'"
style="position: relative" style="position: relative"
@click="pieceClick(item)"
> >
<div <div
:id="'video-cover' + item" :id="'video-cover' + item"
class="video-cover" class="video-cover"
:class="{ :class="Istrue== true? 'login-box-focus':''"
'video-active': selectVideo == item @mouseenter="mouseenterName()"
}" @mouseleave="mouseleaveName()"
></div> ></div>
<div :id="'video-container' + item"></div> <div :id="'video-container' + item"></div>
</div> </div>
@ -89,25 +90,33 @@ export default {
searchList: [], searchList: [],
devList: [], devList: [],
demoList: [], demoList: [],
sceencount: 1, // 149 indextest: 0,
indextest: 0 Istrue: false,
} }
}, },
created() {}, created() { },
mounted() { mounted() {
// //
this.devList = this.$props.ysyParams this.devList = this.$props.ysyParams
console.log('this.$props.ysyParams', this.$props.ysyParams) console.log('this.$props.ysyParams', this.$props.ysyParams)
this.ysyBtn(this.devList, this.indextest, this.sceencount) this.ysyBtn(this.devList, this.indextest, this.select)
}, },
watch: { watch: {
ysyParams: function (a, b) { ysyParams: function (a, b) {
console.log('父组件传递的数据 ysyParams :', a) console.log('父组件传递的数据 ysyParams :', a)
this.indextest++
console.log('父组件传递的数据 this.devList :', this.devList) console.log('父组件传递的数据 this.devList :', this.devList)
var index = this.devList.findIndex((item) => item.url == a[0].url) if (this.select == 1) {
this.selectVideoFirst = index + 1 var index = this.devList.findIndex((item) => item.url == a[0].url)
this.selectVideoFirst = index + 1
} else {
var index = this.devList.findIndex((item) => item.url == a[0].url)
let devs = []
devs.push(this.devList[index])
console.log('块的点击事件:', devs)
this.ysyBtn(devs, this.indextest, this.select)
}
// this.select = 1 // this.select = 1
// this.devList.forEach((item, index) => { // this.devList.forEach((item, index) => {
// if (item.url == a[0].url) { // if (item.url == a[0].url) {
@ -153,19 +162,40 @@ export default {
}) })
}, },
methods: { methods: {
mouseenterName() {
this.Istrue = true;
},
mouseleaveName() {
this.Istrue = false;
},
pieceClick(item) {
this.indextest = item
// let devs = []
// devs.push(this.devList[item - 1])
console.log('块的点击事件:', item)
// this.ysyBtn(devs,item+1,this.select)
},
// id 149 // id 149
ysyBtn(item) { ysyBtn(item, indeBtn, selectIndex) {
item.forEach((item2, index) => { item.forEach((item2, index) => {
let container;
console.log('块的点击事件:', indeBtn)
if (indeBtn == 0) {
container = `video-container${index + 1}`;
} else {
container = `video-container${indeBtn}`;
}
console.log('item :', item2 + 'index', index) console.log('item :', item2 + 'index', index)
var player = new EZUIKit.EZUIKitPlayer({ var player = new EZUIKit.EZUIKitPlayer({
autoplay: true, autoplay: true,
audio: '0', audio: '0',
id: `video-container${index + 1}`, // ID id: container, // ID
accessToken: item2.token, accessToken: item2.token,
url: item2.url, // 线 url: item2.url, // 线
template: 'simple', template: 'simple',
width: this.$refs.videoBox.offsetWidth, width: this.$refs.videoBox.offsetWidth / selectIndex,
height: this.$refs.videoBox.offsetHeight height: this.$refs.videoBox.offsetHeight / selectIndex
}) })
item2.player = player item2.player = player
}) })
@ -176,6 +206,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.main { .main {
position: fixed; position: fixed;
.app-container { .app-container {
width: 126.375rem; width: 126.375rem;
height: 88vh; height: 88vh;
@ -185,6 +216,7 @@ export default {
top: 0rem; top: 0rem;
overflow: hidden; overflow: hidden;
background-color: #fff; background-color: #fff;
.left { .left {
overflow: hidden; overflow: hidden;
width: 80%; width: 80%;
@ -193,6 +225,7 @@ export default {
position: absolute; position: absolute;
left: 0; left: 0;
top: 0rem; top: 0rem;
.title { .title {
position: absolute; position: absolute;
top: 1rem; top: 1rem;
@ -201,6 +234,7 @@ export default {
font-weight: 600; font-weight: 600;
color: #000; color: #000;
} }
.time { .time {
position: absolute; position: absolute;
top: 1rem; top: 1rem;
@ -210,6 +244,7 @@ export default {
color: #000; color: #000;
} }
} }
.left1 { .left1 {
width: 80%; width: 80%;
border: 0.125rem solid rgb(37, 43, 102); border: 0.125rem solid rgb(37, 43, 102);
@ -220,6 +255,7 @@ export default {
left: 0; left: 0;
overflow: hidden; overflow: hidden;
} }
.left2 { .left2 {
top: 0rem; top: 0rem;
width: 80%; width: 80%;
@ -262,8 +298,12 @@ export default {
} }
.video-active { .video-active {
// border: 0.125rem solid rgb(255, 133, 62) !important; border: 0.125rem solid rgb(255, 133, 62) !important;
} }
.login-box-focus{
// border: 4px solid red;
}
.rect { .rect {
width: 1.625rem; width: 1.625rem;
@ -284,6 +324,7 @@ export default {
z-index: 5; z-index: 5;
border-top: 0.0313rem solid #fff; border-top: 0.0313rem solid #fff;
border-right: 0.0313rem solid #fff; border-right: 0.0313rem solid #fff;
cursor: pointer;
} }
::v-deep .el-dialog__wrapper { ::v-deep .el-dialog__wrapper {
@ -368,6 +409,7 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.center { .center {
height: 33.3%; height: 33.3%;
display: flex; display: flex;
@ -381,6 +423,7 @@ export default {
justify-content: center; justify-content: center;
} }
} }
.bottom { .bottom {
height: 33.3%; height: 33.3%;
display: flex; display: flex;
@ -446,6 +489,7 @@ export default {
width: 11.25rem; width: 11.25rem;
margin: 0 auto 0.625rem; margin: 0 auto 0.625rem;
} }
.videoItem.active { .videoItem.active {
background: #fff !important; background: #fff !important;
} }