protol 协议模板

89 阅读3分钟
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>协议模板</title>
  </head>
  <script defer>
    !(function (a, b) {
      function c() {
        var b = f.getBoundingClientRect().width;
        b / k > 540 && (b = 540 * k);
        var c = b / 10;
        (f.style.fontSize = c + "px"), (m.rem = a.rem = c);
      }
      var d,
        e = a.document,
        f = e.documentElement,
        g = e.querySelector('meta[name="viewport"]'),
        h = e.querySelector('meta[name="flexible"]'),
        i = e.querySelector('meta[name="flexible-in-x5"]'),
        j = !0,
        k = 0,
        l = 0,
        m = b.flexible || (b.flexible = {});
      if (g) {
        console.warn("将根据已有的meta标签来设置缩放比例");
        var n = g.getAttribute("content").match(/initial\-scale=([\d\.]+)/);
        n && ((l = parseFloat(n[1])), (k = parseInt(1 / l)));
      } else if (h) {
        var o = h.getAttribute("content");
        if (o) {
          var p = o.match(/initial\-dpr=([\d\.]+)/),
            q = o.match(/maximum\-dpr=([\d\.]+)/);
          p && ((k = parseFloat(p[1])), (l = parseFloat((1 / k).toFixed(2)))),
            q && ((k = parseFloat(q[1])), (l = parseFloat((1 / k).toFixed(2))));
        }
      }
      if ((i && (j = "false" !== i.getAttribute("content")), !k && !l)) {
        var r = (a.navigator.appVersion.match(/android/gi), a.chrome),
          s = a.navigator.appVersion.match(/iphone/gi),
          t = a.devicePixelRatio,
          u = /TBS\/\d+/.test(a.navigator.userAgent),
          v = !1;
        try {
          v = "true" === localStorage.getItem("IN_FLEXIBLE_WHITE_LIST");
        } catch (w) {
          v = !1;
        }
        (k =
          s || r || (u && j && v)
            ? t >= 3 && (!k || k >= 3)
              ? 3
              : t >= 2 && (!k || k >= 2)
              ? 2
              : 1
            : 1),
          (l = 1 / k);
      }
      if ((f.setAttribute("data-dpr", k), !g))
        if (
          ((g = e.createElement("meta")),
          g.setAttribute("name", "viewport"),
          g.setAttribute(
            "content",
            "initial-scale=" +
              l +
              ", maximum-scale=" +
              l +
              ", minimum-scale=" +
              l +
              ", user-scalable=no"
          ),
          f.firstElementChild)
        )
          f.firstElementChild.appendChild(g);
        else {
          var x = e.createElement("div");
          x.appendChild(g), e.write(x.innerHTML);
        }
      a.addEventListener(
        "resize",
        function () {
          clearTimeout(d), (d = setTimeout(c, 300));
        },
        !1
      ),
        a.addEventListener(
          "pageshow",
          function (a) {
            a.persisted && (clearTimeout(d), (d = setTimeout(c, 300)));
          },
          !1
        ),
        "complete" === e.readyState
          ? (e.body.style.fontSize = 12 * k + "px")
          : e.addEventListener(
              "DOMContentLoaded",
              function (a) {
                e.body.style.fontSize = 12 * k + "px";
              },
              !1
            ),
        c(),
        (m.dpr = a.dpr = k),
        (m.refreshRem = c),
        (m.rem2px = function (a) {
          var b = parseFloat(a) * this.rem;
          return "string" == typeof a && a.match(/rem$/) && (b += "px"), b;
        }),
        (m.px2rem = function (a) {
          var b = parseFloat(a) / this.rem;
          return "string" == typeof a && a.match(/px$/) && (b += "rem"), b;
        });
    })(window, window.lib || (window.lib = {}));
  </script>
  <link
    rel="stylesheet"
    href="https://cvip.fui.fenqile.cn/res/css/common/vip_m.d5f5c08.css"
  />
  <style>
    body,
    html {
      background-color: #fff;
      color: #3a3939;
    }
    h1 {
      text-align: center;
      color: #1f1e1e;
      margin-top: 0.5rem;
      margin-bottom: 0.3rem;
      font-size: 0.5rem;
    }
    .contain {
      margin: 0 auto;
      max-width: 92%;
    }
    h3 {
      font-weight: 600;
      font-size: 0.4rem;
      padding: 0.2rem 0;
    }
    p {
      font-size: 0.34rem;
      padding: 0.1rem;
    }
    span {
      line-height: 0.36rem;
    }
    ::-webkit-scrollbar {
      width: 1px;
    }
    ::-webkit-scrollbar-track {
      border-radius: 0;
    }
    ::-webkit-scrollbar-thumb {
      border-radius: 0;
    }
  </style>

  <body>
    <h1>南京银行个人信息查询使用授权书</h1>
    <div class="contain">
      <h3>一、总则</h3>
      <p>本协议签订地:广州市黄埔区</p>
      <p>本协议签订地:xxxxxxxxxxx</p>
      <p>
        <span
          >&nbsp;&nbsp;&nbsp;&nbsp;个人信息(包括但不限于身份身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息</span
        >
      </p>
      <p>
        <span
          >&nbsp;&nbsp;&nbsp;&nbsp;个人信息(包括但不限于身份身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息</span
        >
      </p>
      <p>
        <span
          >&nbsp;&nbsp;&nbsp;&nbsp;个人信息(包括但不限于身份身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息身份信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息信息、婚姻信息、工作信息、收入信息、财产信息、行为信息、通讯信息、设备信息、公共服务信息等)及包括信贷信息在内的信用信息</span
        >
      </p>
      <p>个人信息及包括<b>信贷信息加粗加粗</b></p>
      <p>
        <span
          ><b
            >&nbsp;&nbsp;&nbsp;&nbsp;本人已经完全知悉并充分理解本授权书条款的内容及相应的法律后果,已经充分理解并知晓该等信息被提供和使用的风险,愿意接受本授权书条款的约定,并同意本授权书以数字电文形式订立,授权人一旦在线确认本授权书,本授权书即生效。无论信贷业务是否获批准,本人的基础资料、授权书、信用报告等资料一律不退回。</b
          ></span
        >
      </p>
      $!{name} $!{name} $!{name} $!{name} $!{name} $!{name} $!{name}
    </div>
  </body>
</html>

协议中变量替换

let _reg = /\$\{(.*?)\}/g;
lines.title = lines.title.replace(_reg, function() {
    let _argument = arguments;
    if (_argument && _argument[1]) {
      return _this.showOneProtol[_argument[1]];
    }
  });