使用webvideoctrl+vue做视频监控的功能,webvideoctrl.js是海康威视的web监控视频组件提供的纯js文件,我在对应vue文件中import它,source里面可以看到它被引用了,但是控制台一直在报
Uncaught ReferenceError: WebVideoCtrl is not defined
的错误,组件中引用的其它js文件和css文件都能正确引用
页面上也没有视频的任何显示
<template>
<div class="container">
<el-form ref="form" :model="form" label-width="80px" v-loading="loading">
<div class="listchoice">
<label>选择通道</label>
<select v-model="videoAddress" placeholder="请选择索要查看的视频监控地点" class="selected" @change="clickStartRealPlay(videoaddress);">
<option v-for="item in facaddress" :label="item.name" :value="item.id" :key="item.id"></option>
</select>
<table cellpadding="0" cellspacing="3" border="0" style="display:none;">
<tr>
<td><input id="loginip" type="text" class="txt" v-model="form.ipAddr" /></td>
<td><input id="port" type="text" class="txt" v-model="form.port" /></td>
</tr>
<tr>
<td><input id="username" type="text" class="txt" v-model="form.username" /></td>
<td><input id="password" type="password" class="txt" v-model="form.password"/></td>
</tr>
</table>
</div>
<div class="video_info">
<!--<video id="divPlugin" class="plugin" controls preload="auto" :style="'text-align:'+'center'">
<source :src="videos" type="application/x-mpegURL">
</video>-->
<div id="divPlugin" class="plugin"></div>
</div>
</el-form>
</div>
</template>
<script>
import '../../../js/jquery-1.7.1.min.js'
import webVideoCtrlNU from '../../../js/webVideoCtrl.js'
import demoNU from '../../../js/demo.js'
var obj;
export default{
...webVideoCtrlNU,
...demoNU,
created(){
this.$http({
method: 'get',
responseType : 'json',
url: this.$store.state.baseUrl+'/'+this.module+'/'+this.$route.params.id+'/',
params: {
access_token:this.$store.state.token
}
}).then(response=>{
this.form=response.data
//this.$store.state.baseUrl+"/upload/image"+this.form.url
}).catch(error => {
this.loading=false
if (error.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内
if(error.response.status==403){
this.$message({message:'登录过期',type:'error',showClose:true});
this.$store.commit('logout')
this.$router.push({ path: ('/login') })
}else if(error.response.status==401){
this.$message({message:'用户名/密码错误',type:'error',showClose:true});
}else if(error.response.status==400){
this.$message({message:error.response.data.msg,type:'error',showClose:true});
}
}
// else {
// this.$message({message:'服务器异常,请联系管理员',type:'error',showClose:true});
// }
// console.log(error.config);
//this.$message({message:'用户名/密码错误',type:'error',showClose:true});
})
},
data(){
return{
loading:false,
module:'videoConfig',
factorys:[],
facaddress:[],
videoIp:[],
query:{
key:'',
factoryId:'',
},
form:{
},
}
},
methods:{
clickStartRealPlay(){
},
clickStopRealPlay(){
},
},
mounted(){
// this.search(obj,function(obj){
// for(var key in obj){
// alert(obj[key].ipAddr);
// }
// })
}
}
</script>
<style>
.container{
width:100%;
height:680px;
}
.listchoice{
width:20%;
float:left;
border-right:solid #eee 1px;
height:680px;
padding-top:10px;
box-sizing:border-box;
}
.listchoice label{
width:40%;
display:left;
display:block;
text-align:center;
margin:0 auto;
height:30px;
box-sizing:border-box;
float:left;
line-height:30px;
font-size:16px;
}
.selected{
width:50%;
margin:0 auto;
text-align:center;
display:block;
height:30px;
box-sizing:border-box;
}
.video_info{
width:77%;
border:solid #eee 1px;
float:right;
height:680px;
margin-right:2%;
}
.listchoice input{
width:40%;
display:block;
float:left;
margin:5%;
box-sizing:border-box;
}
</style>
新建了一个vue项目来引用后界面显示Deleting local variable in strict mode错误,控制台报错:
我开始怀疑是jquery和vue中的$冲突,在demo.js中var jq=jQuery.noConflict();后还是同样的错误,没有影响,同时,直接alert内容有效果,所以应该是WevVideoCtrl的对象无法引用
怎么能够正确引用webVideoCtrl并且使前端和demo一样正常显示,选择通道下拉框能读到webVideoCtr.js给的数据并且右侧有视频画面,如demo所示
是js引用错误,应该将三个需要引用的js放在static文件夹里,然后在index.html里进行引用