Merge branch 'dev-yjl' into 'shenzhen-dev'

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

See merge request !136
This commit is contained in:
袁晶琳 2023-04-04 14:02:42 +08:00
commit 956c9be4fa
6 changed files with 268 additions and 92 deletions

View File

@ -10,10 +10,10 @@
<ul class="alarm-left">
<li class="alarm-item alarm-item-title">
{{ $t('message.videoManage.equipment_list.name') }}{{
i.videoInfo.deviceName
i.videoName
}}
</li>
<li class="alarm-item">
<!-- <li class="alarm-item">
<p>{{ $t('message.videoManage.equipment_list.live_addressName') }}</p>
<div>
<img
@ -45,8 +45,8 @@
i.videoInfo.rtmpHd
}}
</div>
</li>
<li class="alarm-item">
</li> -->
<!-- <li class="alarm-item">
<p>
{{ $t('message.videoManage.equipment_list.monitor_addressName') }}
</p>
@ -82,11 +82,10 @@
i.videoInfo.hdFlvAddress
}}
</div>
</li>
</li> -->
<li class="alarm-item btn-box">
<div>
<!-- <div>
{{ $t('message.videoManage.equipment_list.statusTitle') }}
<!-- <tag type="danger" :text="i.videoInfo.status===1?'使用中':i.videoInfo.status===2?'已过期':i.videoInfo.status===3?'直播已暂停':''"></tag>-->
<tag
:type="
i.videoInfo.status === 1
@ -103,10 +102,9 @@
]
"
></tag>
</div>
<div>
</div> -->
<!-- <div>
{{ $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
:type="tag_exception[i.videoInfo.exception]"
:text="
@ -115,19 +113,27 @@
]
"
></tag>
</div>
<div>
</div> -->
<!-- <div>
{{ $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
type="info"
:text="$t('message.videoManage.deviceType')[i.deviceType - 1]"
></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>
</ul>
<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') }}{{
i.videoInfo.deviceSerial
}}
@ -199,7 +205,7 @@
i.videoInfo.channelNo
}}.rec
</div>
</li>
</li> -->
<li class="alarm-item" v-show="current === index">
<div class="operation">
<span @click="beforeEdit(i)"
@ -361,6 +367,7 @@ export default {
getSelectVideoItemListByTypeApi(id) {
this.videoInfo.groupId = id
selectVideoItemListByTypeApi(this.videoInfo).then((result) => {
console.log('result=========数据',result);
if (result.success) {
this.cameraList = result.result
console.log('videoInfo', this.videoInfo, '视频列表', this.cameraList)
@ -392,20 +399,21 @@ export default {
console.log('编辑的item', obj)
},
beforeDelete(itemId) {
console.log('删除的设备信息', itemId)
this.Popup.delete = true
this.Popup.params.itemId = itemId.itemId
this.Popup.title = itemId.videoInfo.deviceName
console.log('删除的设备', itemId.videoInfo.deviceName)
this.Popup.title = itemId.videoName
},
ToDelete() {
deleteVideoItemApi({ itemId: this.Popup.params.itemId }).then(
(result) => {
console.log('删除成功', result)
if (result.success) {
this.$message.success(result.message)
this.Popup.newVideo = false
this.getSelectVideoItemListByTypeApi()
}
}
)
}

View File

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

View File

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

View File

@ -43,6 +43,141 @@ export default {
data() {
return {
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',
building: '1-4轴×C-K轴及1-1/2轴往西5.5米×A-C轴负一层梁板 ',

View File

@ -5,70 +5,51 @@
</div>
<div class="pageContent">
<div class="tips">交卷之前离开当前页面会导致本次考试作废</div>
<div
class="blockBox"
v-for="(item, index) in courseDetail.questionList"
:key="index"
>
<div class="testTilte">
{{ index + 1 }}{{ item.questionName }}{{ item.questionScore }}
</div>
<el-checkbox-group
class="optionsBox"
v-if="item.questionType == 2"
v-model="radioList"
@change="
(e) => {
changeChecked(e, item.questionId, index)
}
"
<vue-scroll style="height: 2000px">
<div
class="blockBox"
v-for="(item, index) in courseDetail.questionList"
:key="index"
>
<el-checkbox
v-for="(data, index) in item.optionList"
:label="data.optionId"
:key="index"
>{{ indexList[index] }}{{ data.optionName }}</el-checkbox
>
</el-checkbox-group>
<!-- <label
class="optionItem"
v-for="(data, index2) in item.optionList"
:key="index2"
>
<checkbox class="checkbox" :value="data.optionId + ''" /><text
class="desc"
>{{ indexList[index2] }}{{ data.optionName }}</text
>
</label> -->
<el-radio-group class="optionsBox" v-model="radio" v-else>
<!-- <label
class="optionItem"
v-for="(data, index2) in item.optionList"
:key="index2"
>
<radio
class="checkbox"
:value="data.optionId + ''"
:checked="data.optionId === item.optionId"
/><text class="desc"
>{{ indexList[index2] }}{{ data.optionName }}</text
>
</label> -->
<div class="testTilte">
{{ index + 1 }}{{ item.questionName }}{{
item.questionScore
}}
</div>
<el-radio
<el-checkbox-group
class="optionsBox"
v-if="item.questionType == 2"
v-model="radioList"
@change="
(e) => {
changeChecked(e, item.questionId, index)
}
"
v-for="(data, index2) in item.optionList"
:key="index2"
:label="data.optionId"
>{{ indexList[index2] }}{{ data.optionName }}</el-radio
>
</el-radio-group>
</div>
<el-checkbox
v-for="(data, index) in item.optionList"
:label="data.optionId"
:key="index"
>{{ indexList[index] }}{{ data.optionName }}</el-checkbox
>
</el-checkbox-group>
<el-radio-group class="optionsBox" v-model="radio" v-else>
<el-radio
@change="
(e) => {
changeChecked(e, item.questionId, index)
}
"
v-for="(data, index2) in item.optionList"
:key="index2"
:label="data.optionId"
>{{ indexList[index2] }}{{ data.optionName }}</el-radio
>
</el-radio-group>
</div>
</vue-scroll>
<button type="primary" class="btn submitBtn big" @click="submitData()">
交卷
</button>

View File

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