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)
  });
  