/* Array.js v0.0.3 | https://github.com/iwind/Array.js */ Array.$nil = {}; Array.prototype.$contains = function (a) { var c = this; if (c == null) { return false } for (var b = 0; b < c.length; b++) { if (c[b] == a) { return true } } return false }; Array.prototype.$include = function (a) { var b = this; if (b == null) { return false } return b.$contains(a) }; Array.prototype.$removeValue = function (b) { var d = this; if (d == null) { return true } var a = []; for (var c = 0; c < d.length; c++) { if (d[c] != b) { a.push(d[c]) } } d.$clear(); d.$pushAll(a); return true }; Array.prototype.$remove = function (a) { var b = this; if (b == null) { return true } b.splice(a, 1); return true }; Array.prototype.$removeIf = function (b) { var c = this; if (c == null) { return 0 } var a = c.length; var d = c.$reject(b); c.$replace(d); return a - c.length }; Array.prototype.$drop = function (a) { a = parseInt(a, 10); if (isNaN(a) || a <= 0) { return [] } if (a > this.length) { a = this.length } return this.splice(this.length - a, a) }; Array.prototype.$keepIf = function (b) { var c = this; if (c == null) { return 0 } var a = c.length; var d = c.$findAll(b); c.$replace(d); return a - c.length }; Array.prototype.$replace = function (a) { var b = this; if (b == null) { return false } if (!Array.isArray(a)) { return false } b.splice.apply(b, [0, b.length].concat(a)); return true }; Array.prototype.$clear = function () { var a = this; if (a == null) { return true } if (a.length == 0) { return true } a.splice(0, a.length); return true }; Array.prototype.$each = function (b) { var d = this; if (d == null) { return true } if (typeof (b) != "function") { return true } var c = d.length; for (var a = 0; a < c; a++) { b.call(d, a, d[a]) } return true }; Array.prototype.$unique = function (d) { var e = this; if (e == null) { return true } var a = []; var b = []; e.$each(function (h, g) { if (typeof (d) == "function") { g = d.call(e, h, g) } if (!a.$contains(g)) { a.push(g); b.push(h) } }); var f = e.$copy(); e.$clear(); for (var c = 0; c < b.length; c++) { e.push(f[b[c]]) } return true }; Array.prototype.$get = function (a) { var b = this; if (b == null) { return null } if (a > b.length - 1) { return null } return b[a] }; Array.prototype.$getAll = function (e) { var d = this; if (d == null) { return [] } var b = []; for (var c = 0; c < arguments.length; c++) { var a = arguments[c]; if (Array.$isArray(a)) { b.$pushAll(d.$getAll.apply(d, a)) } else { if (typeof (a) == "number" && a < d.length) { b.$push(d.$get(a)) } else { if (typeof (a) == "string" && /^\\d+$/.test(a)) { a = parseInt(a); if (a < d.length) { b.$push(d.$get(a)) } } } } } return b }; Array.prototype.$set = function (a, c) { var b = this; if (b == null) { return false } if (a > b.length - 1) { return false } b[a] = c; return true }; Array.prototype.$copy = function () { var c = this; if (c == null) { return c } var a = []; for (var b = 0; b < c.length; b++) { a.push(c[b]) } return a }; Array.prototype.$isEmpty = function () { var a = this; if (a == null) { return true } return (a.length == 0) }; Array.prototype.$all = function (b) { var c = this; if (c == null) { return false } for (var a = 0; a < c.length; a++) { if (!b.call(c, a, c[a])) { return false } } return true }; Array.prototype.$any = function (b) { var c = this; if (c == null) { return false } for (var a = 0; a < c.length; a++) { if (b.call(c, a, c[a])) { return true } } return false }; Array.prototype.$map = function (d) { var e = this; if (e == null) { return [] } var b = []; for (var c = 0; c < e.length; c++) { var a = d.call(e, c, e[c]); if (a === Array.$nil) { continue } b.push(a) } return b }; Array.prototype.$reduce = function (a) { var b = this; if (b == null) { return null } var c = null; b.$each(function (e, d) { c = a.call(b, e, d, c) }); return c }; Array.prototype.$collect = function (a) { var b = this; if (b == null) { return [] } return b.$map(a) }; Array.prototype.$find = function (c) { var d = this; if (d == null) { return -1 } if (typeof (c) == "undefined") { return d.$get(0) } var b = -1; var a = null; d.$each(function (f, e) { if (b > -1) { return } if (c.call(d, f, e)) { b = f; a = e } }); return a }; Array.prototype.$findAll = function (b) { var c = this; if (c == null) { return [] } if (typeof (b) == "undefined") { return c.$copy() } var a = []; c.$each(function (e, d) { if (b.call(c, e, d)) { a.push(d) } }); return a }; Array.prototype.$filter = function (a) { var b = this; if (b == null) { return [] } return b.$findAll(a) }; Array.prototype.$exist = function (a) { return this.$findAll(a).length > 0 }; Array.prototype.$reject = function (b) { var c = this; if (c == null) { return [] } if (typeof (b) == "undefined") { return [] } var a = []; c.$each(function (e, d) { if (!b.call(c, e, d)) { a.push(d) } }); return a }; Array.prototype.$grep = function (b) { var a = this; if (a == null) { return [] } return a.$findAll(function (d, c) { if (c == null) { return false } return b.test(c.toString()) }) }; Array.prototype.$keys = function (e, a) { var d = this; if (d == null) { return [] } if (arguments.length == 0) { return Array.$range(0, d.length - 1) } var c = []; if (typeof (a) == "undefined") { a = false } for (var b = 0; b < d.length; b++) { if ((a && e === d[b]) || (!a && e == d[b])) { c.push(b) } } return c }; Array.prototype.$indexesOf = function (c, a) { var b = this; if (b == null) { return [] } if (arguments.length == 0) { return Array.$range(0, b.length - 1) } return b.$keys(c, a) }; Array.prototype.$sort = function (a) { var b = this; if (b == null) { return false } if (typeof (a) == "undefined") { a = function (d, c) { if (d > c) { return 1 } else { if (d == c) { return 0 } else { return -1 } } } } b.sort(a); return true }; Array.prototype.$rsort = function (a) { var b = this; if (b == null) { return false } this.$sort(a); b.reverse(); return true }; Array.prototype.$asort = function (a) { var e = this; if (e == null) { return [] } var c = []; for (var d = 0; d < e.length; d++) { c.push(d) } if (typeof (a) == "undefined") { a = function (g, f) { if (g < f) { return -1 } if (g > f) { return 1 } return 0 } } for (d = 0; d < e.length; d++) { for (var b = 0; b < e.length; b++) { if (b > 0 && a(e[b - 1], e[b]) > 0) { e.$swap(b, b - 1); c.$swap(b, b - 1) } } } return c }; Array.prototype.$arsort = function (a) { var c = this; if (c == null) { return [] } var b = c.$asort(a); c.reverse(); b.reverse(); return b }; Array.prototype.$diff = function (c) { var b = this; if (b == null) { return [] } var a = []; b.$each(function (e, d) { if (!c.$contains(d)) { a.push(d) } }); return a }; Array.prototype.$intersect = function (c) { var b = this; if (b == null) { return [] } var a = []; b.$each(function (e, d) { if (c.$contains(d)) { a.push(d) } }); return a }; Array.prototype.$max = function (a) { var c = this; if (c == null) { return null } if (c.length > 0) { var b = c.$copy(); b.$rsort(a); return b.$get(0) } return null }; Array.prototype.$min = function (a) { var c = this; if (c == null) { return null } if (c.length > 0) { var b = c.$copy(); b.$sort(a); return b.$get(0) } return null }; Array.prototype.$swap = function (e, d) { var c = this; if (c == null) { return false } var b = c.$get(e); var a = c.$get(d); c.$set(e, a); c.$set(d, b); return true }; Array.prototype.$sum = function (b) { var c = this; if (c == null) { return 0 } var a = 0; c.$each(function (e, d) { if (typeof (b) == "function") { d = b.call(c, e, d) } if (typeof (d) == "number") { a += d } else { if (typeof (d) == "string") { var f = parseFloat(d); if (!isNaN(f)) { a += f } } } }); return a }; Array.prototype.$product = function (b) { var c = this; if (c == null) { return 0 } var a = 1; c.$each(function (e, d) { if (typeof (b) == "function") { d = b.call(c, e, d) } if (typeof (d) == "number") { a *= d } else { if (typeof (d) == "string") { var f = parseFloat(d); if (!isNaN(f)) { a *= f } } } }); return a }; Array.prototype.$chunk = function (c) { var d = this; if (d == null) { return [] } if (typeof (c) == "undefined") { c = 1 } c = parseInt(c); if (isNaN(c) || c < 1) { return [] } var a = []; for (var b = 0; b < d.length / c; b++) { a.$push(d.slice(b * c, (b + 1) * c)) } return a }; Array.prototype.$combine = function (f) { var e = this; if (e == null) { return [] } var b = e.$chunk(1); for (var d = 0; d < arguments.length; d++) { var a = arguments[d]; if (Array.$isArray(a)) { for (var c = 0; c < e.length; c++) { b[c].$push(a.$get(c)) } } } return b }; Array.prototype.$pad = function (d, b) { var c = this; if (c == null) { return false } if (typeof (b) == "undefined") { b = 1 } if (b < 1) { return false } for (var a = 0; a < b; a++) { c.push(d) } return true }; Array.prototype.$fill = function (e, d) { var c = this; if (c == null) { return false } if (typeof (d) == "undefined") { d = c.length } if (d < c.length) { return false } if (d == c.length) { return true } var b = d - c.length; for (var a = 0; a < b; a++) { c.push(e) } return true }; Array.prototype.$shuffle = function () { var a = this; if (a == null) { return false } a.$sort(function () { return Math.random() - 0.5 }); return true }; Array.prototype.$rand = function (a) { var b = this; if (b == null) { return false } if (typeof (a) == "undefined") { a = 1 } var c = b.$copy(); c.$shuffle(); return c.slice(0, a) }; Array.prototype.$size = function (a) { if (typeof a == "function") { return this.$findAll(a).length } var b = this; if (b == null) { return 0 } return b.length }; Array.prototype.$count = function (a) { return this.$size(a) }; Array.prototype.$first = function () { var a = this; if (a == null) { return null } if (a.length == 0) { return null } return a.$get(0) }; Array.prototype.$last = function () { var a = this; if (a == null) { return null } if (a.length == 0) { return null } return a[a.length - 1] }; Array.prototype.$push = function () { var a = this; if (a == null) { return 0 } return Array.prototype.push.apply(a, arguments) }; Array.prototype.$pushAll = function (b) { var a = this; if (a == null) { return 0 } return Array.prototype.push.apply(a, b) }; Array.prototype.$insert = function (b, e) { var d = this; if (d == null) { return false } var a = []; if (arguments.length == 0) { return false } for (var c = 1; c < arguments.length; c++) { a.push(arguments[c]) } if (b < 0) { b = d.length + b + 1 } d.splice.apply(d, [b, 0].concat(a)); return true }; Array.prototype.$asc = function (b) { var a = this; if (a == null) { return false } return a.$sort(function (d, c) { if (typeof (d) == "object" && typeof (c) == "object") { if (d[b] > c[b]) { return 1 } if (d[b] == c[b]) { return 0 } return -1 } return 0 }) }; Array.prototype.$desc = function (b) { var a = this; if (a == null) { return false } return a.$sort(function (d, c) { if (typeof (d) == "object" && typeof (c) == "object") { if (d[b] > c[b]) { return -1 } if (d[b] == c[b]) { return 0 } return 1 } return 0 }) }; Array.prototype.$equal = function (c) { var b = this; if (b == null) { return false } if (!Array.$isArray(c)) { return false } if (b.length != c.length) { return false } for (var a = 0; a < b.length; a++) { if (b[a] != c[a]) { return false } } return true }; Array.prototype.$loop = function (a) { var b = this; if (b == null) { return false } if (b.length == 0) { return false } a.call(b, 0, b[0], { index: 0, next: function () { this.index++; if (this.index > b.length - 1) { this.index = 0 } a.call(b, this.index, b[this.index], this); return this.index }, sleep: function (c) { var d = this; setTimeout(function () { d.next() }, c) } }); return true }; Array.prototype.$asJSON = function () { return JSON.stringify(this) }; Array.$range = function (e, a, c) { var d = []; if (typeof (c) == "undefined") { c = 1 } if (e < a) { for (var b = e; b <= a; b += c) { d.push(b) } } else { for (var b = e; b >= a; b -= c) { d.push(b) } } return d }; Array.$isArray = function (a) { return Object.prototype.toString.call(a) === "[object Array]" }; if (!Array.from) { Array.from = (function () { var d = Object.prototype.toString; var e = function (g) { return typeof g === "function" || d.call(g) === "[object Function]" }; var c = function (h) { var g = Number(h); if (isNaN(g)) { return 0 } if (g === 0 || !isFinite(g)) { return g } return (g > 0 ? 1 : -1) * Math.floor(Math.abs(g)) }; var b = Math.pow(2, 53) - 1; var a = function (h) { var g = c(h); return Math.min(Math.max(g, 0), b) }; return function f(p) { var g = this; var o = Object(p); if (p == null) { throw new TypeError("Array.from requires an array-like object - not null or undefined") } var m = arguments.length > 1 ? arguments[1] : void undefined; var i; if (typeof m !== "undefined") { if (!e(m)) { throw new TypeError("Array.from: when provided, the second argument must be a function") } if (arguments.length > 2) { i = arguments[2] } } var n = a(o.length); var h = e(g) ? Object(new g(n)) : new Array(n); var j = 0; var l; while (j < n) { l = o[j]; if (m) { h[j] = typeof i === "undefined" ? m(l, j) : m.call(i, l, j) } else { h[j] = l } j += 1 } h.length = n; return h } }()) } ; /* axios v0.18.0 | (c) 2018 by Matt Zabriskie */ !function (e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t() }(this, function () { return function (e) { function t(r) { if (n[r]) return n[r].exports; var o = n[r] = {exports: {}, id: r, loaded: !1}; return e[r].call(o.exports, o, o.exports, t), o.loaded = !0, o.exports } var n = {}; return t.m = e, t.c = n, t.p = "", t(0) }([function (e, t, n) { e.exports = n(1) }, function (e, t, n) { "use strict"; function r(e) { var t = new s(e), n = i(s.prototype.request, t); return o.extend(n, s.prototype, t), o.extend(n, t), n } var o = n(2), i = n(3), s = n(5), u = n(6), a = r(u); a.Axios = s, a.create = function (e) { return r(o.merge(u, e)) }, a.Cancel = n(23), a.CancelToken = n(24), a.isCancel = n(20), a.all = function (e) { return Promise.all(e) }, a.spread = n(25), e.exports = a, e.exports.default = a }, function (e, t, n) { "use strict"; function r(e) { return "[object Array]" === R.call(e) } function o(e) { return "[object ArrayBuffer]" === R.call(e) } function i(e) { return "undefined" != typeof FormData && e instanceof FormData } function s(e) { var t; return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer } function u(e) { return "string" == typeof e } function a(e) { return "number" == typeof e } function c(e) { return "undefined" == typeof e } function f(e) { return null !== e && "object" == typeof e } function p(e) { return "[object Date]" === R.call(e) } function d(e) { return "[object File]" === R.call(e) } function l(e) { return "[object Blob]" === R.call(e) } function h(e) { return "[object Function]" === R.call(e) } function m(e) { return f(e) && h(e.pipe) } function y(e) { return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams } function w(e) { return e.replace(/^\s*/, "").replace(/\s*$/, "") } function g() { return ("undefined" == typeof navigator || "ReactNative" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document) } function v(e, t) { if (null !== e && "undefined" != typeof e) if ("object" != typeof e && (e = [e]), r(e)) for (var n = 0, o = e.length; n < o; n++) t.call(null, e[n], n, e); else for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && t.call(null, e[i], i, e) } function x() { function e(e, n) { "object" == typeof t[n] && "object" == typeof e ? t[n] = x(t[n], e) : t[n] = e } for (var t = {}, n = 0, r = arguments.length; n < r; n++) v(arguments[n], e); return t } function b(e, t, n) { return v(t, function (t, r) { n && "function" == typeof t ? e[r] = E(t, n) : e[r] = t }), e } var E = n(3), C = n(4), R = Object.prototype.toString; e.exports = { isArray: r, isArrayBuffer: o, isBuffer: C, isFormData: i, isArrayBufferView: s, isString: u, isNumber: a, isObject: f, isUndefined: c, isDate: p, isFile: d, isBlob: l, isFunction: h, isStream: m, isURLSearchParams: y, isStandardBrowserEnv: g, forEach: v, merge: x, extend: b, trim: w } }, function (e, t) { "use strict"; e.exports = function (e, t) { return function () { for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; return e.apply(t, n) } } }, function (e, t) { function n(e) { return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) } function r(e) { return "function" == typeof e.readFloatLE && "function" == typeof e.slice && n(e.slice(0, 0)) }/*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ e.exports = function (e) { return null != e && (n(e) || r(e) || !!e._isBuffer) } }, function (e, t, n) { "use strict"; function r(e) { this.defaults = e, this.interceptors = {request: new s, response: new s} } var o = n(6), i = n(2), s = n(17), u = n(18); r.prototype.request = function (e) { "string" == typeof e && (e = i.merge({url: arguments[0]}, arguments[1])), e = i.merge(o, {method: "get"}, this.defaults, e), e.method = e.method.toLowerCase(); var t = [u, void 0], n = Promise.resolve(e); for (this.interceptors.request.forEach(function (e) { t.unshift(e.fulfilled, e.rejected) }), this.interceptors.response.forEach(function (e) { t.push(e.fulfilled, e.rejected) }); t.length;) n = n.then(t.shift(), t.shift()); return n }, i.forEach(["delete", "get", "head", "options"], function (e) { r.prototype[e] = function (t, n) { return this.request(i.merge(n || {}, {method: e, url: t})) } }), i.forEach(["post", "put", "patch"], function (e) { r.prototype[e] = function (t, n, r) { return this.request(i.merge(r || {}, {method: e, url: t, data: n})) } }), e.exports = r }, function (e, t, n) { "use strict"; function r(e, t) { !i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) } function o() { var e; return "undefined" != typeof XMLHttpRequest ? e = n(8) : "undefined" != typeof process && (e = n(8)), e } var i = n(2), s = n(7), u = {"Content-Type": "application/x-www-form-urlencoded"}, a = { adapter: o(), transformRequest: [function (e, t) { return s(t, "Content-Type"), i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : i.isObject(e) ? (r(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e }], transformResponse: [function (e) { if ("string" == typeof e) try { e = JSON.parse(e) } catch (e) { } return e }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, validateStatus: function (e) { return e >= 200 && e < 300 } }; a.headers = {common: {Accept: "application/json, text/plain, */*"}}, i.forEach(["delete", "get", "head"], function (e) { a.headers[e] = {} }), i.forEach(["post", "put", "patch"], function (e) { a.headers[e] = i.merge(u) }), e.exports = a }, function (e, t, n) { "use strict"; var r = n(2); e.exports = function (e, t) { r.forEach(e, function (n, r) { r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[r]) }) } }, function (e, t, n) { "use strict"; var r = n(2), o = n(9), i = n(12), s = n(13), u = n(14), a = n(10), c = "undefined" != typeof window && window.btoa && window.btoa.bind(window) || n(15); e.exports = function (e) { return new Promise(function (t, f) { var p = e.data, d = e.headers; r.isFormData(p) && delete d["Content-Type"]; var l = new XMLHttpRequest, h = "onreadystatechange", m = !1; if ("undefined" == typeof window || !window.XDomainRequest || "withCredentials" in l || u(e.url) || (l = new window.XDomainRequest, h = "onload", m = !0, l.onprogress = function () { }, l.ontimeout = function () { }), e.auth) { var y = e.auth.username || "", w = e.auth.password || ""; d.Authorization = "Basic " + c(y + ":" + w) } if (l.open(e.method.toUpperCase(), i(e.url, e.params, e.paramsSerializer), !0), l.timeout = e.timeout, l[h] = function () { if (l && (4 === l.readyState || m) && (0 !== l.status || l.responseURL && 0 === l.responseURL.indexOf("file:"))) { var n = "getAllResponseHeaders" in l ? s(l.getAllResponseHeaders()) : null, r = e.responseType && "text" !== e.responseType ? l.response : l.responseText, i = { data: r, status: 1223 === l.status ? 204 : l.status, statusText: 1223 === l.status ? "No Content" : l.statusText, headers: n, config: e, request: l }; o(t, f, i), l = null } }, l.onerror = function () { f(a("Network Error", e, null, l)), l = null }, l.ontimeout = function () { f(a("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", l)), l = null }, r.isStandardBrowserEnv()) { var g = n(16), v = (e.withCredentials || u(e.url)) && e.xsrfCookieName ? g.read(e.xsrfCookieName) : void 0; v && (d[e.xsrfHeaderName] = v) } if ("setRequestHeader" in l && r.forEach(d, function (e, t) { "undefined" == typeof p && "content-type" === t.toLowerCase() ? delete d[t] : l.setRequestHeader(t, e) }), e.withCredentials && (l.withCredentials = !0), e.responseType) try { l.responseType = e.responseType } catch (t) { if ("json" !== e.responseType) throw t } "function" == typeof e.onDownloadProgress && l.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && l.upload && l.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function (e) { l && (l.abort(), f(e), l = null) }), void 0 === p && (p = null), l.send(p) }) } }, function (e, t, n) { "use strict"; var r = n(10); e.exports = function (e, t, n) { var o = n.config.validateStatus; n.status && o && !o(n.status) ? t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) : e(n) } }, function (e, t, n) { "use strict"; var r = n(11); e.exports = function (e, t, n, o, i) { var s = new Error(e); return r(s, t, n, o, i) } }, function (e, t) { "use strict"; e.exports = function (e, t, n, r, o) { return e.config = t, n && (e.code = n), e.request = r, e.response = o, e } }, function (e, t, n) { "use strict"; function r(e) { return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") } var o = n(2); e.exports = function (e, t, n) { if (!t) return e; var i; if (n) i = n(t); else if (o.isURLSearchParams(t)) i = t.toString(); else { var s = []; o.forEach(t, function (e, t) { null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e], o.forEach(e, function (e) { o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)), s.push(r(t) + "=" + r(e)) })) }), i = s.join("&") } return i && (e += (e.indexOf("?") === -1 ? "?" : "&") + i), e } }, function (e, t, n) { "use strict"; var r = n(2), o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; e.exports = function (e) { var t, n, i, s = {}; return e ? (r.forEach(e.split("\n"), function (e) { if (i = e.indexOf(":"), t = r.trim(e.substr(0, i)).toLowerCase(), n = r.trim(e.substr(i + 1)), t) { if (s[t] && o.indexOf(t) >= 0) return; "set-cookie" === t ? s[t] = (s[t] ? s[t] : []).concat([n]) : s[t] = s[t] ? s[t] + ", " + n : n } }), s) : s } }, function (e, t, n) { "use strict"; var r = n(2); e.exports = r.isStandardBrowserEnv() ? function () { function e(e) { var t = e; return n && (o.setAttribute("href", t), t = o.href), o.setAttribute("href", t), { href: o.href, protocol: o.protocol ? o.protocol.replace(/:$/, "") : "", host: o.host, search: o.search ? o.search.replace(/^\?/, "") : "", hash: o.hash ? o.hash.replace(/^#/, "") : "", hostname: o.hostname, port: o.port, pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname } } var t, n = /(msie|trident)/i.test(navigator.userAgent), o = document.createElement("a"); return t = e(window.location.href), function (n) { var o = r.isString(n) ? e(n) : n; return o.protocol === t.protocol && o.host === t.host } }() : function () { return function () { return !0 } }() }, function (e, t) { "use strict"; function n() { this.message = "String contains an invalid character" } function r(e) { for (var t, r, i = String(e), s = "", u = 0, a = o; i.charAt(0 | u) || (a = "=", u % 1); s += a.charAt(63 & t >> 8 - u % 1 * 8)) { if (r = i.charCodeAt(u += .75), r > 255) throw new n; t = t << 8 | r } return s } var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; n.prototype = new Error, n.prototype.code = 5, n.prototype.name = "InvalidCharacterError", e.exports = r }, function (e, t, n) { "use strict"; var r = n(2); e.exports = r.isStandardBrowserEnv() ? function () { return { write: function (e, t, n, o, i, s) { var u = []; u.push(e + "=" + encodeURIComponent(t)), r.isNumber(n) && u.push("expires=" + new Date(n).toGMTString()), r.isString(o) && u.push("path=" + o), r.isString(i) && u.push("domain=" + i), s === !0 && u.push("secure"), document.cookie = u.join("; ") }, read: function (e) { var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); return t ? decodeURIComponent(t[3]) : null }, remove: function (e) { this.write(e, "", Date.now() - 864e5) } } }() : function () { return { write: function () { }, read: function () { return null }, remove: function () { } } }() }, function (e, t, n) { "use strict"; function r() { this.handlers = [] } var o = n(2); r.prototype.use = function (e, t) { return this.handlers.push({fulfilled: e, rejected: t}), this.handlers.length - 1 }, r.prototype.eject = function (e) { this.handlers[e] && (this.handlers[e] = null) }, r.prototype.forEach = function (e) { o.forEach(this.handlers, function (t) { null !== t && e(t) }) }, e.exports = r }, function (e, t, n) { "use strict"; function r(e) { e.cancelToken && e.cancelToken.throwIfRequested() } var o = n(2), i = n(19), s = n(20), u = n(6), a = n(21), c = n(22); e.exports = function (e) { r(e), e.baseURL && !a(e.url) && (e.url = c(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = i(e.data, e.headers, e.transformRequest), e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function (t) { delete e.headers[t] }); var t = e.adapter || u.adapter; return t(e).then(function (t) { return r(e), t.data = i(t.data, t.headers, e.transformResponse), t }, function (t) { return s(t) || (r(e), t && t.response && (t.response.data = i(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) }) } }, function (e, t, n) { "use strict"; var r = n(2); e.exports = function (e, t, n) { return r.forEach(n, function (n) { e = n(e, t) }), e } }, function (e, t) { "use strict"; e.exports = function (e) { return !(!e || !e.__CANCEL__) } }, function (e, t) { "use strict"; e.exports = function (e) { return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) } }, function (e, t) { "use strict"; e.exports = function (e, t) { return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e } }, function (e, t) { "use strict"; function n(e) { this.message = e } n.prototype.toString = function () { return "Cancel" + (this.message ? ": " + this.message : "") }, n.prototype.__CANCEL__ = !0, e.exports = n }, function (e, t, n) { "use strict"; function r(e) { if ("function" != typeof e) throw new TypeError("executor must be a function."); var t; this.promise = new Promise(function (e) { t = e }); var n = this; e(function (e) { n.reason || (n.reason = new o(e), t(n.reason)) }) } var o = n(23); r.prototype.throwIfRequested = function () { if (this.reason) throw this.reason }, r.source = function () { var e, t = new r(function (t) { e = t }); return {token: t, cancel: e} }, e.exports = r }, function (e, t) { "use strict"; e.exports = function (e) { return function (t) { return e.apply(null, t) } } }]) }); //# sourceMappingURL=axios.min.map !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.ES6Promise = e() }(this, function () { "use strict"; function t(t) { var e = typeof t; return null !== t && ("object" === e || "function" === e) } function e(t) { return "function" == typeof t } function n(t) { B = t } function r(t) { G = t } function o() { return function () { return process.nextTick(a) } } function i() { return "undefined" != typeof z ? function () { z(a) } : c() } function s() { var t = 0, e = new J(a), n = document.createTextNode(""); return e.observe(n, {characterData: !0}), function () { n.data = t = ++t % 2 } } function u() { var t = new MessageChannel; return t.port1.onmessage = a, function () { return t.port2.postMessage(0) } } function c() { var t = setTimeout; return function () { return t(a, 1) } } function a() { for (var t = 0; t < W; t += 2) { var e = V[t], n = V[t + 1]; e(n), V[t] = void 0, V[t + 1] = void 0 } W = 0 } function f() { try { var t = Function("return this")().require("vertx"); return z = t.runOnLoop || t.runOnContext, i() } catch (e) { return c() } } function l(t, e) { var n = this, r = new this.constructor(p); void 0 === r[Z] && O(r); var o = n._state; if (o) { var i = arguments[o - 1]; G(function () { return P(o, r, i, n._result) }) } else E(n, r, t, e); return r } function h(t) { var e = this; if (t && "object" == typeof t && t.constructor === e) return t; var n = new e(p); return g(n, t), n } function p() { } function v() { return new TypeError("You cannot resolve a promise with itself") } function d() { return new TypeError("A promises callback cannot return that same promise.") } function _(t) { try { return t.then } catch (e) { return nt.error = e, nt } } function y(t, e, n, r) { try { t.call(e, n, r) } catch (o) { return o } } function m(t, e, n) { G(function (t) { var r = !1, o = y(n, e, function (n) { r || (r = !0, e !== n ? g(t, n) : S(t, n)) }, function (e) { r || (r = !0, j(t, e)) }, "Settle: " + (t._label || " unknown promise")); !r && o && (r = !0, j(t, o)) }, t) } function b(t, e) { e._state === tt ? S(t, e._result) : e._state === et ? j(t, e._result) : E(e, void 0, function (e) { return g(t, e) }, function (e) { return j(t, e) }) } function w(t, n, r) { n.constructor === t.constructor && r === l && n.constructor.resolve === h ? b(t, n) : r === nt ? (j(t, nt.error), nt.error = null) : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n) } function g(e, n) { e === n ? j(e, v()) : t(n) ? w(e, n, _(n)) : S(e, n) } function A(t) { t._onerror && t._onerror(t._result), T(t) } function S(t, e) { t._state === $ && (t._result = e, t._state = tt, 0 !== t._subscribers.length && G(T, t)) } function j(t, e) { t._state === $ && (t._state = et, t._result = e, G(A, t)) } function E(t, e, n, r) { var o = t._subscribers, i = o.length; t._onerror = null, o[i] = e, o[i + tt] = n, o[i + et] = r, 0 === i && t._state && G(T, t) } function T(t) { var e = t._subscribers, n = t._state; if (0 !== e.length) { for (var r = void 0, o = void 0, i = t._result, s = 0; s < e.length; s += 3) r = e[s], o = e[s + n], r ? P(n, r, o, i) : o(i); t._subscribers.length = 0 } } function M(t, e) { try { return t(e) } catch (n) { return nt.error = n, nt } } function P(t, n, r, o) { var i = e(r), s = void 0, u = void 0, c = void 0, a = void 0; if (i) { if (s = M(r, o), s === nt ? (a = !0, u = s.error, s.error = null) : c = !0, n === s) return void j(n, d()) } else s = o, c = !0; n._state !== $ || (i && c ? g(n, s) : a ? j(n, u) : t === tt ? S(n, s) : t === et && j(n, s)) } function x(t, e) { try { e(function (e) { g(t, e) }, function (e) { j(t, e) }) } catch (n) { j(t, n) } } function C() { return rt++ } function O(t) { t[Z] = rt++, t._state = void 0, t._result = void 0, t._subscribers = [] } function k() { return new Error("Array Methods must be provided an Array") } function F(t) { return new ot(this, t).promise } function Y(t) { var e = this; return new e(U(t) ? function (n, r) { for (var o = t.length, i = 0; i < o; i++) e.resolve(t[i]).then(n, r) } : function (t, e) { return e(new TypeError("You must pass an array to race.")) }) } function q(t) { var e = this, n = new e(p); return j(n, t), n } function D() { throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") } function K() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") } function L() { var t = void 0; if ("undefined" != typeof global) t = global; else if ("undefined" != typeof self) t = self; else try { t = Function("return this")() } catch (e) { throw new Error("polyfill failed because global object is unavailable in this environment") } var n = t.Promise; if (n) { var r = null; try { r = Object.prototype.toString.call(n.resolve()) } catch (e) { } if ("[object Promise]" === r && !n.cast) return } t.Promise = it } var N = void 0; N = Array.isArray ? Array.isArray : function (t) { return "[object Array]" === Object.prototype.toString.call(t) }; var U = N, W = 0, z = void 0, B = void 0, G = function (t, e) { V[W] = t, V[W + 1] = e, W += 2, 2 === W && (B ? B(a) : X()) }, H = "undefined" != typeof window ? window : void 0, I = H || {}, J = I.MutationObserver || I.WebKitMutationObserver, Q = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString.call(process), R = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel, V = new Array(1e3), X = void 0; X = Q ? o() : J ? s() : R ? u() : void 0 === H && "function" == typeof require ? f() : c(); var Z = Math.random().toString(36).substring(2), $ = void 0, tt = 1, et = 2, nt = {error: null}, rt = 0, ot = function () { function t(t, e) { this._instanceConstructor = t, this.promise = new t(p), this.promise[Z] || O(this.promise), U(e) ? (this.length = e.length, this._remaining = e.length, this._result = new Array(this.length), 0 === this.length ? S(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(e), 0 === this._remaining && S(this.promise, this._result))) : j(this.promise, k()) } return t.prototype._enumerate = function (t) { for (var e = 0; this._state === $ && e < t.length; e++) this._eachEntry(t[e], e) }, t.prototype._eachEntry = function (t, e) { var n = this._instanceConstructor, r = n.resolve; if (r === h) { var o = _(t); if (o === l && t._state !== $) this._settledAt(t._state, e, t._result); else if ("function" != typeof o) this._remaining--, this._result[e] = t; else if (n === it) { var i = new n(p); w(i, t, o), this._willSettleAt(i, e) } else this._willSettleAt(new n(function (e) { return e(t) }), e) } else this._willSettleAt(r(t), e) }, t.prototype._settledAt = function (t, e, n) { var r = this.promise; r._state === $ && (this._remaining--, t === et ? j(r, n) : this._result[e] = n), 0 === this._remaining && S(r, this._result) }, t.prototype._willSettleAt = function (t, e) { var n = this; E(t, void 0, function (t) { return n._settledAt(tt, e, t) }, function (t) { return n._settledAt(et, e, t) }) }, t }(), it = function () { function t(e) { this[Z] = C(), this._result = this._state = void 0, this._subscribers = [], p !== e && ("function" != typeof e && D(), this instanceof t ? x(this, e) : K()) } return t.prototype["catch"] = function (t) { return this.then(null, t) }, t.prototype["finally"] = function (t) { var e = this, n = e.constructor; return e.then(function (e) { return n.resolve(t()).then(function () { return e }) }, function (e) { return n.resolve(t()).then(function () { throw e }) }) }, t }(); return it.prototype.then = l, it.all = F, it.race = Y, it.resolve = h, it.reject = q, it._setScheduler = n, it._setAsap = r, it._asap = G, it.polyfill = L, it.Promise = it, it.polyfill(), it }); /** vue.tea.js **/ (function () { var contextFunctions = []; var that = this; var data = {}; window.Tea = {}; window.Tea.context = function (fn) { if (typeof (fn) !== "function") { throw new Error("Tea.scope(fn) should accept a function argument"); } // 合并context contextFunctions.push(fn); }; Vue.config.errorHandler = function (error, vue) { var match = error.toString().match(/(\w+) is not defined/); if (match != null && match.length === 2) { vue[match[1]] = ""; vue.$set(vue, match[1], ""); vue.$forceUpdate(); console.error(error); return; } throw new Error(error.toString()); }; this.load = function () { if (typeof (window.TEA.ACTION.data) !== "undefined") { data = window.TEA.ACTION.data; } var innerMethods = { $delay: Tea.delay, $get: function (action) { return Tea.action(action).get(); }, $post: function (action) { return Tea.action(action).post(); }, $go: Tea.go, $url: Tea.url, $find: Tea.element }; var vueElement = document.getElementById("tea-app"); if (vueElement == null && document.body) { var rootNodes = document.body.childNodes; for (var i = 0; i < rootNodes.length; i++) { var rootNode = rootNodes[i]; if (rootNode.nodeType == 1) { vueElement = rootNode; vueElement.setAttribute("tea-root", "generated"); break; } } } if (contextFunctions.length > 0) { var context = {}; context.Tea = window.Tea; // 内置方法 for (var methodName in innerMethods) { if (innerMethods.hasOwnProperty(methodName)) { context[methodName] = innerMethods[methodName]; } } for (key in data) { if (!data.hasOwnProperty(key)) { continue; } context[key] = data[key]; } for (var i = 0; i < contextFunctions.length; i++) { var contextFn = contextFunctions[i]; if (typeof (contextFn) != "function") { continue; } contextFn.call(context); for (var key in context) { if (!context.hasOwnProperty(key)) { continue; } if (typeof (key) != "string") { continue; } // 跳过自定义方法 if (key.length > 0 && key[0] == "$") { continue; } var value = context[key]; if (typeof (value) === "function") { context[key] = function (value) { return function () { if (window.Tea.Vue == null) { return value.apply(innerMethods, arguments); } else { return value.apply(window.Tea.Vue, arguments); } }; }(value); } } } // 清除context中的预定义变量 for (var methodName in innerMethods) { if (innerMethods.hasOwnProperty(methodName)) { delete (context[methodName]); } } window.Tea.Vue = new Vue({ el: vueElement, data: context, // 内置方法 methods: innerMethods }); } else { var context = { Tea: window.Tea }; for (key in data) { if (!data.hasOwnProperty(key)) { continue; } context[key] = data[key]; } window.Tea.Vue = new Vue({ el: vueElement, data: context, // 内置方法 methods: { $delay: Tea.delay, $get: function (action) { return Tea.action(action).get(); }, $post: function (action) { return Tea.action(action).post(); }, $go: Tea.go, $url: Tea.url, $find: Tea.element } }); } }; document.addEventListener("DOMContentLoaded", function () { that.load(); if (document.body) { Tea.activate(document.body); } }); })(); /** * 序列化参数为可传递的字符串 * * 代码来自jQuery:https://jquery.com/download/ * * @param a 要序列化的参数集 * @param traditional * @returns {*} */ window.Tea.serialize = function (a, traditional) { var prefix, s = [], add = function (key, valueOrFunction) { // If value is a function, invoke it and use its return value var value = (typeof (valueOrFunction) === "function") ? valueOrFunction() : valueOrFunction; s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value); }; var rbracket = /\[]$/; var buildParams = function (prefix, obj, traditional, add) { var name; if (Array.isArray(obj)) { // Serialize array item. for (var i in obj) { if (!obj.hasOwnProperty(i)) { continue; } var v = obj[i]; if (traditional || rbracket.test(prefix)) { // Treat each array item as a scalar. add(prefix, v); } else { // Item is non-scalar (array or object), encode its numeric index. buildParams( prefix + "[" + (typeof v === "object" && v != null ? i : "") + "]", v, traditional, add ); } } } else if (!traditional && typeof (obj) === "object") { // Serialize object item. for (name in obj) { buildParams(prefix + "[" + name + "]", obj[name], traditional, add); } } else { // Serialize scalar item. add(prefix, obj); } }; // If an array was passed in, assume that it is an array of form elements. if (Array.isArray(a)) { // Serialize the form elements for (key in a) { if (!a.hasOwnProperty(key)) { continue; } add(key, a[key]); } } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for (prefix in a) { if (!a.hasOwnProperty(prefix)) { continue; } buildParams(prefix, a[prefix], traditional, add); } } // Return the resulting serialization return s.join("&"); }; /** * 取得Action对应的URL * * @param action Action * @param params 参数 * @param hashParams 锚点参数 * @returns {*} */ window.Tea.url = function (action, params, hashParams) { // $ if (action == "$") { action = window.location.pathname; } var config = window.TEA.ACTION; var controller = config.parent; var module = config.module; var base = config.base; var actionParam = config.actionParam; var url; if (action.match(/\//)) {//支持URL url = action; if (typeof (params) === "object") { var query = Tea.serialize(params); if (query.length > 0) { url += "?" + query; } } if (!url.match(/^(http|https|ftp):/i)) { url = base + ((url.substr(0, 1) === "/") ? "" : "/") + url; } } else { if (action.substr(0, 2) === "..") { var pos = controller.lastIndexOf("."); if (pos === -1) { action = action.substr(2); } else { action = controller.substr(0, pos) + action.substr(1); } if (module !== "") { action = "@" + module + "." + action; } } else if (action.substr(0, 1) === ".") { action = controller + action; if (module !== "") { action = "@" + module + "." + action; } } else if (module !== "") { if (action === "@") { action = "@" + module; } else { action = action.replace("@.", "@" + module + "."); } } action = action.replace(/\.$/, ""); if (actionParam) { var path = action.replace(/[.\/]+/g, "/"); if (path.substr(0, 1) !== "/") { path = "/" + path; } url = base + "?__ACTION__=" + path; } else { url = base + "/" + action.replace(/[.\/]+/g, "/").replace(/^\//, ""); } if (typeof (params) === "object") { params = Tea.serialize(params); if (params.length > 0) { if (url.indexOf("?") === -1) { url += "?" + params; } else { url += "&" + params; } } } if (typeof (hashParams) === "string") { url += "#" + hashParams; } else if (typeof (hashParams) === "object") { url += "#" + Tea.serialize(hashParams); } } return url; }; /** * 跳转 * * @param action 要跳转到的action * @param params 附带的参数 * @param hash 附带的锚点参数 */ window.Tea.go = function (action, params, hash) { var url = Tea.url(action, params); if (hash && hash.length > 0) { url += "#" + hash; } window.location.href = url; }; /** * 格式化字节数 * * @param bytes 字节数 * @returns {*} */ window.Tea.formatBytes = function (bytes) { if (bytes < 1024) { return "< 1kb"; } else if (bytes < 1024 * 1024) { return Math.round(bytes / 1024 * 100) / 100 + " kb"; } else if (bytes < 1024 * 1024 * 1024) { return Math.round(bytes / 1024 / 1024 * 100) / 100 + " mb"; } return Math.round(bytes / 1024 / 1024 / 1024 * 100) / 100 + " gb"; }; /** * 版本号对比 * * 代码来自 http://stackoverflow.com/questions/6832596/how-to-compare-software-version-number-using-js-only-number * * @param a * @param b * @returns {number} */ window.Tea.versionCompare = function compare(a, b) { if (a === b) { return 0; } var a_components = a.split("."); var b_components = b.split("."); var len = Math.min(a_components.length, b_components.length); // loop while the components are equal for (var i = 0; i < len; i++) { // A bigger than B if (parseInt(a_components[i]) > parseInt(b_components[i])) { return 1; } // B bigger than A if (parseInt(a_components[i]) < parseInt(b_components[i])) { return -1; } } // If one's a prefix of the other, the longer one is greater. if (a_components.length > b_components.length) { return 1; } if (a_components.length < b_components.length) { return -1; } // Otherwise they are the same. return 0; }; /** * 延时执行 * * @param fn 要执行的函数 * @param ms 延时长度 */ window.Tea.delay = function (fn, ms) { if (typeof (ms) === "undefined") { ms = 10; } setTimeout(function () { fn.call(Tea.Vue); }, ms); }; /** * 定义Action对象 * * @param action Action * @param params 参数集 * @constructor */ window.Tea.Action = function (action, params) { var _action = action; var _params = params; var _successFn; var _failFn; var _errorFn; var _doneFn; var _method = "POST"; var _timeout = 30; var _delay = 0; var _progressFn; var _refresh = false; this.params = function (params) { _params = params; return this; }; this.form = function (form) { _params = new FormData(form); return this; }; this.success = function (successFn) { _successFn = successFn; return this; }; this.fail = function (failFn) { _failFn = failFn; return this; }; this.error = function (errorFn) { _errorFn = errorFn; return this; }; this.done = function (doneFn) { _doneFn = doneFn; return this; }; this.timeout = function (timeout) { _timeout = timeout; return this; }; this.delay = function (delay) { _delay = delay; return this; }; this.progress = function (progressFn) { _progressFn = progressFn; return this; }; this.refresh = function () { _refresh = true; return this; }; this.post = function () { _method = "POST"; setTimeout(this._post); return this; }; this.get = function () { _method = "GET"; setTimeout(this._post); return this; }; this._post = function () { var params = _params; // 参数配置:https://github.com/axios/axios#request-config var config = { method: _method, url: Tea.url(_action), timeout: _timeout * 1000, headers: { "X-Requested-With": "XMLHttpRequest" } }; if (_progressFn != null && typeof (_progressFn) == "function") { config["onUploadProgress"] = function (event) { _progressFn.call(Tea.Vue, event.loaded, event.total, event); }; } if (_method === "GET") { config["params"] = params; } else { if (typeof (params) === "object" && params instanceof FormData) { Array.from(params).$each(function (name, object) { if (object != null && object instanceof File) { if (object.size === 0 && object.name.length === 0) { params.delete(name); } } }); config["data"] = params; } else { var formData = new FormData(); for (var key in params) { if (!params.hasOwnProperty(key)) { continue; } if (params[key] == null) { formData.append(key, ""); } else { if (typeof (params[key]) == "object" && (params[key] instanceof Array)) { for (var i = 0; i < params[key].length; i++) { formData.append(key, params[key][i]); } } else { formData.append(key, params[key]); } } } config["data"] = formData; } } axios(config) .then(function (response) { response = response.data; setTimeout(function () { if (typeof (response) !== "object" || typeof (response.code) === "undefined") { if (typeof (_errorFn) === "function") { _errorFn.call(Tea.Vue, {}); } return; } var code = parseInt(response.code, 10); if (code === 200) { if (typeof (_successFn) === "function") { var result = _successFn.call(Tea.Vue, response); if (typeof (result) === "boolean" && !result) { return; } } if (response.message != null && response.message.length > 0) { alert(response.message); } if (response.next != null && typeof (response.next) === "object") { if (response.next.action === "*refresh") { window.location.reload(); } else { Tea.go(response.next.action, response.next.params, response.next.hash); } } // 自动刷新 if (_refresh) { window.location.reload(); } } else { if (typeof (_failFn) === "function") { _failFn.call(Tea.Vue, response); } else { Tea.failResponse(response); } } }); }) .catch(function (error) { console.log(error); if (typeof (_errorFn) === "function") { _errorFn.call(Tea.Vue, { message: error.message }); } }) .then(function () { // console.log("done"); if (typeof (_doneFn) == "function") { setTimeout(function () { _doneFn.call(Tea.Vue, {}); }) } }); }; }; /** * 取得Action对象 * * @param action Action * @returns {Window.Tea.Action} */ window.Tea.action = function (action) { return new this.Action(action); }; /** * 激活元素中的Action * * 支持 * - data-tea-action * - data-tea-confirm * - data-tea-timeout * - data-tea-before * - data-tea-success * - data-tea-fail * - data-tea-error * - data-tea-done * - data-tea-progress */ window.Tea.activate = function (element) { var nodes = Tea.element("*[data-tea-action]", element); if (nodes.length === 0) { return; } for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; if (node.tagName.toUpperCase() === "FORM") { Tea.element(node).unbind("submit").bind("submit", function (e) { Tea.runActionOn(this); e.preventDefault(); e.stopPropagation(); }); } else { Tea.element(node).unbind("click").bind("click", function (e) { Tea.runActionOn(this); e.preventDefault(); e.stopPropagation(); return false; }); } } }; /** * 执行绑定data-tea-*的元素 * * @param element 元素 */ window.Tea.runActionOn = function (element) { var form = Tea.element(element); var action = form.attr("data-tea-action"); var timeout = form.attr("data-tea-timeout"); var confirm = form.attr("data-tea-confirm"); var beforeFn = form.attr("data-tea-before"); var successFn = form.attr("data-tea-success"); var failFn = form.attr("data-tea-fail"); var errorFn = form.attr("data-tea-error"); var progressFn = form.attr("data-tea-progress"); var doneFn = form.attr("data-tea-done"); if (confirm != null && confirm.length > 0 && !window.confirm(confirm)) { return; } //执行前调用beforeFn if (beforeFn != null && beforeFn.length > 0) { beforeFn = beforeFn.split("(")[0].trim(); if (typeof (Tea.Vue[beforeFn]) === "function") { var result = Tea.Vue[beforeFn].call(Tea.Vue, form); if (typeof (result) === "boolean" && !result) { return; } } } //请求对象 var actionObject = Tea.action(action) .post(); if (successFn != null && successFn.length > 0) { if (typeof (Tea.Vue[successFn]) === "function") { actionObject.success(function (resp) { Tea.Vue[successFn].call(Tea.Vue, resp); }); } } if (failFn != null && failFn.length > 0) { if (typeof (Tea.Vue[failFn]) === "function") { actionObject.fail(function (resp) { Tea.Vue[failFn].call(Tea.Vue, resp); }); } } if (errorFn != null && errorFn.length > 0) { if (typeof (Tea.Vue[errorFn]) === "function") { actionObject.error(function () { Tea.Vue[errorFn].call(Tea.Vue); }); } } if (progressFn != null && progressFn.length > 0) { if (typeof (Tea.Vue[progressFn]) === "function") { actionObject.progress(function () { Tea.Vue[progressFn].apply(Tea.Vue, arguments); }); } } if (doneFn != null && doneFn.length > 0) { if (typeof (Tea.Vue[doneFn]) === "function") { actionObject.done(function () { Tea.Vue[doneFn].apply(Tea.Vue, arguments); }); } } //超时时间 if (timeout != null) { timeout = parseFloat(timeout); if (!isNaN(timeout)) { actionObject.timeout(timeout); } } //参数 if (element.tagName.toUpperCase() === "FORM") { actionObject.form(element); } else { var attributes = element.attributes; var params = {}; for (var i = 0; i < attributes.length; i++) { var attr = attributes[i]; var match = attr.name.toString().match(/^data-(.+)$/); if (match && !match[1].match(/^tea-/)) { var pieces = match[1].split("-"); for (var j = 1; j < pieces.length; j++) { pieces[j] = pieces[j][0].toUpperCase() + pieces[j].substr(1); } var name = pieces.join(""); params[name] = attr.value; } } actionObject.params(params); } }; var teaEventListeners = {}; // element => { event => [ callback1, ... ] } function TeaElementObjects(elements) { var that = this; elements.$each(function (index, element) { that[index] = element; }); this.bind = function (event, listener) { elements.$each(function (_, element) { if (typeof (teaEventListeners[element]) == "undefined") { teaEventListeners[element] = {}; } if (typeof (teaEventListeners[element][event]) == "undefined") { teaEventListeners[element][event] = []; } teaEventListeners[element][event].push(listener); element.addEventListener(event, listener) }); return this; }; this.unbind = function (event) { elements.$each(function (_, element) { if (typeof (teaEventListeners[element]) == "undefined") { return; } if (typeof (teaEventListeners[element][event]) == "undefined") { return; } teaEventListeners[element][event].$each(function (_, listener) { element.removeEventListener(event, listener); }); teaEventListeners[element][event] = []; var hasListeners = false; for (var k in teaEventListeners[element]) { if (!teaEventListeners[element].hasOwnProperty(k)) { continue; } if (teaEventListeners[element][k] instanceof Array && teaEventListeners[element][k].length > 0) { hasListeners = true; } } if (!hasListeners) { delete (teaEventListeners[element]); } }); return this; }; this.first = function () { var first = elements.$first(); if (first != null) { return Tea.element(first); } return new TeaElementObjects([]); }; this.last = function () { var last = elements.$last(); if (last != null) { return Tea.element(last); } return new TeaElementObjects([]); }; this.attrs = function () { var first = this.first(); if (first.length === 0) { return {}; } var attrs = {}; var node = first[0]; for (var i = 0; i < node.attributes.length; i++) { var attr = node.attributes[i]; attrs[attr.name] = attr.value; } return attrs; }; this.attr = function (name, value) { if (arguments.length === 0) { return ""; } if (arguments.length === 1) { var attrs = this.attrs(); if (typeof (attrs[name]) !== "undefined") { return attrs[name]; } return ""; } var first = this.first(); if (first.length > 0) { first[0].setAttribute(name, value); } return this; }; this.tagName = function () { var first = this.first(); if (first.length === 0) { return ""; } return first[0].tagName; }; this.focus = function () { var first = this.first(); if (first.length === 0) { return; } first[0].focus(); }; this.blur = function () { this.each(function (k, v) { v.blur(); }); }; this.each = function (iterator) { elements.$each(function (index, element) { iterator(index, element); }); return this; }; this.find = function (selector) { if (this.length == 0) { return new TeaElementObjects([]); } return Tea.element(selector, this.first()[0]); }; this.hide = function () { this.each(function (_, element) { element.style.display = "none"; }); return this; }; this.show = function () { this.each(function (_, element) { element.style.display = "block"; }); return this; }; this.text = function () { if (arguments.length > 0) { var text = arguments[0]; this.each(function (_, element) { if (typeof (element.textContent) != "undefined") { element.textContent = text; } if (typeof (element.innerText) != "undefined") { element.innerText = text; } }); return this; } if (this.length == 0) { return ""; } if (typeof (elements[0].textContent) == "string") { return elements[0].textContent; } return elements[0].innerText; }; this.html = function () { if (arguments.length > 0) { var html = arguments[0]; this.each(function (_, element) { element.innerHTML = html; }); return this; } if (this.length == 0) { return ""; } return elements[0].innerHTML; }; this.val = function () { if (arguments.length > 0) { var value = arguments[0]; this.each(function (_, element) { element.value = value; }); return this; } if (this.length == 0) { return ""; } return elements[0].value; }; this.remove = function () { this.each(function (_, element) { var parent = element.parentNode; if (parent != null) { parent.removeChild(element); } }); return this; }; this.length = elements.length; } /** * 获取元素 * * @param selector 选择器 * @param parent 父节点 * @returns {*} */ window.Tea.element = function (selector, parent) { var elements = []; if (typeof (selector) === "object" && /(function|object) \w+Element\b/.test(selector.constructor.toString())) { elements = [selector]; } else if (typeof (selector) === "object" && /function TeaElementObjects/.test(TeaElementObjects.constructor.toString())) { return selector; } else if (typeof (selector) === "string") { if (typeof (parent) === "object") { elements = Array.from(parent.querySelectorAll(selector)); } else { elements = Array.from(document.querySelectorAll(selector)); } } return new TeaElementObjects(elements); }; /** * 生成vue for用的key * @returns {number} */ window.Tea.key = function () { return Math.random() }; // 失败的响应处理 window.Tea.failResponse = function (response) { //消息提示 var hasMessage = false; if (response.message != null && response.message.length > 0) { hasMessage = true; Tea.alert(response.message, function () { if (typeof (response.errors) === "object" && response.errors != null && response.errors.length > 0) { var fieldName = response.errors[0].param; var element = Tea.element("*[name='" + fieldName + "']"); if (element) { element.focus(); } } }); return; } if (typeof (response.errors) === "object" && response.errors != null && response.errors.length > 0) { /** * errors: [ * [field1, [ error1, error2, ....] * ... * ] * error: [ rule, message ] */ var fieldName = response.errors[0].param; var error = response.errors[0].messages[0]; var callback = function () { var element = Tea.element("*[name='" + fieldName + "']"); if (element) { element.focus(); } else { var match = fieldName.match(/^(.+)\[(\d+)]$/); if (match != null) { var index = parseInt(match[2], 10); var fields = Tea.element("*[name='" + match[1].trim() + "[]']"); if (fields.length > 0 && index < fields.length) { fields[index].focus(); } } } }; if (!hasMessage) { Tea.alert(error, callback); } else { callback(); } } }; window.Tea.alert = function (message, callback) { if (typeof (teaweb) != null) { teaweb.warn(message, function () { if (typeof (callback) == "function") { callback(); } }); } else { alert(message); if (typeof (callback) == "function") { callback(); } } }; if (typeof (window.console) === "undefined") { window.console = { log: function () { }, error: function () { }, group: function () { } }; }