/*! http://mths.be/placeholder v2.0.7 by @mathias */ ;(function (h, j, e) { var a = "placeholder" in j.createElement("input"); var f = "placeholder" in j.createElement("textarea"); var k = e.fn; var d = e.valHooks; var b = e.propHooks; var m; var l; if (a && f) { l = k.placeholder = function () {return this;}; l.input = l.textarea = true; } else { l = k.placeholder = function () { var n = this; n.filter((a ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({ "focus.placeholder": c, "blur.placeholder": g }).data("placeholder-enabled", true).trigger("blur.placeholder"); return n; }; l.input = a; l.textarea = f; m = { get: function (o) { var n = e(o); var p = n.data("placeholder-password"); if (p) {return p[0].value;} return n.data("placeholder-enabled") && n.hasClass("placeholder") ? "" : o.value; }, set: function (o, q) { var n = e(o); var p = n.data("placeholder-password"); if (p) {return p[0].value = q;} if (!n.data("placeholder-enabled")) {return o.value = q;} if (q == "") { o.value = q; if (o != j.activeElement) {g.call(o);} } else {if (n.hasClass("placeholder")) {c.call(o, true, q) || (o.value = q);} else {o.value = q;}} return n; } }; if (!a) { d.input = m; b.value = m; } if (!f) { d.textarea = m; b.value = m; } e(function () { e(j).delegate("form", "submit.placeholder", function () { var n = e(".placeholder", this).each(c); setTimeout(function () {n.each(g);}, 10); }); }); e(h).bind("beforeunload.placeholder", function () {e(".placeholder").each(function () {this.value = "";});}); } function i(o) { var n = {}; var p = /^jQuery\d+$/; e.each(o.attributes, function (r, q) {if (q.specified && !p.test(q.name)) {n[q.name] = q.value;}}); return n; } function c(o, p) { var n = this; var q = e(n); if (n.value == q.attr("placeholder") && q.hasClass("placeholder")) { if (q.data("placeholder-password")) { q = q.hide().next().show().attr("id", q.removeAttr("id").data("placeholder-id")); if (o === true) {return q[0].value = p;} q.focus(); } else { n.value = ""; q.removeClass("placeholder"); n == j.activeElement && n.select(); } } } function g() { var r; var n = this; var q = e(n); var p = this.id; if (n.value == "") { if (n.type == "password") { if (!q.data("placeholder-textinput")) { try {r = q.clone().attr({ type: "text" });} catch (o) {r = e("").attr(e.extend(i(this), { type: "text" }));} r.removeAttr("name").data({ "placeholder-password": q, "placeholder-id": p }).bind("focus.placeholder", c); q.data({ "placeholder-textinput": r, "placeholder-id": p }).before(r); } q = q.removeAttr("id").hide().prev().attr("id", p).show(); } q.addClass("placeholder"); q[0].value = q.attr("placeholder"); } else {q.removeClass("placeholder");} } }(this, document, jQuery)); /* Modernizr 2.6.2 (Custom Build) | MIT & BSD * Build: http://modernizr.com/download/#-touch-cssclasses-teststyles-prefixes */ ;window.Modernizr = function (a, b, c) { function w(a) {j.cssText = a;} function x(a, b) {return w(m.join(a + ";") + (b || ""));} function y(a, b) {return typeof a === b;} function z(a, b) {return !!~("" + a).indexOf(b);} function A(a, b, d) { for (var e in a) { var f = b[a[e]]; if (f !== c) return d === !1 ? a[e] : y(f, "function") ? f.bind(d || b) : f; } return !1; } var d = "2.6.2", e = {}, f = !0, g = b.documentElement, h = "modernizr", i = b.createElement(h), j = i.style, k, l = {}.toString, m = " -webkit- -moz- -o- -ms- ".split(" "), n = {}, o = {}, p = {}, q = [], r = q.slice, s, t = function (a, c, d, e) { var f, i, j, k, l = b.createElement("div"), m = b.body, n = m || b.createElement("body"); if (parseInt(d, 10)) while (d--) j = b.createElement("div"), j.id = e ? e[d] : h + (d + 1), l.appendChild(j); return f = ["­", '"].join(""), l.id = h, (m ? l : n).innerHTML += f, n.appendChild(l), m || (n.style.background = "", n.style.overflow = "hidden", k = g.style.overflow, g.style.overflow = "hidden", g.appendChild(n)), i = c(l, a), m ? l.parentNode.removeChild(l) : (n.parentNode.removeChild(n), g.style.overflow = k), !!i; }, u = {}.hasOwnProperty, v; !y(u, "undefined") && !y(u.call, "undefined") ? v = function (a, b) {return u.call(a, b);} : v = function (a, b) {return b in a && y(a.constructor.prototype[b], "undefined");}, Function.prototype.bind || (Function.prototype.bind = function (b) { var c = this; if (typeof c != "function") throw new TypeError; var d = r.call(arguments, 1), e = function () { if (this instanceof e) { var a = function () {}; a.prototype = c.prototype; var f = new a, g = c.apply(f, d.concat(r.call(arguments))); return Object(g) === g ? g : f; } return c.apply(b, d.concat(r.call(arguments))); }; return e; }), n.touch = function () { var c; return "ontouchstart" in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : t(["@media (", m.join("touch-enabled),("), h, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (a) {c = a.offsetTop === 9;}), c; }; for (var B in n) v(n, B) && (s = B.toLowerCase(), e[s] = n[B](), q.push((e[s] ? "" : "no-") + s)); return e.addTest = function (a, b) { if (typeof a == "object") for (var d in a) v(a, d) && e.addTest(d, a[d]); else { a = a.toLowerCase(); if (e[a] !== c) return e; b = typeof b == "function" ? b() : b, typeof f != "undefined" && f && (g.className += " " + (b ? "" : "no-") + a), e[a] = b; } return e; }, w(""), i = k = null, e._version = d, e._prefixes = m, e.testStyles = t, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (f ? " js " + q.join(" ") : ""), e; }(this, this.document); Modernizr.addTest('android', function () {return !!navigator.userAgent.match(/Android/i);}); Modernizr.addTest('chrome', function () {return !!navigator.userAgent.match(/Chrome/i);}); Modernizr.addTest('firefox', function () {return !!navigator.userAgent.match(/Firefox/i);}); Modernizr.addTest('iemobile', function () {return !!navigator.userAgent.match(/IEMobile/i);}); Modernizr.addTest('ie', function () {return !!navigator.userAgent.match(/MSIE/i);}); Modernizr.addTest('ie8', function () {return !!navigator.userAgent.match(/MSIE 8/i);}); Modernizr.addTest('ie10', function () {return !!navigator.userAgent.match(/MSIE 10/i);}); Modernizr.addTest('ie11', function () {return !!navigator.userAgent.match(/Trident.*rv:11\./);}); Modernizr.addTest('ios', function () {return !!navigator.userAgent.match(/iPhone|iPad|iPod/i);}); Modernizr.addTest('ios7 ipad', function () {return !!navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i);}); /*! * screenfull * v1.0.4 - 2013-05-26 * https://github.com/sindresorhus/screenfull.js * (c) Sindre Sorhus; MIT License */ (function (a, b) { "use strict"; var c = "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT" in Element, d = function () { for (var a, c, d = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"]], e = 0, f = d.length, g = {}; f > e; e++) if (a = d[e], a && a[1] in b) { for (e = 0, c = a.length; c > e; e++) g[d[0][e]] = a[e]; return g; } return !1; }(), e = { request: function (a) { var e = d.requestFullscreen; a = a || b.documentElement, /5\.1[\.\d]* Safari/.test(navigator.userAgent) ? a[e]() : a[e](c && Element.ALLOW_KEYBOARD_INPUT); }, exit: function () {b[d.exitFullscreen]();}, toggle: function (a) {this.isFullscreen ? this.exit() : this.request(a);}, onchange: function () {}, onerror: function () {}, raw: d }; return d ? (Object.defineProperties(e, { isFullscreen: { get: function () {return !!b[d.fullscreenElement];} }, element: { enumerable: !0, get: function () {return b[d.fullscreenElement];} }, enabled: { enumerable: !0, get: function () {return !!b[d.fullscreenEnabled];} } }), b.addEventListener(d.fullscreenchange, function (a) {e.onchange.call(e, a);}), b.addEventListener(d.fullscreenerror, function (a) {e.onerror.call(e, a);}), a.screenfull = e, void 0) : a.screenfull = !1; })(window, document); function numts(value) { if (isNaN(value) || value === undefined || value == '-') { return '-'; } var theTime = parseInt(value);// 秒 if (isNaN(theTime)) { return '-'; } if (value < 0) { return '超时!'; } var theTime1 = 0;// 分 var theTime2 = 0;// 小时 // alert(theTime); if (theTime > 60) { theTime1 = parseInt(theTime / 60); theTime = parseInt(theTime % 60); // alert(theTime1+"-"+theTime); if (theTime1 > 60) { theTime2 = parseInt(theTime1 / 60); theTime1 = parseInt(theTime1 % 60); } } var result = padZero(parseInt(theTime)); if (theTime1 > 0) { result = padZero(parseInt(theTime1)) + ":" + result; } else { result = "00:" + result; } if (theTime2 > 0) { result = padZero(parseInt(theTime2)) + ":" + result; } return result; } function padZero(num) { if (!isNaN(num)) { if (num.toString().length < 2) { return "0" + num; } else { return num; } } return "00"; } function numt(num) { if (num === undefined || isNaN(num)) { return '-'; } return (num + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); } function nump(v) { if (v == '-' || v === undefined || isNaN(v)) { return '-'; } return v + "%"; } function numdateZ(javaTimestamp) { var timestamp = moment(new Date(parseInt(javaTimestamp))).subtract(8, 'hours'); return timestamp.format("YYYY-MM-DD HH:mm:ss"); } function numdate(javaTimestamp) { var timestamp = moment(new Date(parseInt(javaTimestamp))); return timestamp.format("YYYY-MM-DD HH:mm:ss"); } function convertCardId(original) { return original; } function initDateRangePick(control) { control.daterangepicker({ autoUpdateInput: false, ranges: { '今日': [moment().startOf('day'), moment()], '昨日': [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')], '最近7日': [moment().subtract(6, 'days'), moment()], '最近30日': [moment().subtract(29, 'days'), moment()] }, locale: { 'format': "YYYY-MM-DD", 'separator': ' 至 ', 'applyLabel': '确定', 'cancelLabel': '清除', 'fromLabel': '起始时间', 'toLabel': '结束时间', 'customRangeLabel': '自定义', 'daysOfWeek': ['日', '一', '二', '三', '四', '五', '六'], 'monthNames': ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], 'firstDay': 1 } }); control.on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('YYYY-MM-DD') + ' 至 ' + picker.endDate.format('YYYY-MM-DD')); }); control.on('cancel.daterangepicker', function (ev, picker) { control.val(''); }); } (function ($) { $.fn.extend({ serializeObject: function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }, formGet: function () { var jq = this; if (jq.length <= 0) { return {}; } var vra = []; var m = []; jq.each(function (index, ele) { if (ele.tagName === 'FORM') { var $form = $(this); m.push({ id: '', obj: $form.serializeObject() }); } }); jq.find('form').each(function (index, form) { var $form = $(form); if ($form.attr('name')) { m.push({ id: $form.attr('name'), obj: $form.serializeObject() }); } else { m.push({ id: '', obj: $form.serializeObject() }); } }); var r = {}; for (var i = 0; i < m.length; i++) { if (m[i].id) { if (r.hasOwnProperty(m[i].id)) { $.extend(r[m[i].id], m[i].obj); } else { r[m[i].id] = m[i].obj; } } else { $.extend(r, m[i].obj); } } return r; }, formSet: function (data) { var jq = this; for (var p in data) { if (!data.hasOwnProperty(p)) continue; jq.find(":input[name='" + p + "']").val(data[p]); } }, formClear: function () { var jq = this; jq.find(":input").val(''); }, }); })(jQuery); // data-shift api +function ($) { "use strict"; /* SHIFT CLASS DEFINITION * ====================== */ var Shift = function (element) { this.$element = $(element); this.$prev = this.$element.prev(); !this.$prev.length && (this.$parent = this.$element.parent()); }; Shift.prototype = { constructor: Shift , init: function () { var $el = this.$element , method = $el.data()['toggle'].split(':')[1] , $target = $el.data('target'); $el.hasClass('in') || $el[method]($target).addClass('in'); } , reset: function () { this.$parent && this.$parent['prepend'](this.$element); !this.$parent && this.$element['insertAfter'](this.$prev); this.$element.removeClass('in'); } }; /* SHIFT PLUGIN DEFINITION * ======================= */ $.fn.shift = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('shift'); if (!data) $this.data('shift', (data = new Shift(this))); if (typeof option == 'string') data[option](); }); }; $.fn.shift.Constructor = Shift; }(jQuery); /* // data-bjax api +function ($) { "use strict"; var Bjax = function (element, options) { this.options = options this.$element = $( this.options.target || 'html' ); this.start() } Bjax.DEFAULTS = { backdrop: true , url: '' } Bjax.prototype.start = function () { var that = this; this.backdrop(); $.ajax(this.options.url).done(function(r){ that.$content = r; that.complete(); }); } Bjax.prototype.complete = function (){ var that = this; if( this.$element.is('html') || (this.options.replace) ){ try{ window.history.pushState({}, '', this.options.url); }catch(e){ window.location.replace(this.options.url) } } this.updateBar(100); } Bjax.prototype.backdrop = function(){ this.$element.css('position','relative') this.$backdrop = $('
') .appendTo(this.$element); if(!this.options.backdrop) this.$backdrop.css('height', '2'); this.$backdrop[0].offsetWidth; // force reflow this.$backdrop.addClass('in'); this.$bar = $('
') .width(0) .appendTo(this.$backdrop); } Bjax.prototype.update = function (){ this.$element.css('position',''); if( !this.$element.is('html') ){ if(this.options.el){ this.$content = $(this.$content).find(this.options.el); } this.$element.html(this.$content); } if( this.$element.is('html') ) { if( $('.ie').length ){ location.reload(); return; } document.open(); document.write(this.$content); document.close(); } } Bjax.prototype.updateBar = function (per){ var that = this; this.$bar.stop().animate({ width: per + '%' }, 500, 'linear', function(){ if(per == 100) that.update(); }); } Bjax.prototype.enable = function (e){ var link = e.currentTarget; if ( location.protocol !== link.protocol || location.hostname !== link.hostname ) return false if (link.hash && link.href.replace(link.hash, '') === location.href.replace(location.hash, '')) return false if (link.href === location.href + '#' || link.href === location.href) return false if(link.protocol.indexOf('http') ==-1) return false return true; } $.fn.bjax = function (option) { return this.each(function () { var $this = $(this); var data = $this.data('app.bjax'); var options = $.extend({}, Bjax.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data) $this.data('app.bjax', (data = new Bjax(this, options))) if (data) data['start']() if (typeof option == 'string') data[option]() }) } $.fn.bjax.Constructor = Bjax $(window).on("popstate", function(e) { if (e.originalEvent.state !== null) { window.location.reload(true); } e.preventDefault(); }); $(document).on('click.app.bjax.data-api', '[data-bjax], .nav-primary a', function (e) { if(!Bjax.prototype.enable(e)) return; $(this).bjax({url: $(this).attr('href') || $(this).attr('data-url') }); e.preventDefault(); }) }(jQuery); */ Date.now = Date.now || function () { return +new Date; }; +function ($) { $(function () { // toogle fullscreen $(document).on('click', "[data-toggle=fullscreen]", function (e) { e.preventDefault(); if (screenfull.enabled) { screenfull.request(); } }); // placeholder $('input[placeholder], textarea[placeholder]').placeholder(); // popover $("[data-toggle=popover]").popover(); $(document).on('click', '.popover-title .close', function (e) { var $target = $(e.target), $popover = $target.closest('.popover').prev(); $popover && $popover.popover('hide'); }); // ajax modal $(document).on('click', '[data-toggle="ajaxModal"]', function (e) { $('#ajaxModal').remove(); e.preventDefault(); var $this = $(this) , $remote = $this.data('remote') || $this.attr('href') , $modal = $(''); $('body').append($modal); $modal.modal(); $modal.load($remote); } ); // dropdown menu $.fn.dropdown.Constructor.prototype.change = function (e) { e.preventDefault(); var $item = $(e.target), $select, $checked = false, $menu, $label; !$item.is('a') && ($item = $item.closest('a')); $menu = $item.closest('.dropdown-menu'); $label = $menu.parent().find('.dropdown-label'); $labelHolder = $label.text(); $select = $item.parent().find('input'); $checked = $select.is(':checked'); if ($select.is(':disabled')) return; if ($select.attr('type') == 'radio' && $checked) return; if ($select.attr('type') == 'radio') $menu.find('li').removeClass('active'); $item.parent().removeClass('active'); !$checked && $item.parent().addClass('active'); $select.prop("checked", !$select.prop("checked")); $items = $menu.find('li > input:checked'); if ($items.length) { $text = []; $items.each(function () { var $str = $(this).parent().text(); $str && $text.push($.trim($str)); }); $text = $text.length < 4 ? $text.join(', ') : $text.length + ' selected'; $label.html($text); } else { $label.html($label.data('placeholder')); } }; $(document).on('click.dropdown-menu', '.dropdown-select > li > a', $.fn.dropdown.Constructor.prototype.change); // tooltip $("[data-toggle=tooltip]").tooltip(); // class $(document).on('click', '[data-toggle^="class"]', function (e) { e && e.preventDefault(); var $this = $(e.target), $class, $target, $tmp, $classes, $targets; !$this.data('toggle') && ($this = $this.closest('[data-toggle^="class"]')); $class = $this.data()['toggle']; $target = $this.data('target') || $this.attr('href'); $class && ($tmp = $class.split(':')[1]) && ($classes = $tmp.split(',')); $target && ($targets = $target.split(',')); $classes && $classes.length && $.each($targets, function (index, value) { if ($classes[index].indexOf('*') !== -1) { var patt = new RegExp('\\s' + $classes[index].replace(/\*/g, '[A-Za-z0-9-_]+').split(' ').join('\\s|\\s') + '\\s', 'g'); $($this).each(function (i, it) { var cn = ' ' + it.className + ' '; while (patt.test(cn)) { cn = cn.replace(patt, ' '); } it.className = $.trim(cn); }); } ($targets[index] != '#') && $($targets[index]).toggleClass($classes[index]) || $this.toggleClass($classes[index]); }); $this.toggleClass('active'); }); // panel toggle $(document).on('click', '.panel-toggle', function (e) { e && e.preventDefault(); var $this = $(e.target), $class = 'collapse', $target; if (!$this.is('a')) $this = $this.closest('a'); $target = $this.closest('.panel'); $target.find('.panel-body').toggleClass($class); $this.toggleClass('active'); }); // carousel $('.carousel.auto').carousel(); // button loading $(document).on('click.button.data-api', '[data-loading-text]', function (e) { var $this = $(e.target); $this.is('i') && ($this = $this.parent()); $this.button('loading'); }); var $window = $(window); // mobile var mobile = function (option) { if (option == 'reset') { $('[data-toggle^="shift"]').shift('reset'); return true; } $('[data-toggle^="shift"]').shift('init'); return true; }; // unmobile $window.width() < 768 && mobile(); // resize var $resize, $width = $window.width(); $window.resize(function () { if ($width !== $window.width()) { clearTimeout($resize); $resize = setTimeout(function () { setHeight(); $window.width() < 768 && mobile(); $window.width() >= 768 && mobile('reset') && fixVbox(); $width = $window.width(); }, 500); } }); // fluid layout var setHeight = function () { $('.app-fluid #nav > *').css('min-height', $(window).height() - 60); return true; }; setHeight(); // fix vbox var fixVbox = function () { $('.ie11 .vbox').each(function () { $(this).height($(this).parent().height()); }); return true; }; fixVbox(); // collapse nav $(document).on('click', '[data-ride="collapse"] a', function (e) { var $this = $(e.target), $active; $this.is('a') || ($this = $this.closest('a')); $active = $this.parent().siblings(".active"); $active && $active.toggleClass('active').find('> ul:visible').slideUp(200); ($this.parent().hasClass('active') && $this.next().slideUp(200)) || $this.next().slideDown(200); $this.parent().toggleClass('active'); $this.next().is('ul') && e.preventDefault(); setTimeout(function () { $(document).trigger('updateNav'); }, 300); }); // dropdown still $(document).on('click.bs.dropdown.data-api', '.dropdown .on, .dropup .on, .open .on', function (e) { e.stopPropagation(); }); }); }(jQuery); (function ($) { jQuery.fn.setfocus = function () { return this.each(function () { var dom = this; setTimeout(function () { try { dom.focus(); } catch (e) { } }, 0); }); }; })(jQuery);