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

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

?? ddview.js

?? 實現了一個OA系統基本的功能
?? JS
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Ext JS Library 2.2
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

/* * Software License Agreement (BSD License) * Copyright (c) 2008, Nige "Animal" White * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * *     * Redistributions of source code must retain the above copyright notice, *       this list of conditions and the following disclaimer. *     * Redistributions in binary form must reproduce the above copyright notice, *       this list of conditions and the following disclaimer in the documentation *       and/or other materials provided with the distribution. *     * Neither the name of the original author nor the names of its contributors *       may be used to endorse or promote products derived from this software *       without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. *//** * @class Ext.ux.DDView * <p>A DnD-enabled version of {@link Ext.DataView}. Drag/drop is implemented by adding * {@link Ext.data.Record}s to the target DDView. If copying is not being performed, * the original {@link Ext.data.Record} is removed from the source DDView.</p> * @constructor * Create a new DDView * @param {Object} config The configuration properties. */Ext.ux.DDView = function(config) {    if (!config.itemSelector) {        var tpl = config.tpl;        if (this.classRe.test(tpl)) {            config.tpl = tpl.replace(this.classRe, 'class=$1x-combo-list-item $2$1');        }        else {            config.tpl = tpl.replace(this.tagRe, '$1 class="x-combo-list-item" $2');        }        config.itemSelector = ".x-combo-list-item";    }    Ext.ux.DDView.superclass.constructor.call(this, Ext.apply(config, {        border: false    }));};Ext.extend(Ext.ux.DDView, Ext.DataView, {    /**     * @cfg {String/Array} dragGroup The ddgroup name(s) for the View's DragZone (defaults to undefined).     */    /**     * @cfg {String/Array} dropGroup The ddgroup name(s) for the View's DropZone (defaults to undefined).     */    /**     * @cfg {Boolean} copy Causes drag operations to copy nodes rather than move (defaults to false).     */    /**     * @cfg {Boolean} allowCopy Causes ctrl/drag operations to copy nodes rather than move (defaults to false).     */    /**     * @cfg {String} sortDir Sort direction for the view, 'ASC' or 'DESC' (defaults to 'ASC').     */    sortDir: 'ASC',    // private    isFormField: true,    classRe: /class=(['"])(.*)\1/,    tagRe: /(<\w*)(.*?>)/,    reset: Ext.emptyFn,    clearInvalid: Ext.form.Field.prototype.clearInvalid,    // private    afterRender: function() {        Ext.ux.DDView.superclass.afterRender.call(this);        if (this.dragGroup) {            this.setDraggable(this.dragGroup.split(","));        }        if (this.dropGroup) {            this.setDroppable(this.dropGroup.split(","));        }        if (this.deletable) {            this.setDeletable();        }        this.isDirtyFlag = false;        this.addEvents(            "drop"        );    },    // private    validate: function() {        return true;    },    // private    destroy: function() {        this.purgeListeners();        this.getEl().removeAllListeners();        this.getEl().remove();        if (this.dragZone) {            if (this.dragZone.destroy) {                this.dragZone.destroy();            }        }        if (this.dropZone) {            if (this.dropZone.destroy) {                this.dropZone.destroy();            }        }    },	/**	 * Allows this class to be an Ext.form.Field so it can be found using {@link Ext.form.BasicForm#findField}.	 */    getName: function() {        return this.name;    },	/**	 * Loads the View from a JSON string representing the Records to put into the Store.     * @param {String} value The JSON string	 */    setValue: function(v) {        if (!this.store) {            throw "DDView.setValue(). DDView must be constructed with a valid Store";        }        var data = {};        data[this.store.reader.meta.root] = v ? [].concat(v) : [];        this.store.proxy = new Ext.data.MemoryProxy(data);        this.store.load();    },	/**	 * Returns the view's data value as a list of ids.     * @return {String} A parenthesised list of the ids of the Records in the View, e.g. (1,3,8).	 */    getValue: function() {        var result = '(';        this.store.each(function(rec) {            result += rec.id + ',';        });        return result.substr(0, result.length - 1) + ')';    },    getIds: function() {        var i = 0, result = new Array(this.store.getCount());        this.store.each(function(rec) {            result[i++] = rec.id;        });        return result;    },    /**     * Returns true if the view's data has changed, else false.     * @return {Boolean}     */    isDirty: function() {        return this.isDirtyFlag;    },	/**	 * Part of the Ext.dd.DropZone interface. If no target node is found, the	 * whole Element becomes the target, and this causes the drop gesture to append.	 */    getTargetFromEvent : function(e) {        var target = e.getTarget();        while ((target !== null) && (target.parentNode != this.el.dom)) {            target = target.parentNode;        }        if (!target) {            target = this.el.dom.lastChild || this.el.dom;        }        return target;    },	/**	 * Create the drag data which consists of an object which has the property "ddel" as	 * the drag proxy element.	 */    getDragData : function(e) {        var target = this.findItemFromChild(e.getTarget());        if(target) {            if (!this.isSelected(target)) {                delete this.ignoreNextClick;                this.onItemClick(target, this.indexOf(target), e);                this.ignoreNextClick = true;            }            var dragData = {                sourceView: this,                viewNodes: [],                records: [],                copy: this.copy || (this.allowCopy && e.ctrlKey)            };            if (this.getSelectionCount() == 1) {                var i = this.getSelectedIndexes()[0];                var n = this.getNode(i);                dragData.viewNodes.push(dragData.ddel = n);                dragData.records.push(this.store.getAt(i));                dragData.repairXY = Ext.fly(n).getXY();            } else {                dragData.ddel = document.createElement('div');                dragData.ddel.className = 'multi-proxy';                this.collectSelection(dragData);            }            return dragData;        }        return false;    },    // override the default repairXY.    getRepairXY : function(e){        return this.dragData.repairXY;    },	// private    collectSelection: function(data) {        data.repairXY = Ext.fly(this.getSelectedNodes()[0]).getXY();        if (this.preserveSelectionOrder === true) {            Ext.each(this.getSelectedIndexes(), function(i) {                var n = this.getNode(i);                var dragNode = n.cloneNode(true);                dragNode.id = Ext.id();                data.ddel.appendChild(dragNode);                data.records.push(this.store.getAt(i));                data.viewNodes.push(n);            }, this);        } else {            var i = 0;            this.store.each(function(rec){                if (this.isSelected(i)) {                    var n = this.getNode(i);                    var dragNode = n.cloneNode(true);                    dragNode.id = Ext.id();                    data.ddel.appendChild(dragNode);                    data.records.push(this.store.getAt(i));                    data.viewNodes.push(n);                }                i++;            }, this);        }    },	/**	 * Specify to which ddGroup items in this DDView may be dragged.     * @param {String} ddGroup The DD group name to assign this view to.	 */    setDraggable: function(ddGroup) {        if (ddGroup instanceof Array) {            Ext.each(ddGroup, this.setDraggable, this);            return;        }        if (this.dragZone) {            this.dragZone.addToGroup(ddGroup);        } else {            this.dragZone = new Ext.dd.DragZone(this.getEl(), {                containerScroll: true,                ddGroup: ddGroup            });            // Draggability implies selection. DragZone's mousedown selects the element.            if (!this.multiSelect) { this.singleSelect = true; }            // Wire the DragZone's handlers up to methods in *this*            this.dragZone.getDragData = this.getDragData.createDelegate(this);            this.dragZone.getRepairXY = this.getRepairXY;            this.dragZone.onEndDrag = this.onEndDrag;        }    },	/**	 * Specify from which ddGroup this DDView accepts drops.     * @param {String} ddGroup The DD group name from which to accept drops.	 */    setDroppable: function(ddGroup) {        if (ddGroup instanceof Array) {            Ext.each(ddGroup, this.setDroppable, this);            return;        }        if (this.dropZone) {            this.dropZone.addToGroup(ddGroup);        } else {            this.dropZone = new Ext.dd.DropZone(this.getEl(), {                owningView: this,                containerScroll: true,                ddGroup: ddGroup            });            // Wire the DropZone's handlers up to methods in *this*            this.dropZone.getTargetFromEvent = this.getTargetFromEvent.createDelegate(this);            this.dropZone.onNodeEnter = this.onNodeEnter.createDelegate(this);            this.dropZone.onNodeOver = this.onNodeOver.createDelegate(this);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频第一区| 精品免费日韩av| 成人国产精品免费观看视频| 国产久卡久卡久卡久卡视频精品| 美女尤物国产一区| 蜜臀av性久久久久蜜臀av麻豆| 图片区小说区国产精品视频| 午夜一区二区三区在线观看| 亚洲一区免费在线观看| 午夜精品免费在线| 日本91福利区| 国产成人一级电影| av男人天堂一区| 91黄色在线观看| 51久久夜色精品国产麻豆| 欧美一区二区三区免费| www国产精品av| 国产精品女上位| 亚洲国产成人91porn| 日韩主播视频在线| 久久疯狂做爰流白浆xx| 成人黄色在线网站| 欧美性色aⅴ视频一区日韩精品| 欧美精品久久天天躁| 欧美videossexotv100| 国产精品国产三级国产普通话三级 | 国产大片一区二区| 91在线视频在线| 欧美美女一区二区| 国产日韩欧美激情| 亚洲影院理伦片| 国产毛片精品国产一区二区三区| 99在线热播精品免费| 欧美三级中文字幕在线观看| 精品乱人伦一区二区三区| 欧美激情一区二区| 全国精品久久少妇| 一本一道久久a久久精品综合蜜臀| 欧美日韩美女一区二区| 久久综合视频网| 亚洲一区精品在线| 成人小视频免费在线观看| 欧美日韩不卡在线| 国产精品色一区二区三区| 日韩精品一二区| 91蜜桃在线免费视频| 日韩精品一区二区三区swag| 亚洲日本在线a| 国产成人精品影院| 91.xcao| 洋洋成人永久网站入口| 国产成人亚洲综合a∨婷婷图片| 欧美视频精品在线| 亚洲精品日日夜夜| 成人一区二区三区视频| 91精品国产麻豆国产自产在线| 国产精品久久久久久户外露出 | 久久久精品tv| 免费观看在线色综合| 欧洲亚洲国产日韩| 亚洲欧美日韩在线不卡| 粉嫩一区二区三区在线看| 精品久久久久久久一区二区蜜臀| 亚洲一级二级三级| 欧美主播一区二区三区| 亚洲视频一区二区免费在线观看| 国产精品一区二区免费不卡| 日韩一区国产二区欧美三区| 亚洲电影一区二区三区| 在线视频中文字幕一区二区| 亚洲人成小说网站色在线| 成人av免费观看| 自拍偷拍亚洲激情| 91免费小视频| 亚洲自拍另类综合| 欧美三级电影网站| 天天色综合天天| 欧美精品高清视频| 亚洲国产电影在线观看| 成人午夜又粗又硬又大| 中文字幕在线免费不卡| 97精品久久久午夜一区二区三区| 国产精品另类一区| 一本久久精品一区二区| 亚洲国产成人av好男人在线观看| 欧美性大战久久久久久久| 亚洲国产精品欧美一二99| 欧美精品久久久久久久多人混战| 日韩国产欧美在线播放| 日韩一区二区三区四区五区六区| 日本va欧美va精品| 精品成人私密视频| 国产成人免费视频网站| 综合av第一页| 欧美狂野另类xxxxoooo| 久草热8精品视频在线观看| 久久一夜天堂av一区二区三区| 国产成人精品免费在线| 亚洲欧美aⅴ...| 欧美一区午夜精品| 国产成人精品一区二区三区网站观看| 国产精品久久久久精k8| 欧美三级在线看| 国产一区二区三区精品视频| 国产精品进线69影院| 欧美日韩欧美一区二区| 国产一区二区导航在线播放| 亚洲人成电影网站色mp4| 9191精品国产综合久久久久久| 国内国产精品久久| 亚洲视频免费在线| 欧美电视剧免费观看| 色综合久久精品| 狠狠色丁香婷综合久久| 一区二区欧美精品| 久久精品视频一区| 在线播放欧美女士性生活| 国产麻豆精品视频| 五月婷婷久久综合| 综合色天天鬼久久鬼色| 日韩欧美一区电影| 色av成人天堂桃色av| 国产激情视频一区二区在线观看| 亚洲成人免费在线| 中文字幕不卡的av| 精品日韩欧美在线| 欧美日韩精品专区| 色哟哟欧美精品| 国产福利一区二区三区| 美女免费视频一区二区| 亚洲资源中文字幕| 综合久久给合久久狠狠狠97色| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 婷婷丁香久久五月婷婷| 国产精品久久久久久久蜜臀| 精品日韩av一区二区| 欧美高清性hdvideosex| 91激情五月电影| 91在线观看污| a美女胸又www黄视频久久| 国产精品一区二区无线| 精品亚洲成av人在线观看| 日产国产高清一区二区三区| 亚洲自拍偷拍网站| 亚洲最大成人综合| 亚洲精品v日韩精品| 亚洲欧洲在线观看av| 中文一区二区在线观看| 久久人人爽人人爽| 久久精品视频一区| 国产性天天综合网| 国产欧美视频一区二区| 精品日韩成人av| 久久精品一区二区三区四区| 2021久久国产精品不只是精品| 精品久久久影院| www国产成人免费观看视频 深夜成人网 | 91视频在线观看免费| 成人av网站大全| 99亚偷拍自图区亚洲| 99精品国产视频| 色视频欧美一区二区三区| 日本高清免费不卡视频| 欧美日韩美女一区二区| 91精品国产色综合久久 | 成人一区二区三区中文字幕| 粉嫩一区二区三区性色av| 成人污视频在线观看| 成人av综合在线| 在线免费一区三区| 欧美精品在线一区二区三区| 精品奇米国产一区二区三区| 久久精品欧美一区二区三区麻豆 | 亚洲一区二区三区精品在线| 亚洲电影视频在线| 老司机免费视频一区二区| 极品少妇xxxx偷拍精品少妇| 福利视频网站一区二区三区| 成人黄色在线视频| 欧美猛男超大videosgay| 精品久久国产字幕高潮| 国产精品国产三级国产aⅴ原创| 亚洲日本乱码在线观看| 丝袜国产日韩另类美女| 东方欧美亚洲色图在线| 欧美伊人久久久久久久久影院| 日韩精品中文字幕在线一区| 国产精品毛片久久久久久久| 亚洲午夜久久久久久久久久久| 老司机一区二区| 色婷婷av一区二区三区之一色屋| 欧美一级日韩免费不卡| 国产精品区一区二区三| 日韩激情一区二区| 91日韩在线专区| 久久日一线二线三线suv| 亚洲一区二区综合| 成人福利在线看| 欧美成人三级在线| 亚洲欧美激情插|