From 4f7f16803ab5ed7b8a8a0dc087792d9b2fcefe2b Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期三, 15 六月 2022 14:39:15 +0800
Subject: [PATCH] 统计查询
---
src/views/search/components/imgDown.vue | 147 ++++++++++++------------
src/views/search/index.vue | 91 ++++++++++++++
src/views/search/components/ModelCard.vue | 12 +-
src/views/search/components/wasmPlayer/index.vue | 4
src/views/search/components/UploadImg.vue | 6
src/views/search/Searching.vue | 34 ++++-
src/views/search/components/CardItem.vue | 2
src/Pool/VideoPhotoData.ts | 11 +
8 files changed, 209 insertions(+), 98 deletions(-)
diff --git a/src/Pool/VideoPhotoData.ts b/src/Pool/VideoPhotoData.ts
index e73e50d..db514fd 100644
--- a/src/Pool/VideoPhotoData.ts
+++ b/src/Pool/VideoPhotoData.ts
@@ -82,7 +82,8 @@
inputValue: this.inputValue,
tabs: this.queryTabs,
tasks: this.queryTasks,
- treeNodes: this.treeNodes
+ treeNodes: this.treeNodes,
+ dataSource: "camera"
}
if (this.searchFrom == 'cluster') {
param.isAll = true
@@ -225,20 +226,20 @@
this.tabsForUploadImg.splice(0, this.tabsForUploadImg.length)
if (rsp && rsp.success) {
var arr1 = new Array
- arr1 = rsp.data.filter(i => {
+ arr1 = rsp.data&&rsp.data.tags.filter(i => {
if (i.status === 1) {
i.title = i.title + '(宸插垹闄�)'
return i
}
});
- this.tabs = rsp.data.filter(function (i) {
+ this.tabs = rsp.data&&rsp.data.tags.filter(function (i) {
if (i.status !== 1) {
return i
}
})
this.tabs.push(...arr1)
this.tabsForUploadImg.push({ key: "esData", title: "鎶撴媿搴�" });
- rsp.data.forEach(element => {
+ rsp.data.tags.forEach(element => {
this.tabsForUploadImg.push(element as any);
});
// 鏀剧疆榛戠櫧鍚嶅崟 0涓虹櫧鍚嶅崟
@@ -246,7 +247,7 @@
this.whiteList.length = 0
var josn = JSON.stringify(rsp)
var resp = JSON.parse(josn)
- resp.data.forEach(i => {
+ resp.data.tags.forEach(i => {
if (i.status === 0 && i.bwType === "0") { //鐧藉悕鍗�
if (i.analyServerId === "") { //鍚屾搴�
i.title = i.title + '(鍚屾搴�)'
diff --git a/src/views/search/Searching.vue b/src/views/search/Searching.vue
index f9bd1de..eb7d71d 100644
--- a/src/views/search/Searching.vue
+++ b/src/views/search/Searching.vue
@@ -37,7 +37,7 @@
"
></el-button>
</el-tooltip>
- <p class="p-label" style="width: 16%">
+ <!-- <p class="p-label" style="width: 16%">
<b>鏍囩锛�</b>
<el-select
v-model="tagValues"
@@ -58,7 +58,7 @@
:title="item.title"
></el-option>
</el-select>
- </p>
+ </p> -->
<p class="p-task" style="width: 16%">
<b>鍦烘櫙锛�</b>
<el-select
@@ -318,15 +318,16 @@
this.TreeDataPool.gbReadonly = true;
this.TreeDataPool.multiple = true;
this.TreeDataPool.clean();
- this.TreeDataPool.fetchTreeData();
},
mounted() {
this.$nextTick(() => {
let scrollContain = this.$refs.scrollContain;
this.VideoPhotoData.scrollContainDom = scrollContain;
- let list = this.TreeDataPool.localVedioList.filter((i) => {
- return i.progress == 100;
- });
+ let list =
+ this.TreeDataPool.localVedioList &&
+ this.TreeDataPool.localVedioList.filter((i) => {
+ return i.progress == 100;
+ });
this.TreeDataPool.localVedioList = list;
});
window.addEventListener("resize", this.getHeight);
@@ -665,12 +666,18 @@
];
},
format(array) {
+ if (!array || array.length === 0) {
+ return [];
+ }
return [
this.$moment(array[0]).format("YYYY-MM-DD HH:mm:ss"),
this.$moment(array[1]).format("YYYY-MM-DD HH:mm:ss"),
];
},
searchingBtn() {
+ if (!this.searchTime) {
+ this.searchTime = [];
+ }
// let obj = document.getElementById('searchMid');
// let load = this.$loading({
// target:obj,
@@ -682,23 +689,35 @@
//澶勭悊鎼滅储绫诲瀷
var tempArr = this.taskValues.map((task) => task.split(","));
var tasks = [];
+ console.log("1");
+
tempArr.forEach((arr) => {
tasks = tasks.concat(arr);
});
this.VideoPhotoData.queryTasks = tasks;
+ console.log("2");
this.VideoPhotoData.queryAlarmlevel = this.stringToNum();
+ console.log("3");
+ console.log(this.searchTime);
+
this.VideoPhotoData.searchTime = this.format(this.searchTime);
+ console.log(this.VideoPhotoData.searchTime);
+
//this.VideoPhotoData.inputValue = this.searchText;
this.VideoPhotoData.showType = this.showType;
if (!this.VideoPhotoData.uploadType) {
this.VideoPhotoData.uploadDiaplay = false;
//this.VideoPhotoData.page = this.currentPage;
// this.VideoPhotoData.querySearchList();
+ console.log("4");
+
this.setLoadSearch(this.VideoPhotoData.querySearchList());
} else {
//this.VideoPhotoData.page = this.currentPage;
// this.VideoPhotoData.findPersonByPage();
+ console.log("5");
+
this.setLoadSearch(this.VideoPhotoData.findPersonByPage());
}
},
@@ -769,6 +788,9 @@
this.VideoPhotoData.queryAlarmlevel = [];
this.VideoPhotoData.searchTime = this.getDateInit();
this.VideoPhotoData.inputValue = "";
+
+ console.log(this.searchTime);
+
this.searchTime = this.getDateInit();
if (!this.VideoPhotoData.uploadType) {
// this.VideoPhotoData.querySearchList();
diff --git a/src/views/search/components/CardItem.vue b/src/views/search/components/CardItem.vue
index f192109..44f2365 100644
--- a/src/views/search/components/CardItem.vue
+++ b/src/views/search/components/CardItem.vue
@@ -733,7 +733,7 @@
return "";
}
return (
- "/httpImage/" + url + (url.indexOf("?") >= 0 ? "&" : "?") + "width=160"
+ "http://" + url + (url.indexOf("?") >= 0 ? "&" : "?") + "width=160"
);
},
},
diff --git a/src/views/search/components/ModelCard.vue b/src/views/search/components/ModelCard.vue
index f13d2c2..c96ab47 100644
--- a/src/views/search/components/ModelCard.vue
+++ b/src/views/search/components/ModelCard.vue
@@ -170,7 +170,7 @@
ref="picSmBox"
>
<div class="card-img-box-compear-left">
- <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" ref="picSm" /> -->
+ <!-- <img :src="'http://'+data.targetInfo[0].picSmUrl" ref="picSm" /> -->
<img-down
:url="data.targetInfo[0].picSmUrl"
:isPreview="false"
@@ -189,7 +189,7 @@
v-for="(item, index) in data.baseInfo"
:key="index"
>
- <!-- <img :src="'/httpImage/'+item.targetPicUrl" /> -->
+ <!-- <img :src="'http://'+item.targetPicUrl" /> -->
<img-down
:url="item.targetPicUrl"
:isPreview="false"
@@ -217,7 +217,7 @@
class="card-img-box-compear-left"
style="width: 60%; margin-top: 5px"
>
- <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" /> -->
+ <!-- <img :src="'http://'+data.targetInfo[0].picSmUrl" /> -->
<img-down
:url="data.targetInfo[0].picSmUrl"
:isPreview="false"
@@ -287,7 +287,7 @@
>
<div class="img-box">
<!-- <video
- :src="'/httpImage/' + data.videoUrl"
+ :src="'http://' + data.videoUrl"
controls
style="margin-top: 12px;"
>
@@ -336,7 +336,7 @@
v-for="(item, index) in data.baseInfo"
:key="index"
>
- <!-- <img :src="'/httpImage/'+item.targetPicUrl" /> -->
+ <!-- <img :src="'http://'+item.targetPicUrl" /> -->
<img-down
:url="item.targetPicUrl"
:isPreview="false"
@@ -361,7 +361,7 @@
class="card-img-box-compear-left"
style="width: 60%; margin-top: 5px"
>
- <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" /> -->
+ <!-- <img :src="'http://'+data.targetInfo[0].picSmUrl" /> -->
<img-down
:url="data.targetInfo[0].picSmUrl"
:isPreview="false"
diff --git a/src/views/search/components/UploadImg.vue b/src/views/search/components/UploadImg.vue
index a802d14..f89927b 100644
--- a/src/views/search/components/UploadImg.vue
+++ b/src/views/search/components/UploadImg.vue
@@ -30,7 +30,7 @@
</p>
<div class="upload-img-box">
<img
- :src="'/httpImage/' + tempUploadImg"
+ :src="'http://' + tempUploadImg"
alt="涓存椂娴嬭瘯"
v-show="!displayUpload"
class="bigPhoto"
@@ -88,7 +88,7 @@
:key="index"
>
<img
- :src="item ? '/httpImage/' + item : tempImg"
+ :src="item ? 'http://' + item : tempImg"
@click="selected($event, index)"
style="max-height: 100%"
:style="index == clickNum ? 'border:1px solid #FF7733' : ''"
@@ -255,7 +255,7 @@
console.log("鍒囧浘杩斿洖锛�", res);
if (res.success) {
document.querySelector(".el-upload-list").querySelector("img").src =
- "/httpImage/" + res.data.uploadImage;
+ "http://" + res.data.uploadImage;
this.resReady = true;
this.realSmallPath = res.data.smImage;
this.VideoPhotoData.isHaveRealSmallImg =
diff --git a/src/views/search/components/imgDown.vue b/src/views/search/components/imgDown.vue
index bef240a..6382bb8 100644
--- a/src/views/search/components/imgDown.vue
+++ b/src/views/search/components/imgDown.vue
@@ -1,97 +1,98 @@
<template>
- <div class="imgBox">
- <img
- :src="'/httpImage/'+url"
- class="cursor-pointer"
- v-if="isPreview"
- preview
- />
- <img
- :src="'/httpImage/'+url"
- v-if="!isPreview"
- />
- <el-button class="btn" @click="downloadIamge('/httpImage/'+url)">
- <i class="iconfont iconxiazai"></i>
- </el-button>
- </div>
+ <div class="imgBox">
+ <img
+ :src="'http://' + url"
+ class="cursor-pointer"
+ v-if="isPreview"
+ preview
+ />
+ <img :src="'http://' + url" v-if="!isPreview" />
+ <el-button class="btn" @click="downloadIamge('http://' + url)">
+ <i class="iconfont iconxiazai"></i>
+ </el-button>
+ </div>
</template>
<script>
-import axios from "axios"
+import axios from "axios";
export default {
- props:{
- url: {
- default: "",
- type: String
- },
- isPreview: {
- default: true,
- type: Boolean
- }
- },
- methods:{
+ props: {
+ url: {
+ default: "",
+ type: String,
+ },
+ isPreview: {
+ default: true,
+ type: Boolean,
+ },
+ },
+ methods: {
downloadIamge(url) {
this.$notify.info({
- title: '娑堟伅',
- message: '璧勬簮涓嬭浇涓�,璇风◢鍚�...'
- });
+ title: "娑堟伅",
+ message: "璧勬簮涓嬭浇涓�,璇风◢鍚�...",
+ });
axios({
method: "get",
url: url,
- responseType: 'blob'
- }).then(res => {
- if (res.status == 200) {
- var a = document.createElement('a')
- var strs = url.split('/')
- var href = new Blob([res.data],{type: 'image/jpeg'})
- a.href = URL.createObjectURL(href);
- a.download = strs[strs.length - 1]+'.jpg'
- a.click()
- }
- }).catch(err => {
- this.$notify({
- type: "error",
- message: "涓嬭浇澶辫触锛�"+err+"璇烽噸璇曪紒",
- })
+ responseType: "blob",
})
+ .then((res) => {
+ if (res.status == 200) {
+ var a = document.createElement("a");
+ var strs = url.split("/");
+ var href = new Blob([res.data], { type: "image/jpeg" });
+ a.href = URL.createObjectURL(href);
+ a.download = strs[strs.length - 1] + ".jpg";
+ a.click();
+ }
+ })
+ .catch((err) => {
+ this.$notify({
+ type: "error",
+ message: "涓嬭浇澶辫触锛�" + err + "璇烽噸璇曪紒",
+ });
+ });
},
- }
-
-}
+ },
+};
</script>
<style lang="scss" scoped>
-.imgBox{
+.imgBox {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ img {
width: 100%;
height: 100%;
- position: relative;
- img {
- width: 100%;
- height: 100%;
- object-fit: contain
+ object-fit: contain;
+ }
+ .btn {
+ width: 30px;
+ height: 30px;
+ position: absolute;
+ padding: 0;
+ right: 20%;
+ opacity: 1;
+ bottom: 10px;
+ -webkit-animation: fadenum 0.7s ease;
+ display: none;
+ i {
+ font-size: 20px;
}
- .btn {
- width: 30px;
- height: 30px;
- position: absolute;
- padding: 0;
- right: 20%;
- opacity: 1;
- bottom: 10px;
- -webkit-animation: fadenum 0.7s ease;
- display: none;
- i {
- font-size: 20px
- }
- }
+ }
}
.imgBox:hover .btn {
display: inline;
}
-@-webkit-keyframes fadenum{ /*璁剧疆鍐呭鐢辨樉绀哄彉涓洪殣钘�*/
+@-webkit-keyframes fadenum {
+ /*璁剧疆鍐呭鐢辨樉绀哄彉涓洪殣钘�*/
- 0%{opacity: 0;}
+ 0% {
+ opacity: 0;
+ }
- 100%{opacity: 1;}
-
+ 100% {
+ opacity: 1;
+ }
}
-
</style>
\ No newline at end of file
diff --git a/src/views/search/components/wasmPlayer/index.vue b/src/views/search/components/wasmPlayer/index.vue
index 2a7fec6..367497d 100644
--- a/src/views/search/components/wasmPlayer/index.vue
+++ b/src/views/search/components/wasmPlayer/index.vue
@@ -456,7 +456,7 @@
url = this.videoUrl;
} else {
- url = "/httpImage/" + this.videoUrls[this.playerIndex];
+ url = "http://" + this.videoUrls[this.playerIndex];
}
this.videoLoading = true;
@@ -532,7 +532,7 @@
let url = "http://" + window.location.host + this.loadUrl;
- // let url = "http://localhost:8080/httpImage/192.168.20.189:6700/283,2f49bf283ad7?collection=2021-09-28-DSVAD010120190703-video"
+ // let url = "http://localhost:8080http://192.168.20.189:6700/283,2f49bf283ad7?collection=2021-09-28-DSVAD010120190703-video"
let name = url.substring(url.lastIndexOf("/") + 1);
let responsePromise = await fetch(url);
let blob = await responsePromise.blob();
diff --git a/src/views/search/index.vue b/src/views/search/index.vue
index addbb62..756f2f8 100644
--- a/src/views/search/index.vue
+++ b/src/views/search/index.vue
@@ -1,10 +1,25 @@
<template>
<div class="column">
+ <div class="search_cluster">
+ <el-select
+ v-model="cluster"
+ placeholder="璇烽�夋嫨闆嗙兢"
+ @change="selectCluster"
+ >
+ <el-option
+ v-for="item in clusterArr"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
<div class="column-left">
<div class="resize-bar"></div>
<div class="resize-line"></div>
<div class="resize-save">
- <left-nav :appName="'Search'" :height="screenHeight - 40"></left-nav>
+ <left-nav :appName="'Camera'"></left-nav>
</div>
</div>
<div class="column-right">
@@ -15,9 +30,10 @@
</template>
<script>
-import LeftNav from "./components/LeftNav";
+import LeftNav from "@/components/CameraLeft";
import RightSide from "./Searching";
import CardWindow from "./components/CardWindow";
+import { getClusterDevList } from "@/api/clusterManage";
export default {
name: "SearchPage",
@@ -29,10 +45,13 @@
data() {
return {
screenHeight: 0,
+ clusterArr: [],
+ cluster: "",
};
},
created() {
// this.parseUrl();
+ this.getCluster();
},
mounted() {
this.screenHeight = document.documentElement.clientHeight - 20;
@@ -44,6 +63,66 @@
},
methods: {
parseUrl() {},
+ selectCluster(val) {
+ const arr = val.split("$$");
+ if (arr[0] == "0") {
+ sessionStorage.setItem("clusterId", arr[1]);
+ sessionStorage.setItem("devId", "");
+ console.log(this.clusterData);
+ this.clusterData.forEach((item) => {
+ if (arr[1] == item.cluster_id) {
+ sessionStorage.setItem("nodeId", item.nodeList[0].devId);
+ }
+ });
+ }
+ if (arr[0] == "1") {
+ sessionStorage.setItem("clusterId", "");
+ sessionStorage.setItem("devId", arr[1]);
+ sessionStorage.setItem("nodeId", arr[1]);
+ }
+ this.TreeDataPool.fetchTreeData();
+ this.PollData.statisticTaskInfo();
+ this.VideoManageData.init();
+ this.PollData.statistics();
+ },
+ async getCluster() {
+ const res = await getClusterDevList();
+ if (res && res.success) {
+ this.clusterData = res.data.clusterList;
+ if (res.data.clusterList <= 0 && res.data.devList <= 0) {
+ this.$confirm(
+ "绯荤粺妫�娴嬪埌鎮ㄨ繕鏈坊鍔犺澶�, 璇峰湪璁惧绠$悊椤甸潰缁存姢",
+ "鎻愮ず",
+ {
+ confirmButtonText: "璺宠浆",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }
+ )
+ .then(() => {
+ this.$router.push("/manageCenter");
+ })
+ .catch(() => {});
+ }
+
+ res.data.clusterList.forEach((item) => {
+ this.clusterArr.push({
+ label: item.cluster_name,
+ value: "0$$" + item.cluster_id,
+ });
+ });
+
+ res.data.devList.forEach((item) => {
+ this.clusterArr.push({
+ label: item.devName,
+ value: "1$$" + item.devId,
+ });
+ });
+
+ this.cluster = this.clusterArr[0].value;
+ this.selectCluster(this.clusterArr[0].value);
+ }
+ },
},
};
</script>
@@ -119,6 +198,14 @@
height: inherit;
}
+.search_cluster {
+ top: 12px;
+ left: 172px;
+ position: fixed;
+ width: 135px;
+ z-index: 4;
+}
+
/* Firefox鍙湁涓嬮潰涓�灏忓潡鍖哄煙鍙互鎷変几 */
@supports (-moz-user-select: none) {
.resize-bar:hover ~ .resize-line,
--
Gitblit v1.8.0