From 1f1b2fcc05f6b0f83bf7602f453cc73dd6e9b7ce Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 20 七月 2022 15:04:13 +0800
Subject: [PATCH] 添加国标数默认展开状态
---
src/components/LeftNav.vue | 413 +++++++++++++++++++---------------------------------------
1 files changed, 136 insertions(+), 277 deletions(-)
diff --git a/src/components/LeftNav.vue b/src/components/LeftNav.vue
index 0ba92c5..c6da90e 100644
--- a/src/components/LeftNav.vue
+++ b/src/components/LeftNav.vue
@@ -1,21 +1,8 @@
<template>
<transition name="slideLeft">
- <div
- class="left-tree-box"
- v-show="TreeDataPool.showTreeBox"
- v-loading="menuLoading"
- >
- <el-tabs
- v-model="TreeDataPool.treeActiveName"
- type="border-card"
- @tab-click="handleClick"
- >
- <el-tab-pane
- label="鎽勫儚鏈�"
- name="camera"
- :style="`height:${height - 56}px;`"
- v-if="showCam"
- >
+ <div class="left-tree-box" v-show="TreeDataPool.showTreeBox" v-loading="menuLoading">
+ <el-tabs v-model="TreeDataPool.treeActiveName" type="border-card" @tab-click="handleClick">
+ <el-tab-pane label="鎽勫儚鏈�" name="camera" :style="`height:${height - 56}px;`" v-if="showCam">
<el-menu
:default-openeds="openeds"
background-color="#fff"
@@ -28,11 +15,7 @@
@close="menuClose"
>
<li class="navTopSelect">
- <el-select
- v-model="TreeDataPool.searchCamType"
- placeholder="璇烽�夋嫨"
- @change="searchAreaData"
- >
+ <el-select v-model="TreeDataPool.searchCamType" placeholder="璇烽�夋嫨" @change="searchAreaData">
<el-option
v-for="item in searchTypeOptions"
:key="item.value"
@@ -66,11 +49,7 @@
</li>
<div class="tree-edit area-add" v-show="!TreeDataPool.readonly">
- <el-tooltip
- content="娣诲姞鍖哄煙"
- placement="bottom"
- popper-class="atooltip"
- >
+ <el-tooltip content="娣诲姞鍖哄煙" placement="bottom" popper-class="atooltip">
<button @click="addNode($event)">
<i class="iconfont iconhebingxingzhuang"></i>
</button>
@@ -79,34 +58,20 @@
<!-- 娣诲姞璁惧鍥炬爣 -->
<div class="tree-edit camera-add" v-show="!TreeDataPool.readonly">
- <el-tooltip
- content="娣诲姞璁惧"
- placement="bottom"
- popper-class="atooltip"
- >
+ <el-tooltip content="娣诲姞璁惧" placement="bottom" popper-class="atooltip">
<button @click="addCamera('0')">
<!-- <i class="el-icon-video-camera"></i> -->
- <span
- class="iconfont iconshishishipin"
- style="font-size: 14px"
- ></span>
+ <span class="iconfont iconshishishipin" style="font-size: 14px"></span>
</button>
</el-tooltip>
</div>
<!-- 瀵煎叆璁惧 -->
<div class="tree-edit import-btn" v-show="!TreeDataPool.readonly">
- <el-tooltip
- content="瀵煎叆璁惧"
- placement="bottom"
- popper-class="atooltip"
- >
+ <el-tooltip content="瀵煎叆璁惧" placement="bottom" popper-class="atooltip">
<button @click="importCameras('0')">
<!-- <i class="el-icon-video-camera"></i> -->
- <span
- class="iconfont icondaoru"
- style="font-size: 16px"
- ></span>
+ <span class="iconfont icondaoru" style="font-size: 16px"></span>
</button>
</el-tooltip>
</div>
@@ -123,10 +88,7 @@
<el-submenu index="0">
<template slot="title">
<!-- <i class="iconfont iconjiankongshexiangji"></i> -->
- <span
- class="iconfont iconjiankongshexiangji"
- style="padding-right: 10px; font-size: 13px"
- ></span>
+ <span class="iconfont iconjiankongshexiangji" style="padding-right: 10px; font-size: 13px"></span>
<b class="tree-font">鎽勫儚鏈�</b>
</template>
<el-menu-item-group class="item-group">
@@ -158,11 +120,7 @@
</div>-->
<div class="tree-edit gb-lock" v-show="showLock">
<button @click="gbLockSwitch">
- <i
- v-if="TreeDataPool.gbReadonly"
- class="el-icon-lock"
- style="font-size: 16px"
- ></i>
+ <i v-if="TreeDataPool.gbReadonly" class="el-icon-lock" style="font-size: 16px"></i>
<i v-else class="el-icon-unlock" style="font-size: 16px"></i>
</button>
</div>
@@ -181,21 +139,12 @@
</el-submenu>
</el-menu>
</el-tab-pane>
- <el-tab-pane
- label="闆嗙兢"
- name="cluster"
- :style="`height:${height - 56}px;`"
- v-if="showCluster"
- >
+ <el-tab-pane label="闆嗙兢" name="cluster" :style="`height:${height - 56}px;`" v-if="showCluster">
<div class="local-vedio-area">
<!-- 鎼滅储 -->
<div class="navTopSelect">
<div class="search-input flex-box">
- <el-select
- v-model="TreeDataPool.searchCamType"
- placeholder="璇烽�夋嫨"
- @change="searchClusterData"
- >
+ <el-select v-model="TreeDataPool.searchCamType" placeholder="璇烽�夋嫨" @change="searchClusterData">
<el-option
v-for="item in searchTypeOptions"
:key="item.value"
@@ -221,10 +170,7 @@
</div>
<div class="top-menu" style="margin: 0 0 10px; text-align: left">
<span class="iconfont iconjiqun" style="font-size: 20px"></span>
- <span
- style="font-size: 14px; margin-left: 5px; font-weight: 600"
- >{{ clusterName }}</span
- >
+ <span style="font-size: 14px; margin-left: 5px; font-weight: 600">{{ clusterName }}</span>
</div>
<div class="cluster-list">
<tree-menu
@@ -288,11 +234,7 @@
<div class="dev-vedio-list">
<!-- 娣诲姞鏂囦欢澶瑰浘鏍� -->
<div class="tree-edit area-add" v-show="!DataStackPool.readonly">
- <el-tooltip
- content="娣诲姞鏂囦欢澶�"
- placement="bottom"
- popper-class="atooltip"
- >
+ <el-tooltip content="娣诲姞鏂囦欢澶�" placement="bottom" popper-class="atooltip">
<button @click="addDir($event)">
<i class="iconfont iconhebingxingzhuang"></i>
</button>
@@ -306,9 +248,7 @@
<i v-else class="el-icon-unlock"></i>
</button>
</div>
- <LocalVedioList
- :dataList="TreeDataPool.localVedioList"
- ></LocalVedioList>
+ <LocalVedioList :dataList="TreeDataPool.localVedioList"></LocalVedioList>
</div>
</div>
<file-upload v-show="fileUploadBox" @close="fileUploadBox = false" />
@@ -333,376 +273,295 @@
</template>
<script>
-import {
- show,
- changeEnable,
- deleteLocalFile,
- updateStatus,
-} from "@/api/localVedio";
+import { createCamera } from "@/api/camera"
-import { createCamera } from "@/api/camera";
-
-import bus from "@/plugin/bus";
+import bus from "@/plugin/bus"
// import TreeMenu from "@/components/treeMenu/index";
-import TreeMenu from "@/components/giantTree/index";
-import LocalVedioList from "@/components/subComponents/LocalVedioList";
-import FileUpload from "@/components/subComponents/FileUpload/index";
-import XLSX from "xlsx";
-import { findCluster } from "@/api/clusterManage";
+import TreeMenu from "@/components/giantTree/index"
+import LocalVedioList from "@/components/subComponents/LocalVedioList"
+import FileUpload from "@/components/subComponents/FileUpload/index"
+import XLSX from "xlsx"
+import { findCluster } from "@/api/clusterManage"
export default {
components: {
TreeMenu,
LocalVedioList,
- FileUpload,
+ FileUpload
},
props: {
appName: {
type: String,
- default: "Video",
+ default: "Video"
},
edit: {
type: Boolean,
- default: false,
+ default: false
},
height: {
type: Number,
- default: 0,
- },
+ default: 0
+ }
},
computed: {
showTab() {
- return true;
+ return true
},
showCam() {
return (
this.appName === "Camera" ||
this.appName === "Cluster" ||
- (this.appName === "Search" &&
- (this.buttonAuthority.indexOf("search:camera") >= 0 || this.isAdmin))
- );
+ (this.appName === "Search" && (this.buttonAuthority.indexOf("search:camera") >= 0 || this.isAdmin))
+ )
},
showCluster() {
- return this.appName === "Cluster";
+ return this.appName === "Cluster"
},
// 鏁版嵁鏍堥厤缃繀椤绘樉绀恒�� 妫�绱㈤�氳繃鏉冮檺鎺у埗鏄剧ず, 鏈畨瑁呮暟鎹爤涔熶笉鏄剧ず
showDataStack() {
if (this.appName === "DataStack") {
- return true;
+ return true
}
if (this.appName === "Search") {
// 鏈畨瑁呮暟鎹爤閰嶇疆
if (this.installedApps.indexOf("dataStack") >= 0) {
if (this.isAdmin) {
- return true;
+ return true
}
if (this.buttonAuthority.indexOf("search:stack") >= 0) {
- return true;
+ return true
}
}
}
- return false;
+ return false
},
showLock() {
- return this.edit;
+ return this.edit
},
openeds() {
- let arry = [];
+ let arry = []
for (let i = 0; i < this.TreeDataPool.openeds.length; i++) {
if (this.TreeDataPool.openeds[i]) {
- arry.push(i + "");
- // 榛樿灞曞紑涓�棰楁湁鏁版嵁鐨勬爲
- break;
+ arry.push(i + "")
+ // 榛樿灞曞紑涓�棰楁湁鏁版嵁鐨勬爲 . 鍔熻兘鏈夐棶棰�. 娉ㄩ攢
+ // break
}
}
- return arry;
+
+ return arry
},
isAdmin() {
- if (
- sessionStorage.getItem("userInfo") &&
- sessionStorage.getItem("userInfo") !== ""
- ) {
- let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
- return loginName === "superadmin" || loginName === "basic";
+ if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") {
+ let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username
+ return loginName === "superadmin" || loginName === "basic"
}
- return false;
- },
+ return false
+ }
},
data() {
return {
dataStack: "videoMonitor:dataStack",
buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
installedApps: sessionStorage.getItem("apps") || [],
- loginName:
- JSON.parse(sessionStorage.getItem("userInfo")).username || "鐢ㄦ埛鍚�",
+ loginName: JSON.parse(sessionStorage.getItem("userInfo")).username || "鐢ㄦ埛鍚�",
searchTypeOptions: [
{
value: 0,
- label: "鍏ㄩ儴鎽勫儚鏈�",
+ label: "鍏ㄩ儴鎽勫儚鏈�"
},
{
value: 1,
- label: "鍒嗘瀽鎽勫儚鏈�",
+ label: "鍒嗘瀽鎽勫儚鏈�"
},
{
value: 2,
- label: "鐩戞帶鎽勫儚鏈�",
+ label: "鐩戞帶鎽勫儚鏈�"
},
{
value: 3,
- label: "鑱斿姩鎽勫儚鏈�",
- },
+ label: "鑱斿姩鎽勫儚鏈�"
+ }
],
timeout: null,
fileUploadBox: false,
loadingGBTree: false,
importAreaId: "",
menuLoading: false,
- clusterName: "",
- };
+ clusterName: ""
+ }
},
created() {
- console.log("---------");
if (this.showCam) {
- this.TreeDataPool.treeActiveName = "camera";
- this.TreeDataPool.fetchTreeData();
+ this.TreeDataPool.treeActiveName = "camera"
+ this.TreeDataPool.fetchTreeData()
} else {
- this.TreeDataPool.treeActiveName = "dataStack";
- this.DataStackPool.fetchFiles();
+ this.TreeDataPool.treeActiveName = "dataStack"
+ this.DataStackPool.fetchFiles()
}
if (this.showCluster) {
- this.TreeDataPool.treeActiveName = "cluster";
- this.TreeDataPool.fetchClusterTree();
+ this.TreeDataPool.treeActiveName = "cluster"
+ this.TreeDataPool.fetchClusterTree()
findCluster().then((res) => {
if (res.success) {
- this.clusterName = res.data.clusterName;
+ this.clusterName = res.data.clusterName
}
- });
+ })
}
},
methods: {
searchAreaData() {
- this.TreeDataPool.fetchTreeData();
+ this.TreeDataPool.fetchTreeData()
},
searchDataStack() {
- this.DataStackPool.fetchFiles();
+ this.DataStackPool.fetchFiles()
},
searchClusterData() {
- this.TreeDataPool.fetchClusterTree();
+ this.TreeDataPool.fetchClusterTree()
},
lockSwitch() {
- this.TreeDataPool.readonly = !this.TreeDataPool.readonly;
+ this.TreeDataPool.readonly = !this.TreeDataPool.readonly
},
gbLockSwitch() {
- this.TreeDataPool.gbReadonly = !this.TreeDataPool.gbReadonly;
+ this.TreeDataPool.gbReadonly = !this.TreeDataPool.gbReadonly
},
dataStackLockSwitch() {
- this.DataStackPool.readonly = !this.DataStackPool.readonly;
+ this.DataStackPool.readonly = !this.DataStackPool.readonly
},
closeTree() {
- this.TreeDataPool.showTreeBox = false;
- bus.$emit("refreshCompareImg");
+ this.TreeDataPool.showTreeBox = false
+ bus.$emit("refreshCompareImg")
},
addNode(event) {
- this.$refs.tree.addNode(event, { id: 0 });
+ this.$refs.tree.addNode(event, { id: 0 })
},
addCamera(node) {
- bus.$emit("addCameraOnTree", node);
+ bus.$emit("addCameraOnTree", node)
},
addDir(node) {
- bus.$emit("addDirOnTree", node);
+ bus.$emit("addDirOnTree", node)
},
menuOpen(index) {
- this.TreeDataPool.openeds[index] = true;
+ this.TreeDataPool.openeds[index] = true
},
menuClose(index) {
- this.TreeDataPool.openeds[index] = false;
+ this.TreeDataPool.openeds[index] = false
},
refreshGB() {
// 闃叉閲嶅鍒锋柊
if (this.loadingGBTree) {
- return;
+ return
}
// 鍥芥爣鎽勫儚鏈烘暟鎹槸鍥芥爣鏈嶅姟鍒嗘壒鎺ㄩ�佺殑锛岃姹傚埛鏂板垪琛ㄥ悗锛岄渶瑕佺瓑寰呯害1鍒嗛挓鐨勬椂闂村悗绔墠鑳藉悓姝ュ畬鏁版嵁銆�
- this.TreeDataPool.refreshGB28181();
- this.loadingGBTree = true;
+ this.TreeDataPool.refreshGB28181()
+ this.loadingGBTree = true
setTimeout(() => {
- this.TreeDataPool.fetchGbTree();
- this.loadingGBTree = false;
- }, 1000 * 60);
+ this.TreeDataPool.fetchGbTree()
+ this.loadingGBTree = false
+ }, 1000 * 60)
},
querySearchAsync(type) {
- clearTimeout(this.timeout);
+ clearTimeout(this.timeout)
this.timeout = setTimeout(() => {
if (type === "camera") {
- this.TreeDataPool.fetchTreeData();
+ this.TreeDataPool.fetchTreeData()
}
if (type === "cluster") {
- this.TreeDataPool.fetchClusterTree();
+ this.TreeDataPool.fetchClusterTree()
}
if (type === "dir") {
- this.DataStackPool.fetchFiles();
+ this.DataStackPool.fetchFiles()
}
- }, 500);
+ }, 500)
},
handleClick(event) {
if (event.name == "dataStack") {
- this.DataStackPool.fetchFiles();
- this.DataStackPool.clean();
- this.TreeDataPool.clean();
+ this.DataStackPool.fetchFiles()
+ this.DataStackPool.clean()
+ this.TreeDataPool.clean()
}
- this.TreeDataPool.treeActiveName = event.name;
- console.log("褰撳墠婵�娲籲ame锛�", this.TreeDataPool.treeActiveName);
- },
- async changeEnable() {
- if (this.PollData.localVideo === 0) {
- this.$notify({
- title: "澶辫触",
- type: "warning",
- message: "寮�鍚湰鍦版暟鎹棰戝垎鏋愬鐞嗭紝闇�鍏堜负鏈湴鏁版嵁鎵嬪姩璁剧疆绠楀姏璧勬簮锛�",
- });
- return false;
- }
- let res = await changeEnable({
- enable: this.TreeDataPool.vedioAnaliyseSwitch,
- });
- if (res && res.success) {
- console.log(res, "鍒囨崲鏈湴鏂囦欢鍒嗘瀽寮�鍏�");
- }
+ this.TreeDataPool.treeActiveName = event.name
},
getCheckedFiles() {
let list1 = this.TreeDataPool.localVedioList.filter((i) => {
- return i.checkStatus;
- });
- return list1;
+ return i.checkStatus
+ })
+ return list1
},
- async stopVedio(status) {
- // let list1 = this.getCheckedFiles();
- if (this.TreeDataPool.checkedLocalVedio.length == 0) {
- this.$notify({
- type: "warning",
- message: "璇峰厛閫夋嫨闇�瑕佸仠姝㈢殑瑙嗛锛�",
- });
- // this.$notify({
- // type:"info",
- // message:"璇峰厛閫夋嫨闇�瑕佸仠姝㈢殑瑙嗛锛�"
- // })
- return false;
- }
- let res = await updateStatus({
- ids: this.TreeDataPool.checkedLocalVedio.map((i) => {
- return i.id;
- }),
- status: status,
- });
- if (res && res.success) {
- console.log(res, "寮�鍚殏鍋滃弬鏁�");
- }
- },
- async deleteLocalFiles() {
- let list1 = this.getCheckedFiles();
- console.log(list1, "宸插嬀閫夌殑瑙嗛");
- if (list1.length == 0) {
- return false;
- }
- let res = await deleteLocalFile({
- ids: list1.map((i) => {
- return i.id;
- }),
- });
- if (res && res.success) {
- this.$notify({
- type: "success",
- message: "鍒犻櫎鎴愬姛锛侊紒",
- });
- } else {
- this.$notify({
- type: "error",
- message: "鍒犻櫎澶辫触锛�",
- });
- }
- },
-
refrash(current, pageSize) {
- this.TreeDataPool.localCurrentPage = current;
+ this.TreeDataPool.localCurrentPage = current
},
importCameras(area) {
- this.importAreaId = area;
- this.$refs["import-btn"].click();
+ this.importAreaId = area
+ this.$refs["import-btn"].click()
},
async uploadFile(params) {
- const _file = params.file;
- const fileReader = new FileReader();
+ const _file = params.file
+ const fileReader = new FileReader()
fileReader.onload = (ev) => {
- this.menuLoading = true;
+ this.menuLoading = true
try {
- const data = ev.target.result;
+ const data = ev.target.result
const workbook = XLSX.read(data, {
- type: "binary",
- });
+ type: "binary"
+ })
for (let sheet in workbook.Sheets) {
//寰幆璇诲彇姣忎釜鏂囦欢
- const sheetArray = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
+ const sheetArray = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
//鑻ュ綋鍓峴heet娌℃湁鏁版嵁锛屽垯continue
if (sheetArray.length == 0) {
- continue;
+ continue
}
- let succeed = 0;
- let failed = 0;
- let promiseArr = [];
+ let succeed = 0
+ let failed = 0
+ let promiseArr = []
for (let item in sheetArray) {
- let camera = this.newCamera();
- camera.areaid = this.importAreaId;
- camera.name = String(sheetArray[item].name);
- camera.rtsp = String(sheetArray[item].rtsp);
- camera.addr = String(sheetArray[item].addr);
+ let camera = this.newCamera()
+ camera.areaid = this.importAreaId
+ camera.name = String(sheetArray[item].name)
+ camera.rtsp = String(sheetArray[item].rtsp)
+ camera.addr = String(sheetArray[item].addr)
- promiseArr.push(createCamera(camera));
+ promiseArr.push(createCamera(camera))
}
- let _this = this;
+ let _this = this
Promise.allSettled(promiseArr)
.then((res) => {
res.forEach((item) => {
if (item.status === "fulfilled") {
- succeed++;
+ succeed++
} else {
- failed++;
+ failed++
}
- });
- _this.menuLoading = false;
+ })
+ _this.menuLoading = false
_this.$message({
type: "success",
- message:
- "鎿嶄綔瀹屾垚, 瀵煎叆鎴愬姛:" +
- succeed +
- "涓� 澶辫触:" +
- failed +
- "涓�",
- });
- _this.TreeDataPool.fetchTreeData();
+ message: "鎿嶄綔瀹屾垚, 瀵煎叆鎴愬姛:" + succeed + "涓� 澶辫触:" + failed + "涓�"
+ })
+ _this.TreeDataPool.fetchTreeData()
})
.catch((e) => {
- console.log(e);
- });
+ console.log(e)
+ })
}
} catch (e) {
- this.menuLoading = false;
- this.$message.warning("鏂囦欢绫诲瀷涓嶆纭紒");
+ this.menuLoading = false
+ this.$message.warning("鏂囦欢绫诲瀷涓嶆纭紒")
}
- };
- fileReader.readAsBinaryString(_file);
+ }
+ fileReader.readAsBinaryString(_file)
},
exceed() {
- this.$message.error("鏈�澶氬彧鑳戒笂浼�1涓獂ls鏂囦欢");
+ this.$message.error("鏈�澶氬彧鑳戒笂浼�1涓獂ls鏂囦欢")
},
//鍒犻櫎鏂囦欢
remove() {},
@@ -718,11 +577,11 @@
run_type: -1,
username: "",
password: "",
- sensors: [],
- };
- },
- },
-};
+ sensors: []
+ }
+ }
+ }
+}
</script>
<style lang="scss">
@@ -981,4 +840,4 @@
.flex-box {
display: flex;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.8.0