<!DOCTYPE html>
<html lang="en" translate="no">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="google" content="notranslate" />
    <meta
      name="keywords"
      content="库巴扎试剂耗材采购管理平台、库巴扎试剂材料信息管理系统、库巴扎试剂耗材采购一站式管理平台、库巴扎危化品采购管理平台、库巴扎危化品管理系统、库巴扎试剂管理系统"
    />
    <meta name="referrer" content="origin" />
    <meta
      name="description"
      content="库巴扎试剂耗材信息管理平台，致力于把智能服务与管理带给每一位科研人员和供应商，实现科研采购，如此简单！"
    />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script src="/web/math.min.js"></script>
    <script>
      const xhr = new XMLHttpRequest();
      xhr.open(
        "GET",
        "/web/zmanagerConfig.js?time=" + new Date().getTime(),
        false
      );
      xhr.send(null);
      if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
        let str = xhr.response;
        eval(str);
      }
      if (zmanagerConfig[0] && zmanagerConfig[0].SCHOOL) {
        if (zmanagerConfig[0].SCHOOL == "tmu") {
          // 天津医科
          let data = sessionStorage.getItem("token");
          if (
            !data &&
            window.location.href.indexOf("access_token") == -1 &&
            window.location.href.indexOf("token") == -1 &&
            window.location.href.indexOf("B3C5BC202C7B40789C101A5460FDE015") ==
              -1
          ) {
            window.location.href =
              "http://libsy.tmu.edu.cn/web/utils/entrance.html";
          }
        }
        if (
          (navigator.userAgent.indexOf("compatible") > -1 &&
            navigator.userAgent.indexOf("MSIE") > -1) ||
          navigator.userAgent.indexOf(".NET") > -1
        ) {
          window.location.href =
            "/web/utils/update.html?mark=" + zmanagerConfig[0].SCHOOL;
        }
      }
    </script>
    <script>
      function loadXMLDoc(fn) {
        fn(zmanagerConfig);
      }
      loadXMLDoc(function (txt) {
        let star = "/web/";
        // 处理数据
        let ass = txt;
        for (let j = 0; j < ass.length; j++) {
          for (let k in ass[j]) {
            if (k != "zx#info@#1" && k != "img") {
              if (ass[j][k].charAt(0) == "-") {
                window[k] = star + window.mcustomimage + ass[j][k].slice(1);
                if (ass[j][k]?.includes(",")) {
                  // 多个图片
                  window[k] = ass[j][k]
                    ?.split(",")
                    ?.map((item) => star + window.mcustomimage + item.slice(1))
                    .toString();
                }
              } else {
                window[k] = ass[j][k];
                if (k == "entranceUrl") {
                  window[k] = ass[j][k] + "?time=" + new Date().getTime();
                }
              }
            }
          }
        }
        window.publicPath = star;

        document.title = window.mcustomtitle;
        window.CURRENT_URL = window.PROXY_URL + "/";
        window.DEV_URL = window.PROXY_URL + "/";
        window.layoutSiderBackground = "#ffffff";
        window.mcustomhomecardactive = window.primaryColor;
        window.waste_URL = window.waste_URL ? window.waste_URL : "waste";
        var mlink = document.createElement("link");
        mlink.type = "image/x-icon";
        mlink.rel = "shortcut icon";
        mlink.href = window.mcustomicon;
        document.getElementsByTagName("head")[0].appendChild(mlink);

        var nod = document.createElement("style"),
          str =
            ".ant-pro-global-header-layout-mix { \
          background-color: " +
            window.layoutSiderBackground +
            " !important; \
        } \
        .ant-spin-dot-item { \
          background-color: " +
            window.primaryColor +
            " !important; \
        } \
        .ant-menu-light .ant-menu-item:hover, .ant-menu-light .ant-menu-item-active, .ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, .ant-menu-light .ant-menu-submenu-active, .ant-menu-light .ant-menu-submenu-title:hover { \
          color: " +
            window.primaryColor +
            " !important; \
        } \
        .ant-pro-sider.ant-layout-sider-light .ant-menu-item-selected a, .ant-pro-sider.ant-layout-sider-light .ant-menu-item a:hover{ \
          color: " +
            window.primaryColor +
            " !important; \
        } \
        .ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-expand-icon, .ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow{ \
          color: " +
            window.primaryColor +
            " !important; \
        } \
        .ant-menu-inline.ant-menu-root .ant-menu-item, .ant-menu-inline.ant-menu-root .ant-menu-submenu-title { \
          background: #fff; \
        }";
        if (window.selectedColor != "0") {
          str +=
            ".ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { \
            background-color: " +
            window.selectedColor +
            " !important; \
          }";
        }
        nod.type = "text/css";
        if (nod.styleSheet) {
          //ie下
          nod.styleSheet.cssText = str;
        } else {
          nod.innerHTML = str; //或者写成 nod.appendChild(document.createTextNode(str))
        }
        document.getElementsByTagName("head")[0].appendChild(nod);
      });
    </script>

    <meta httpequiv="Cache-Control" content="no-cache" />
    <meta httpequiv="Pragma" content="no-cache" />
    <meta httpequiv="Expires" content="0" />
    <link rel="stylesheet" href="/web/antd.17c7fb12.chunk.css" />
    <link rel="stylesheet" href="/web/umi.0991f314.css" />
    <link rel="stylesheet" href="/web/antdesigns.d307fa4b.chunk.css" />
    <script>
      window.routerBase = "/web/";
    </script>
    <script>
      //! umi version: 3.5.0
    </script>
  </head>

  <body style="font-size: 15px">
    <noscript>Out-of-the-box mid-stage front/design solution!</noscript>
    <script>
      /**
       * primaryColor 主色，仅支持十六进制
       */
      function setcolor(primaryColor) {
        let bg1 = primaryColor;
        let bg2 = hexToRgb(bg1);
        let bg3 = colorutils(primaryColor, 94);
        // bg1主色，bg2处理的浅色，bg3阴影颜色
        // 前面是要替换的颜色，后面对应替换成什么颜色，因每个项目不一样，改成符合自己项目的即可
        let objcolor = {
          // 主题色
          "#155d9e": bg1,
          "21, 93, 158": bg2,
          "21,93,158": bg2,
          "#3276ab": bg1,
          "#0a4178": bg1,
          "#ced9de": bg3,
          "#78b6ed": bg3,
          "#c8d4da": bg3,
          "#78a8c4": bg1,
          "#a1c1d1": bg3,
        };
        // 将颜色变成rgba的方式
        function hexToRgb(hex) {
          var r, g, b;
          if (hex.charAt(0) === "#") {
            hex = hex.substr(1);
          }
          r = parseInt(hex.substr(0, 2), 16);
          g = parseInt(hex.substr(2, 2), 16);
          b = parseInt(hex.substr(4, 2), 16);
          return r + ", " + g + ", " + b;
        }
        // 将颜色变成浅色color颜色opacity 0-100  越靠近0颜色越深越靠近100 颜色越浅
        function colorutils(color, opacity) {
          function allhsl(color) {
            if (color.indexOf("rgb") != -1) {
              var start = color.indexOf("(") + 1;
              var startval = color.substr(color.indexOf("(") + 1);
              var end = startval.indexOf(")");
              var val = startval.substr(0, end);
              var colorarr = val.split(",");
              return rgbtohsl(colorarr[0], colorarr[1], colorarr[2]);
            } else {
              return colorToRgb(color);
            }
          }

          function resultRgb(color, opacity) {
            var arr = allhsl(color);
            var result = hsltorgb(arr[0], arr[1], opacity);
            if (color.indexOf("rgb") != -1) {
              return (
                "rgb(" + result[0] + "," + result[1] + "," + result[2] + ")"
              );
            } else {
              return colorToHex(result);
            }
          }

          function colorToRgb(color) {
            if (color.indexOf("#") != -1) {
              color = color.replace("#", "", color);
            }
            var color1 = parseInt(color.substr(0, 2), 16);
            var color2 = parseInt(color.substr(2, 2), 16);
            var color3 = parseInt(color.substr(4, 2), 16);
            return rgbtohsl(color1, color2, color3);
          }

          function rgbtohsl(r, g, b) {
            r = math.divide(r, 255);
            g = math.divide(g, 255);
            b = math.divide(b, 255);

            var min = Math.min(r, g, b);
            var max = Math.max(r, g, b);
            var l = math.divide(math.add(min, max), 2);
            var difference = math.subtract(max, min);
            var h, s, l;
            if (max == min) {
              h = 0;
              s = 0;
            } else {
              s =
                l > 0.5
                  ? math.divide(
                      difference,
                      math.subtract(math.subtract(2.0, max), min)
                    )
                  : math.divide(difference, math.add(max, min));
              switch (max) {
                case r:
                  h = math.add(
                    math.divide(math.subtract(g, b), difference),
                    g < b ? 6 : 0
                  );
                  break;
                case g:
                  h = math.add(
                    2.0,
                    math.divide(math.subtract(b, r), difference)
                  );
                  break;
                case b:
                  h = math.add(
                    4.0,
                    math.divide(math.subtract(r, g), difference)
                  );
                  break;
              }
              h = Math.round(math.multiply(h, 60));
            }
            s = Math.round(math.multiply(s, 100));
            l = Math.round(math.multiply(l, 100));
            return [h, s, l];
          }

          function hsltorgb(h, s, l) {
            var h = math.divide(h, 360);
            var s = math.divide(s, 100);
            var l = math.divide(l, 100);
            var rgb = [];

            if (s == 0) {
              rgb = [
                Math.round(math.multiply(l, 255)),
                Math.round(math.multiply(l, 255)),
                Math.round(math.multiply(l, 255)),
              ];
            } else {
              var q =
                l >= 0.5
                  ? math.subtract(math.add(l, s), math.multiply(l, s))
                  : math.multiply(l, math.add(1, s));
              var p = math.subtract(math.multiply(2, l), q);
              var tr = (rgb[0] = math.add(h, math.divide(1, 3)));
              var tg = (rgb[1] = h);
              var tb = (rgb[2] = math.subtract(h, math.divide(1, 3)));
              for (var i = 0; i < rgb.length; i++) {
                var tc = rgb[i];
                if (tc < 0) {
                  tc = math.add(tc, 1);
                } else if (tc > 1) {
                  tc = math.subtract(tc, 1);
                }
                switch (true) {
                  case tc < math.divide(1, 6):
                    tc = math.add(
                      p,
                      math.multiply(math.multiply(math.subtract(q, p), 6), tc)
                    );
                    break;
                  case math.divide(1, 6) <= tc && tc < 0.5:
                    tc = q;
                    break;
                  case 0.5 <= tc && tc < math.divide(2, 3):
                    tc = math.add(
                      p,
                      math.multiply(
                        math.subtract(q, p),
                        math.subtract(4, math.multiply(6, tc))
                      )
                    );
                    break;
                  default:
                    tc = p;
                    break;
                }
                rgb[i] = Math.round(math.multiply(tc, 255));
              }
            }
            return rgb;
          }

          function colorToHex(color) {
            function componentToHex(c) {
              var hex = c.toString(16);
              return hex.length == 1 ? "0" + hex : hex;
            }
            return (
              "#" +
              componentToHex(color[0]) +
              componentToHex(color[1]) +
              componentToHex(color[2])
            );
          }
          return resultRgb(color, opacity);
        }
        // 获取到所有的样式 通过ajax拿到内容做替换，然后在生成style内容放到head标签下
        let styleSheets = document.styleSheets;
        for (let i = 0; i < styleSheets.length; i++) {
          let obj = styleSheets[i];

          if (obj && obj.href) {
            const xhr = new XMLHttpRequest();
            xhr.open("GET", obj.href, false);
            xhr.send(null);
            if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
              let str = xhr.response;
              for (let k in objcolor) {
                str = str.replaceAll(k, objcolor[k]);
              }
              let nod = document.createElement("style");
              nod.type = "text/css";
              if (nod.styleSheet) {
                //ie下
                nod.styleSheet.cssText = str;
              } else {
                nod.innerHTML = str; //或者写成 nod.appendChild(document.createTextNode(str))
              }
              document.getElementsByTagName("head")[0].appendChild(nod);
            }
          }
        }
      }
      setcolor(window.primaryColor);
    </script>
    <div id="root">
      <style>
        html,
        body,
        #root {
          height: 100%;
          margin: 0;
          padding: 0;
        }

        #root {
          background-image: url("/web/home_bg.png");
          background-repeat: no-repeat;
          background-size: 100% auto;
        }

        .page-loading-warp {
          display: flex;
          align-items: center;
          justify-content: center;
          padding: 98px;
        }

        .ant-spin {
          position: absolute;
          display: none;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          margin: 0;
          padding: 0;
          color: rgba(0, 0, 0, 0.65);
          color: #fff;
          font-size: 14px;
          font-variant: tabular-nums;
          line-height: 1.5;
          text-align: center;
          list-style: none;
          opacity: 0;
          -webkit-transition: -webkit-transform 0.3s
            cubic-bezier(0.78, 0.14, 0.15, 0.86);
          transition: -webkit-transform 0.3s
            cubic-bezier(0.78, 0.14, 0.15, 0.86);
          transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
          transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86),
            -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
          -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum";
        }

        .ant-spin-spinning {
          position: static;
          display: inline-block;
          opacity: 1;
        }

        .ant-spin-dot {
          position: relative;
          display: inline-block;
          width: 20px;
          height: 20px;
          font-size: 20px;
        }

        .ant-spin-dot-item {
          position: absolute;
          display: block;
          width: 9px;
          height: 9px;
          background-color: #fff;
          border-radius: 100%;
          -webkit-transform: scale(0.75);
          -ms-transform: scale(0.75);
          transform: scale(0.75);
          -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
          opacity: 0.3;
          -webkit-animation: antspinmove 1s infinite linear alternate;
          animation: antSpinMove 1s infinite linear alternate;
        }

        .ant-spin-dot-item:nth-child(1) {
          top: 0;
          left: 0;
        }

        .ant-spin-dot-item:nth-child(2) {
          top: 0;
          right: 0;
          -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
        }

        .ant-spin-dot-item:nth-child(3) {
          right: 0;
          bottom: 0;
          -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
        }

        .ant-spin-dot-item:nth-child(4) {
          bottom: 0;
          left: 0;
          -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
        }

        .ant-spin-dot-spin {
          -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
          transform: rotate(45deg);
          -webkit-animation: antrotate 1.2s infinite linear;
          animation: antRotate 1.2s infinite linear;
        }

        .ant-spin-lg .ant-spin-dot {
          width: 32px;
          height: 32px;
          font-size: 32px;
        }

        .ant-spin-lg .ant-spin-dot i {
          width: 14px;
          height: 14px;
        }

        @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
          .ant-spin-blur {
            background: #fff;
            opacity: 0.5;
          }
        }

        @-webkit-keyframes antSpinMove {
          to {
            opacity: 1;
          }
        }

        @keyframes antSpinMove {
          to {
            opacity: 1;
          }
        }

        @-webkit-keyframes antRotate {
          to {
            -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
          }
        }

        @keyframes antRotate {
          to {
            -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
          }
        }
      </style>
      <div
        style="
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          height: 100%;
          min-height: 420px;
        "
      >
        <div class="page-loading-warp">
          <div class="ant-spin ant-spin-lg ant-spin-spinning">
            <span class="ant-spin-dot ant-spin-dot-spin"
              ><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i
              ><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i
            ></span>
          </div>
        </div>
      </div>
    </div>

    <script src="/web/1.20249291714.js"></script>
    <script src="/web/0.20249291714.js"></script>
    <script src="/web/umi.20249291714.js"></script>
    <script src="/web/5.20249291714.js"></script>
    <script src="/web/3.20249291714.js"></script>
    <script src="/web/2.20249291714.js"></script>
    <script src="/web/4.20249291714.js"></script>
  </body>
</html>







