From ffaa64e2ce742b39efa839567c23a8381cfb2f00 Mon Sep 17 00:00:00 2001
From: chendingwei <1170506816@qq.com>
Date: Wed, 28 Dec 2022 16:41:25 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95?=
=?UTF-8?q?=E6=94=B9=E6=88=90=E4=BB=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?=
=?UTF-8?q?=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/axios/cameraBase/cameraApi.ts | 13 ++--
src/views/page/aside/cameraLeftMenu.vue | 97 ++++++++++++++-----------
2 files changed, 64 insertions(+), 46 deletions(-)
diff --git a/src/axios/cameraBase/cameraApi.ts b/src/axios/cameraBase/cameraApi.ts
index c8a24df..9db659c 100644
--- a/src/axios/cameraBase/cameraApi.ts
+++ b/src/axios/cameraBase/cameraApi.ts
@@ -1,5 +1,5 @@
-import {axios} from '@/utils/axios';
-import {apiUrl} from "@/axios";
+import { axios } from '@/utils/axios';
+import { apiUrl } from "@/axios";
import qs from "qs";
enum Api {
@@ -9,6 +9,7 @@ enum Api {
Get = '/cbCamera/get',
GetList = '/cbCamera/getList',
GetPageList = '/cbCamera/getPageList',
+ GetTreeList = '/cbCameraNode/getTree'
}
const CisApiUrl = apiUrl.CisApiUrl;
@@ -19,8 +20,10 @@ export const Update = (params?: any) => axios.post(CisApiUrl + Api.Update, qs.st
export const Delete = (params?: any) => axios.post(CisApiUrl + Api.Delete, qs.stringify(params))
-export const Get = (params?: any) => axios.get(CisApiUrl + Api.Get, {params: params})
+export const Get = (params?: any) => axios.get(CisApiUrl + Api.Get, { params: params })
-export const GetList = (params?: any) => axios.get(CisApiUrl + Api.GetList, {params: params})
+export const GetList = (params?: any) => axios.get(CisApiUrl + Api.GetList, { params: params })
-export const GetPageList = (params?: any) => axios.get(CisApiUrl + Api.GetPageList, {params: params})
+export const GetPageList = (params?: any) => axios.get(CisApiUrl + Api.GetPageList, { params: params })
+
+export const GetTreeList = (params?: any) => axios.get(CisApiUrl + Api.GetTreeList, { params: params })
diff --git a/src/views/page/aside/cameraLeftMenu.vue b/src/views/page/aside/cameraLeftMenu.vue
index 050307e..1cd88f3 100644
--- a/src/views/page/aside/cameraLeftMenu.vue
+++ b/src/views/page/aside/cameraLeftMenu.vue
@@ -19,7 +19,7 @@
onContextMenuClick(treeKey, menuKey)">
打开
- 关闭
+ 关闭
删除
@@ -36,38 +36,38 @@ import { useStore } from '@/store/index';
import * as cameraApi from '@/axios/cameraBase/cameraApi';
let piniaStore = useStore();
const treeData = ref([
- {
- title: '视频监控',
- key: '视频监控',
- children: [
- {
- title: '横琴',
- key: '横琴',
- children: [
- // { title: '0-0-1-0', key: '0-0-1-0' },
- // { title: '0-0-1-1', key: '0-0-1-1' },
- // { title: '0-0-1-2', key: '0-0-1-2' },
- ],
- },
- ],
- }
+ // {
+ // title: '视频监控',
+ // key: '视频监控',
+ // children: [
+ // {
+ // title: '横琴',
+ // key: '横琴',
+ // children: [
+ // // { title: '0-0-1-0', key: '0-0-1-0' },
+ // // { title: '0-0-1-1', key: '0-0-1-1' },
+ // // { title: '0-0-1-2', key: '0-0-1-2' },
+ // ],
+ // },
+ // ],
+ // }
]);
const onContextMenuClick = (treeKey: string, menuKey: string) => {
console.log(`treeKey: ${treeKey}, menuKey: ${menuKey}`);
//防止添加多个key值,再次点击不能关闭。数组去重
- if(menuKey=="open"){
- let arr=[...expandedKeys.value]
- arr.push(treeKey)
- arr=[...new Set(arr)]
- expandedKeys.value=arr
- }else if(menuKey=="close"){
- expandedKeys.value=expandedKeys.value.filter((item:any)=>{
- return item != treeKey
- })
- }else if(menuKey=="delete"){
-
- }
-
+ if (menuKey == "open") {
+ let arr = [...expandedKeys.value]
+ arr.push(treeKey)
+ arr = [...new Set(arr)]
+ expandedKeys.value = arr
+ } else if (menuKey == "close") {
+ expandedKeys.value = expandedKeys.value.filter((item: any) => {
+ return item != treeKey
+ })
+ } else if (menuKey == "delete") {
+
+ }
+
};
let searchStr = ref('');
const expandedKeys = ref([]);
@@ -82,7 +82,7 @@ watch(searchStr, (newVal, oldVal) => {
treeData.value.forEach((element: any) => {
if (element.children.length != 0) {
let arr = searchFn(newVal, element.children)
- if(arr.length!=0){
+ if (arr.length != 0) {
expandedKeyArr = expandedKeyArr.concat(arr)
expandedKeyArr.push(element.key)
}
@@ -91,9 +91,9 @@ watch(searchStr, (newVal, oldVal) => {
expandedKeys.value = expandedKeyArr
})
// 选中相机
-function selectCamera(e: any) {
- if (e.length && !isNaN(parseInt(e[0]))) {
- piniaStore.updateCurSelectKey(e[0].toString())
+function selectCamera(e: any, e2: any) {
+ if (!e2.node.isGroup) {
+ piniaStore.updateCurSelectKey(e2.node.cbCameraId.toString())
}
}
//模糊查询递归
@@ -118,16 +118,31 @@ function searchFn(newVal: string, arr: any[]): any {
function loadTreeData() {
cameraApi.GetList().then((res: any) => {
let list: Array = res.data.data;
- treeData.value[0].children[0].children = list.map((item: any) => {
- item.title = item.name
- item.key = item.id.toString()
- return item
- })
piniaStore.addCameraMap(list)
-
- // switchCamera(list[0].id.toString())
- // treeData.value=piniaStore.treeData
});
+ cameraApi.GetTreeList().then((res: any) => {
+ console.log(res);
+ if (res.data.code == 200) {
+ treeData.value = againTreeData(res.data.data)
+ console.log(treeData.value[0] );
+
+ }
+ })
+}
+//递归为树状结构赋值
+function againTreeData(arr: any) {
+ let expandedArr: any = []
+ arr.forEach((item: any, index: number) => {
+ expandedArr[index]={}
+ if (item.isGroup) {
+ expandedArr[index].children = againTreeData(item.child)
+ }
+ expandedArr[index].key = item.id
+ expandedArr[index].title = item.name
+ expandedArr[index].isGroup = item.isGroup
+ expandedArr[index].cbCameraId = item.cbCameraId.toString()
+ })
+ return expandedArr
}