text: /** layuiAdmin.std-v1.2.1 LPPL License By http://www.layui.com/admin/ */
  ;layui.define(["laytpl", "layer"], function (e) {
      var t = layui.jquery, a = layui.laytpl, n = layui.layer, r = layui.setter, o = (layui.device(), layui.hint()),
          i = function (e) {
              return new d(e)
          }, s = "LAY_app_body", d = function (e) {
              this.id = e, this.container = t("#" + (e || s))
          };
      i.loading = function (e) {
          e.append(this.elemLoad = t('<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon layui-icon-loading layadmin-loading"></i>'))
      }, i.removeLoad = function () {
          this.elemLoad && this.elemLoad.remove()
      }, i.exit = function (e) {
          layui.data(r.tableName, {key: r.request.tokenName, remove: !0}), e && e()
      }, i.req = function (e) {
          var a = e.success, n = (e.error, r.request), o = r.response, s = function () {
              return r.debug ? "<br><cite>URL：</cite>" + e.url : ""
          };
          if (e.data = e.data || {}, e.headers = e.headers || {}, n.tokenName) {
              var d = "string" == typeof e.data ? JSON.parse(e.data) : e.data;
              e.data[n.tokenName] = n.tokenName in d ? e.data[n.tokenName] : layui.data(r.tableName)[n.tokenName] || "", e.headers[n.tokenName] = n.tokenName in e.headers ? e.headers[n.tokenName] : layui.data(r.tableName)[n.tokenName] || ""
          }
          return delete e.success, delete e.error, t.ajax(t.extend({
              type: "get", dataType: "json", success: function (t) {
                  var n = o.statusCode;
                  if (t[o.statusName] == n.ok) "function" == typeof e.done && e.done(t); else if (t[o.statusName] == n.logout) i.exit(); else {
                      var r = ["<cite>Error：</cite> " + (t[o.msgName] || "返回状态码异常"), s()].join("");
                      i.error(r)
                  }
                  "function" == typeof a && a(t)
              }, error: function (e, t) {
                  var a = ["请求异常，请重试<br><cite>错误信息：</cite>" + t, s()].join("");
                  i.error(a), "function" == typeof a && a(res)
              }
          }, e))
      }, i.popup = function (e) {
          var a = e.success, r = e.skin;
          return delete e.success, delete e.skin, n.open(t.extend({
              type: 1,
              title: "提示",
              content: "",
              id: "LAY-system-view-popup",
              skin: "layui-layer-admin" + (r ? " " + r : ""),
              shadeClose: !0,
              closeBtn: !1,
              success: function (e, r) {
                  var o = t('<i class="layui-icon" close>&#x1006;</i>');
                  e.append(o), o.on("click", function () {
                      n.close(r)
                  }), "function" == typeof a && a.apply(this, arguments)
              }
          }, e))
      }, i.error = function (e, a) {
          return i.popup(t.extend({content: e, maxWidth: 300, offset: "t", anim: 6, id: "LAY_adminError"}, a))
      }, d.prototype.render = function (e, a) {
          var n = this;
          layui.router();
          return e = r.views + e + r.engine, t("#" + s).children(".layadmin-loading").remove(), i.loading(n.container), t.ajax({
              url: e,
              type: "get",
              dataType: "html",
              data: {v: layui.cache.version},
              success: function (e) {
                  e = "<div>" + e + "</div>";
                  var r = t(e).find("title"), o = r.text() || (e.match(/\<title\>([\s\S]*)\<\/title>/) || [])[1],
                      s = {title: o, body: e};
                  r.remove(), n.params = a || {}, n.then && (n.then(s), delete n.then), n.parse(e), i.removeLoad(), n.done && (n.done(s), delete n.done)
              },
              error: function (e) {
                  return i.removeLoad(), n.render.isError ? i.error("请求视图文件异常，状态：" + e.status) : (404 === e.status ? n.render("template/tips/404") : n.render("template/tips/error"), void(n.render.isError = !0))
              }
          }), n
      }, d.prototype.parse = function (e, n, r) {
          var s = this, d = "object" == typeof e, l = d ? e : t(e), u = d ? e : l.find("*[template]"), c = function (e) {
              var n = a(e.dataElem.html()), o = t.extend({params: p.params}, e.res);
              e.dataElem.after(n.render(o)), "function" == typeof r && r();
              try {
                  e.done && new Function("d", e.done)(o)
              } catch (i) {
                  console.error(e.dataElem[0], "\n存在错误回调脚本\n\n", i)
              }
          }, p = layui.router();
          l.find("title").remove(), s.container[n ? "after" : "html"](l.children()), p.params = s.params || {};
          for (var y = u.length; y > 0; y--) !function () {
              var e = u.eq(y - 1), t = e.attr("lay-done") || e.attr("lay-then"), n = a(e.attr("lay-url") || "").render(p),
                  r = a(e.attr("lay-data") || "").render(p), s = a(e.attr("lay-headers") || "").render(p);
              try {
                  r = new Function("return " + r + ";")()
              } catch (d) {
                  o.error("lay-data: " + d.message), r = {}
              }
              try {
                  s = new Function("return " + s + ";")()
              } catch (d) {
                  o.error("lay-headers: " + d.message), s = s || {}
              }
              n ? i.req({
                  type: e.attr("lay-type") || "get",
                  url: n,
                  data: r,
                  dataType: "json",
                  headers: s,
                  success: function (a) {
                      c({dataElem: e, res: a, done: t})
                  }
              }) : c({dataElem: e, done: t})
          }();
          return s
      }, d.prototype.autoRender = function (e, a) {
          var n = this;
          t(e || "body").find("*[template]").each(function (e, a) {
              var r = t(this);
              n.container = r, n.parse(r, "refresh")
          })
      }, d.prototype.send = function (e, t) {
          var n = a(e || this.container.html()).render(t || {});
          return this.container.html(n), this
      }, d.prototype.refresh = function (e) {
          var t = this, a = t.container.next(), n = a.attr("lay-templateid");
          return t.id != n ? t : (t.parse(t.container, "refresh", function () {
              t.container.siblings('[lay-templateid="' + t.id + '"]:last').remove(), "function" == typeof e && e()
          }), t)
      }, d.prototype.then = function (e) {
          return this.then = e, this
      }, d.prototype.done = function (e) {
          return this.done = e, this
      }, e("view", i)
  });