zoukankan      html  css  js  c++  java
  • tree grid 实现编辑保存然后整体存入数据库

    根据id ._parentId显示出数据 但想在空白板面建个树

    只能通过添加个按钮添加子节点  让他_parentId为空  才能显示出数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta http-equiv="pragma" content="no-cache"/>
        <title>日志</title>
        <link rel="stylesheet" type="text/css" href="../eui/themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="../eui/themes/icon.css">
        <script type="text/javascript" src="../eui/jquery.min.js"></script>
        <script type="text/javascript" src="../eui/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="../js/easyui-lang-zh_CN.js"></script>
        <link rel="stylesheet" type="text/css" href="../eui/demo/demo.css">
        <script language="javascript" type="text/javascript" src="../js/myjstools.js"></script>
    </head>
    <body>
    <div style="margin:20px 0;">
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="insert()">添加子节点</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="edit()">修改节点</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="save()">保存</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="cancel()">取消</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="a11()">huoqu</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="guid()">www</a>
    </div>
    <table id="tg" class="easyui-treegrid" title="配置表单" style="700px;height:250px"
           data-options="
                iconCls: 'icon-ok',
                rownumbers: true,
                animate: true,
                collapsible: true,
                fitColumns: true,
                url: 'treegrid_data2.json',
                method: 'get',
                idField: 'id',
                treeField: 'name',
                showFooter: true
             ">
        <thead>
        <tr>
            <th data-options="field:'name',180,editor:'text'">项目名称</th>
            <th data-options="field:'ITEM_CODE',60,align:'right',editor:'text'">项目编码</th>
            <th data-options="field:'ORDERNO',80,editor:'text'">排序号</th>
        </tr>
        </thead>
    </table>
    <script type="text/javascript">
        function formatProgress(value){
            if (value){
                var s = '<div style="100%;border:1px solid #ccc">' +
                    '<div style="' + value + '%;background:#cc0000;color:#fff">' + value + '%' + '</div>'
                '</div>';
                return s;
            } else {
                return '';
            }
        }
        var editingId;
        function edit(){
            if (editingId != undefined){
                $('#tg').treegrid('select', editingId);
                return;
            }
            var row = $('#tg').treegrid('getSelected');
            if (row){
                editingId = row.id
                $('#tg').treegrid('beginEdit', editingId);
            }
        }
    
        function insert() {
            var node = $('#tg').treegrid('getSelected');
    /*        if (node) {
             $('#tg').treegrid('insert', {
             after: node.id,
             data: {
             "id":Math.floor(Math.random()*1000000000000),
             "name": "请输入编码",
             "iconCls": "icon-city",
             "checked": false,
             "_parentId": node.id
    
             }
             });
             }*/
            $('#tg').treegrid('append',{
                parent:  node.id,  // 这里指定父级标识就可以了
                data: [{"id":Math.floor(Math.random()*1000000000000),"name": "请输入编码",}]
            });
    
        }
        function guid() {
            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
                var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
                return v.toString(16);
            });
        }
        console.log(guid());
        function save(){
            if (editingId != undefined){
                var t = $('#tg');
                t.treegrid('endEdit', editingId);
                editingId = undefined;
                var persons = 0;
                var rows = t.treegrid('getChildren');
                for(var i=0; i<rows.length; i++){
                    var p = parseInt(rows[i].persons);
                    if (!isNaN(p)){
                        persons += p;
                    }
                }
                var frow = t.treegrid('getFooterRows')[0];
                frow.persons = persons;
                t.treegrid('reloadFooter');
            }
        }
        function cancel(){
            if (editingId != undefined){
                $('#tg').treegrid('cancelEdit', editingId);
                editingId = undefined;
            }
        }
        function a11(){
            $('#tg').treegrid('selectAll');
            var node = $('#tg').treegrid('getSelections')
            //var node = $('#tg').treegrid('getData');
            //console.log(node);
            for(var i=0;i < node.length;i++){
                console.log(node[i].id);
                var objt = Object();
                objt.ITEM_ID =node[i].id;
                objt.ITEM_NAME =node[i].name;
                objt.ITEM_CODE =node[i].ITEM_CODE;
                objt.ORDER_NO =node[i].ORDER_NO;
                objt.PID =node[i]._parentId;
                console.log(objt);
                myjstools.ajax(false, "POST", "/web/service?METHOD=index_save", objt,saveit_res);
            }
            alert("保存成功");
        }
        function saveit_res(data) {
            try {
                if (data.success != 1) {
                    myjstools.showerrinfo("server.error:" + data.msg);
                    return;
                }
                //$('#tg').treegrid('reload');
            } catch (e) {
                myjstools.showerrinfo("deltree_res.error:出错了!" + e.message);
            }
    
        }
    </script>
    
    </body>
    
    </html>

    这个是我之前写的  我先建了个顶级节点的json 然后通过append方法实现静态加载,但是没有和数据库进行交互,最后把它全部取出来存到数据库,后来经理说怕这实用性不好就把这推翻了,我重新做了动态加载的方法.

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>管理</title>
        <link id="linkm" rel="stylesheet" type="text/css" href="../themes/default/easyui1.css"/>
        <link rel="stylesheet" type="text/css" href="../themes/icon.css"/>
        <script type="text/javascript" src="../js/jquery.min.js"></script>
        <script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="../js/easyui-lang-zh_CN.js"></script>
        <script language="javascript" type="text/javascript" src="../js/myjstools.js"></script>
        <link rel="stylesheet" type="text/css" href="../ztree/zTreeStyle/zTreeStyle.css"/>
        <script type="text/javascript" src="../ztree/jquery.ztree.all.min.js"></script>
        <script type="text/javascript">
            var mid = myjstools.request("SUBJECT_ID").replace("#", "");
            //region 初始化ztree
            $(function () {
                console.log(mid);
                loadtree();
                loadtreegrid();
            });
    
            //显示treegrid
            function loadtree() {
    
                $('#tt1').treegrid({
                    url: myjstools.wwwroot + "/web/service?METHOD=item_dategrid&SUBJECT_ID=" + mid,
                    idField: 'id',
                    treeField: 'ITEM_NAME',
                    columns: [[
                        {title: '项目名称', field: 'ITEM_NAME',  "40%"},
                        {field: 'ITEM_CODE', title: '项目编码',  "30%"},
                        {field: 'ORDER_NO', title: '排序号',  "30%"}
    
                    ]]
                });
            }
            //显示treegrid
            function loadtreegrid() {
    
                $('#tt').treegrid({
                    url: myjstools.wwwroot + "/web/service?METHOD=index_dategrid&SUBJECT_ID=" + mid,
                    idField: 'id',
                    treeField: 'INDEX_NAME',
                    columns: [[
                        {title: '指标名称', field: 'INDEX_NAME',  "40%"},
                        {field: 'INDEX_CODE', title: '指标编码',  "20%"},
                        {field: 'INDEX_FORMAT', title: '指标格式',  "20%"},
                        {field: 'ORDER_NO', title: '排序号',  "20%"}
                    ]]
                });
            }
        </script>
    </head>
    <body>
    
    
    <div style="float: right;  50%;">
        <a>纵向名称</a>
        <div style="margin:20px 0;" id="div">
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="addtopitem()">添加顶级节点</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="info()">查看</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="edititem()">修改</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="additem()">添加</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="deletitem()">删除</a>
        </div>
        <table id="tt1" class="easyui-treegrid" style="100%;height:773.75px">
        </table>
    </div>
    
    <div style="float: right;  50%;">
        <a>横向名称</a>
        <div style="margin:20px 0;" id="div1">
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="addtopindex()">添加顶级节点</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="info1()">查看</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="editindex()">修改</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="addindex()">添加</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="deletindex()">删除</a>
        </div>
        <table id="tt" class="easyui-treegrid" style="100%;height:773.75px">
        </table>
    </div>
    <div id="win" class="easyui-window" title="..." style="1000px;height:700px;"
         data-options="modal:true,closed:true">
        <iframe id="fra_s" width="99%" height="99%" border="0" frameborder="0"></iframe>
    </div>
    
    <script type="text/javascript">
        function closewin() {
            console.log("sdgfdgef");
            $('#tt1').treegrid('reload');
            $('#tt').treegrid('reload');
        }
        function info() {
            var row = $('#tt1').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                window.box = new window.top.Box({
                   title:'详细信息',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/info.html?ITEM_ID="+id,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
             //   myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/info.html?DEPT_ID=" + id);
            } else {
                alert("请选择");
            }
    
        }
        function deletitem() {
            var row = $('#tt1').treegrid('getSelected');
            if (row != null) {
                if (row.children == undefined && row.children == null) {
                    var id = row.id;
                    var pid = row._parentId;
                    $.messager.confirm('提示', '确认删除当前信息吗?'
                        , function (r) {
                            if (r) {
                                myjstools.ajax(false, "POST", "/web/service?METHOD=item_dategriddele", {
                                    ITEM_ID: id
                                }, deldic_res);
                            }
                        });
                }
                else {
                    alert("不能删除根节点");
                }
            } else {
                alert("请选择");
            }
        }
    
        function deldic_res(data) {
            try {
                if (data.success != 1) {
                    myjstools.showerrinfo("server.error:" + data.msg);
                    return;
    
                }
                $('#tt').treegrid('reload');
                loadtree();
            } catch (e) {
                myjstools.showerrinfo("deltree_res.error:出错了!" + e.message);
            }
        }
        function edititem() {
            var row = $('#tt1').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                var pid = row._parentId;
                window.box = new window.top.Box({
                    title:'编辑',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/itemedit.html?ITEM_ID=" + id,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
                //myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/itrmedit.html?INDEX_ID=" + id + "&PID" + pid);
            } else {
                alert("请选择");
            }
    
        }
        function additem() {
            var row = $('#tt1').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                var pid = row._parentId;
                window.box = new window.top.Box({
                    title:'编辑',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/itemadd.html?PID=" + id+ "&SUBJECT_ID=" + mid,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
              //  myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/add.html?_parentId=" + id+ "&_parentId" + pid);
            } else {
                alert("请选择");
            }
        }
        function addtopitem() {
                   window.box = new window.top.Box({
                    title:'编辑',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/itemtopadd.html?SUBJECT_ID="+mid,
                    '550',
                    height:'550'
              //  myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/add.html?_parentId=" + id+ "&_parentId" + pid);
            })
                 box.open();//显示弹窗
        }
    
        function info1() {
            var row = $('#tt').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                window.box = new window.top.Box({
                    title:'详细信息',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/infoindex.html?INDEX_ID="+id,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
                //   myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/info.html?DEPT_ID=" + id);
            } else {
                alert("请选择");
            }
    
        }
        function deletindex() {
            var row = $('#tt').treegrid('getSelected');
            if (row != null) {
                if (row.children == undefined && row.children == null) {
                    var id = row.id;
                    var pid = row._parentId;
                    $.messager.confirm('提示', '确认删除当前信息吗?'
                        , function (r) {
                            if (r) {
                                myjstools.ajax(false, "POST", "/web/service?METHOD=index_dategriddele", {
                                    INDEX_ID: id
                                }, deldic_res);
                            }
                        });
                }
                else {
                    alert("不能删除根节点");
                }
            } else {
                alert("请选择");
            }
        }
    
        function deldic_res(data) {
            try {
                if (data.success != 1) {
                    myjstools.showerrinfo("server.error:" + data.msg);
                    return;
    
                }
                $('#tt').treegrid('reload');
                loadtree();
            } catch (e) {
                myjstools.showerrinfo("deltree_res.error:出错了!" + e.message);
            }
        }
        function editindex() {
            var row = $('#tt').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                window.box = new window.top.Box({
                    title:'详细信息',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/indexedit.html?INDEX_ID="+id,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
                //myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/itemedit.html?DEPT_ID=" + id + "&PID" + pid);
            } else {
                alert("请选择");
            }
    
        }
        function addindex() {
            var row = $('#tt').treegrid('getSelected');
            if (row != null) {
                var id = row.id;
                window.box = new window.top.Box({
                    title:'编辑',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/indexadd.html?PID=" + id+ "&SUBJECT_ID=" + mid,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
               // myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/add.html?_parentId=" + id);
            } else {
                alert("请选择");
            }
        }
        function addtopindex() {
                window.box = new window.top.Box({
                    title:'编辑',
                    type:'frame',
                    src:myjstools.wwwroot+ "/pchtml/form/indextopadd.html?SUBJECT_ID=" + mid,
                    '550',
                    height:'550'
                });
                box.open();//显示弹窗
               // myjstools.opennewweb(" ", myjstools.wwwroot + "/pchtml/dept/add.html?_parentId=" + id);
        }
    </script>
    
    </body>
    </html>
  • 相关阅读:
    “朋友圈”又添好友,DataPipeline与统信服务器操作系统完成产品互认证
    DataPipeline与飞腾完成产品兼容性互认证,携手共建自主IT底层生态
    「山东城商行联盟」数据库准实时数据采集系统上线,DataPipeline助力城市商业银行加快数字化转型
    DataPipeline 实时数据融合产品入驻青云云市场,催化企业数据价值释放
    2020年净利暴涨1288%,遨森电商携手DataPipeline构建实时数据融合体系跑出加速度!
    宏昆酒店集团携手DataPipeline打造实时数据融合平台,酒店业精益管理的新秘诀
    销售易携手DataPipeline,推动“实时感知主动决策客户成功”的变革!
    DataPipeline助力悠星网络出海,以实时数据管理护航爆款游戏
    FIGR/IR业务流程
    ABAP调用堆栈
  • 原文地址:https://www.cnblogs.com/grhjava/p/6743045.html
Copyright © 2011-2022 走看看