From c868f26356ee88f88a316c72e5aa17ef8060822e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 14 十月 2022 18:46:37 +0800
Subject: [PATCH] 对普通用户隐藏图片和视频下载.
---
src/components/giantTree/index.vue | 303 +++++++++++++++++++++++---------------------------
1 files changed, 138 insertions(+), 165 deletions(-)
diff --git a/src/components/giantTree/index.vue b/src/components/giantTree/index.vue
index 9351497..1f2ba05 100644
--- a/src/components/giantTree/index.vue
+++ b/src/components/giantTree/index.vue
@@ -1,12 +1,8 @@
<template>
<div class="tree-menu" :style="`max-height:${height - 200}px;`">
- <div class="devArea">
- <swiper :options="swiperOption" v-if="showDevArea">
- <swiper-slide
- v-for="item in nodeList"
- :key="item.devId"
- :class="{ active: activeTabObj.devId === item.devId }"
- >
+ <div class="devArea" v-if="showDevArea">
+ <swiper :options="swiperOption">
+ <swiper-slide v-for="item in nodeList" :key="item.devId" :class="{ active: activeTabObj.devId === item.devId }">
<div class="tab" @click="chooseTab(item)">
{{ item.devName }}
</div>
@@ -45,29 +41,14 @@
/>
<div class="empty" v-if="!node.length">鏆傛棤鎽勫儚鏈烘暟鎹�,璇锋坊鍔犳憚鍍忔満!</div>
<div class="dialog-box-bg" v-show="showDialog" @click="hideDialogBox"></div>
- <div
- class="dialog-box"
- v-show="showDialog"
- :style="{ left: clientX + 'px', top: clientY + 'px' }"
- >
- <el-card :body-style="{ padding: '10px' }">
- <el-form
- :model="dialogForm"
- size="mini"
- :rules="rules"
- ref="dialogForm"
- label-width="70px"
- >
+ <div class="dialog-box" v-show="showDialog">
+ <el-card :body-style="{ padding: '5px' }">
+ <el-form :model="dialogForm" size="mini" :rules="rules" ref="dialogForm" label-width="70px">
<el-form-item label="鍚嶇О锛�" prop="name">
- <el-input
- v-model="dialogForm.text"
- oninput="if(value.length>10)value=value.slice(0,10)"
- ></el-input>
+ <el-input v-model="dialogForm.text" oninput="if(value.length>20)value=value.slice(0,20)"></el-input>
</el-form-item>
<div class="text-center pb-2">
- <el-button size="mini" type="primary" @click="submitForm"
- >淇濆瓨</el-button
- >
+ <el-button size="mini" type="primary" @click="submitForm">淇濆瓨</el-button>
<el-button size="mini" @click="hideDialogBox">鍙栨秷</el-button>
</div>
</el-form>
@@ -77,49 +58,49 @@
</template>
<script>
-import ZTree from "./zTree/ztree";
+import ZTree from "./zTree/ztree"
export default {
name: "GiantTreeMenu",
components: {
- ZTree,
+ ZTree
},
props: {
app: {
type: String,
- default: "Video",
+ default: "Video"
},
node: {
- type: Array,
+ type: Array
},
treeName: {
type: String,
- default: "",
+ default: ""
},
gb28181: {
type: Boolean,
- default: false,
+ default: false
},
height: {
type: Number,
- default: 0,
+ default: 0
},
setting: {
type: Object,
require: false,
- default: function () {
- return {};
- },
+ default: function() {
+ return {}
+ }
},
search: {
type: Boolean,
- default: false,
+ default: false
},
showDevArea: {
type: Boolean,
- default: false,
+ default: false
},
- nodeList: {},
+ nodeList: {}
},
data() {
return {
@@ -127,13 +108,13 @@
clientX: 0,
clientY: 0,
dialogForm: {
- text: "",
+ text: ""
},
rules: {
text: [
{ required: true, message: "璇疯緭鍏ヨ妭鐐瑰悕绉�", trigger: "change" },
- { min: 2, max: 10, message: "闀垮害鍦�2鍒�10涓瓧", trigger: "change" },
- ],
+ { min: 2, max: 10, message: "闀垮害鍦�2鍒�10涓瓧", trigger: "change" }
+ ]
},
curNodeTid: "",
@@ -143,165 +124,138 @@
spaceBetween: 0,
pagination: {
el: ".swiper-pagination",
- clickable: true,
+ clickable: true
},
navigation: {
nextEl: ".swiper-next-border",
- prevEl: ".swiper-pre-border",
+ prevEl: ".swiper-pre-border"
},
observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
- observeParents: true, //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
- },
- };
+ observeParents: true //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+ }
+ }
},
created() {
- this.activeTabObj =
- this.nodeList && this.nodeList.length > 0 ? this.nodeList[0] : "";
- this.TreeDataPool.zTree = true;
+ this.activeTabObj = this.nodeList && this.nodeList.length > 0 ? this.nodeList[0] : ""
+ this.TreeDataPool.zTree = true
this.TreeDataPool.activeVideoIndex = sessionStorage.activeIndexVideo
? Number(sessionStorage.activeIndexVideo)
- : this.TreeDataPool.activeVideoIndex;
+ : this.TreeDataPool.activeVideoIndex
},
watch: {
- "TreeDataPool.treeType": function (newValue) {
+ "TreeDataPool.treeType": function(newValue) {
if (newValue !== this.treeName) {
- this.TreeDataPool.cleanTree(this.treeName);
+ this.TreeDataPool.cleanTree(this.treeName)
}
},
- showDevArea: function () {
- this.$forceUpdate();
- },
+ showDevArea: function() {
+ this.$forceUpdate()
+ }
},
methods: {
- handleCreated: function (ztreeObj) {
- let _this = this;
- this.ztreeObj = ztreeObj;
- ztreeObj.expandAll(true);
+ handleCreated: function(ztreeObj) {
+ let _this = this
+ this.ztreeObj = ztreeObj
+ ztreeObj.expandAll(true)
// onCreated 涓搷浣渮treeObj瀵硅薄灞曞紑绗竴涓妭鐐�
// ztreeObj.expandNode(ztreeObj.getNodes()[0], true);
// 鎽勫儚鏈洪厤缃垏鎹㈡椂, 璁剧疆閫変腑鐘舵��
if (this.TreeDataPool.selectedNode.id) {
// 鍙栨秷鎵�鏈夊閫夌殑鑺傜偣,浠呬繚鐣欏綋鍓嶅崟閫夌殑鑺傜偣
- this.TreeDataPool.selectedNodes = [this.TreeDataPool.selectedNode.id];
- this.curNodeTid = this.TreeDataPool.selectedNode.tId;
+ this.TreeDataPool.selectedNodes = [this.TreeDataPool.selectedNode.id]
+ this.curNodeTid = this.TreeDataPool.selectedNode.tId
//鎽勫儚鏈轰俊鎭洿鏂颁俊鎭悗锛屽鏋滆妭鐐逛綅缃湁鍙榯Id灏变笉鍑嗕簡,this.TreeDataPool.selectedNode姝ゆ椂杩樻槸鏃х殑淇℃伅
- let ztreeNodes = ztreeObj.getNodes();
+ let ztreeNodes = ztreeObj.getNodes()
//var curNodeTid = '';
- _this.findTidByIdFromArr(ztreeNodes);
- this.TreeDataPool.selectedNode.tId = _this.curNodeTid;
- let node = this.ztreeObj.getNodeByTId(
- this.TreeDataPool.selectedNode.tId
- );
+ _this.findTidByIdFromArr(ztreeNodes)
+ this.TreeDataPool.selectedNode.tId = _this.curNodeTid
+ let node = this.ztreeObj.getNodeByTId(this.TreeDataPool.selectedNode.tId)
// 澶氶�夋椂, 閫変腑鍗曢�夊崟鍑荤殑鑺傜偣
if (this.TreeDataPool.multiple) {
- this.ztreeObj.checkAllNodes(false);
- this.ztreeObj.checkNode(node, true, false, false);
+ this.ztreeObj.checkAllNodes(false)
+ this.ztreeObj.checkNode(node, true, false, false)
}
- this.ztreeObj.selectNode(node, false, true);
+ this.ztreeObj.selectNode(node, false, true)
}
},
chooseTab(item) {
- this.$emit("saveTree", this.activeTabObj);
+ this.$emit("saveTree", this.activeTabObj)
setTimeout(() => {
- this.activeTabObj = item;
- }, 100);
+ this.activeTabObj = item
+ }, 100)
},
findTidByIdFromArr(arr) {
- let len = arr.length;
- let _this = this;
+ let len = arr.length
+ let _this = this
for (var i = 0; i < len; i++) {
if (arr[i].id == this.TreeDataPool.selectedNode.id) {
- _this.curNodeTid = arr[i].tId;
- break;
+ _this.curNodeTid = arr[i].tId
+ break
}
if (arr[i].children) {
- this.findTidByIdFromArr(arr[i].children);
+ this.findTidByIdFromArr(arr[i].children)
}
}
},
onDblClick(evt, treeId, item) {
if (item.type !== "4" || this.app !== "Camera") {
- return;
+ return
}
- this.TreeDataPool.activeVideoId = item.id;
- let videoArr = this.TreeDataPool.videoArr;
- let nullVideoIndex = "";
+ this.TreeDataPool.activeVideoId = item.id
+ let videoArr = this.TreeDataPool.videoArr
+ let nullVideoIndex = ""
if (
this.TreeDataPool.activeForceChoose &&
this.TreeDataPool.activeVideoIndex !== "" &&
this.TreeDataPool.activeVideoIndex <= videoArr.length - 1
) {
- this.TreeDataPool.setVideoArr(
- this.TreeDataPool.activeVideoIndex,
- undefined,
- this
- );
+ this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this)
this.$nextTick(() => {
- this.TreeDataPool.setVideoArr(
- this.TreeDataPool.activeVideoIndex,
- item,
- this
- );
- });
- return;
+ this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this)
+ })
+ return
}
for (let i = 0; i < videoArr.length; i++) {
// eslint-disable-next-line
- if (
- videoArr[i] === "" ||
- videoArr[i] === undefined ||
- videoArr[i] === null
- ) {
- nullVideoIndex = i;
- break;
+ if (videoArr[i] === "" || videoArr[i] === undefined || videoArr[i] === null) {
+ nullVideoIndex = i
+ break
} else {
- nullVideoIndex = "";
+ nullVideoIndex = ""
}
}
if (nullVideoIndex === "") {
- this.TreeDataPool.setVideoArr(
- this.TreeDataPool.activeVideoIndex,
- undefined,
- this
- );
+ this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this)
this.$nextTick(() => {
- this.TreeDataPool.setVideoArr(
- this.TreeDataPool.activeVideoIndex,
- item,
- this
- );
- });
+ this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this)
+ })
} else {
// this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this);
this.$nextTick(() => {
- this.TreeDataPool.setVideoArr(
- this.TreeDataPool.activeVideoIndex,
- item,
- this
- );
- });
- this.TreeDataPool.activeVideoIndex = nullVideoIndex;
+ this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this)
+ })
+ this.TreeDataPool.activeVideoIndex = nullVideoIndex
}
},
addCamera(node) {
- this.$emit("addDevice", node);
+ this.$emit("addDevice", node)
},
importCameras(node) {
- this.$emit("import", node);
+ this.$emit("import", node)
},
addNode(node) {
this.dialogForm = {
text: "",
method: "add",
- node: node.id,
- };
- this.showDialogBox(event);
+ node: node.id
+ }
+ this.showDialogBox(event)
},
editNode(node) {
this.dialogForm = {
@@ -309,58 +263,57 @@
method: "edit",
node: node.id,
alias: node.alias,
- gb28181: this.gb28181,
- };
- this.showDialogBox(event);
+ gb28181: this.gb28181
+ }
+ this.showDialogBox(event)
},
delNode(node) {
- this.TreeDataPool.del(node.id);
+ this.TreeDataPool.del(node.id)
},
submitForm() {
// 鎻愪氦鏂板鎴栬�呯紪杈戝尯鍩熻妭鐐硅〃鍗�
this.$refs.dialogForm.validate((valid) => {
if (valid) {
if (this.dialogForm.method == "add") {
- this.TreeDataPool.add(this.dialogForm.text, this.dialogForm.node);
+ this.TreeDataPool.add(this.dialogForm.text, this.dialogForm.node)
} else if (this.dialogForm.method == "edit") {
this.TreeDataPool.update(
this.dialogForm.text,
this.dialogForm.node,
this.gb28181 ? this.dialogForm.text : "",
this.dialogForm.gb28181
- );
+ )
}
} else {
- return false;
+ return false
}
- });
- this.hideDialogBox();
+ })
+ this.hideDialogBox()
},
hideDialogBox() {
- this.showDialog = false;
- this.dialogForm = { text: "" };
+ this.showDialog = false
+ this.dialogForm = { text: "" }
},
showDialogBox(event) {
- let { clientX = 0, offsetY = 0 } = event;
+ let { clientX = 0, offsetY = 0 } = event
// this.clientX = clientX - 120;
- this.clientX = 50;
- this.clientY = offsetY;
- this.showDialog = true;
+ this.clientX = 50
+ this.clientY = offsetY
+ this.showDialog = true
},
itemClick(evt, treeId, treeNode) {
- console.log("click");
- this.TreeDataPool.selectedNode = treeNode;
- this.TreeDataPool.activeNode = treeNode;
- this.TreeDataPool.treeType = this.treeName;
+ this.TreeDataPool.selectedNode = treeNode
+ this.TreeDataPool.activeNode = treeNode
+ this.TreeDataPool.treeType = this.treeName
// 澶氶��
if (this.TreeDataPool.multiple) {
// 鍗曞嚮鏌愪竴涓妭鐐规枃瀛楁椂 鍙栨秷鎵�鏈夊嬀閫夌姸鎬� 鐒跺悗閫変腑鑷韩
- this.ztreeObj.checkAllNodes(false);
- this.ztreeObj.checkNode(treeNode, true, false, false);
+ this.ztreeObj.checkAllNodes(false)
+ this.ztreeObj.checkNode(treeNode, true, false, false)
}
- this.TreeDataPool.updateZTreeCheckNodes([treeNode]);
+ this.TreeDataPool.updateZTreeCheckNodes([treeNode])
},
// itemClick(treeNode) {
// this.TreeDataPool.selectedNode = treeNode;
@@ -377,48 +330,67 @@
// },
itemCheck(evt, treeId, treeNode) {
if (treeNode) {
- this.TreeDataPool.selectedNode = treeNode;
+ this.TreeDataPool.selectedNode = treeNode
}
- this.TreeDataPool.treeType = this.treeName;
+ this.TreeDataPool.treeType = this.treeName
// 澶氶��
// this.ztreeObj.checkNode(treeNode, true, false, false);
- let checkedNodes = this.ztreeObj.getCheckedNodes(true);
- this.TreeDataPool.updateZTreeCheckNodes(checkedNodes);
+ let checkedNodes = this.ztreeObj.getCheckedNodes(true)
+ this.TreeDataPool.updateZTreeCheckNodes(checkedNodes)
// 瀹炴椂缁熻閫変腑涓暟
- this.TreeDataPool.countCheckedNodes(checkedNodes);
+ this.TreeDataPool.countCheckedNodes(checkedNodes)
// 淇濆瓨涓�浠芥暟鎹�
- this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes();
- this.$emit("itemChecked", treeNode);
+ this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes()
+ this.$emit("itemChecked", treeNode)
},
//灞曞紑
itemExpand(e, id, node) {
- delete this.TreeDataPool.foldNodeList[node.id];
+ delete this.TreeDataPool.foldNodeList[node.id]
},
// 鎶樺彔
itemCollapse(e, id, node) {
- this.TreeDataPool.foldNodeList[node.id] = true;
+ this.TreeDataPool.foldNodeList[node.id] = true
},
dropNode(node, item, draggedItem, e) {
// console.log('dropNode', node, item, draggedItem);
- this.TreeDataPool.dropNode(draggedItem.id, item.id);
+ this.TreeDataPool.dropNode(draggedItem.id, item.id)
},
showCameraPic(nodeId) {
- this.TreeDataPool.showBaseImage(nodeId);
+ this.TreeDataPool.showBaseImage(nodeId)
},
- },
-};
+ updateNodes(ids) {
+ // 鍙栨秷鎵�鏈夐�変腑鐘舵��
+ this.ztreeObj.checkAllNodes(false)
+
+ // nodes 杞暟缁�
+ let treeNodes = this.ztreeObj.getNodes()
+ let nodeArry = this.ztreeObj.transformToArray(treeNodes)
+
+ // 鍒ゆ柇鏄惁琚�変腑
+ for (let i = 0; i < nodeArry.length; i++) {
+ if (ids.indexOf(nodeArry[i].id) > -1) {
+ this.ztreeObj.checkNode(nodeArry[i], true, false, false)
+ }
+ }
+ let checkedNodes = this.ztreeObj.getCheckedNodes(true)
+ this.TreeDataPool.updateZTreeCheckNodes(checkedNodes)
+ }
+ }
+}
</script>
<style lang="scss" scoped>
.devArea {
}
.dialog-box {
- position: absolute;
- width: 220px;
- z-index: 1;
+ top: 415px;
+ left: 43px;
+ position: fixed;
+ width: 260px;
+ z-index: 3;
}
.dialog-box-bg {
position: absolute;
@@ -476,6 +448,7 @@
overflow-x: auto;
overflow-y: hidden;
margin-bottom: 4px;
+ max-height: 70vh;
}
.empty {
line-height: 76px;
--
Gitblit v1.8.0