Treejs+EasyUI+Vuejs实操

// 创建节点
function create(el) {
    // 获取 treejs 的实例
    var ref = $(el).jstree(true);
    // 获取当前点击的节点
    var currNode = _getCurrNode(el);
    // 创建节点(在当前节点中创建节点)
    currNode = ref.create_node(currNode, {
        "type": "file"
    });
    if (currNode) {
        // 编辑(文件命名)
        ref.edit(currNode);
    }
}
// 重命名
function rename(el) {
    var ref = $(el).jstree(true);
    var currNode = _getCurrNode(el);
    // 重命名
    ref.rename_node(currNode, "rename");
}
// 删除
function del(el) {
    var ref = $(el).jstree(true);
    var currNode = _getCurrNode(el);
    // 删除节点
    ref.delete_node(currNode);
}
// 上移
function moveup(el) {
    var ref = $(el).jstree(true);
    var currNode = _getCurrNode(el);
    // 获取当前节点的上一个节点
    var prevNode = ref.get_prev_dom(currNode, true);
    // 俩节点进行互换
    ref.move_node(currNode, prevNode, 'before');
}
// 下移
function movedown(el) {
    var ref = $(el).jstree(true);
    var currNode = _getCurrNode(el);
    // 获取当前节点的下一个节点
    var nextNode = ref.get_next_dom(currNode, true);
    // 俩节点进行互换
    ref.move_node(currNode, nextNode, 'after');
}
// 获取当前所选中的结点
function _getCurrNode(el) {
    var ref = $(el).jstree(true),
        sel = ref.get_selected();
    // 未点击
    if (!sel.length) {
        console.log("未点击父节点");
        return false;
    }
    return sel[0];
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="./easyui-lib/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="./easyui-lib/themes/icon.css">
    <link rel="stylesheet" href="./tree-lib/themes/default/style.min.css">
    <script type="text/javascript" src="./easyui-lib/jquery.min.js"></script>
    <script type="text/javascript" src="./easyui-lib/jquery.easyui.min.js"></script>
    <script src="./tree-lib/jstree.min.js"></script>
    <title>Document</title>
</head>

<body>
    <div id="win" class="easyui-window" title="My Window" data-options="iconCls:'icon-save',modal:true">
        <div class="easyui-layout" data-options="fit:true" style="display: flex;">
            <div data-options="region:'west',split:true" style="width:300px;">
                <div id="jstree1"></div>
            </div>
            <div data-options="region:'center'">
                <table id="dg"></table>
            </div>
        </div>
    </div>
    <!-- 菜单栏 -->
    <div id="mm" class="easyui-menu" style="width:120px;" data-options="onClick:menuHandler">
        <div data-options="name:'new'">新建</div>
        <div data-options="name:'del'">删除</div>
        <div data-options="name:'rename'">重命名</div>
        <div data-options="name:'up'">上移</div>
        <div data-options="name:'down'">下移</div>
    </div>
</body>
<script src="./js/tree-util.js"></script>
<script>
    var el = "#jstree1"

    function menuHandler(item) {
        switch (item.name) {
            case "new":
                create(el);
                break;
            case "del":
                del(el);
                break;
            case "rename":
                rename(el);
                break;
            case "up":
                moveup(el);
                break;
            case "down":
                movedown(el);
                break;
            default:
                break;
        }
    }
    $('#dg').datagrid({
        // url: './jsonp/datagrid_data.json',
        // data: [{
        //     "code": 1,
        //     "name": "a",
        //     "age": 12
        // }, {
        //     "code": 1,
        //     "name": "a",
        //     "age": 12
        // }],
        columns: [
            [{
                field: 'code',
                title: 'Code',
                width: 100
            }, {
                field: 'name',
                title: 'Name',
                width: 100
            }, {
                field: 'age',
                title: 'age',
                width: 100,
                align: 'right'
            }]
        ],
        // pagePosition: "top"
    });

    $('#win').window({
        width: 600,
        height: 400,
        modal: true,
        maximized: true, // 屏幕最大化
    });
    $(function() {

        $(document).bind("contextmenu", function(e) {
            $('#mm').menu('show', {
                left: e.clientX,
                top: e.clientY
            });
            // 关闭默认行为
            return false;
        });
        $("#jstree1").jstree({
            // 节点
            "core": {
                "check_callback": true, // 允许对 tree 的结构进行修改
                "data": [{
                    "id": "0",
                    "parent": "#",
                    "state": {
                        "disabled": false, // 是否可以点击(false: 可以点击)
                        "opened": true, // 初始化时是否打开
                        "selected": false, // 初始化时是否被点击
                    },
                    "text": "组成"
                }, {
                    "id": "1",
                    "parent": "0",
                    "text": "财务部"
                }, {
                    "id": "2",
                    "parent": "0",
                    "text": "销售部"
                }, {
                    "id": "3",
                    "parent": "0",
                    "text": "市场部"
                }, {
                    "id": "4",
                    "parent": "0",
                    "text": "人事行政部"
                }, {
                    "id": "5",
                    "parent": "0",
                    "text": "售前服务部"
                }, {
                    "id": "6",
                    "parent": "0",
                    "text": "开发部"
                }],
                "themes": {
                    "variant": "large", //加大
                    "ellipsis": true //文字多时省略
                },
                "check_callback": true
            },
            // 插件
            "plugins": ["wholerow", "themes", "contextmenu", "dnd"]
        }).on('select_node.jstree', function(event, data) {
            // console.log(data.node);
        }).on('changed.jstree', function(event, data) {
            // console.log("action:" + data.action);
        })
    });
</script>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Vue3是一种流行的JavaScript框架,被广泛用于构建前端应用程序。Treejs是一个流行的JavaScript库,可以用于创建复杂的3D场景和动画。Track car,顾名思义,是一种可以追踪车辆运动的系统。 将这三个技术结合起来,可以实现一个功能强大的Web应用程序,用于追踪汽车的运动。这个应用程序可以显示一个三维模型的汽车,以及该汽车的实时位置和方向。使用Treejs,可以为汽车添加各种动态效果,如反弹和碰撞效果等。 由于Vue3是一个响应式框架,所以应用程序可以自动更新其显示,以反映汽车的实时位置和方向。此外,该应用程序还可以与后端服务器通信,获取有关汽车的各种数据,如速度和里程等。因此,该应用程序可以在许多应用场景中使用,如车队管理,物流追踪和安全监控等。 ### 回答2: Vue3是一个流行的javascript框架,为Web应用程序提供了强大的前端开发功能。而Three.js则是一个基于WebGL的3D图形库,可以在现代浏览器上渲染出华丽的3D效果。用Vue3和Three.js来实现一个跟踪汽车的应用程序,将会是一个非常有趣的项目。 在这个应用程序中,我们可以使用Vue3来创建一个交互式用户界面,包括一个可视化的车辆轨迹和控制面板。当用户选择一个车辆时,我们可以使用Three.js渲染出一个3D模型,并使用一个线条来表示车辆运动的路径。如果用户想要控制车辆运动,我们可以为他们提供一些按钮和滑块,以允许他们改变车辆的速度和方向。 在实现这个应用程序的过程中,我们需要使用Vue3提供的组件和指令来构建用户界面,并使用Three.js来创建和操作3D场景。为了跟踪车辆的位置和方向,我们可以使用JavaScript中的变量和函数,并将它们与Vue3的响应式数据绑定起来,以便在用户交互时更新。最终,我们将得到一个具有出色可视化效果的跟踪汽车的应用程序,能够吸引人们的注意力并提供娱乐、教育和其他目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海面有风

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值