fix:视频播放五分钟自动关闭。add:视频监控搜索条件

main
dearlin 2023-11-23 11:33:35 +08:00
parent 7509986666
commit 0560077fe9
6 changed files with 198 additions and 18 deletions

View File

@ -70,7 +70,6 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="状态"> <el-form-item label="状态">
<el-select ref="SELECT_STATE" v-model="STATE" style="width: 100%;"> <el-select ref="SELECT_STATE" v-model="STATE" style="width: 100%;">

View File

@ -180,13 +180,13 @@
:limit.sync="zdlistQuery.limit" :limit.sync="zdlistQuery.limit"
@pagination="zdgetList()"/> @pagination="zdgetList()"/>
</el-drawer> </el-drawer>
<el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" title="视频" width="600px"> <el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" :show-close="false" title="视频2" width="600px">
<iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/> <iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideoHLS" :visible.sync="dialogVideoHLS" :before-close="handleBack" title="视频" width="600px"> <el-dialog v-if="dialogVideoHLS" :visible.sync="dialogVideoHLS" :before-close="handleBack" :show-close="false" title="视频" width="600px">
<div id="aLiVideoPlayer" class="prism-player"/> <div id="aLiVideoPlayer" class="prism-player"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>

View File

@ -77,7 +77,7 @@
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" title="视频" append-to-body width="600px"> <el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" :show-close="false" title="视频" append-to-body width="600px">
<iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/> <iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>
@ -124,6 +124,10 @@ export default {
allCodes: [] allCodes: []
} }
}, },
beforeDestroy() {
console.log('页面定时器关闭')
clearInterval(this.timer)
},
methods: { methods: {
// //
@ -282,11 +286,7 @@ export default {
closeWindow() { closeWindow() {
this.handleClose() this.handleClose()
} }
}, }
beforeDestroy() {
console.log('页面定时器关闭')
clearInterval(this.timer)
},
} }
</script> </script>

View File

