亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dept.js

?? anewssystem新聞發布系統集成使用了spring hibernate freemarker EXTJS等開源框架 可以作為學習參考
?? JS
字號:
/*
 * Ext JS Library 1.1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 *
 * http://www.extjs.com/license
 *
 * @author Lingo
 * @since 2007-09-06
 * http://code.google.com/p/anewssystem/
 */
Ext.onReady(function(){
    // 打開提示功能
    Ext.QuickTips.init();

    // ====================================================
    // 開始構造樹形
    // ====================================================
    var treeloader = new Ext.tree.TreeLoader({dataUrl:'getAllTree.htm'});
    var tree = new Ext.tree.TreePanel('main', {
        animate:false,
        containerScroll: true,
        enableDD:true,
        lines: true,
        loader: treeloader
    });
    // 不使用自動排序
    //new Ext.tree.TreeSorter(tree, {folderSort:true});
    tree.el.addKeyListener(Ext.EventObject.DELETE, removeNode);

    // ====================================================
    // 工具欄
    // ====================================================
    var tb = new Ext.Toolbar(tree.el.createChild({tag:'div'}));
    tb.add({
        text: '新增子分類',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip: '添加選中節點的下級分類',
        handler: createChild
    }, {
        text: '新增兄弟分類',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip: '添加選中節點的同級分類',
        handler: createBrother
    }, {
        text: '修改分類',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip: '修改選中分類',
        handler: updateNode
    }, {
        text: '刪除分類',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip:'刪除一個分類',
        handler:removeNode
    }, '-', {
        text: '排序',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip:'保存排序結果',
        handler:save
    }, '-', {
        text: '展開',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip:'展開所有分類',
        handler:expandAll
    }, {
        text: '關閉',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip:'關閉所有分類',
        handler:collapseAll
    }, {
        text: '刷新',
        icon: '../widgets/images/list-items.gif',
        cls: 'x-btn-text-icon album-btn',
        tooltip:'刷新所有節點',
        handler:refresh
    });

    // ====================================================
    // 工具欄操作函數
    // ====================================================
    function createChild() {
        var sm = tree.getSelectionModel();
        var n = sm.getSelectedNode();
        if (!n) {
            n = tree.getRootNode();
        } else {
            n.expand(false, false);
        }
        createNode(n);
    }
    function createBrother() {
        var n = tree.getSelectionModel().getSelectedNode();
        if (!n) {
            Ext.Msg.alert('提示', "請選擇一個節點");
        } else if (n == tree.getRootNode()) {
            Ext.Msg.alert('提示', "不能為根節點增加兄弟節點");
        } else {
            createNode(n.parentNode);
        }
    }
    function createNode(n) {
        var node = n.appendChild(new Ext.tree.TreeNode({
            id:-1,
            text:'請輸入分類名',
            cls:'album-node',
            allowDrag:true,
            allowDelete:true,
            allowEdit:true,
            allowChildren:true
        }));
        tree.getSelectionModel().select(node);
        setTimeout(function(){
            ge.editNode = node;
            ge.startEdit(node.ui.textNode);
        }, 10);
    }
    function updateNode() {
        var n = tree.getSelectionModel().getSelectedNode();
        if (!n) {
            Ext.Msg.alert('提示', "請選擇一個節點");
        } else if (n == tree.getRootNode()) {
            Ext.Msg.alert('提示', "不能為根節點增加兄弟節點");
        } else {
            setTimeout(function(){
                ge.editNode = n;
                ge.startEdit(n.ui.textNode);
            }, 10);
        }
    }
    function removeNode() {
        var sm = tree.getSelectionModel();
        var n = sm.getSelectedNode();
        if(n && n.attributes.allowDelete){
            tree.getSelectionModel().selectPrevious();
            tree.el.mask('正在與服務器交換數據...', 'x-mask-loading');
            var hide = tree.el.unmask.createDelegate(tree.el);
            Ext.lib.Ajax.request(
                'POST',
                'removeTree.htm',
                {success:hide,failure:hide},
                'id='+n.id
            );
            n.parentNode.removeChild(n);
        }
    }
    function appendNode(node, array) {
        if (!node || node.childNodes.length < 1) {
            return;
        }
        for (var i = 0; i < node.childNodes.length; i++) {
            var child = node.childNodes[i];
            array.push({id:child.id,parentId:child.parentNode.id});
            appendNode(child, array);
        }
    }
    function save() {
        // 向數據庫發送一個json數組,保存排序信息
        tree.el.mask('正在與服務器交換數據...', 'x-mask-loading');
        var hide = tree.el.unmask.createDelegate(tree.el);
        var ch = [];
        appendNode(root, ch);
        Ext.lib.Ajax.request(
            'POST',
            'sortTree.htm',
            {success:hide,failure:hide},
            'data='+encodeURIComponent(Ext.encode(ch))
        );
    }
    function collapseAll(){
        ctxMenu.hide();
        setTimeout(function(){
            root.eachChild(function(n){
               n.collapse(true, false);
            });
        }, 10);
    }
    function expandAll(){
        ctxMenu.hide();
        setTimeout(function(){
            root.eachChild(function(n){
               n.expand(false, false);
            });
        }, 10);
    }
    function refresh() {
        tree.root.reload();
        tree.root.expand(true, false);
    }

    // ====================================================
    // 樹節點的即時編輯器
    // ====================================================
    var ge = new Ext.tree.TreeEditor(tree, {
        allowBlank:false,
        blankText:'請添寫名稱',
        selectOnFocus:true
    });
    ge.on('beforestartedit', function(){
        var node = ge.editNode;
        if(!node.attributes.allowEdit){
            return false;
        } else {
            node.attributes.oldText = node.text;
        }
    });
    ge.on('complete', function() {
        var node = ge.editNode;
        // 如果節點沒有改變,就向服務器發送修改信息
        if (node.attributes.oldText == node.text) {
            node.attributes.oldText = null;
            return true;
        }
        var item = {
            id: node.id,
            text: node.text,
            parentId: node.parentNode.id
        };

        tree.el.mask('正在與服務器交換數據...', 'x-mask-loading');
        var hide = tree.el.unmask.createDelegate(tree.el);
        var doSuccess = function(responseObject) {
            eval("var o = " + responseObject.responseText + ";");
            ge.editNode.id = o.id;
            hide();
        };
        Ext.lib.Ajax.request(
            'POST',
            'insertTree.htm',
            {success:doSuccess,failure:hide},
            'data='+encodeURIComponent(Ext.encode(item))
        );
    });

    // ====================================================
    // 樹型的根節點
    // ====================================================
    var root = new Ext.tree.AsyncTreeNode({
        text: '部門',
        draggable:true,
        id:-1
    });
    tree.setRootNode(root);
    tree.render();
    // true說明展開所有節點,false說明不使用動畫
    root.expand(true, false);

    // ====================================================
    // 彈出對話框
    // ====================================================
    function createNewDialog(dialogName) {
        var thisDialog = new Ext.LayoutDialog(dialogName, {
            modal:true,
            autoTabs:true,
            proxyDrag:true,
            resizable:false,
            width: 410,
            height: 300,
            shadow:true,
            center: {
                autoScroll: true,
                tabPosition: 'top',
                closeOnTab: true,
                alwaysShowTabs: false
            }
        });
        thisDialog.addKeyListener(27, thisDialog.hide, thisDialog);
        thisDialog.addButton('取消', function() {thisDialog.hide();});

        return thisDialog;
    };
    function configMenu(){
        var sm = tree.getSelectionModel();
        var n = sm.getSelectedNode();
        // Ext.MessageBox.prompt('當前菜單URL:'+n.attributes.url, '請輸入新的URL:', showResultText);
        var menuData = new Ext.data.Store({
            proxy: new Ext.data.HttpProxy({url:'loadData.htm?id=' + n.id}),
            reader: new Ext.data.JsonReader({},['id','name',"descn"]),
            remoteSort: false
        });
        menuData.on('load', function() {
            var id = menuData.getAt(0).data['id'];
            var name = menuData.getAt(0).data['name'];
            fieldName.setValue(name);
            var descn = menuData.getAt(0).data['descn'];
            fieldDescn.setValue(descn);

            var dialog;
            if (!dialog) {
                dialog = createNewDialog("a-updateInstance-dialog");
                dialog.addButton('提交', function() {
                    if (menuForm.isValid()) {
                        menuForm.submit({
                            params:{id : id},
                            waitMsg:'更新數據...',
                            reset: false,
                            failure: function(menuForm, action) {
                                Ext.MessageBox.alert('錯誤', action.result.errorInfo);
                            },
                            success: function(menuForm, action) {
                                Ext.MessageBox.alert('成功', action.result.info);
                                dialog.hide();
                                refresh();
                            }
                        });
                    }else{
                        Ext.MessageBox.alert('錯誤', '請查看錯誤信息');
                    }
                });

                var layout = dialog.getLayout();
                layout.beginUpdate();
                layout.add('center', new Ext.ContentPanel('a-updateInstance-inner', {title: '修改菜單信息'}));
                layout.endUpdate();

                dialog.show();
            }
        });
        menuData.load();
    }
    // 打開驗證功能
    Ext.form.Field.prototype.msgTarget = 'side';
    Ext.form.Field.prototype.height = 20;
    Ext.form.Field.prototype.fieldClass = 'text-field-default';
    Ext.form.Field.prototype.focusClass = 'text-field-focus';
    Ext.form.Field.prototype.invalidClass = 'text-field-invalid';
    var fieldName = new Ext.form.TextField({
        fieldLabel: '名稱',
        name: 'name',
        width:170,
        readOnly: false,
        allowBlank:false
    });
    var fieldDescn = new Ext.form.TextField({
        fieldLabel: '描述',
        name: 'descn',
        width:170,
        readOnly: false,
        allowBlank:true
    });
    var menuForm = new Ext.form.Form({
        labelAlign: 'right',
        url:'update.htm'
    });

    menuForm.column({width: 360, labelWidth:100, style:'margin-left:10px;margin-top:10px'});
    menuForm.fieldset(
        {id:'id', legend:'修改'},
        fieldName,
        fieldDescn
    );

    menuForm.applyIfToFields({width:255});
    menuForm.render('a-updateInstance-form');
    menuForm.end();
    function showResultText(btn, text){
        var sm = tree.getSelectionModel();
        var n = sm.getSelectedNode();
        if(btn == 'ok'){
            Ext.example.msg('數據提交中....', '請稍候');
            Ext.Ajax.request({
                url:'menu.do?method=updateMenuUrl',
                success:function(){
                    Ext.MessageBox.alert('提示', '配置成功!');
                    tree.getNodeById(n.id).reload();
                },
                failure:function(){Ext.MessageBox.alert('提示', '配置失敗!');},
                params:{id:n.id,url:text}
            });
        }else{
            return;
        }
    };

    // ====================================================
    // 右鍵菜單
    // ====================================================
    tree.on('contextmenu', prepareCtx);
    var ctxMenu = new Ext.menu.Menu({
        id:'copyCtx',
        items: [{
            id:'展開',
            handler:expandAll,
            cls:'expand-all',
            text:'展開'
        },{
            id:'收起',
            handler:collapseAll,
            cls:'collapse-all',
            text:'收起'
        },{
            id:'remove',
            handler:removeNode,
            cls:'remove-mi',
            text: '刪除'
        },{
            id:'config',
            handler:configMenu,
            text: '配置部門'
        }]
    });
    function prepareCtx(node, e){
        node.select();
        ctxMenu.items.get('remove')[node.attributes.allowDelete ? 'enable' : 'disable']();
        ctxMenu.showAt(e.getXY());
    }

    // ====================================================
    // 拖拽
    // ====================================================
    tree.on("nodedragover", function(e){
        var n = e.target;
        if (n.leaf) {
            n.leaf = false;
        }
        return true;
    });
    // 拖拽后,就向服務器發送消息,更新數據
    // 本人不喜歡這種方式,屏蔽
/*
    tree.on('nodedrop', function(e){
        var n = e.dropNode;
        var item = {
            id: n.id,
            text: n.text,
            parentId: e.target.id
        };
        tree.el.mask('正在向服務器發送信息...', 'x-mask-loading');
        var hide = tree.el.unmask.createDelegate(tree.el);
        Ext.lib.Ajax.request(
            'POST',
            'insertTree.htm',
            {success:hide,failure:hide},
            'data='+encodeURIComponent(Ext.encode(item))
        );
    });
*/
});

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂一区二区在线| 欧美理论电影在线| 国产精品婷婷午夜在线观看| 国产成人精品亚洲午夜麻豆| 国产亚洲一二三区| 成人h动漫精品| 亚洲激情图片小说视频| 国产精品蜜臀在线观看| 亚洲激情成人在线| 在线免费观看成人短视频| 欧美亚洲动漫制服丝袜| 精品国产a毛片| 日本一区二区三区国色天香| 成人欧美一区二区三区白人 | 99视频精品免费视频| 一本大道av一区二区在线播放| 欧美视频在线一区二区三区| 国产喷白浆一区二区三区| 成人h动漫精品一区二区| 亚洲一区在线观看免费 | 日本不卡一区二区三区| 精品久久人人做人人爰| 91在线你懂得| 日本va欧美va欧美va精品| 国产拍揄自揄精品视频麻豆| 在线欧美一区二区| 国内精品不卡在线| 亚洲午夜精品久久久久久久久| 欧美一级艳片视频免费观看| 成人妖精视频yjsp地址| 日韩中文字幕麻豆| 国产精品狼人久久影院观看方式| 欧美日韩精品专区| 成人亚洲一区二区一| 亚洲午夜日本在线观看| 久久精品免费在线观看| 欧美剧情片在线观看| 高清国产一区二区三区| 日韩国产欧美三级| 亚洲人精品一区| 精品国产免费人成电影在线观看四季| av在线一区二区三区| 久久97超碰国产精品超碰| 亚洲欧美色综合| 久久影院视频免费| 欧美人牲a欧美精品| 91在线国产观看| 国产黄人亚洲片| 麻豆传媒一区二区三区| 亚洲三级视频在线观看| 久久先锋影音av鲁色资源| 欧美日韩在线精品一区二区三区激情 | 久久久美女毛片| 国产成人av电影免费在线观看| 国产精品美日韩| 欧美日免费三级在线| 日韩精品国产精品| 精品国产乱码久久久久久图片| 精品一区二区三区日韩| 亚洲国产日日夜夜| 欧美日韩午夜精品| 免费看欧美美女黄的网站| 日韩一区二区视频| 精品国产一区二区三区四区四| 五月天亚洲精品| 一区二区在线观看视频在线观看| 中文字幕不卡三区| 亚洲国产成人一区二区三区| 26uuu精品一区二区在线观看| 欧美一区二区三级| 欧美精品色综合| 欧美一区二区在线视频| 欧美女孩性生活视频| 色天天综合久久久久综合片| 成人一区二区三区中文字幕| 国产精品77777竹菊影视小说| 国内精品自线一区二区三区视频| 久久电影网站中文字幕| 蜜臀精品一区二区三区在线观看 | 国产91色综合久久免费分享| 国产盗摄一区二区三区| 国产一区二区日韩精品| 国产一区二区三区电影在线观看| 国产成人综合网站| av综合在线播放| 91久久精品午夜一区二区| 欧美亚洲综合另类| 欧美一级电影网站| 久久色在线视频| 国产精品人妖ts系列视频| 中文字幕中文在线不卡住| 国产精品成人免费在线| 夜夜亚洲天天久久| 日韩电影在线免费观看| 精品一区二区av| 岛国精品在线播放| 91美女在线看| 欧美男生操女生| 久久精品一区蜜桃臀影院| 国产精品久久三| 亚洲一区二区四区蜜桃| 亚洲成人精品在线观看| 久久99国产精品尤物| 不卡在线视频中文字幕| 久久亚洲精品小早川怜子| 欧美久久久一区| 国产精品天干天干在线综合| 一个色综合av| 国产一区二区三区免费看| 激情伊人五月天久久综合| 成人在线视频一区| 欧洲生活片亚洲生活在线观看| 在线观看一区日韩| 欧美一区二区高清| 久久免费国产精品| 日本美女视频一区二区| 日韩色视频在线观看| 在线视频国内一区二区| 精品国精品国产| 亚洲欧美自拍偷拍| 亚洲高清一区二区三区| 国产精品亚洲第一| 欧美三级韩国三级日本三斤| 久久男人中文字幕资源站| 一区二区三区成人| 激情五月婷婷综合| 在线观看精品一区| 欧美韩日一区二区三区四区| 亚洲成人自拍偷拍| 成人午夜碰碰视频| 欧美成人一区二区三区片免费 | 欧美系列日韩一区| 国产片一区二区三区| 日韩av在线发布| 日本道色综合久久| 国产丝袜美腿一区二区三区| 日韩国产欧美在线观看| 日本韩国精品在线| 国产亚洲精品福利| 日本欧美一区二区三区乱码| 91国在线观看| 亚洲欧美影音先锋| 国产成人在线影院| 日韩欧美在线123| 亚洲大片一区二区三区| jlzzjlzz欧美大全| 久久精品一区四区| 精品一区二区三区影院在线午夜| 777午夜精品免费视频| 亚洲一区二区三区四区在线 | 亚洲成在人线免费| 欧美在线免费观看亚洲| 综合亚洲深深色噜噜狠狠网站| 国产精品一区二区三区四区| 欧美变态tickling挠脚心| 日韩福利电影在线| 欧美三级在线播放| 亚洲国产乱码最新视频 | 99国产麻豆精品| 久久久综合网站| 亚洲欧洲日韩综合一区二区| 成人av影视在线观看| 高清不卡在线观看| 国内精品久久久久影院一蜜桃| 国产午夜一区二区三区| 91影院在线免费观看| 日本人妖一区二区| 国产午夜精品久久久久久久| 日韩视频中午一区| 国产一区二区三区最好精华液| 国产精品久久久久精k8| 欧美日韩精品专区| 99免费精品在线观看| 日本亚洲视频在线| 美女精品自拍一二三四| 日韩亚洲欧美在线| 久久精品国产澳门| 久久久午夜精品理论片中文字幕| 国产综合色在线视频区| 欧美激情综合在线| 99久久99久久免费精品蜜臀| 亚洲蜜桃精久久久久久久| 色94色欧美sute亚洲线路一ni| 亚洲综合无码一区二区| 欧美高清精品3d| 国产在线精品一区二区不卡了| 国产亚洲精久久久久久| 99视频一区二区三区| 一区二区三区成人| 日韩欧美国产综合一区| 国产精品综合一区二区| 亚洲欧美日韩中文播放| 91精品国产综合久久精品| 精品亚洲成a人| 亚洲免费观看高清完整版在线观看熊 | 免费在线观看视频一区| 国产日韩三级在线| 欧美午夜精品电影| 九色综合国产一区二区三区| 国产精品免费视频网站|