vue使用ztree增加删除,修改和添加等的页面样式

<template>
    <div>
        <ul id="tree" class="ztree customZTreeStyle"></ul>
        <h3 class="iconfont dzyjwodekanjia">icon</h3>
    </div>
</template>

<script>
import $ from '../../../utils/jquery-vendor'
import 'ztree';
import 'ztree/js/jquery.ztree.core.min';
import 'ztree/js/jquery.ztree.excheck.min';
import 'ztree/js/jquery.ztree.exedit.min';
import 'ztree/css/zTreeStyle/zTreeStyle.css';
import '../../../assets/css/zTreeStyle.scss'

export default {
    data() {
        return {
            tree_obj: null,
            tree_setting: {},
            tree_list: [
                {
                    id: 1, name: "华南区", children: [
                        {id: 111, name: "张三"},
                        {id: 112, name: "李四"},
                    ]
                },
                {
                    id: 2, name: "西南区", children: [
                        {id: 221, name: "王五"},
                        {id: 222, name: "李六"},
                    ]
                }
            ]
        }
    },
    methods: {
        initTree() {
            const setting = {
                view: {
                    selectedMulti: false,
                    showIcon: false,//去掉图标
                    showLine: true,
                    nameIsHTML: true,
                    addHoverDom: this.addHoverDom, //当鼠标移动到节点上时,显示用户自定义控件
                    removeHoverDom: this.removeHoverDom, //当鼠标移动到节点上时,显示用户自定义控件
                    // removeHoverDom: this.removeHoverDom(treeId, treeNode), //离开节点时的操作
                },
                check: {
                    chkStyle: 'checkbox',//复选框类型
                    enable: true,//每个节点是否显示checkbox
                    chkboxType: {
                        'Y': 'ps',
                        'N': 'ps'
                    }
                },
                edit: {
                    enable: true,
                    editNameSelectAll: true,
                    showRemoveBtn: false, //true表示显示删除按钮
                    showRenameBtn: false,//true显示修改按钮
                    drag: {
                        isCopy: false,
                    }
                },
            }
            this.tree_obj = $.fn.zTree.init($('#tree'), setting, this.tree_list);
        },
        addHoverDom(treeId, treeNode) {
            let aObj = $("#" + treeNode.tId + "_a");
            if ($('#addBttton_' + treeNode.id).length > 0) return;
            let editStr = `
            <div id="addBttton_${treeNode.id}" class="editCatalog">
                <i class="iconfont dzyjtianjia add" title="添加"></i>
                <i class="iconfont dzyjxiugai1 edit" title="修改"></i>
                <i class="iconfont dzyjchangyonggoupiaorenshanchu delete" title="删除"></i>
            </div>
        `;
            aObj.append(editStr);
            let btn = $('#addBttton_' + treeNode.id);
            if (btn) {
                $(".add").bind("click", this.getAddHandle);
                $(".edit").bind("click", this.getEditHandle);
                $(".delete").bind("click", this.getDeleteHandle);
            }
        },
        removeHoverDom(treeId, treeNode) {
            $("#addBttton_" + treeNode.id).unbind().remove();
            // $("#diyBtn_space_" + treeNode.id).unbind().remove()
        },
        //添加
        getAddHandle() {
            console.log('添加')
        },
        // 修改
        getEditHandle() {
            console.log('修改')
        },
        //删除
        getDeleteHandle() {
            console.log('删除')
        }
    },
    created() {
        let _this = this
        $(document).ready(function () {
            _this.initTree()
        });
    }
}
;
</script>

<style>
@import url('//at.alicdn.com/t/font_3199171_hy6le906kn8.css');
/*.ztree {*/
/*    width: 300px;*/
/*    height: 500px;*/
/*    border: 1px solid #ffe6b0;*/
/*}*/
.editCatalog {
    display: none;
    font-size: 22px;
    color: #2c3e50;

}

.add, .delete, .edit {
    border: 1px solid #999;
    padding: 5px;
    box-sizing: border-box;
}
</style>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZTree是一个基于jQuery的树形结构插件,可以用于显示树形菜单、目录结构等。在Vue项目中使用ZTree,需要先安装ZTree插件,然后在Vue组件中引入和使用。 步骤如下: 1. 在Vue项目中安装ZTree插件: ``` npm install jquery ztree --save ``` 2. 在Vue组件中引入jQueryZTree插件: ```javascript import $ from 'jquery' import 'ztree/js/jquery.ztree.all.min.js' import 'ztree/css/metroStyle/metroStyle.css' ``` 其中,`jquery.ztree.all.min.js`是ZTree的核心文件,`metroStyle.css`是一款ZTree的皮肤。 3. 在Vue组件中定义一个div元素,用于显示ZTree: ```html <template> <div id="tree"></div> </template> ``` 4. 在Vue组件的`mounted`钩子函数中,初始化ZTree,并将数据渲染到树形菜单中: ```javascript mounted() { // 初始化ZTree let setting = { view: { selectedMulti: false }, data: { simpleData: { enable: true } }, callback: { onClick: this.onClick } } let zNodes = [ { id:1, pId:0, name:"父节点 1", open:true}, { id:11, pId:1, name:"子节点 1-1"}, { id:12, pId:1, name:"子节点 1-2"}, { id:13, pId:1, name:"子节点 1-3"}, { id:2, pId:0, name:"父节点 2", open:true}, { id:21, pId:2, name:"子节点 2-1"}, { id:22, pId:2, name:"子节点 2-2"}, { id:23, pId:2, name:"子节点 2-3"}, { id:3, pId:0, name:"父节点 3", open:true}, { id:31, pId:3, name:"子节点 3-1"}, { id:32, pId:3, name:"子节点 3-2"}, { id:33, pId:3, name:"子节点 3-3"} ] $.fn.zTree.init($("#tree"), setting, zNodes) }, methods: { // 点击节点事件 onClick(event, treeId, treeNode) { console.log(treeNode.name) } } ``` 其中,`zNodes`变量是一个数组,用于存储树形菜单的数据。`setting`变量是一个对象,用于配置ZTree的属性,例如是否允许多选、数据格式等。`$.fn.zTree.init`方法用于初始化ZTree,其中`$("#tree")`表示树形菜单的容器元素,`setting`表示ZTree的配置,`zNodes`表示树形菜单的数据。 5. 最终效果如下图所示: <img src="https://i.loli.net/2022/01/08/aJZ9zVX8q3WOhlY.png" alt="ztree-demo.png" style="zoom:50%;" />

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值