⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiselect.js

📁 本系统基本完善了CRM管理系统的各个模块
💻 JS
📖 第 1 页 / 共 2 页
字号:
//version 3.0Ext.ux.Multiselect = Ext.extend(Ext.form.Field,  {	store:null,	dataFields:[],	data:[],	width:100,	height:100,	displayField:0,	valueField:1,	allowBlank:true,	minLength:0,	maxLength:Number.MAX_VALUE,	blankText:Ext.form.TextField.prototype.blankText,	minLengthText:'Minimum {0} item(s) required',	maxLengthText:'Maximum {0} item(s) allowed',	copy:false,	allowDup:false,	allowTrash:false,	legend:null,	focusClass:undefined,	delimiter:',',	view:null,	dragGroup:null,	dropGroup:null,	tbar:null,	appendOnly:false,	sortField:null,	sortDir:'ASC',	defaultAutoCreate : {tag: "div"},	    initComponent: function(){		Ext.ux.Multiselect.superclass.initComponent.call(this);		this.addEvents({			'dblclick' : true,			'click' : true,			'change' : true,			'drop' : true		});			},    onRender: function(ct, position){		var fs, cls, tpl;		Ext.ux.Multiselect.superclass.onRender.call(this, ct, position);		cls = 'ux-mselect';		fs = new Ext.form.FieldSet({			renderTo:this.el,			title:this.legend,			height:this.height,			width:this.width,			style:"padding:1px;",			tbar:this.tbar		});		if(!this.legend)fs.el.down('.'+fs.headerCls).remove();		fs.body.addClass(cls);		tpl = '<tpl for="."><div class="' + cls + '-item';		if(Ext.isIE || Ext.isIE7)tpl+='" unselectable=on';		else tpl+=' x-unselectable"';		tpl+='>{' + this.displayField + '}</div></tpl>';		if(!this.store){			this.store = new Ext.data.SimpleStore({				fields: this.dataFields,				data : this.data			});		}		this.view = new Ext.ux.DDView({			multiSelect: true, store: this.store, selectedClass: cls+"-selected", tpl:tpl,			allowDup:this.allowDup, copy: this.copy, allowTrash: this.allowTrash, 			dragGroup: this.dragGroup, dropGroup: this.dropGroup, itemSelector:"."+cls+"-item",			isFormField:false, applyTo:fs.body, appendOnly:this.appendOnly,			sortField:this.sortField, sortDir:this.sortDir		});		fs.add(this.view);				this.view.on('click', this.onViewClick, this);		this.view.on('beforeClick', this.onViewBeforeClick, this);		this.view.on('dblclick', this.onViewDblClick, this);		this.view.on('drop', function(ddView, n, dd, e, data){	    	return this.fireEvent("drop", ddView, n, dd, e, data);		}, this);				this.hiddenName = this.name;		var hiddenTag={tag: "input", type: "hidden", value: "", name:this.name};		if (this.isFormField) { 			this.hiddenField = this.el.createChild(hiddenTag);		} else {			this.hiddenField = Ext.get(document.body).createChild(hiddenTag);		}		fs.doLayout();	},		initValue:Ext.emptyFn,		onViewClick: function(vw, index, node, e) {		var arrayIndex = this.preClickSelections.indexOf(index);		if (arrayIndex  != -1)		{			this.preClickSelections.splice(arrayIndex, 1);			this.view.clearSelections(true);			this.view.select(this.preClickSelections);		}		this.fireEvent('change', this, this.getValue(), this.hiddenField.dom.value);		this.hiddenField.dom.value = this.getValue();		this.fireEvent('click', this, e);		this.validate();			},	onViewBeforeClick: function(vw, index, node, e) {		this.preClickSelections = this.view.getSelectedIndexes();		if (this.disabled) {return false;}	},	onViewDblClick : function(vw, index, node, e) {		return this.fireEvent('dblclick', vw, index, node, e);	},			getValue: function(valueField){		var returnArray = [];		var selectionsArray = this.view.getSelectedIndexes();		if (selectionsArray.length == 0) {return '';}		for (var i=0; i<selectionsArray.length; i++) {			returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField != null)? valueField : this.valueField)));		}		return returnArray.join(this.delimiter);	},	setValue: function(values) {		var index;		var selections = [];		this.view.clearSelections();		this.hiddenField.dom.value = '';				if (!values || (values == '')) { return; }				if (!(values instanceof Array)) { values = values.split(this.delimiter); }		for (var i=0; i<values.length; i++) {			index = this.view.store.indexOf(this.view.store.query(this.valueField, 				new RegExp('^' + values[i] + '$', "i")).itemAt(0));			selections.push(index);		}		this.view.select(selections);		this.hiddenField.dom.value = this.getValue();		this.validate();	},		reset : function() {		this.setValue('');	},		getRawValue: function(valueField) {        var tmp = this.getValue(valueField);        if (tmp.length) {            tmp = tmp.split(this.delimiter);        }        else{            tmp = [];        }        return tmp;    },    setRawValue: function(values){        setValue(values);    },    validateValue : function(value){        if (value.length < 1) { // if it has no value             if (this.allowBlank) {                 this.clearInvalid();                 return true;             } else {                 this.markInvalid(this.blankText);                 return false;             }        }        if (value.length < this.minLength) {            this.markInvalid(String.format(this.minLengthText, this.minLength));            return false;        }        if (value.length > this.maxLength) {            this.markInvalid(String.format(this.maxLengthText, this.maxLength));            return false;        }        return true;    }});Ext.reg("multiselect", Ext.ux.Multiselect);Ext.ux.ItemSelector = Ext.extend(Ext.form.Field,  {	msWidth:200,	msHeight:300,	hideNavIcons:false,	imagePath:"",	iconUp:"multisel/up2.gif",	iconDown:"multisel/down2.gif",	iconLeft:"multisel/left2.gif",	iconRight:"multisel/right2.gif",	iconTop:"multisel/top2.gif",	iconBottom:"multisel/bottom2.gif",	drawUpIcon:true,	drawDownIcon:true,	drawLeftIcon:true,	drawRightIcon:true,	drawTopIcon:true,	drawBotIcon:true,	fromStore:null,	toStore:null,	fromData:null, 	toData:null,	displayField:0,	valueField:1,	switchToFrom:false,	allowDup:false,	focusClass:undefined,	delimiter:',',	readOnly:false,	toLegend:null,	fromLegend:null,	toSortField:null,	fromSortField:null,	toSortDir:'ASC',	fromSortDir:'ASC',	toTBar:null,	fromTBar:null,	bodyStyle:null,	border:false,	defaultAutoCreate:{tag: "div"},	    initComponent: function(){		Ext.ux.ItemSelector.superclass.initComponent.call(this);		this.addEvents({			'rowdblclick' : true,			'change' : true		});				},    onRender: function(ct, position){		Ext.ux.ItemSelector.superclass.onRender.call(this, ct, position);		this.fromMultiselect = new Ext.ux.Multiselect({			legend: this.fromLegend,			delimiter: this.delimiter,			allowDup: this.allowDup,			copy: this.allowDup,			allowTrash: this.allowDup,			dragGroup: this.readOnly ? null : "drop2-"+this.el.dom.id,			dropGroup: this.readOnly ? null : "drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,			width: this.msWidth,			height: this.msHeight,			dataFields: this.dataFields,			data: this.fromData,			displayField: this.displayField,			valueField: this.valueField,			store: this.fromStore,			isFormField: false,			tbar: this.fromTBar,			appendOnly: true,			sortField: this.fromSortField,			sortDir: this.fromSortDir

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -