Ztree组件 支持全选 和反选不影响父级

2023-11-19

在这里插入图片描述

	"@ztree/ztree_v3": "^3.5.46",

main.js

import '@ztree/ztree_v3/js/jquery.ztree.core.js'
import '@ztree/ztree_v3/css/zTreeStyle/zTreeStyle.css'
import '@ztree/ztree_v3/js/jquery.ztree.excheck.min.js'

vue.config.js

const path = require('path')
const FileManagerWebpackPlugin = require('filemanager-webpack-plugin')
const webpack = require('webpack')
function resolve(dir) {
	return path.join(__dirname, dir)
}
module.exports = {
	runtimeCompiler: true,
	devServer: {
		host: 'localhost', // can be overwritten by process.env.HOST
		port: 9528,
		overlay: {
			warning: false,
			errors: false
		}
	},

	lintOnSave: false,//eslint 语法规范关闭
	configureWebpack: {
		plugins: [
		  new webpack.ProvidePlugin({
			$: 'jquery',
			jquery: 'jquery',
			'window.jQuery': 'jquery',
			jQuery: 'jquery'
		  })
		]
	  },
	chainWebpack: (config) => {
		config.resolve.alias.set('@', resolve('src'))
		// config.resolve.alias.set('vue$',  resolve('vue/dist/vue.esm.js'))
		config.module.rule('svg').exclude.add(resolve('src/icons')).end()
		config.module
			.rule('icons')
			.test(/\.svg$/)
			.include.add(resolve('src/icons'))
			.end()
			.use('svg-sprite-loader')
			.loader('svg-sprite-loader')
			.options({
				symbolId: 'icon-[name]'
			})
			.end()
		config.plugins.delete('pwa')
		config.plugins.delete('workbox')
	},
	productionSourceMap: false,
	publicPath: './'
}

ztree 组件代码


<template>
	<!-- 角色管理权限树组件 -->
	<div class="areaTree">
		<ul id="treeDemo" class="ztree"></ul>
	</div>
</template>
 
<script>
import RoleApi from '@/api/account/roleAccount' //API
export default {
	name: 'RoleTree',
	data() {
		return {
			setting: {
				view: {
					showIcon: false, //不显示图标
					showLine: false // 是否显示节点之间的连线
				},
				data: {
					simpleData: {
						enable: true,
						idKey: 'id',
						pIdKey: 'pid',
						rootPId: 0
					}
				},
				check: {
					enable: true,
					autoCheckTrigger: true,
					chkboxType: { Y: 'ps', N: 's' }
				},
				callback: {
					onCheck: this.onCheck, // 节点点击事件
				}
			},
			zNodes: [],
			id: '',
			funcIdData: [],
			pageType: '', //操作类型
			userType: 1 //用户类型
		}
	},
	// inject: ['row', 'type'],
	props: ['type', 'row', 'page'],

	mounted() {
		this.pageType = this.page
		this.id = this.row == {} ? '' : this.row.id
		this.userType = Number(this.type)
		if (this.pageType === 'edit') {
			this.loadData(this.id)
		} else {
			this.getFunctions()
		}
	},
	methods: {
		// 获取详情
		loadData(id) {
			let _this = this
			RoleApi.detail({ id: id }).then((res) => {
				if (res.roleId == null && res.id == 3) {
					res.roleId = 3
				}
				if (res.roleId == null && res.id == 2) {
					res.roleId = 2
				}
				this.funcIdData = res.idList

				this.getFunctions()
			})
		},
		getFunctions() {
			RoleApi.fun({ roleId: 1, userType: this.userType }).then((res) => {
				this.zNodes = res.list
				// 整理数据
				this.zNodes.forEach((element) => {
					if (element.funcs) {
						element.children = element.funcs
						element.funcs.forEach((item) => {
							item.children = item.funcs
							item.funcs.forEach((obj) => {
								obj.children = obj.funcs
							})
						})
					}
				})
				//回显设置
				if (this.funcIdData) {
					this.$nextTick(() => {
						// 展开全部节点
						var treeObj = $.fn.zTree.getZTreeObj('treeDemo')

						// treeObj.expandAll(true);
						this.funcIdData.forEach((value) => {
							treeObj.checkNode(treeObj.getNodeByParam('id', value), true)// 回显选中的数据
							var node = treeObj.getNodeByParam('pid', value)
							if (node) {
								var parent = node.getParentNode()
								if (!parent.open) {
									treeObj.expandNode(parent, true, false) // 展开选中节点
								}
							}
						})
						  window.scrollTo(0,0);//滚动条默认滚动到最上面
					})
				}
				this.init()
			})
		},
		init() {
			//展示
			$.fn.zTree.init($('#treeDemo'), this.setting, this.zNodes)
		},
		onCheck(event, treeId, treeNode) {
			var treeObj = $.fn.zTree.getZTreeObj(treeId),
				nodes = treeObj.getCheckedNodes(true),
				v = []
			for (var i = 0; i < nodes.length; i++) {
				v.push(nodes[i].id)
				// console.log() //获取选中节点的值
			}
			this.funcIdData = v
			this.$emit('callBack', this.funcIdData) //回传选中值
		},

	},
	created() {}
}
</script>
<style lang="scss" scoped>
.areaTree {
	height: auto;
	max-height: 200px;
	width: 100%;
	overflow: auto;
}
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ztree组件 支持全选 和反选不影响父级 的相关文章

随机推荐

  • 【mysql批量插入或更新方法实现】

    自定义批量插入或更新 1 创建接口 替代baseMapper public interface RootMapper
  • CentOS搭建vsftp

    VSFTPD Very Secure FTP Daemon 是一个在 CentOS 中常用的 FTP 服务器软件 它是一个轻量级 安全且高性能的 FTP 服务器 基于 RFC 959 协议 并实现了大多数 FTP 协议的功能 VSFTPD
  • ObjectARX学习

    VS2010 VS2012 VS2013 VS2015 VS2017各版本产品激活秘钥 ObjectARX简介 ObjectARX解压包内各文件代表什么 VS ObjectARX SDK AutoCAD对应关系 1 VS2010 VS201
  • Flutter websocket 实现消息推送

    没什么可说的 直接上代码吧 Flutter 中的消息管理工具 class MessageUtils static WebSocket webSocket static num id 0 static void connect Future
  • NGINX实现TCP加密代理

    NGINX实现TCP加密代理 NGINX实现TCP代理 源码安装NGINX 修改配置文件 重启NGINX 测试 实现转发MySql Redis 矿池ssl 以及各种TCP转发 NGINX实现TCP代理 源码安装NGINX NGINX官网源码
  • 数据挖掘(全书的知识点都包括了)

    数据挖掘 第一章 1 什么是数据挖掘 数据挖掘是从数据中 发现其有用的信息 从而帮助我们做出决策 广义角度 数据挖掘是从大量的 不完全的 有噪声的 模糊的 随机的实际应用数据中 提取隐含在其中的 人们事先不知道的 但又是潜在有用的信息和知识
  • Android图片加载内存优化

    Android图片加载内存优化 利用BitmapFactory Options实现图片内存优化 通过设置options inPreferredConfig控制内存占用 通过设置采样率options inSampleSize来减少图片内存占用
  • 使用R语言构建泊松回归模型

    使用R语言构建泊松回归模型 泊松回归是一种广泛应用于计数数据分析的回归模型 它是基于泊松分布的概率模型 用于描述事件在一定时间或空间范围内发生的次数 在本文中 我们将学习如何使用R语言构建泊松回归模型 并提供相应的源代码示例 1 数据准备
  • 详细前后端分离实现facebook第三方登录的全过程(国内一般都是用Android和ios,并且资料稀少)

    实现facebook第三方登录全过程 需求 官方文档与校验工具 详细步骤 1 注册一个facebook的账号 2 登录https developers facebook com 3 点击我的应用 4 创建一个属于自己的应用 5 选择类型和详
  • 免费使用中国知网/查看外文文献—浙江图书馆

    参考https www zhihu com question 20188973 answer 296971317 目录标题 注册 知网 外文文献 注册 支付宝搜索 浙江图书馆 关注并进入浙江图书馆生活号 点击 服务大厅 点击 新用户注册 设
  • 【HBZ分享】数仓里面的概念-宽表-维度表-事实表概念讲解

    数仓概念 1 度量值 可被统计的 比如 次数 销量 营销额 订单表中的下单金额等可以统计的值叫度量值 2 维度表 1 对事实描述的信息 每一张表都对应现实世界中的一个对象或概念 比如 用户 商品 日期 地区维度 2 比如要分析商品的销售情况
  • 2023Mid Journey第一部AI中英双语图文描述关键词辞典.pdf(附下载链接)

    省时查报告 专业 及时 全面的行研报告库 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来 202
  • Kali Linux 通过gnome-tweaks调整原生主题的字体字号

    首先我们需要确认是否安装了 gnome tweaks 因为默认kali Linux使用的是gnome桌面程序 大部分情况下是默认就有的 你只需要确认下是否安装 使用命令行确认 whereis gnome tweaks 出现下图所示就表示有
  • Sidetree - 去中心化身份管理协议

    身份 Identity 管理是区块链应用的核心元素 在一个不可信 匿名的分布计算生态中 要实现去中心化身份管理并不是一件容易的事情 Sidetree是一个基于现有区块链平台的第二层 L2s 协议 专门用于去中心化身份管理 微软最新开源的IO
  • 史上最全Android性能优化方案解析

    Android中的性能优分为以下几个方面 布局优化 网络优化 安装包优化 内存优化 卡顿优化 启动优化 一 布局优化 布局优化的本质就是减少View的层级 常见的布局优化方案如下 在LinearLayout和RelativeLayout都可
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • Spring Boot整合Spring Security并设置自定义登录页面

    准备工作 创建一个Spring Boot项目 注意选择Spring Boot的版本 选择3 0以下的版本 选择如下依赖 等待项目创建成功 项目创建成功之后 添加Mybatis plus的依赖
  • matlab中使用save保存文件, 文件名中有变量

    K 3 filenm K num2str K p num2str K mat save filenm
  • C#中 的泛型

    一 泛型类 1 定义一个泛型类 这个类中某些字段的类型是不确定的 这些类型可以在类构造的时候确定下来 类似于模板 class TestA
  • Ztree组件 支持全选 和反选不影响父级

    ztree ztree v3 3 5 46 main js import ztree ztree v3 js jquery ztree core js import ztree ztree v3 css zTreeStyle zTreeSt