| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 | function hasKey(json, key) {	if ($.isEmptyObject(json)) return false;	if (json.hasOwnProperty(key)) {		return true;	} else {		return false;	};}//点击收起下拉框$(document).click(function () {	$('.select').removeClass('in').children('ul').slideUp('fast');});window.ui = {	//下拉框	select : function (obj) {		$.each(obj, function () {			var _t = $(this);			var div = _t.children('div');			var input = _t.children('input');			var ul = _t.find('ul');			var span = _t.find('span');			ul.not(ul.first()).each(function () {				if($(this).children().length) $(this).prev('span').addClass('haschild').click(function () {					event.stopPropagation();				});			})			.children().each(function () {				var t = $(this);				var i = $('<i>└─ </i>');				var ul = t.parentsUntil(_t, 'ul');				t.children('span').prepend( i.css('margin-left', 20*(ul.length-2)) );			});			span.click(function () {				var t = $(this);				if (!t.hasClass('haschild')) {					var html = t.clone();					html.find('i').remove();					htmlval = html.html();					htmlrel = html.attr('rel');					/*div.html(html);					input.val(html);*/					div.html(html);					input.val(htmlrel);					html=='请选择'?_t.removeClass('selected'):_t.addClass('selected');				};			});			_t.click(function () {				event.stopPropagation();				$('.select').removeClass('in').children('ul').slideUp('fast');				var t = $(this);				var ul = t.children('ul');				t.offset().top + t.outerHeight() + ul.outerHeight() - $(document).scrollTop() > $(window).height()?ul.addClass('top'):ul.removeClass('top');				ul.is(':hidden')?(t.addClass('in'),ul.slideDown()):(t.removeClass('in'),ul.slideUp('fast'));			});		});	},	//表格	table : function(obj) {		if (ui.table.prototype) {			ui.table.prototype.checked = function () {				return obj.find('tbody tr:not(.last_tr) input[type=checkbox]:checked').parents('tr');			}		};		obj.each(function () {			var thead = $(this).find('thead');			var tbody = $(this).find('tbody');			var tr = tbody.find('tr').filter(function () {				return !$(this).hasClass('last_tr');			});			var all_check = thead.find('input[type=checkbox]').add(tbody.find('.last_tr').find('input[type=checkbox]'));			var check = tr.find('input[type=checkbox]');			var sort = thead.find('.sort');			check.click(function () {				var t = $(this);				t.is(':checked')?t.parents('tr').addClass('in'):t.parents('tr').removeClass('in');				check.filter(':checked').length == tr.length?all_check.prop('checked', true):all_check.prop('checked', false);			});			all_check.click(function () {				$(this).is(':checked')?(check.add(all_check).prop('checked', true),tr.addClass('in')):(check.add(all_check).prop('checked', false),tr.removeClass('in'));			});			tr.each(function (i) {				$(this).attr('index', i);			});			sort.each(function () {				$(this).children('span').append($('<div class="icon_sort"><i class="icon-sort-asc"></i><i class="icon-sort-desc"></i></div>'));			})			.click(function () {				var t = $(this);				var icon_sort = t.find('.icon_sort');				var sort_rule = null;				var arr = [];				sort.not(t).find('.icon_sort').removeClass('asc desc')				if (icon_sort.hasClass('asc')) {					icon_sort.removeClass('asc').addClass('desc');					sort_rule = 'desc';				} else if(icon_sort.hasClass('desc')){					icon_sort.removeClass('desc');				}else{					icon_sort.addClass('asc');					sort_rule = 'asc';				}				if (sort_rule == null) {					for (var i = 0; i < tr.length; i++) {						tbody.prepend(tr.eq(tr.length-1-i));					}				} else {					tr.each(function (i) {						arr[i] = {};						arr[i]['sort'] = $(this).children().eq(t.index()).html();						arr[i]['index'] = $(this).attr('index');					});					arr.sort(function(x, y){						return sort_rule == 'asc'?y['sort'].localeCompare(x['sort']):x['sort'].localeCompare(y['sort']);					})					for (var i = 0; i < arr.length; i++) {						tbody.prepend(tr.eq(arr[i]['index']));					}				}			});		});	},	copy : function (obj) {		if (window.getSelection) {			var range = document.createRange();	        range.selectNode($(obj).prev()[0]);	        window.getSelection().removeAllRanges();	        window.getSelection().addRange(range);			document.execCommand("Copy");		}else if (window.clipboardData){			window.clipboardData.setData('text',obj.innerHTML);		}else{			alert('浏览器不支持复制操作 请手动进行复制');		}	},	mask : function (bool) {		var obj = $('.mask');		if (bool == false) {			obj.remove();			return false;		};		var div = $('<div class="mask"></div>');		if (obj.length) {			if (bool != true) obj.remove();		}else{			div.click(function () {				$('.dialog').add(div).remove();			});			$('body').append(div);			div.fadeTo('normal',0.7);		};	},	prompt : function (bool, text) {		if ($('.dialog').length > 0) return;		ui.mask(true);		var content = (bool == false)?'<i class="icon-exclamation-circle"></i><span class="text">请至少选择一个产品!</span>':'<i class="icon-check-circle"></i><span class="text">恭喜您,添加成功</span>';		var div = $('<div class="dialog"><div class="dialog_tit"><span>系统提示</span><a class="dialog_close icon-cross" href="javascript:;"></a></div><div class="dialog_content ellipsis">'+content+'</div><div class="dialog_btn"><a class="dialog_confirm btn" href="javascript:;">确认</a></div></div>')		if (text) div.find('.dialog_content').find('span').html(text);		var dialog_close = div.find('.dialog_close');		var dialog_confirm = div.find('.dialog_confirm');		dialog_close.add(dialog_confirm).click(function () {			div.remove();			ui.mask(false);		});		$('body').append(div);		div.fadeIn('fast');	},	dialog : function (json) {		if ($('.dialog').length > 0) return;		if (event.keyCode==13) return;		ui.mask(true);		var content = hasKey(json, 'text')?json.text:'<span class="text">删除后,您将无法恢复和常看该工单,请谨慎操作</span><p>您确认要删除该工单吗?</p>';		var div = $('<div class="dialog dialog_prompt"><div class="dialog_tit"><span>系统提示</span><a class="dialog_close icon-cross" href="javascript:;"></a></div><div class="dialog_content ellipsis"><i class="icon-exclamation-circle"></i>'+content+'</div><div class="dialog_btn"><a class="dialog_cancel btn_aux" href="javascript:;">取消</a><a class="dialog_confirm btn" href="javascript:;">确认</a></div></div>')		var dialog_close = div.find('.dialog_close');		var dialog_cancel = div.find('.dialog_cancel');		var dialog_confirm = div.find('.dialog_confirm');		function close () {			div.remove();			ui.mask(false);		};		dialog_close.click(function () {			close();		});		dialog_cancel.click(function () {			close();			if (hasKey(json, 'cancel') && typeof json.cancel == 'function') json.cancel();		});		dialog_confirm.click(function () {			close();			if (hasKey(json, 'confirm') && typeof json.confirm == 'function') json.confirm();		});		$('body').append(div);		div.fadeIn('fast');	},	dialog_check : function (json) {		if ($('.dialog').length > 0) return;		ui.mask(true);		var div = $('<div class="dialog dialog_prompt dialog_check"><div class="dialog_tit"><span>设置选项</span><a class="dialog_close icon-cross" href="javascript:;"></a></div><div class="dialog_content clearfix"><span class="dialog_check_tit">品牌</span><div class="dialog_check_box"><div class="dialog_check_content"><input type="text" name=""><a class="icon-plus-square" href="javascript:;"></a></div><p>点击 + 号输入选项名 , 再点击 + 号或回车完成添加</p></div></div><div class="dialog_btn"><a class="dialog_confirm btn" href="javascript:;">确认</a></div></div>')		var dialog_close = div.find('.dialog_close');		var dialog_confirm = div.find('.dialog_confirm');		var dialog_plus = div.find('.icon-plus-square');		var input = div.find('input');		var arr = [];		function close () {			div.remove();			ui.mask(false);		};		function push () {			var val = input.val();			var span = $('<span>'+input.val()+'<i></i></span>');			span.children('i').click(function () {				var parent = $(this).parent();				var parent_text = parent.contents().filter(function() { return this.nodeType === 3; }).text();				arr.splice($.inArray(parent_text, arr), 1);				parent.remove();			});			if (val != '') {				arr.push(val);				input.before(span)			};			input.hide().val('');		};		dialog_close.on('click', close);		dialog_confirm.click(function () {			//console.log(arr);			close();			if (hasKey(json, 'confirm') && typeof json.confirm == 'function') json.confirm(arr);		});		dialog_plus.click(function () {			if (input.is(':hidden')) {				input.show().focus();			} else {				push ();			}		});		input.keydown(function (event) {			if (event.keyCode==13) push ();		});		$('body').append(div);		div.fadeIn('fast');	},	sort : function (json) {		var items = json.items || 'li';		var not = json.not || '.close';		window.getSelection().removeAllRanges();		json.obj.on('mousedown', not, function (event) {			event.stopPropagation();		});		json.obj.on('mousedown', items, function (event) {			var t = $(this);			function getscroll (fx) {				var stop = 0;				t.parents().each(function () {					var num;					if (fx == 'top') {						num = $(this).scrollTop();					};					if (fx == 'left') {						num = $(this).scrollLeft();					};					if (num != 0) {						stop = num;						return false;					};				});				return stop;			};			var	tWidth = t.outerWidth(),				tHeight = t.outerHeight(),				tLeft = t.position().left,				tTop = t.position().top,				tsLeft = tLeft + getscroll('left'),				tsTop = tTop + getscroll('top'),				sLeft = event.pageX - tsLeft,				sTop = event.pageY - tsTop,				index = t.index(),				mbox = t.clone();			t.css('visibility', 'hidden');			mbox.css({				position : 'absolute',				opacity : 0.5,				left : tsLeft,				top : tsTop,				width : tWidth			});			function move (event) {				event.preventDefault()				var mst = getscroll('top');				var msl = getscroll('left');				var left = event.pageX - sLeft,					top = event.pageY - sTop;				mbox.css({					left : left,					top : top				});				if ( top > (tTop + tHeight + mst) ) {					t.next(items).after(t);					tTop = t.position().top;				};				if ( (top + tHeight - mst) < tTop ) {					t.prev(items).before(t);					tTop = t.position().top;				};				if ( left > (tLeft + tWidth + msl) ) {					t.next(items).after(t);					tLeft = t.position().left;				};				if ( (left + tWidth - msl) < tLeft ) {					t.prev(items).before(t);					tLeft = t.position().left;				};			};			function up () {				$(this).off({					'mousemove' : move,					'mouseup' : up				});				mbox.remove();				t.removeAttr('style');				if (index != t.index() && typeof json.success == 'function') {					json.success();				};			};			$(document).on({				'mousemove': move,				'mouseup': up			});			t.parent().append(mbox);		});	},	/*使用方法	var throttled = ui.letter(function () {})	$(window).scroll(throttled);	*/	letter : function (fn) {		if (typeof arguments[0] != 'function') return;		fn();		var times = typeof arguments[1] != 'number'?300:arguments[1];		var timer = null;		var st = new Date().getTime();		return function () {			var et = new Date().getTime();			if (et - st < times) {				clearTimeout(timer);				timer = setTimeout(function () {					//return fn.apply(this,arguments);					fn();				}, times);			} else{				clearTimeout(timer);				st = et;				fn();			};		};	}};$.fn.imgAuto = function(co){	$(this).each(function(){		var t = $(this);		t.css('opacity',0);		var cover = t.attr('img-Auto')=='cover'||co?true:false;		var img = new Image();		img.src = t.attr('src');		var _w = t.attr('width');		var _h = t.attr('height');		if (_w && _h) {			var box = $('<div class="imgAuto_box"></div>');			box.css({				width:_w,				height:_h,				"text-align":'left',				overflow:'hidden'			})			t.wrapAll(box);		} else{			var box = t.parent();		};		function move (){			if (img.width>0 || img.height>0) {				t.css({'display':'block','margin':0}).parent().css('overflow', 'hidden');				var i_w = img.width;//原图宽				var i_h = img.height;//原图高				var b_w = box.width();//父元素宽				var b_h = box.height();//父元素高				var t_w = (b_h/i_h) * i_w;//实际显示的图片宽				var t_h = (b_w/i_w) * i_h;//实际显示的图片高				if ( i_w/i_h < b_w/b_h ) {					if (cover) {						t.css({'width':'100%','height':'auto'}).css('margin-top', -(t_h-b_h)/2);					}else{						t.css({'width':'auto','height':'100%'}).css('margin-left', (b_w-t_w)/2);					};				}else{					if (cover) {						t.css({'width':'auto','height':'100%'}).css('margin-left', -(t_w-b_w)/2);					}else{						t.css({'width':'100%','height':'auto'}).css('margin-top', (b_h-t_h)/2);					};				};			}else{				setTimeout(move);			}		};		move();		t.fadeTo(2000, 1);		var throttled = ui.letter(move);		$(window).resize(throttled);	});	return this;};
 |