@ -3,13 +3,98 @@
<el-page-header content="查看详情" @back="goBack"/> <el-page-header content="查看详情" @back="goBack"/>
<div class="level-title mt-20"/> <div class="level-title mt-20"/>
<el-form label-width="100px"> <el-form label-width="100px">
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="关键字搜索">-->
<!-- <el-input v-model="KEYWORDS" placeholder="搜索关键字" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label-width="10px">-->
<!-- <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">-->
<!-- 搜索-->
<!-- </el-button>-->
<!-- <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">-->
<!-- 重置-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row> <el-row>
<el-col :span="5"> <el-col :span="8">
<el-form-item label="关键字搜索"> <el-form-item label="关键字搜索">
<el-input v-model="KEYWORDS" placeholder="搜索关键字" /> <el-input v-model="KEYWORDS" placeholder="搜索关键字" style="width: 100%;" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="集团单位">
<el-select v-model="GROUP_UNIT" placeholder="请选择集团单位" style="width: 100%;">
<el-option v-for="item in groupCorpList" :key="item.CORPINFO_ID" :label="item.CORP_NAME" :value="item.CORPINFO_ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="主管部门">
<SelectTree
ref="deptTree"
:clearable="false"
:options="treeDataInspectDept"
:props="defaultProps"
v-model="COMPETENT_DEPT_ID"
placeholder="请选择企业主管部门"
style="width: 100%"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="施工相关方">
<el-select v-model="UNITS_ID" placeholder="请选择施工相关方" style="width: 100%">
<el-option
v-for="item in unitsList"
:key="item.UNITS_ID"
:label="item.UNITS_NAME"
:value="item.UNITS_ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="监管部门">
<SelectTree
ref="deptTree1"
:clearable="false"
:options="treeDataInspectDept"
:props="defaultProps"
v-model="DEPARTMENT_ID"
placeholder="请选择股份监管部门"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同起止时间">
<el-date-picker
v-model="CONTRACTTIME"
type="daterange"
unlink-panels
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd"
style="width: 100%;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="状态">
<el-select ref="SELECT_STATE" v-model="STATE" style="width: 100%;">
<el-option v-for="item in stateList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="10px"> <el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索 搜索
@ -81,9 +166,11 @@
<script> <script>
import Pagination from '@/components/Pagination' // el-pagination import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request' import { requestFN } from '@/utils/request'
import SelectTree from '@/components/SelectTree'
import waves from '@/directive/waves' // waves directive import waves from '@/directive/waves' // waves directive
export default { export default {
components: { Pagination }, components: { Pagination, SelectTree },
directives: { waves }, directives: { waves },
data() { data() {
return { return {
@ -93,14 +180,87 @@ export default {
limit: 20 limit: 20
}, },
total: 0, total: 0,
form: {},
KEYWORDS: '', KEYWORDS: '',
GROUP_UNIT: '',
DEPARTMENT_ID: '',
COMPETENT_DEPT_ID: '',
STATE: '',
CONTRACTTIME: ['', ''], //
stateList: [
{ ID: '1', NAME: '进行中' },
{ ID: '2', NAME: '已结束' }
],
UNITS_ID: '',
groupCorpList: [],
unitsList: [],
treeDataInspectDept: [],
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name'
},
varList: [] varList: []
} }
}, },
watch: {
CONTRACTTIME: function(newData, oldData) {
if (!newData) {
this.CONTRACTTIME = ['', '']
this.getQuery()
}
}
},
created() { created() {
this.getList() this.getList()
this.getUnitsList()
this.getCorpList()
this.selectDeptOption()
}, },
methods: { methods: {
getCorpList() {
requestFN(
'/corpinfo/listAll',
{}
).then((data) => {
this.corpList = data.varList
this.mangeList = data.varList
if (!this.$parent.OUTSOURCED_ID) {
this.form.MANAGE_NAME = ['133a982a3e93464a9b1de25fe6dd4948']
}
for (let i = 0; i < data.varList.length; i++) {
const corpId = data.varList[i].CORPINFO_ID
if (corpId === '1e6dbbe16004402f8d2c0e52afd9a676' ||
corpId === '3a854eefa7894e06aaa1a2611bca80f6' ||
corpId === '020578a4c1f04bc692ee25145c2efbe5' || corpId === '90966974de3c4b83aca6f8fd6432d5c2') {
this.groupCorpList.push(data.varList[i])
}
}
}).catch((e) => {
})
},
selectDeptOption() {
//
return new Promise((resolve) => {
requestFN(
'/corpDepartment/listTreeManageAndCorp1',
).then((data) => {
this.treeDeptOptions = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.treeDataInspectDept = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
resolve()
}).catch((e) => {
})
})
},
getUnitsList() {
requestFN(
'/units/listAll',
{ UNITS_ID: this.form.UNITS_ID }
).then((data) => {
this.unitsList = data.varList
}).catch((e) => {
})
},
getRowKey(row) { getRowKey(row) {
return row.OUTSOURCED_ID return row.OUTSOURCED_ID
}, },
@ -115,6 +275,18 @@ export default {
}, },
goKeyReset() { goKeyReset() {
this.KEYWORDS = '' this.KEYWORDS = ''
this.UNITS_ID = ''
this.STATE = ''
this.CONTRACT_STIME = ''
this.CONTRACT_ETIME = ''
this.CONTRACTTIME = ['', '']
this.$refs.deptTree.clearHandle()
this.$refs.deptTree1.clearHandle()
this.INVOLVING_CORP = ''
this.DEPARTMENT_ID = ''
this.COMPETENT_DEPT_ID = ''
this.GROUP_UNIT = ''
this.CORP_NAME = ''
this.getQuery() this.getQuery()
}, },
// //
@ -124,6 +296,15 @@ export default {
'/outsourced/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page, '/outsourced/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{ {
KEYWORDS: this.KEYWORDS, KEYWORDS: this.KEYWORDS,
UNITS_ID: this.UNITS_ID,
CONTRACT_STIME: this.CONTRACTTIME[0],
CONTRACT_ETIME: this.CONTRACTTIME[1],
STATE: this.STATE,
INVOLVING_CORP: this.INVOLVING_CORP,
DEPARTMENT_ID: this.DEPARTMENT_ID,
COMPETENT_DEPT_ID: this.COMPETENT_DEPT_ID,
GROUP_UNIT: this.GROUP_UNIT,
CORP_NAME: this.CORP_NAME,
CORPINFO_ID: this.$parent.CORPINFO_ID CORPINFO_ID: this.$parent.CORPINFO_ID
} }
).then((data) => { ).then((data) => {

View File

@ -124,28 +124,28 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" title="视频" width="600px"> <el-dialog v-if="dialogVideo" :visible.sync="dialogVideo" :show-close="false" title="视频" width="600px">
<iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/> <iframe :src="VIDEOURL" width="100%" height="380" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideoHLS" :visible.sync="dialogVideoHLS" :before-close="handleBack" title="视频" width="600px"> <el-dialog v-if="dialogVideoHLS" :visible.sync="dialogVideoHLS" :before-close="handleBack" :show-close="false" title="视频" width="600px">
<div id="aLiVideoPlayer" class="prism-player"/> <div id="aLiVideoPlayer" class="prism-player"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideoBack" :visible.sync="dialogVideoBack" title="视频回放" width="800px"> <el-dialog v-if="dialogVideoBack" :visible.sync="dialogVideoBack" :show-close="false" title="视频回放" width="800px">
<iframe :src="VIDEOURL" width="100%" height="620" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/> <iframe :src="VIDEOURL" width="100%" height="620" allowfullscreen allow="autoplay; fullscreen;microphone" style="position: relative;border:none"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="back"> </el-button> <el-button @click="back"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-if="dialogVideoAll" :visible.sync="dialogVideoAll" :before-close="handleBack" title="视频" width="1200px"> <el-dialog v-if="dialogVideoAll" :visible.sync="dialogVideoAll" :before-close="handleBack" :show-close="false" title="视频" width="1200px">
<!-- <iframe src="http://192.168.192.121:10800/?menu=no/#/screen" width="100%" height="500px" allowfullscreen allow="autoplay; fullscreen" style="position: relative;border:none"/>--> <!-- <iframe src="http://192.168.192.121:10800/?menu=no/#/screen" width="100%" height="500px" allowfullscreen allow="autoplay; fullscreen" style="position: relative;border:none"/>-->
<div style="display: flex;flex-wrap: wrap;justify-content: space-between"> <div style="display: flex;flex-wrap: wrap;justify-content: space-between">
<div v-for="(video,index) in videoList" :key="index" style="margin-bottom: 10px;width: 45%"> <div v-for="(video,index) in videoList" :key="index" style="margin-bottom: 10px;width: 45%">

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<OutSourced v-if="activeName=='OutSourced'" ref="outSourced" :other-show="true" active-name="List"/> <OutSourced v-if="activeName=='OutSourced'" ref="outSourced" :other-show="true" active-name="List"/>
<List v-if="activeName=='List'" ref="list" /> <List v-show="activeName=='List'" ref="list" />
<videoList v-if="activeName=='videoList'" /> <videoList v-if="activeName=='videoList'" />
<!-- <component :is="activeName"/>--> <!-- <component :is="activeName"/>-->
</div> </div>