Commit d60b57e4 by 夏新然

兼容样式

1 parent 5f34b630
...@@ -18,7 +18,17 @@ export default { ...@@ -18,7 +18,17 @@ export default {
} }
}, },
mounted(){ mounted(){
window.videoEquitTableHeight = document.body.clientHeight - 142 + 'px';
window.opsTableHeight = document.body.clientHeight - 260 + 'px';
if(document.body.clientWidth>1366){
window.oneSearchTableHeight = document.body.clientHeight - 250 + 'px';
window.twoSearchTableHeight = document.body.clientHeight - 280 + 'px';
}else {
window.oneSearchTableHeight = document.body.clientHeight - 280 + 'px';
window.twoSearchTableHeight = document.body.clientHeight - 315 + 'px';
}
} }
} }
</script> </script>
......
...@@ -34,13 +34,14 @@ export default { ...@@ -34,13 +34,14 @@ export default {
getCameraTable(params,id,id2){ getCameraTable(params,id,id2){
console.log(id2) console.log(id2)
if(id2){ if(id2){
console.log('aa')
return api.get(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans/${id2}`, params) return api.get(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans/${id2}`, params)
}else{ }else{
console.log('bb')
return api.get(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans`, params) return api.get(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans`, params)
} }
}, },
editVideo(params,id,id2){
return api.post(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans/${id2}`, params)
},
editCamera(params,id,id2){ editCamera(params,id,id2){
return api.post(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans/${id2}`, params) return api.post(`${baseUrl}/api/v1/devconf_fx/devs/${id}/vchans/${id2}`, params)
}, },
......
...@@ -23,6 +23,10 @@ body{ ...@@ -23,6 +23,10 @@ body{
font-size: 14px; font-size: 14px;
background: $bodyback-color; background: $bodyback-color;
} }
.minHeight{
height: calc(100vh - 140px);
overflow: auto;
}
input{ input{
font-family: "微软雅黑"; font-family: "微软雅黑";
} }
...@@ -164,3 +168,9 @@ a:active{ ...@@ -164,3 +168,9 @@ a:active{
color:#f2365a; color:#f2365a;
font-size:16px; font-size:16px;
} }
@media screen and (max-width: 1366px) {
.compatibleBtn {
margin-left: 0px!important;
margin-top: 6px!important;
}
}
\ No newline at end of file \ No newline at end of file
...@@ -80,7 +80,7 @@ export const asyncRouterMap = [ ...@@ -80,7 +80,7 @@ export const asyncRouterMap = [
children: [ children: [
{ {
path: "/search/vehicle", path: "/search/vehicle",
name: "车辆检索", name: "过车检索",
meta: { meta: {
icon: "el-icon-location" icon: "el-icon-location"
}, },
......
...@@ -62,6 +62,7 @@ import types from '../store/types.js' ...@@ -62,6 +62,7 @@ import types from '../store/types.js'
//存储配置列表 //存储配置列表
this.storeConfList(); this.storeConfList();
//code列表 //code列表
this.getCatesList();
this.getCodeList(); this.getCodeList();
this.getCustomCode(); this.getCustomCode();
this.getEventList(); this.getEventList();
...@@ -138,6 +139,22 @@ import types from '../store/types.js' ...@@ -138,6 +139,22 @@ import types from '../store/types.js'
}) })
}, },
getCatesList(){
this.$api.codes.eventCates({}).then(res=>{
// 存储cate列表
window.localStorage.setItem('cate列表',JSON.stringify(res.list_data))
// 存储单独code
res.list_data.forEach(item=>{
this.getOneEventList(item.code,item.event_cate_unid)
})
})
},
getOneEventList(code,id){
this.$api.codes.eventType({},id).then(res=>{
// 存储cate列表
window.localStorage.setItem(code,JSON.stringify(res.list_data))
})
},
getEventList(){ getEventList(){
this.$api.search.eventTypes({}).then(res=>{ this.$api.search.eventTypes({}).then(res=>{
// 存储code列表 // 存储code列表
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<div style=""> <div style="">
<el-table <el-table
:data="tableData" :data="tableData"
height="574" :height="tableHeight"
stripe stripe
border> border>
<el-table-column <el-table-column
...@@ -98,6 +98,7 @@ ...@@ -98,6 +98,7 @@
total:0, total:0,
page:1, page:1,
pageSize:30, pageSize:30,
tableHeight:window.opsTableHeight
} }
}, },
watch:{ watch:{
......
<template> <template>
<div class="contentBox"> <div class="contentBox">
<div class="content"> <div class="content">
<div style="padding: 20px 15px 20px 23px;"> <div style="padding:8px 20px;">
<span style="float: right;"> <span style="float: right;">
<el-button type="info" @click="addRole">添加新角色</el-button> <el-button type="info" @click="addRole">添加新角色</el-button>
</span> </span>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</div> </div>
<div style="padding: 0 15px 20px 23px;"> <div style="padding: 0 15px 20px 23px;">
<el-table <el-table
height="574" :height="tableHeight"
:data="tableData" :data="tableData"
stripe stripe
border border
...@@ -169,7 +169,8 @@ ...@@ -169,7 +169,8 @@
menu_unids: [ menu_unids: [
{ validator: checkMenu_unids, trigger: 'change' } { validator: checkMenu_unids, trigger: 'change' }
], ],
} },
tableHeight:window.opsTableHeight
} }
}, },
components:{ components:{
......
<template> <template>
<div class="contentBox"> <div class="contentBox minHeight">
<div style="background: #FFFFFF;"> <div :style="{'background': '#FFFFFF','min-height': height}">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="校时设置" name="first"> <el-tab-pane label="校时设置" name="first">
<proofreadtime></proofreadtime> <proofreadtime></proofreadtime>
...@@ -20,13 +20,16 @@ ...@@ -20,13 +20,16 @@
export default { export default {
data(){ data(){
return{ return{
activeName: 'first' activeName: 'first',
height:''
} }
}, },
components:{ components:{
proofreadtime,sytemset proofreadtime,sytemset
}, },
mounted(){}, mounted(){
this.height=document.body.clientHeight - 140 + 'px'
},
methods:{ methods:{
handleClick(tab, event) { handleClick(tab, event) {
console.log(tab, event); console.log(tab, event);
......
<template> <template>
<div class="contentBox"> <div class="contentBox">
<div class="content"> <div class="content">
<div style="padding: 20px 15px 20px 23px;"> <div style="padding:8px 20px;">
<span style="float: right;"> <span style="float: right;">
<el-button type="info" @click="addUser">添加新用户</el-button> <el-button type="info" @click="addUser">添加新用户</el-button>
</span> </span>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</div> </div>
<div style="padding: 0 15px 20px 23px;"> <div style="padding: 0 15px 20px 23px;">
<el-table <el-table
height="574" :height="tableHeight"
:data="tableData" :data="tableData"
stripe stripe
border border
...@@ -200,7 +200,8 @@ ...@@ -200,7 +200,8 @@
checkPass:[ checkPass:[
{ validator: validatePass2, trigger: 'change' } { validator: validatePass2, trigger: 'change' }
] ]
} },
tableHeight:window.opsTableHeight
} }
}, },
components:{ components:{
...@@ -263,8 +264,8 @@ ...@@ -263,8 +264,8 @@
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$api.ops.delUser({},row.unid).then(res=>{ this.$api.ops.delUser({},row.user_unid).then(res=>{
if(res.ecode==200){ if(!res.ecode){
this.$message({ this.$message({
type: 'success', type: 'success',
message: '删除成功!' message: '删除成功!'
......
<template> <template>
<div class="contentBox"> <div class="contentBox">
<div class="content"> <div class="content">
<div style="padding: 20px 15px 20px 23px;"> <div style="padding:8px 20px;">
<span class="inputBox"> <span class="inputBox">
<el-input v-model="storename" placeholder="请输入存储配置名称"></el-input> <el-input v-model="storename" placeholder="请输入存储配置名称"></el-input>
</span> </span>
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</div> </div>
<div style="padding: 0 15px 20px 23px;"> <div style="padding: 0 15px 20px 23px;">
<el-table <el-table
height="574" :height="tableHeight"
:data="tableData" :data="tableData"
stripe stripe
border border
...@@ -142,7 +142,8 @@ ...@@ -142,7 +142,8 @@
selectDevs:'', selectDevs:'',
detailVisible:false, detailVisible:false,
storename:'', storename:'',
curentSubList:[] curentSubList:[],
tableHeight:window.opsTableHeight
} }
}, },
components:{ components:{
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<div> <div>
<el-tree <el-tree
class="filter-tree" class="filter-tree"
accordion
:data="treeData" :data="treeData"
:props='defaultProps' :props='defaultProps'
default-expand-all
@node-click="handleNodeClick" @node-click="handleNodeClick"
:expand-on-click-node="false" :expand-on-click-node="false"
:filter-node-method="filterNode" :filter-node-method="filterNode"
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
}, },
methods:{ methods:{
handleNodeClick(data){ handleNodeClick(data){
this.$parent.$parent.getTable(data,'camera') this.$emit('clickHandle',data,'camera');
}, },
nodeDelClick(node,data){ nodeDelClick(node,data){
this.$confirm('此操作将永久删除该选项, 是否继续?', '提示', { this.$confirm('此操作将永久删除该选项, 是否继续?', '提示', {
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<div> <div>
<el-tree <el-tree
class="filter-tree" class="filter-tree"
accordion
:data="treeData" :data="treeData"
:props='defaultProps' :props='defaultProps'
default-expand-all
@node-click="handleNodeClick" @node-click="handleNodeClick"
:expand-on-click-node="false" :expand-on-click-node="false"
:filter-node-method="filterNode" :filter-node-method="filterNode"
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
unid: '0', unid: '0',
org_pid: '0', org_pid: '0',
vchan_name: '手动添加录像资源', vchan_name: '手动添加录像资源',
org_type: 'root', org_type: 'video',
childs: [] childs: []
} }
], ],
...@@ -105,7 +105,9 @@ ...@@ -105,7 +105,9 @@
this.file.push(param.file) this.file.push(param.file)
}, },
handleNodeClick(data){ handleNodeClick(data){
this.$parent.$parent.getVideoTable(data,'video') console.log(data)
this.$emit('clickHandle',data,'video');
// this.$parent.$parent.getVideoTable(data,'video')
}, },
nodeAddClick(node,data){ nodeAddClick(node,data){
this.addVisible=true; this.addVisible=true;
......
<template> <template>
<div class="innnerBox"> <div class="innnerBox">
<el-col :span="4"> <el-row :gutter="12">
<el-col :span="4" class="treeBox minHeight">
<el-input class="search-input" prefix-icon="el-icon-search" placeholder="请输入内容" v-model="searchText"> <el-input class="search-input" prefix-icon="el-icon-search" placeholder="请输入内容" v-model="searchText">
</el-input> </el-input>
<cameraTree :filterText="searchText" :treeDatas="cameraTree"></cameraTree> <cameraTree :filterText="searchText" :treeDatas="cameraTree" @clickHandle="getTable"></cameraTree>
<videoTree :filterText="searchText" :treeDatas="videoTree" :devsId="dev_unid"></videoTree> <videoTree :filterText="searchText" :treeDatas="videoTree" :devsId="dev_unid" @clickHandle="getTable"></videoTree>
</el-col> </el-col>
<el-col :span="20"> <el-col :span="20" >
<el-table :data="formattterData" height="574" stripe border v-if="tableType=='camera'"> <el-table :data="formattterData" stripe border v-if="tableType=='camera'" :height="tableHeight">
<el-table-column prop="label" align="center" label="名称"> <el-table-column prop="label" align="center" label="名称">
</el-table-column> </el-table-column>
<el-table-column prop="url" align="center" label="取流地址"> <el-table-column prop="url" align="center" label="取流地址">
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-table :data="formattterData" height="574" stripe border v-else-if="tableType=='video'"> <el-table :data="formattterData" stripe border v-else-if="tableType=='video'" :height="tableHeight">
<el-table-column prop="vchan_name" align="center" label="名称"> <el-table-column prop="vchan_name" align="center" label="名称">
</el-table-column> </el-table-column>
<el-table-column prop="video_url" align="center" label="取流地址"> <el-table-column prop="video_url" align="center" label="取流地址">
...@@ -47,6 +48,26 @@ ...@@ -47,6 +48,26 @@
</el-table> </el-table>
</el-col> </el-col>
<cameraDialog ref="editCamera"></cameraDialog> <cameraDialog ref="editCamera"></cameraDialog>
<el-dialog
title="修改视频"
:visible.sync="videoEditVisible"
width="450px">
<div>
<el-form label-position="left" label-width="120px" :model="videoEditParam" ref="videoDialog" inline-message hide-required-asterisk>
<el-form-item label="名称" :rules="[ { required: true, message: '请输入名称', trigger: 'change' }]">
<el-input v-model="videoEditParam.vchan_name"></el-input>
</el-form-item>
<el-form-item label="取流地址">
<el-input v-model="videoEditParam.video_url" disabled></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="videoEditVisible=false">取 消</el-button>
<el-button type="primary" @click="editSave">确 定</el-button>
</span>
</el-dialog>
</el-row>
</div> </div>
</template> </template>
<script> <script>
...@@ -70,7 +91,14 @@ ...@@ -70,7 +91,14 @@
dev_unid: sessionStorage.getItem('dev_unid'), dev_unid: sessionStorage.getItem('dev_unid'),
cameraArr:[], cameraArr:[],
cameraTree:[], cameraTree:[],
videoTree:[] videoTree:[],
videoEditParam:{
vchan_name:'',
video_url:''
},
videoEditVisible:false,
vchan_duid:'',
tableHeight:window.videoEquitTableHeight
} }
}, },
watch: { watch: {
...@@ -79,6 +107,7 @@ ...@@ -79,6 +107,7 @@
cameraTree,cameraDialog,videoTree cameraTree,cameraDialog,videoTree
}, },
mounted() { mounted() {
console.log('aa',this.tableHeight)
this.getCameraTree(); this.getCameraTree();
this.getVideoTree(); this.getVideoTree();
}, },
...@@ -193,41 +222,50 @@ ...@@ -193,41 +222,50 @@
getTable(data,type) { getTable(data,type) {
if(data.org_type!="root"){ if(data.org_type!="root"){
this.tableType=type; this.tableType=type;
if(data.org_type){ if(this.tableType=="camera"){
this.tableType=type; if(data.org_type){
this.formattterData = []; this.tableType=type;
let filterData=[]; this.formattterData = [];
let search_params = { let filterData=[];
vchan_type: "camera", let search_params = {
org_unid:data.unid vchan_type: "camera",
} org_unid:data.unid
this.$api.resource.getCameraTable(search_params,this.dev_unid).then((res) => {
if(res.list_data.length > 0) {
for(var i = 0; i < res.list_data.length; i++) {
filterData = this.cameraArr.filter(list => {
return list.id === res.list_data[i].vchan_refid;
})
if(filterData.length > 0) {
this.formattterData.push(filterData[0]);
}
}
} }
}).catch((err) => { this.$api.resource.getCameraTable(search_params,this.dev_unid).then((res) => {
if(res.list_data.length > 0) {
}) for(var i = 0; i < res.list_data.length; i++) {
}else{ filterData = this.cameraArr.filter(list => {
this.formattterData = []; return list.id === res.list_data[i].vchan_refid;
let filterData=[]; })
this.$api.resource.getCameraTable({},this.dev_unid,data.vchan_refid).then((res) => { if(filterData.length > 0) {
filterData = this.cameraArr.filter(list => { this.formattterData.push(filterData[0]);
return list.id === res.refid; }
})
if(filterData.length > 0) {
this.formattterData.push(filterData[0]);
} }
}).catch((err) => { }
}).catch((err) => {
})
})
}else{
this.formattterData = [];
let filterData=[];
this.$api.resource.getCameraTable({},this.dev_unid,data.vchan_refid).then((res) => {
filterData = this.cameraArr.filter(list => {
return list.id === res.refid;
})
if(filterData.length > 0) {
this.formattterData.push(filterData[0]);
}
}).catch((err) => {
})
}
}else if(this.tableType=="video"){
if(data.org_type=='video'){
this.formattterData=data.childs;
}else{
this.formattterData=[];
this.formattterData.push(data)
}
} }
} }
...@@ -242,8 +280,33 @@ ...@@ -242,8 +280,33 @@
this.formattterData.push(data) this.formattterData.push(data)
} }
}, },
editVideo(){ editVideo(index,row){
this.vchan_duid=row.vchan_duid;
this.videoEditParam.vchan_name = row.vchan_name;
this.videoEditParam.video_url = row.video_url;
this.videoEditVisible=true;
},
editSave(){
this.$api.resource.editVideo({
name:this.videoEditParam.vchan_name
},this.dev_unid,this.vchan_duid).then(res=>{
if(res.ecode==200){
this.$message({
type: 'success',
message: res.enote
});
this.getVideoTree();
this.formattterData.forEach(item=>{
if(item.vchan_duid==this.vchan_duid){
item.vchan_name=this.videoEditParam.vchan_name
}
})
}else{
this.$message.error(res.enote);
}
this.videoEditVisible=false;
})
}, },
delVideo(){ delVideo(){
...@@ -252,4 +315,8 @@ ...@@ -252,4 +315,8 @@
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.treeBox{
border: 1px solid #EBEEF5;
padding: 12px;
}
</style> </style>
...@@ -2,6 +2,28 @@ ...@@ -2,6 +2,28 @@
<div class="innnerBox"> <div class="innnerBox">
<el-col :span="22"> <el-col :span="22">
<el-form ref="form" label-width="80px" inline> <el-form ref="form" label-width="80px" inline>
<el-form-item label="任务名称">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.task_id" @change="getSubTask">
<el-option v-for='item in taskList' :value="item.task_id" :key="item.task_id" :label='item.task_name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="视频名称">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id">
<el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="事件分类">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.event_cate" @change="cateChange">
<el-option value="安防事件" label="全部"></el-option>
<el-option v-for='item in cateList' :value="item.code" :key="item.code" :label='item.name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="事件类型"> <el-form-item label="事件类型">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.type"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.type">
...@@ -10,9 +32,9 @@ ...@@ -10,9 +32,9 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="任务名称"> <el-form-item label="组织名称">
<span class="inputBox"> <span class="inputBox">
<el-input placeholder="请输入任务名称" v-model="conditions.task_name"></el-input> <el-input placeholder="请输入组织名称" v-model="conditions.location_code"></el-input>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="起始时间"> <el-form-item label="起始时间">
...@@ -33,71 +55,41 @@ ...@@ -33,71 +55,41 @@
<el-col :span="2"> <el-col :span="2">
<div style="margin-bottom: 6px;padding-top: 3px;"> <div style="margin-bottom: 6px;padding-top: 3px;">
<el-button type="primary" style="" @click="query" class="block">查询</el-button> <el-button type="primary" style="" @click="query" class="block">查询</el-button>
<el-button type="success" class="block" @click="exportFun">导出</el-button> <el-button type="success" class="block compatibleBtn" @click="exportFun">导出</el-button>
</div> </div>
</el-col> </el-col>
<div style=""> <div style="">
<el-table <el-table
:data="formattterData" :data="formattterData"
height="574" :height="tableHeight"
stripe stripe
border border
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column
prop="event_cate"
align="center"
:formatter="cateFormatter"
label="事件分类">
</el-table-column>
<el-table-column <el-table-column
prop="event_type" prop="event_type"
align="center" align="center"
label="事件类型"> label="事件类型">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="task_name" prop="event_data.location.code"
align="center" align="center"
label="任务名称"> label="组织名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center" align="center"
label="地点"> label="抓拍地点">
<template slot-scope="scope" > <template slot-scope="scope" >
<div> <div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data">{{scope.row.event_data.locate_name}}</span> <span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data">{{scope.row.event_data.locate_name}}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
align="center"
label="面积(㎡)">
<template slot-scope="scope" >
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data.area_list">{{scope.row.area_list[0].area}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="人数(个)">
<template slot-scope="scope" >
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data.area_list">{{scope.row.area_list[0].count}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="进入阈值">
<template slot-scope="scope" >
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data.area_list">{{scope.row.area_list[0].max_len}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="离开阈值">
<template slot-scope="scope" >
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data&&scope.row.event_data.area_list">{{scope.row.area_list[0].normal_len}}</span>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="shoot_date" prop="shoot_date"
align="center" align="center"
...@@ -106,51 +98,6 @@ ...@@ -106,51 +98,6 @@
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{scope.row.shoot_date}} {{scope.row.shoot_time}}</span> <span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{scope.row.shoot_date}} {{scope.row.shoot_time}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
align="center"
label="车道号">
<template slot-scope="scope">
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{scope.row.event_data.lane.number}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="方向类型">
<template slot-scope="scope">
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data &&scope.row.event_type !=='jinggaidiushi'&&scope.row.event_type !=='daobantingche'">{{scope.row.direction_text}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="车道类型">
<template slot-scope="scope">
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{scope.row.lane_text}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="事件发生时间">
<template slot-scope="scope">
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{$moment($moment.utc(scope.row.event_data.start_dt).format()).local().format('YYYY-MM-DD HH:mm:ss')}}</span>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="事件结束时间">
<template slot-scope="scope">
<div>
<span v-if="scope.row.event_cate == 'behavior'&&scope.row.event_data">{{$moment($moment.utc(scope.row.event_data.end_dt).format()).local().format('YYYY-MM-DD HH:mm:ss')}}</span>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
label="操作"> label="操作">
...@@ -235,8 +182,10 @@ ...@@ -235,8 +182,10 @@
start_dt:start_dt, start_dt:start_dt,
end_dt:end_dt, end_dt:end_dt,
type: '', type: '',
source_type:'', task_id:'',
task_name:'' subtask_id:'',
location_code:'',
event_cate:'安防事件'
}, },
tableData:[], tableData:[],
formattterData:[], formattterData:[],
...@@ -245,8 +194,12 @@ ...@@ -245,8 +194,12 @@
pageSize:30, pageSize:30,
selectcheck:[], selectcheck:[],
currentIndex:0, currentIndex:0,
cateList:JSON.parse(window.localStorage.getItem('cate列表')),
eventList:JSON.parse(window.localStorage.getItem('安防事件')), eventList:JSON.parse(window.localStorage.getItem('安防事件')),
playurl:'' playurl:'',
taskList:[],
subTaskList:[],
tableHeight:window.twoSearchTableHeight,
} }
}, },
watch:{ watch:{
...@@ -259,19 +212,62 @@ ...@@ -259,19 +212,62 @@
videoDialog videoDialog
}, },
mounted(){ mounted(){
this.getTaskList();
this.getData() this.getData()
}, },
methods:{ methods:{
cateFormatter(row, column, cellValue, index){
let name=''
this.cateList.forEach(item=>{
if(item.code==cellValue){
name=item.name
}
})
return name;
},
getTaskList(){
this.$api.task.getTask({
source_type: "pull_video_stream",
task_type: "normal"
}).then(res=>{
this.taskList=res.list_data;
this.taskList.unshift({
task_id:'',
task_name:'全部'
})
})
},
getSubTask(){
this.conditions.subtask_id=null;
this.$api.task.getSubTask(this.conditions.task_id).then(res => {
this.subTaskList = res.list_data;
if( this.subTaskList.length>0){
this.conditions.subtask_id=this.subTaskList[0].subtask_id
}
})
},
cateChange(){
let name=this.conditions.event_cate;
this.type = '';
this.eventList = JSON.parse(window.localStorage.getItem(name));
},
exportFun(){ exportFun(){
window.open( let cate='';
encodeURI( if(this.conditions.event_cate!='安防事件'){
cate=this.conditions.event_cate
}
let url=
process.env.VUE_APP_URL+ process.env.VUE_APP_URL+
"/api/v1/behavior/events/export?s=" + Math.random()+ "/api/v1/behavior/events/export?s=" + Math.random()+
'&event_dt__gte='+ this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss') + '&event_dt__gte='+ this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss') +
'&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss') + '&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss') +
'&task_name='+this.conditions.task_name+ '&task_id='+this.conditions.task_id+
'&event_type='+this.conditions.type '&subtask_id='+this.conditions.subtask_id+
) '&location_code__like='+this.conditions.location_code ? this.conditions.location_code.replace(/\s\s*/g, '') : this.conditions.location_code+
'&event_type='+this.conditions.type+
'&event_cate='+cate;
window.open(
encodeURI(url)
); );
}, },
leftFun(){ leftFun(){
...@@ -321,11 +317,18 @@ ...@@ -321,11 +317,18 @@
let search_params = { let search_params = {
limit: this.pageSize, limit: this.pageSize,
offset: offset, offset: offset,
task_name: this.conditions.task_name ? this.conditions.task_name.replace(/\s\s*/g, '') : this.conditions.task_name, task_id:this.conditions.task_id,
subtask_id:this.conditions.subtask_id,
location_code__like: this.conditions.location_code ? this.conditions.location_code.replace(/\s\s*/g, '') : this.conditions.location_code,
event_type: this.conditions.type, event_type: this.conditions.type,
event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss') event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')
} }
if(this.conditions.event_cate=="安防事件"){
search_params.event_cate='';
}else{
search_params.event_cate=this.conditions.event_cate;
}
this.$api.search.eventTableList(search_params this.$api.search.eventTableList(search_params
).then((res)=>{ ).then((res)=>{
this.total=res.total_num; this.total=res.total_num;
......
...@@ -2,29 +2,33 @@ ...@@ -2,29 +2,33 @@
<div class="innnerBox"> <div class="innnerBox">
<el-col :span="22"> <el-col :span="22">
<el-form ref="form" label-width="80px" inline> <el-form ref="form" label-width="80px" inline>
<el-form-item label="资源类型"> <el-form-item label="任务名称">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.source_type"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.task_id" @change="getSubTask">
<el-option value="pull_video_stream" label='拉取视频'></el-option> <el-option v-for='item in taskList' :value="item.task_id" :key="item.task_id" :label='item.task_name'></el-option>
<el-option value="pull_pic_files" label='拉取图片'></el-option> </el-select>
</el-select> </span>
</span> </el-form-item>
</el-form-item> <el-form-item label="视频名称">
<el-form-item label="相机名称" > <span class="selectBox">
<span class="inputBox"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id">
<el-input placeholder="请输入相机名称" v-model="conditions.vchan_name"></el-input> <el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option>
</span> </el-select>
</el-form-item> </span>
<el-form-item label="任务名称"> </el-form-item>
<span class="inputBox">
<el-input placeholder="请输入任务名称" v-model="conditions.task_name"></el-input>
</span>
</el-form-item>
<el-form-item label="车牌号码"> <el-form-item label="车牌号码">
<span class="inputBox"> <span class="inputBox">
<el-input placeholder="请输入车牌号码" v-model="conditions.plate"></el-input> <el-input placeholder="请输入车牌号码" v-model="conditions.plate"></el-input>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="车牌类型">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.plate_type" >
<el-option value="" label='全部'></el-option>
<!-- <el-option v-for='item in vehicleTypeList' :value="item.code" :key="item.code" :label='item.name'></el-option> -->
</el-select>
</span>
</el-form-item>
<el-form-item label="车辆类型"> <el-form-item label="车辆类型">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_type" > <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_type" >
...@@ -33,7 +37,7 @@ ...@@ -33,7 +37,7 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="车颜色"> <el-form-item label="车颜色">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_color"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_color">
<el-option value="" label='全部'></el-option> <el-option value="" label='全部'></el-option>
...@@ -41,25 +45,6 @@ ...@@ -41,25 +45,6 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="车辆品牌">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.logo_type">
<el-option value="" label='全部'></el-option>
<el-option v-for='item in brandList' :value="item.code" :key="item.code" :label='item.name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="标志物">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.marker">
<el-option value="" label='全部'></el-option>
<el-option value="0" label='年检标志'></el-option>
<el-option value="1" label='摆件'></el-option>
<el-option value="2" label='吊坠'></el-option>
<el-option value="3" label='遮阳板'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="违法类型"> <el-form-item label="违法类型">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.illegal"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.illegal">
...@@ -68,14 +53,6 @@ ...@@ -68,14 +53,6 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="危险品车">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.is_key_vehicle">
<el-option :value="false" label='否'></el-option>
<el-option :value="true" label='是'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="起始时间"> <el-form-item label="起始时间">
<span class="dateBox"> <span class="dateBox">
...@@ -95,7 +72,7 @@ ...@@ -95,7 +72,7 @@
<el-col :span="2"> <el-col :span="2">
<div style="margin-bottom: 6px;padding-top: 3px;"> <div style="margin-bottom: 6px;padding-top: 3px;">
<el-button type="primary" style="" @click="query" class="block">查询</el-button> <el-button type="primary" style="" @click="query" class="block">查询</el-button>
<el-button type="success" class="block" @click="exportFun">导出</el-button> <el-button type="success" class="block compatibleBtn" @click="exportFun">导出</el-button>
</div> </div>
<div> <div>
<el-button type="success" class="block" @click="batchdel">批量删除</el-button> <el-button type="success" class="block" @click="batchdel">批量删除</el-button>
...@@ -104,7 +81,7 @@ ...@@ -104,7 +81,7 @@
<div style=""> <div style="">
<el-table <el-table
:data="formattterData" :data="formattterData"
height="574" :height="tableHeight"
stripe stripe
border border
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
...@@ -277,16 +254,15 @@ ...@@ -277,16 +254,15 @@
conditions: { conditions: {
start_dt:start_dt, start_dt:start_dt,
end_dt:end_dt, end_dt:end_dt,
source_type: 'pull_video_stream', task_id:'',
marker: '', subtask_id:'',
plate:'',
plate_type:'',
car_type: '', car_type: '',
car_color: '', car_color: '',
logo_type: '', illegal:'all',
plate:'', source_type: 'pull_video_stream',
task_name:'', is_key_vehicle:false,
vchan_name:'',
illegal:'all',
is_key_vehicle:false,
}, },
brandList:this.$buildCode.getCodeList('车辆品牌'), brandList:this.$buildCode.getCodeList('车辆品牌'),
vehicleTypeList:this.$buildCode.getCodeList('车辆类型'), vehicleTypeList:this.$buildCode.getCodeList('车辆类型'),
...@@ -298,7 +274,10 @@ ...@@ -298,7 +274,10 @@
page:1, page:1,
pageSize:30, pageSize:30,
selectcheck:[], selectcheck:[],
currentIndex:0 currentIndex:0,
taskList:[],
subTaskList:[],
tableHeight:window.twoSearchTableHeight,
} }
}, },
watch:{ watch:{
...@@ -309,9 +288,31 @@ ...@@ -309,9 +288,31 @@
}, },
components:{}, components:{},
mounted(){ mounted(){
this.getTaskList();
this.getData() this.getData()
}, },
methods:{ methods:{
getTaskList(){
this.$api.task.getTask({
source_type: "pull_video_stream",
task_type: "normal"
}).then(res=>{
this.taskList=res.list_data;
this.taskList.unshift({
task_id:'',
task_name:'全部'
})
})
},
getSubTask(){
this.conditions.subtask_id=null;
this.$api.task.getSubTask(this.conditions.task_id).then(res => {
this.subTaskList = res.list_data;
if( this.subTaskList.length>0){
this.conditions.subtask_id=this.subTaskList[0].subtask_id
}
})
},
playFun(index,row){ playFun(index,row){
if(!row.video) { if(!row.video) {
return return
...@@ -328,13 +329,12 @@ ...@@ -328,13 +329,12 @@
'&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+ '&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+
'&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+ '&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+
'&source_type='+this.conditions.source_type+ '&source_type='+this.conditions.source_type+
'&vchan_name__like='+this.conditions.vchan_name+ '&task_id='+this.conditions.task_id+
'&subtask_id='+this.conditions.subtask_id+
'&plate_number__like='+this.conditions.plate+
'&plate_type='+this.conditions.plate_type+
'&vehicle_type='+this.conditions.car_type+ '&vehicle_type='+this.conditions.car_type+
'&body_color='+this.conditions.car_color+ '&body_color='+this.conditions.car_color+
'&logo_type='+this.conditions.logo_type+
'&plate_number__like='+this.conditions.plate+
'&marker='+this.conditions.marker+
'&task_name='+this.conditions.task_name+
'&is_key_vehicle='+this.conditions.is_key_vehicle+ '&is_key_vehicle='+this.conditions.is_key_vehicle+
'&illegal_code='+this.conditions.illegal)) '&illegal_code='+this.conditions.illegal))
}, },
...@@ -418,17 +418,16 @@ ...@@ -418,17 +418,16 @@
offset: offset, offset: offset,
event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
source_type: this.conditions.source_type, task_id:this.conditions.task_id,
vchan_name__like: this.conditions.vchan_name, subtask_id:this.conditions.subtask_id,
plate_number__like: this.conditions.plate,
plate_type:this.conditions.plate_type,
vehicle_type: this.conditions.car_type, vehicle_type: this.conditions.car_type,
body_color: this.conditions.car_color, body_color: this.conditions.car_color,
logo_type: this.conditions.logo_type,
plate_number__like: this.conditions.plate,
marker: this.conditions.marker,
illegal_code:this.conditions.illegal, illegal_code:this.conditions.illegal,
source_type: this.conditions.source_type,
is_key_vehicle:this.conditions.is_key_vehicle, is_key_vehicle:this.conditions.is_key_vehicle,
event_type: '', event_type: '',
task_name: this.conditions.task_name ? this.conditions.task_name.replace(/\s\s*/g, '') : this.conditions.task_name
} }
this.$api.search.tableList(search_params this.$api.search.tableList(search_params
).then((res)=>{ ).then((res)=>{
......
...@@ -2,7 +2,21 @@ ...@@ -2,7 +2,21 @@
<div class="innnerBox"> <div class="innnerBox">
<el-col :span="22"> <el-col :span="22">
<el-form ref="form" label-width="80px" inline> <el-form ref="form" label-width="80px" inline>
<el-form-item label="地点名称"> <el-form-item label="任务名称">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.task_id" @change="getSubTask">
<el-option v-for='item in taskList' :value="item.task_id" :key="item.task_id" :label='item.task_name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="视频名称">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id">
<el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option>
</el-select>
</span>
</el-form-item>
<!-- <el-form-item label="地点名称">
<span class="inputBox"> <span class="inputBox">
<el-input placeholder="请输入地点名称" v-model="conditions.location_name"></el-input> <el-input placeholder="请输入地点名称" v-model="conditions.location_name"></el-input>
</span> </span>
...@@ -11,7 +25,7 @@ ...@@ -11,7 +25,7 @@
<span class="inputBox"> <span class="inputBox">
<el-input placeholder="请输入相机名称" v-model="conditions.device_name"></el-input> <el-input placeholder="请输入相机名称" v-model="conditions.device_name"></el-input>
</span> </span>
</el-form-item> </el-form-item> -->
<el-form-item label="检测类型"> <el-form-item label="检测类型">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.detection_type"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.detection_type">
...@@ -49,13 +63,13 @@ ...@@ -49,13 +63,13 @@
<el-col :span="2"> <el-col :span="2">
<div style="margin-bottom: 6px;padding-top: 3px;"> <div style="margin-bottom: 6px;padding-top: 3px;">
<el-button type="primary" style="" @click="query" class="block">查询</el-button> <el-button type="primary" style="" @click="query" class="block">查询</el-button>
<el-button type="success" class="block" @click="exportFun">导出</el-button> <el-button type="success" class="block compatibleBtn" @click="exportFun">导出</el-button>
</div> </div>
</el-col> </el-col>
<div style=""> <div style="">
<el-table <el-table
:data="formattterData" :data="formattterData"
height="574" :height="tableHeight"
stripe stripe
border> border>
<el-table-column <el-table-column
...@@ -64,9 +78,9 @@ ...@@ -64,9 +78,9 @@
label="时间"> label="时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="device_name" prop="location_name"
align="center" align="center"
label="相机名称"> label="地点名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="detection_type" prop="detection_type"
...@@ -80,7 +94,7 @@ ...@@ -80,7 +94,7 @@
align="center" align="center"
label="车道"> label="车道">
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
v-if="conditions.statistic_type =='device'" v-if="conditions.statistic_type =='device'"
prop="direction" prop="direction"
align="center" align="center"
...@@ -90,7 +104,7 @@ ...@@ -90,7 +104,7 @@
{{scope.row.direction == 1?"来向":(scope.row.direction == 2?"去向":"来向")}} {{scope.row.direction == 1?"来向":(scope.row.direction == 2?"去向":"来向")}}
</div> </div>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
align="center" align="center"
label="平均速度(km/h)"> label="平均速度(km/h)">
...@@ -169,8 +183,8 @@ ...@@ -169,8 +183,8 @@
conditions: { conditions: {
start_dt:start_dt, start_dt:start_dt,
end_dt:end_dt, end_dt:end_dt,
location_name: '', task_id: '',
device_name: '', subtask_id: '',
detection_type: '', detection_type: '',
statistic_type: 'road' statistic_type: 'road'
}, },
...@@ -178,6 +192,9 @@ ...@@ -178,6 +192,9 @@
total:0, total:0,
page:1, page:1,
pageSize:30, pageSize:30,
taskList:[],
subTaskList:[],
tableHeight:window.oneSearchTableHeight
} }
}, },
watch:{ watch:{
...@@ -188,9 +205,31 @@ ...@@ -188,9 +205,31 @@
}, },
components:{}, components:{},
mounted(){ mounted(){
this.getData() this.getData();
this.getTaskList();
}, },
methods:{ methods:{
getTaskList(){
this.$api.task.getTask({
source_type: "pull_video_stream",
task_type: "normal"
}).then(res=>{
this.taskList=res.list_data;
this.taskList.unshift({
task_id:'',
task_name:'全部'
})
})
},
getSubTask(){
this.conditions.subtask_id=null;
this.$api.task.getSubTask(this.conditions.task_id).then(res => {
this.subTaskList = res.list_data;
if( this.subTaskList.length>0){
this.conditions.subtask_id=this.subTaskList[0].subtask_id
}
})
},
typeFormatter(row, column, cellValue, index){ typeFormatter(row, column, cellValue, index){
let codename = ''; let codename = '';
switch(cellValue){ switch(cellValue){
...@@ -216,8 +255,8 @@ ...@@ -216,8 +255,8 @@
process.env.VUE_APP_URL + '/api/v1/traffic/flow/statistics/export?s=' + Math.random()+ process.env.VUE_APP_URL + '/api/v1/traffic/flow/statistics/export?s=' + Math.random()+
'&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+ '&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+
'&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+ '&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+
'&location_name='+this.conditions.location_name+ '&task_id='+this.conditions.task_id+
'&device_name='+this.conditions.device_name+ '&subtask_id='+this.conditions.subtask_id+
'&statistic_type='+this.conditions.statistic_type '&statistic_type='+this.conditions.statistic_type
)) ))
}, },
...@@ -240,8 +279,8 @@ ...@@ -240,8 +279,8 @@
offset: offset, offset: offset,
event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
location_name: this.conditions.location_name, task_id: this.conditions.task_id,
device_name: this.conditions.device_name, subtask_id: this.conditions.subtask_id,
detection_type: this.conditions.detection_type, detection_type: this.conditions.detection_type,
statistic_type: this.conditions.statistic_type statistic_type: this.conditions.statistic_type
} }
......
...@@ -11,15 +11,19 @@ ...@@ -11,15 +11,19 @@
</span> </span>
</el-form-item> --> </el-form-item> -->
<el-form-item label="任务名称"> <el-form-item label="任务名称">
<span class="inputBox"> <span class="selectBox">
<el-input placeholder="请输入任务名称" v-model="conditions.task_name"></el-input> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.task_id" @change="getSubTask">
</span> <el-option v-for='item in taskList' :value="item.task_id" :key="item.task_id" :label='item.task_name'></el-option>
</el-select>
</span>
</el-form-item>
<el-form-item label="视频名称">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id">
<el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option>
</el-select>
</span>
</el-form-item> </el-form-item>
<el-form-item label="视频名称" >
<span class="inputBox">
<el-input placeholder="请输入视频名称" v-model="conditions.vchan_name"></el-input>
</span>
</el-form-item>
<el-form-item label="车牌号码"> <el-form-item label="车牌号码">
<span class="inputBox"> <span class="inputBox">
...@@ -42,7 +46,7 @@ ...@@ -42,7 +46,7 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="车颜色"> <el-form-item label="车颜色">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_color"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.car_color">
<el-option value="" label='全部'></el-option> <el-option value="" label='全部'></el-option>
...@@ -50,14 +54,14 @@ ...@@ -50,14 +54,14 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="车辆品牌"> <!-- <el-form-item label="车辆品牌">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.logo_type"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.logo_type">
<el-option value="" label='全部'></el-option> <el-option value="" label='全部'></el-option>
<el-option v-for='item in brandList' :value="item.code" :key="item.code" :label='item.name'></el-option> <el-option v-for='item in brandList' :value="item.code" :key="item.code" :label='item.name'></el-option>
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item> -->
<!-- <el-form-item label="标志物"> <!-- <el-form-item label="标志物">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.marker"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.marker">
...@@ -98,7 +102,7 @@ ...@@ -98,7 +102,7 @@
<el-col :span="2"> <el-col :span="2">
<div style="margin-bottom: 6px;padding-top: 3px;"> <div style="margin-bottom: 6px;padding-top: 3px;">
<el-button type="primary" style="" @click="query" class="block">查询</el-button> <el-button type="primary" style="" @click="query" class="block">查询</el-button>
<el-button type="success" class="block" @click="exportFun">导出</el-button> <el-button type="success" class="block compatibleBtn" @click="exportFun">导出</el-button>
</div> </div>
<div> <div>
<el-button type="success" class="block" @click="batchdel">批量删除</el-button> <el-button type="success" class="block" @click="batchdel">批量删除</el-button>
...@@ -107,7 +111,7 @@ ...@@ -107,7 +111,7 @@
<div style=""> <div style="">
<el-table <el-table
:data="formattterData" :data="formattterData"
height="574" :height="tableHeight"
stripe stripe
border border
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
...@@ -280,9 +284,9 @@ ...@@ -280,9 +284,9 @@
car_color: '', car_color: '',
logo_type: '', logo_type: '',
plate:'', plate:'',
task_name:'', task_id:'',
curdelid:'', curdelid:'',
vchan_name:'', subtask_name:'',
special_type:'' special_type:''
}, },
brandList:this.$buildCode.getCodeList('车辆品牌'), brandList:this.$buildCode.getCodeList('车辆品牌'),
...@@ -294,7 +298,10 @@ ...@@ -294,7 +298,10 @@
page:1, page:1,
pageSize:30, pageSize:30,
selectcheck:[], selectcheck:[],
currentIndex:0 currentIndex:0,
taskList:[],
subTaskList:[],
tableHeight:window.twoSearchTableHeight,
} }
}, },
watch:{ watch:{
...@@ -306,10 +313,32 @@ ...@@ -306,10 +313,32 @@
components:{}, components:{},
mounted(){ mounted(){
this.getData() this.getData()
this.getTaskList();
}, },
methods:{ methods:{
getTaskList(){
this.$api.task.getTask({
source_type: "pull_video_stream",
task_type: "normal"
}).then(res=>{
this.taskList=res.list_data;
this.taskList.unshift({
task_id:'',
task_name:'全部'
})
})
},
getSubTask(){
this.conditions.subtask_id=null;
this.$api.task.getSubTask(this.conditions.task_id).then(res => {
this.subTaskList = res.list_data;
if( this.subTaskList.length>0){
this.conditions.subtask_id=this.subTaskList[0].subtask_id
}
})
},
exportFun(){ exportFun(){
window.open(encodeURI(process.env.VUE_APP_URL + '/api/v1/traffic/events/export?s=' + Math.random()+'&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+'&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+'&vchan_name__like='+this.conditions.vchan_name+'&vehicle_type='+this.conditions.car_type+'&body_color='+this.conditions.car_color+'&logo_type='+this.conditions.logo_type+'&plate_number__like='+this.conditions.plate+'&task_name='+this.conditions.task_name+'&special_type='+this.conditions.special_type)) window.open(encodeURI(process.env.VUE_APP_URL + '/api/v1/traffic/events/export?s=' + Math.random()+'&event_type=&event_dt__gte='+this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss')+'&event_dt__lt='+this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss')+'&subtask_name='+this.conditions.subtask_name+'&vehicle_type='+this.conditions.car_type+'&body_color='+this.conditions.car_color+'&logo_type='+this.conditions.logo_type+'&plate_number__like='+this.conditions.plate+'&task_id='+this.conditions.task_id+'&special_type='+this.conditions.special_type))
}, },
batchdel(){ batchdel(){
if(this.selectcheck.length==0){ if(this.selectcheck.length==0){
...@@ -392,7 +421,7 @@ ...@@ -392,7 +421,7 @@
event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__gte: this.$moment(this.conditions.start_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'), event_dt__lt:this.$moment(this.conditions.end_dt).utc().format('YYYY-MM-DD HH:mm:ss'),
// source_type: this.conditions.source_type, // source_type: this.conditions.source_type,
vchan_name__like: this.conditions.vchan_name, subtask_name: this.conditions.subtask_name,
vehicle_type: this.conditions.car_type, vehicle_type: this.conditions.car_type,
body_color: this.conditions.car_color, body_color: this.conditions.car_color,
logo_type: this.conditions.logo_type, logo_type: this.conditions.logo_type,
...@@ -401,7 +430,7 @@ ...@@ -401,7 +430,7 @@
plate_type: this.conditions.plate_type, plate_type: this.conditions.plate_type,
event_type: '', event_type: '',
special_type:this.conditions.special_type, special_type:this.conditions.special_type,
task_name: this.conditions.task_name ? this.conditions.task_name.replace(/\s\s*/g, '') : this.conditions.task_name task_id: this.conditions.task_id
} }
this.$api.search.tableList(search_params this.$api.search.tableList(search_params
).then((res)=>{ ).then((res)=>{
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="相机名称"> <el-form-item label="视频名称">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.subtask_id">
<el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option> <el-option v-for='item in subTaskList' :value="item.subtask_id" :key="item.subtask_id" :label='item.subtask_name'></el-option>
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<el-input placeholder="请输入抓拍地点" v-model="conditions.location_name"></el-input> <el-input placeholder="请输入抓拍地点" v-model="conditions.location_name"></el-input>
</span> </span>
</el-form-item> --> </el-form-item> -->
<el-form-item label="类型"> <el-form-item label="检索对象">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.event_type" @change="typeChange"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.event_type" @change="typeChange">
<el-option value="xcycle" label="非机动车"></el-option> <el-option value="xcycle" label="非机动车"></el-option>
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</el-select> </el-select>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="检索类型" > <el-form-item label="对象类型" >
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.xcycle_type"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.xcycle_type">
<el-option value="" label='全部'></el-option> <el-option value="" label='全部'></el-option>
...@@ -52,10 +52,20 @@ ...@@ -52,10 +52,20 @@
</el-form-item> </el-form-item>
<el-form-item label="运营公司"> <el-form-item label="运营公司">
<span class="inputBox"> <span class="inputBox">
<el-input placeholder="请输入任务名称" v-model="conditions.company"></el-input> <el-input placeholder="请输入公司名称" v-model="conditions.company"></el-input>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="上身颜色"> <el-form-item label="是否带盔">
<span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.with_hats">
<el-option value="" label='全部'></el-option>
<el-option :value="0" :key="0" label='不确定'></el-option>
<el-option :value="1" :key="1" label='带盔'></el-option>
<el-option :value="2" :key="2" label='未带盔'></el-option>
</el-select>
</span>
</el-form-item>
<!-- <el-form-item label="上身颜色">
<span class="selectBox"> <span class="selectBox">
<el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.upbodyColor"> <el-select placeholder="请选择" :popper-append-to-body=false v-model="conditions.upbodyColor">
<el-option value="" label='全部'></el-option> <el-option value="" label='全部'></el-option>
...@@ -70,6 +80,11 @@ ...@@ -70,6 +80,11 @@
<el-option v-for='item in bodyColorList' :value="item.value" :key="item.value" :label='item.label'></el-option> <el-option v-for='item in bodyColorList' :value="item.value" :key="item.value" :label='item.label'></el-option>
</el-select> </el-select>
</span> </span>
</el-form-item> -->
<el-form-item label="车牌号码" >
<span class="inputBox">
<el-input placeholder="请输入车牌号码" v-model="conditions.plate"></el-input>
</span>
</el-form-item> </el-form-item>
<el-form-item label="起始时间"> <el-form-item label="起始时间">
<span class="dateBox"> <span class="dateBox">
...@@ -89,7 +104,7 @@ ...@@ -89,7 +104,7 @@
<el-col :span="2"> <el-col :span="2">
<div style="margin-bottom: 6px;padding-top: 3px;"> <div style="margin-bottom: 6px;padding-top: 3px;">
<el-button type="primary" style="" @click="query" class="block">查询</el-button> <el-button type="primary" style="" @click="query" class="block">查询</el-button>
<el-button type="success" class="block" @click="exportFun">导出</el-button> <el-button type="success" class="block compatibleBtn" @click="exportFun">导出</el-button>
</div> </div>
<div> <div>
<el-button type="success" class="block" @click="batchdel">批量删除</el-button> <el-button type="success" class="block" @click="batchdel">批量删除</el-button>
...@@ -98,7 +113,7 @@ ...@@ -98,7 +113,7 @@
<div style=""> <div style="">
<el-table <el-table
:data="formattterData" :data="formattterData"
height="574" :height="tableHeight"
stripe stripe
border border
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
...@@ -118,14 +133,14 @@ ...@@ -118,14 +133,14 @@
label="性别"> label="性别">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="driver_face_upbody_text" prop="driver_face_with_hats"
align="center" align="center"
label="上身颜色"> label="是否带盔">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="driver_face_lobody_text" prop="xcycle_plate_text"
align="center" align="center"
label="下身颜色"> label="车牌号码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="company" prop="company"
...@@ -270,8 +285,8 @@ ...@@ -270,8 +285,8 @@
xcycle_type:'', xcycle_type:'',
sex:'', sex:'',
company:'', company:'',
upbodyColor:'', with_hats:'',
lobodyColor:'' plate:''
}, },
brandList:this.$buildCode.getCodeList('车辆品牌'), brandList:this.$buildCode.getCodeList('车辆品牌'),
vehicleTypeList:this.$buildCode.getCodeList('车辆类型'), vehicleTypeList:this.$buildCode.getCodeList('车辆类型'),
...@@ -284,7 +299,8 @@ ...@@ -284,7 +299,8 @@
selectcheck:[], selectcheck:[],
currentIndex:0, currentIndex:0,
taskList:[], taskList:[],
subTaskList:[] subTaskList:[],
tableHeight:window.twoSearchTableHeight,
} }
}, },
watch:{ watch:{
...@@ -304,7 +320,11 @@ ...@@ -304,7 +320,11 @@
source_type: "pull_video_stream", source_type: "pull_video_stream",
task_type: "normal" task_type: "normal"
}).then(res=>{ }).then(res=>{
this.taskList=res.list_data; this.taskList=res.list_data;
this.taskList.unshift({
task_id:'',
task_name:'全部'
})
}) })
}, },
getSubTask(){ getSubTask(){
...@@ -341,10 +361,10 @@ ...@@ -341,10 +361,10 @@
this.conditions.subtask_id + this.conditions.subtask_id +
"&company_like=" + "&company_like=" +
this.conditions.company + this.conditions.company +
"&upbodyColor=" + "&with_hats=" +
this.conditions.upbodyColor + this.conditions.with_hats +
"&lobodyColor=" + "&plate_number__like=" +
this.conditions.lobodyColor this.conditions.plate
}else{ }else{
url = process.env.VUE_APP_URL+ url = process.env.VUE_APP_URL+
"/api/v1/traffic/events/export?s=" + "/api/v1/traffic/events/export?s=" +
...@@ -363,10 +383,10 @@ ...@@ -363,10 +383,10 @@
this.conditions.subtask_id + this.conditions.subtask_id +
"&company_like=" + "&company_like=" +
this.conditions.company + this.conditions.company +
"&upbodyColor=" + "&with_hats=" +
this.conditions.upbodyColor + this.conditions.with_hats +
"&lobodyColor=" + "&plate_number__like=" +
this.conditions.lobodyColor this.conditions.plate
} }
window.open( window.open(
encodeURI(url) encodeURI(url)
...@@ -457,8 +477,8 @@ ...@@ -457,8 +477,8 @@
event_type: this.conditions.event_type, event_type: this.conditions.event_type,
sex: this.conditions.sex, sex: this.conditions.sex,
company_like:this.conditions.company, company_like:this.conditions.company,
upbodyColor: this.conditions.upbodyColor, with_hats: this.conditions.with_hats,
lobodyColor: this.conditions.lobodyColor plate_number__like: this.conditions.plate
} }
if( this.conditions.event_type=='xcycle'){ if( this.conditions.event_type=='xcycle'){
search_params.xcycle_type=this.conditions.xcycle_type; search_params.xcycle_type=this.conditions.xcycle_type;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!