| | |
| | | <!doctype html> |
| | | <html class="x-admin-sm"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>板栗快省</title> |
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" /> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp" /> |
| | | <link rel="stylesheet" type="text/css" href="css/doui.min.css" /> |
| | | |
| | | <link rel="stylesheet" href="./css/font.css"> |
| | | <link rel="stylesheet" href="./css/xadmin.css"> |
| | | <link rel="stylesheet" href="./css/theme3049.min.css"> |
| | | |
| | | |
| | | |
| | | <!-- <link rel="stylesheet" href="./css/theme5.css"> --> |
| | | |
| | | <script type="text/javascript" src="./js/xadmin.js"></script> |
| | | <!-- 让IE8/9支持媒体查询,从而兼容栅格 --> |
| | | <!--[if lt IE 9]> |
| | | <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> |
| | | <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> |
| | | <![endif]--> |
| | | <script> |
| | | // 是否开启刷新记忆tab功能 |
| | | // var is_remember = false; |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | .layui-tab-title li{ |
| | | margin-right: 1px; |
| | | background: #D0D0D0; |
| | | border-top-left-radius: 10px; |
| | | border-top-right-radius: 10px; |
| | | color: #959595; |
| | | } |
| | | |
| | | .layui-tab-title{ |
| | | padding-left: 2px; |
| | | } |
| | | |
| | | .layui-tab-title .layui-this:after{ |
| | | content: none; |
| | | } |
| | | |
| | | .layui-tab-title .layui-this{ |
| | | border-width: 0; |
| | | border-color: transparent; |
| | | color: #E5005C; |
| | | } |
| | | |
| | | |
| | | </style> |
| | | |
| | | |
| | | </head> |
| | | <body> |
| | | <!-- 顶部开始 --> |
| | | <div class="container"> |
| | | <div class="logo"> |
| | | <a href="./login.html">板栗快省后台管理</a></div> |
| | | <div class="left_open"> |
| | | <a><i title="展开左侧栏" class="iconfont"></i></a> |
| | | </div> |
| | | <ul class="layui-nav left fast-add" lay-filter=""> |
| | | <li class="layui-nav-item"> |
| | | <a href="javascript:;">+新增</a> |
| | | <dl class="layui-nav-child"> |
| | | <!-- 二级菜单 --> |
| | | <dd> |
| | | <a onclick="xadmin.open('最大化','http://www.baidu.com','','',true)"> |
| | | <i class="iconfont"></i>弹出最大化</a></dd> |
| | | <dd> |
| | | <a onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')"> |
| | | <i class="iconfont"></i>弹出自动宽高</a></dd> |
| | | <dd> |
| | | <a onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)"> |
| | | <i class="iconfont"></i>弹出指定宽高</a></dd> |
| | | <dd> |
| | | <a onclick="xadmin.add_tab('在tab打开','member-list.html')"> |
| | | <i class="iconfont"></i>在tab打开</a></dd> |
| | | <dd> |
| | | <a onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)"> |
| | | <i class="iconfont"></i>在tab打开刷新</a></dd> |
| | | </dl> |
| | | </li> |
| | | </ul> |
| | | <ul class="layui-nav right" lay-filter=""> |
| | | <li class="layui-nav-item"> |
| | | <a href="javascript:;">admin</a> |
| | | <dl class="layui-nav-child"> |
| | | <!-- 二级菜单 --> |
| | | <dd> |
| | | <a onclick="xadmin.open('个人信息','http://www.baidu.com')">个人信息</a></dd> |
| | | <dd> |
| | | <a id ="changeUser">切换帐号</a></dd> |
| | | <dd> |
| | | <a id = "loginExit">退出</a></dd> |
| | | </dl> |
| | | </li> |
| | | <li class="layui-nav-item to-index"> |
| | | <a href="javascript:void()" id="clearCaches">清除缓存</a></li> |
| | | </ul> |
| | | </div> |
| | | <!-- 顶部结束 --> |
| | | <!-- 中部开始 --> |
| | | <!-- 左侧菜单开始 --> |
| | | <div class="left-nav" id="allwai" style="background: transparent;padding-top: 0;"> |
| | | <div style="background:rgba(80, 161, 237, 0.73) !important ;height: 35px;"></div> |
| | | <div id="side-nav" style="padding-top: 10px;"> |
| | | <ul id="nav" style="display: none;"> |
| | | <li v-for="(item,index) in menuList"> |
| | | <a href="javascript:;"> |
| | | <i class="iconfont left-nav-li" v-bind:lay-tips="item.value" v-html="item.icon">{{item.icon}}</i> |
| | | <cite>{{item.value}}</cite> |
| | | <i class="iconfont nav_right"></i></a> |
| | | <ul class="sub-menu"> |
| | | <li v-for="child in item.child"> |
| | | <a v-on:click="navClick(child)" target=""> |
| | | <i class="iconfont"></i> |
| | | <cite>{{child.value}}</cite></a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="x-slide_left"></div> --> |
| | | <!-- 左侧菜单结束 --> |
| | | <!-- 右侧主体开始 --> |
| | | <div class="page-content"> |
| | | <div class="layui-tab" lay-filter="xbs_tab"> |
| | | <ul class="layui-tab-title" style="margin-top: -10px;margin-left: -1px; border-bottom-style:none;background: rgba(80, 161, 237, 0.73) !important;"> |
| | | |
| | | </ul> |
| | | <div class="layui-tab-content" style="background: #FFFFFF;margin-top: -1px;"> |
| | | |
| | | </div> |
| | | <div id="tab_show"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 右侧主体结束 --> |
| | | <!-- 中部结束 --> |
| | | <script src="./lib/layui/layui.all.js" charset="utf-8"></script> |
| | | <script src="js/doui.min.js" type="text/javascript" charset="utf-8"></script> |
| | | <script type="text/javascript"> |
| | | doui.importLoad({ |
| | | importArray: [ |
| | | "fontAdmin/iconfont.css", |
| | | "font/iconfont.css", |
| | | "css/admin-all.css", |
| | | "js/jquery.min.js", |
| | | "js/vue.min.js", |
| | | "js/requestHost.js", |
| | | |
| | | |
| | | ] |
| | | }); |
| | | </script> |
| | | <script> |
| | | var vm = null; |
| | | doui.onReady({ |
| | | success: function() { |
| | | vm = new Vue({ |
| | | el: "#allwai", |
| | | // 数据 |
| | | watch: { |
| | | menuList: function() { |
| | | setTimeout(function() { |
| | | $("#nav").css("display", "block"); |
| | | init();
|
| | | |
| | | // for (var i = 0; i < $("#nav").find("li").length; i++) { |
| | | // var icon = $("#nav").find("li").eq(i).find("i").eq(0); |
| | | // icon.removeClass("iconfont"); |
| | | // icon.addClass("iconfont"); |
| | | // } |
| | | }, 300); |
| | | } |
| | | }, |
| | | data: { |
| | | |
| | | // ---------------------------------------------------- 顶部数据 |
| | | // 系统版本 |
| | | sys: { |
| | | value: "返利券后台", |
| | | level: "2.2.4", |
| | | winH: doui.winH, // 页面高度 |
| | | }, |
| | | menuList: [], |
| | | // ---------------------------------------------------- 登录用户信息 |
| | | user: { |
| | | login: false, // 登录状态 |
| | | name: '未登录', |
| | | showTan: false, // 是否显示下拉弹框 |
| | | // 名字处点击 |
| | | click: function() { |
| | | // 1. 当前未登录,返回登录页 |
| | | if (vm.user.login == false) { |
| | | vm.user.init(); |
| | | doui.pageToUrl({ |
| | | type: "blank", |
| | | url: "login.html", |
| | | }); |
| | | } |
| | | // 2. 当前已经登录,显示下拉弹框 |
| | | else { |
| | | vm.user.showTan = !vm.user.showTan; |
| | | } |
| | | }, |
| | | // 弹框选项点击 |
| | | listClick: function(typeC) { |
| | | // 点击了退出登录 |
| | | if (typeC == "off") { |
| | | vm.user.init(); // 初始化登录用户 |
| | | // 返回登录页 |
| | | doui.pageToUrl({ |
| | | type: "replace", |
| | | url: "login.html", |
| | | }); |
| | | } |
| | | }, |
| | | // 初始化 |
| | | init: function() { |
| | | vm.user.name = "未登录"; |
| | | vm.user.showTan = false; |
| | | vm.user.login = false; |
| | | }, |
| | | }, |
| | | |
| | | // ---------------------------------------------------- 菜单数据 |
| | | menu: {
|
| | | |
| | | // 请求列表 |
| | | request: function() {
|
| | | doui.request({ |
| | | type: "get", |
| | | url: "menu.json", |
| | | data: {}, |
| | | <!doctype html>
|
| | | <html class="x-admin-sm">
|
| | | <head>
|
| | | <meta charset="UTF-8">
|
| | | <title>板栗快省</title>
|
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand">
|
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
| | | <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
|
| | | <meta http-equiv="Cache-Control" content="no-siteapp" />
|
| | | <link rel="stylesheet" type="text/css" href="css/doui.min.css" />
|
| | |
|
| | | <link rel="stylesheet" href="./css/font.css">
|
| | | <link rel="stylesheet" href="./css/xadmin.css">
|
| | | <link rel="stylesheet" href="./css/theme3049.min.css">
|
| | |
|
| | |
|
| | |
|
| | | <!-- <link rel="stylesheet" href="./css/theme5.css"> -->
|
| | |
|
| | | <script type="text/javascript" src="./js/xadmin.js"></script>
|
| | | <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
| | | <!--[if lt IE 9]>
|
| | | <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
| | | <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
| | | <![endif]-->
|
| | | <script>
|
| | | // 是否开启刷新记忆tab功能
|
| | | // var is_remember = false;
|
| | | </script>
|
| | |
|
| | | <style>
|
| | |
|
| | | .layui-tab-title li{
|
| | | margin-right: 1px;
|
| | | background: #D0D0D0;
|
| | | border-top-left-radius: 10px;
|
| | | border-top-right-radius: 10px;
|
| | | color: #959595;
|
| | | }
|
| | | |
| | | .layui-tab-title{
|
| | | padding-left: 2px;
|
| | | }
|
| | | |
| | | .layui-tab-title .layui-this:after{
|
| | | content: none;
|
| | | }
|
| | | |
| | | .layui-tab-title .layui-this{
|
| | | border-width: 0;
|
| | | border-color: transparent;
|
| | | color: #E5005C;
|
| | | }
|
| | | |
| | | |
| | | </style>
|
| | |
|
| | |
|
| | | </head>
|
| | | <body>
|
| | | <!-- 顶部开始 -->
|
| | | <div class="container">
|
| | | <div class="logo">
|
| | | <a href="./login.html">板栗快省后台管理</a></div>
|
| | | <div class="left_open">
|
| | | <a><i title="展开左侧栏" class="iconfont"></i></a>
|
| | | </div>
|
| | | <ul class="layui-nav left fast-add" lay-filter="topmenu">
|
| | | <li class="layui-nav-item">
|
| | | <a href="javascript:;">+新增</a>
|
| | | <dl class="layui-nav-child">
|
| | | <!-- 二级菜单 -->
|
| | | <dd>
|
| | | <a onclick="xadmin.open('最大化','http://www.baidu.com','','',true)">
|
| | | <i class="iconfont"></i>弹出最大化</a></dd>
|
| | | <dd>
|
| | | <a onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')">
|
| | | <i class="iconfont"></i>弹出自动宽高</a></dd>
|
| | | <dd>
|
| | | <a onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)">
|
| | | <i class="iconfont"></i>弹出指定宽高</a></dd>
|
| | | <dd>
|
| | | <a onclick="xadmin.add_tab('在tab打开','member-list.html')">
|
| | | <i class="iconfont"></i>在tab打开</a></dd>
|
| | | <dd>
|
| | | <a onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)">
|
| | | <i class="iconfont"></i>在tab打开刷新</a></dd>
|
| | | </dl>
|
| | | </li>
|
| | | </ul>
|
| | | <ul class="layui-nav right" lay-filter="">
|
| | | <li class="layui-nav-item" id="system">
|
| | | <form>
|
| | | <a v-if="system!=null" href="javascript:;"></a>
|
| | | <dl class="layui-nav-child">
|
| | | <!-- 二级菜单 -->
|
| | | </dl>
|
| | | </form>
|
| | | </li>
|
| | | <li class="layui-nav-item">
|
| | | <a href="javascript:;">admin</a>
|
| | | <dl class="layui-nav-child">
|
| | | <!-- 二级菜单 -->
|
| | | <dd>
|
| | | <a onclick="xadmin.open('个人信息','http://www.baidu.com')">个人信息</a></dd>
|
| | | <dd>
|
| | | <a id="changeUser">切换帐号</a></dd>
|
| | | <dd>
|
| | | <a id="loginExit">退出</a></dd>
|
| | | </dl>
|
| | | </li>
|
| | | <li class="layui-nav-item to-index">
|
| | | <a href="javascript:void()" id="clearCaches">清除缓存</a></li>
|
| | | </ul>
|
| | | </div>
|
| | | <!-- 顶部结束 -->
|
| | | <!-- 中部开始 -->
|
| | | <!-- 左侧菜单开始 -->
|
| | | <div class="left-nav" id="allwai" style="background: transparent;padding-top: 0;">
|
| | | <div style="background:rgba(80, 161, 237, 0.73) !important ;height: 35px;"></div>
|
| | | <div id="side-nav" style="padding-top: 10px;">
|
| | | <ul id="nav" style="display: none;">
|
| | | <li v-for="(item,index) in menuList">
|
| | | <a href="javascript:;">
|
| | | <i class="iconfont left-nav-li" v-bind:lay-tips="item.value" v-html="item.icon">{{item.icon}}</i>
|
| | | <cite>{{item.value}}</cite>
|
| | | <i class="iconfont nav_right"></i></a>
|
| | | <ul class="sub-menu">
|
| | | <li v-for="child in item.child">
|
| | | <a v-on:click="navClick(child)" target="">
|
| | | <i class="iconfont"></i>
|
| | | <cite>{{child.value}}</cite></a>
|
| | | </li>
|
| | | </ul>
|
| | | </li>
|
| | | </ul>
|
| | | </div>
|
| | | </div>
|
| | | <!-- <div class="x-slide_left"></div> -->
|
| | | <!-- 左侧菜单结束 -->
|
| | | <!-- 右侧主体开始 -->
|
| | | <div class="page-content">
|
| | | <div class="layui-tab" lay-filter="xbs_tab">
|
| | | <ul class="layui-tab-title" style="margin-top: -10px;margin-left: -1px; border-bottom-style:none;background: rgba(80, 161, 237, 0.73) !important;">
|
| | |
|
| | | </ul>
|
| | | <div class="layui-tab-content" style="background: #FFFFFF;margin-top: -1px;">
|
| | |
|
| | | </div>
|
| | | <div id="tab_show"></div>
|
| | | </div>
|
| | | </div>
|
| | |
|
| | | <!-- 右侧主体结束 -->
|
| | | <!-- 中部结束 -->
|
| | | <script src="./lib/layui/layui.all.js" charset="utf-8"></script>
|
| | | <script src="js/doui.min.js" type="text/javascript" charset="utf-8"></script>
|
| | | <script type="text/javascript">
|
| | | doui.importLoad({
|
| | | importArray: [
|
| | | "fontAdmin/iconfont.css",
|
| | | "font/iconfont.css",
|
| | | "css/admin-all.css",
|
| | | "js/jquery.min.js",
|
| | | "js/vue.min.js",
|
| | | "js/requestHost.js",
|
| | |
|
| | |
|
| | | ]
|
| | | });
|
| | | </script>
|
| | | <script>
|
| | | var vm = null;
|
| | |
|
| | | function selectSystem(key,name) {
|
| | | doui.localStorageSet({
|
| | | key: 'system',
|
| | | data: key
|
| | | });
|
| | | $("#system").find("a").eq(0).text(name);
|
| | | window.location.reload();
|
| | | }
|
| | |
|
| | | doui.onReady({
|
| | | success: function() {
|
| | | var form = null;
|
| | | layui.use('form', function(e) {
|
| | | form = layui.form;
|
| | | });
|
| | |
|
| | | function getSystem() {
|
| | | var myurl = gethttp() + "/admin/new/api/v1/config/getSystem";
|
| | | doui.request({
|
| | | type: "jsonp",
|
| | | url: myurl,
|
| | | success: function(res) {
|
| | | if (res.code == 0) {
|
| | | $("#system").find("dl").eq(0).empty();
|
| | | var system = "";
|
| | | doui.localStorageGet({
|
| | | key: "system",
|
| | | success: function(res) {
|
| | | vm.menuList = res; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // ---------------------------------------------------- 浏览导航卡数据 |
| | | viewhis: { |
| | | index_his: 0, // 当前选择的浏览导航下标 |
| | | // 浏览导航列表 |
| | | list: [{ |
| | | value: "首页", |
| | | href: "right.html" |
| | | }, ], |
| | | // 导航点击 |
| | | click_nav: function(indexC) { |
| | | vm.viewhis.index_his = indexC; |
| | | }, |
| | | // 刷新点击 |
| | | click_ref: function(itemC, indexC) { |
| | | vm.viewhis.index_his = indexC; |
| | | var myurl = itemC.href; |
| | | itemC.href = ""; |
| | | setTimeout(function() { |
| | | itemC.href = myurl; |
| | | }, 100); |
| | | }, |
| | | // 关闭点击 |
| | | click_close: function(indexC) { |
| | | vm.viewhis.list.splice(indexC, 1); // 从浏览历史中删去该条 |
| | | if (vm.viewhis.index_his > (vm.viewhis.list.length - 1)) { |
| | | vm.viewhis.index_his = vm.viewhis.list.length - 1; |
| | | } // 删除后,如果 当前浏览下标大于了数组最大值 |
| | | } |
| | | }, |
| | | |
| | | }, |
| | | methods: { |
| | | navClick: function(node) { |
| | | document.getElementsByTagName("title")[0].innerText = node.value; |
| | | if (node.child.length == 0) { |
| | | var array = new Array(); |
| | | array.push({ |
| | | title: node.value, |
| | | url: node.href |
| | | }); |
| | | xadmin.add_tabs(array); |
| | | } else { |
| | | var array = new Array(); |
| | | for (var i = 0; i < node.child.length; i++) { |
| | | array.push({ |
| | | title: node.child[i].value, |
| | | url: node.child[i].href |
| | | }); |
| | | } |
| | | xadmin.add_tabs(array); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | // 从cookie中获取登录信息 |
| | | doui.localStorageGet({ |
| | | key: "inputInfo", |
| | | success: function(res) { |
| | | vm.user.login = true; |
| | | vm.user.id = res.id; |
| | | vm.user.name = res.nickName; |
| | | } |
| | | system = res;
|
| | | }
|
| | | });
|
| | | var selectedSystem;
|
| | | for (var i = 0; i < res.data.length; i++) {
|
| | | var html = "";
|
| | | html += ("<dd><a onclick=\"selectSystem('" + res.data[i].key + "','" + res.data[i].name + "')\">");
|
| | | html += (res.data[i].name);
|
| | | html += ("</a></dd>");
|
| | | $("#system").find("dl").eq(0).append(html);
|
| | | if (res.data[i].key == system) {
|
| | | $("#system").find("a").eq(0).text(res.data[i].name);
|
| | | selectedSystem=res.data[i];
|
| | | }
|
| | | }
|
| | | if(selectSystem==null){
|
| | | selectSystem(res.data[0].key,res.data[0].name);
|
| | | }
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | getSystem();
|
| | |
|
| | | vm = new Vue({
|
| | | el: "#allwai",
|
| | | // 数据
|
| | | watch: {
|
| | | menuList: function() {
|
| | | setTimeout(function() {
|
| | | $("#nav").css("display", "block");
|
| | | init();
|
| | |
|
| | | // for (var i = 0; i < $("#nav").find("li").length; i++) {
|
| | | // var icon = $("#nav").find("li").eq(i).find("i").eq(0);
|
| | | // icon.removeClass("iconfont");
|
| | | // icon.addClass("iconfont");
|
| | | // }
|
| | | }, 300);
|
| | | }
|
| | | },
|
| | | data: {
|
| | |
|
| | | // ---------------------------------------------------- 顶部数据
|
| | | // 系统版本
|
| | | sys: {
|
| | | value: "返利券后台",
|
| | | level: "2.2.4",
|
| | | winH: doui.winH, // 页面高度
|
| | | },
|
| | |
|
| | | menuList: [],
|
| | | // ---------------------------------------------------- 登录用户信息
|
| | | user: {
|
| | | login: false, // 登录状态
|
| | | name: '未登录',
|
| | | showTan: false, // 是否显示下拉弹框
|
| | | // 名字处点击
|
| | | click: function() {
|
| | | // 1. 当前未登录,返回登录页
|
| | | if (vm.user.login == false) {
|
| | | vm.user.init();
|
| | | doui.pageToUrl({
|
| | | type: "blank",
|
| | | url: "login.html",
|
| | | });
|
| | | }
|
| | | // 2. 当前已经登录,显示下拉弹框
|
| | | else {
|
| | | vm.user.showTan = !vm.user.showTan;
|
| | | }
|
| | | },
|
| | | // 弹框选项点击
|
| | | listClick: function(typeC) {
|
| | | // 点击了退出登录
|
| | | if (typeC == "off") {
|
| | | vm.user.init(); // 初始化登录用户
|
| | | // 返回登录页
|
| | | doui.pageToUrl({
|
| | | type: "replace",
|
| | | url: "login.html",
|
| | | });
|
| | | }
|
| | | },
|
| | | // 初始化
|
| | | init: function() {
|
| | | vm.user.name = "未登录";
|
| | | vm.user.showTan = false;
|
| | | vm.user.login = false;
|
| | | },
|
| | | },
|
| | |
|
| | | // ---------------------------------------------------- 菜单数据
|
| | | menu: {
|
| | |
|
| | | // 请求列表
|
| | | request: function() {
|
| | | doui.request({
|
| | | type: "get",
|
| | | url: "menu.json",
|
| | | data: {},
|
| | | success: function(res) {
|
| | | vm.menuList = res;
|
| | | }
|
| | | });
|
| | | }
|
| | | },
|
| | |
|
| | | // ---------------------------------------------------- 浏览导航卡数据
|
| | | viewhis: {
|
| | | index_his: 0, // 当前选择的浏览导航下标
|
| | | // 浏览导航列表
|
| | | list: [{
|
| | | value: "首页",
|
| | | href: "right.html"
|
| | | }, ],
|
| | | // 导航点击
|
| | | click_nav: function(indexC) {
|
| | | vm.viewhis.index_his = indexC;
|
| | | },
|
| | | // 刷新点击
|
| | | click_ref: function(itemC, indexC) {
|
| | | vm.viewhis.index_his = indexC;
|
| | | var myurl = itemC.href;
|
| | | itemC.href = "";
|
| | | setTimeout(function() {
|
| | | itemC.href = myurl;
|
| | | }, 100);
|
| | | },
|
| | | // 关闭点击
|
| | | click_close: function(indexC) {
|
| | | vm.viewhis.list.splice(indexC, 1); // 从浏览历史中删去该条
|
| | | if (vm.viewhis.index_his > (vm.viewhis.list.length - 1)) {
|
| | | vm.viewhis.index_his = vm.viewhis.list.length - 1;
|
| | | } // 删除后,如果 当前浏览下标大于了数组最大值
|
| | | }
|
| | | },
|
| | |
|
| | | },
|
| | | methods: {
|
| | | navClick: function(node) {
|
| | | document.getElementsByTagName("title")[0].innerText = node.value;
|
| | | if (node.child.length == 0) {
|
| | | var array = new Array();
|
| | | array.push({
|
| | | title: node.value,
|
| | | url: node.href
|
| | | });
|
| | | xadmin.add_tabs(array);
|
| | | } else {
|
| | | var array = new Array();
|
| | | for (var i = 0; i < node.child.length; i++) {
|
| | | array.push({
|
| | | title: node.child[i].value,
|
| | | url: node.child[i].href
|
| | | });
|
| | | }
|
| | | xadmin.add_tabs(array);
|
| | | }
|
| | |
|
| | |
|
| | | },
|
| | |
|
| | | }
|
| | | });
|
| | | |
| | | |
| | | |
| | |
|
| | | // 从cookie中获取登录信息
|
| | | doui.localStorageGet({
|
| | | key: "inputInfo",
|
| | | success: function(res) {
|
| | | vm.user.login = true;
|
| | | vm.user.id = res.id;
|
| | | vm.user.name = res.nickName;
|
| | | }
|
| | | });
|
| | |
|
| | |
|
| | |
|
| | | vm.menu.request();
|
| | | |
| | | //清除缓存事件 |
| | | $("#clearCaches").click(function() { |
| | | var myurl = gethttp() + "/admin/new/api/v1/config/clearCaches"; |
| | | var index = layer.load(0, { |
| | | shade: false |
| | | }); |
| | | doui.request({ |
| | | type: "jsonp", |
| | | url: myurl, |
| | | success: function(res) { |
| | | layer.close(index); |
| | | layer.msg("清除缓存成功"); |
| | | } |
| | | }); |
| | |
|
| | | //清除缓存事件
|
| | | $("#clearCaches").click(function() {
|
| | | var myurl = gethttp() + "/admin/new/api/v1/config/clearCaches";
|
| | | var index = layer.load(0, {
|
| | | shade: false
|
| | | });
|
| | | doui.request({
|
| | | type: "jsonp",
|
| | | url: myurl,
|
| | | success: function(res) {
|
| | | layer.close(index);
|
| | | layer.msg("清除缓存成功");
|
| | | }
|
| | | });
|
| | | });
|
| | | |
| | |
|
| | | // 退出登录事件
|
| | | $("#loginExit").click(function() {
|
| | | var myurl = gethttp() + "/admin/new/api/login/loginExitJP";
|
| | |
| | | type: "jsonp",
|
| | | url: myurl,
|
| | | success: function(res) {
|
| | | vm.user.init();
|
| | | doui.pageToUrl({
|
| | | type: "replace",
|
| | | url: "login.html",
|
| | | });
|
| | | vm.user.init();
|
| | | doui.pageToUrl({
|
| | | type: "replace",
|
| | | url: "login.html",
|
| | | });
|
| | | }
|
| | | });
|
| | | }); |
| | | });
|
| | |
|
| | |
|
| | | // 切换账号事件
|
| | |
| | | type: "jsonp",
|
| | | url: myurl,
|
| | | success: function(res) {
|
| | | vm.user.init();
|
| | | loginOpen();
|
| | | vm.user.init();
|
| | | loginOpen();
|
| | | }
|
| | | });
|
| | | });
|
| | |
| | | title: false,
|
| | | shadeClose: true,
|
| | | shade: 0.3,
|
| | | id: 'LAY_layuipro',//设定一个id,防止重复弹出
|
| | | id: 'LAY_layuipro', //设定一个id,防止重复弹出
|
| | | area: ['420px', '432px'],
|
| | | content: ['./login_simpl.html?type=2', 'no'],
|
| | | });
|
| | | });
|
| | | }
|
| | | |
| | | } |
| | | }); |
| | |
|
| | | }
|
| | | });
|
| | | </script>
|
| | | |
| | | |
| | |
|
| | |
|
| | | <script>
|
| | | function login() {
|
| | | layui.use('layer', function() {
|
| | | layer.open({
|
| | | type: 2,
|
| | | title: false,
|
| | | shadeClose: true,
|
| | | shade: 0.3,
|
| | | id: 'LAY_layuipro', //设定一个id,防止重复弹出
|
| | | area: ['420px', '432px'],
|
| | | content: ['./login_simpl.html?type=2', 'no'],
|
| | | });
|
| | | layui.use('layer', function() {
|
| | | layer.open({
|
| | | type: 2,
|
| | | title: false,
|
| | | shadeClose: true,
|
| | | shade: 0.3,
|
| | | id: 'LAY_layuipro', //设定一个id,防止重复弹出
|
| | | area: ['420px', '432px'],
|
| | | content: ['./login_simpl.html?type=2', 'no'],
|
| | | });
|
| | | });
|
| | | }
|
| | | </script> |
| | | </body> |
| | | |
| | | |
| | | <script> |
| | | function login() { |
| | | layui.use('layer', function() { |
| | | layer.open({ |
| | | type: 2, |
| | | title: false, |
| | | shadeClose: true, |
| | | shade: 0.3, |
| | | id: 'LAY_layuipro', //设定一个id,防止重复弹出 |
| | | area: ['420px', '432px'], |
| | | content: ['./login_simpl.html?type=2', 'no'], |
| | | }); |
| | | }); |
| | | } |
| | | </script> |
| | | </script>
|
| | | </body>
|
| | |
|
| | |
|
| | | <script>
|
| | | function login() {
|
| | | layui.use('layer', function() {
|
| | | layer.open({
|
| | | type: 2,
|
| | | title: false,
|
| | | shadeClose: true,
|
| | | shade: 0.3,
|
| | | id: 'LAY_layuipro', //设定一个id,防止重复弹出
|
| | | area: ['420px', '432px'],
|
| | | content: ['./login_simpl.html?type=2', 'no'],
|
| | | });
|
| | | });
|
| | | }
|
| | | </script>
|
| | | </html> |
| | |
| | | //v1.7.7 2019/01/14 21:51 |
| | | |
| | | !function(e,t,n){"undefined"!=typeof module&&module.exports?module.exports=n():"function"==typeof define&&define.amd?define(n):t.Fingerprint=n()}(0,this,function(){"use strict";var e=function(e){var t,n;t=Array.prototype.forEach,n=Array.prototype.map,this.each=function(e,n,r){if(null!==e)if(t&&e.forEach===t)e.forEach(n,r);else if(e.length===+e.length){for(var i=0,o=e.length;i<o;i++)if(n.call(r,e[i],i,e)==={})return}else for(var a in e)if(e.hasOwnProperty(a)&&n.call(r,e[a],a,e)==={})return},this.map=function(e,t,r){var i=[];return null==e?i:n&&e.map===n?e.map(t,r):(this.each(e,function(e,n,o){i[i.length]=t.call(r,e,n,o)}),i)},"object"==typeof e?(this.hasher=e.hasher,this.screen_resolution=e.screen_resolution,this.screen_orientation=e.screen_orientation,this.canvas=e.canvas,this.ie_activex=e.ie_activex):"function"==typeof e&&(this.hasher=e)};return e.prototype={get:function(){var e=[];if(e.push(navigator.userAgent),e.push(navigator.language),e.push(screen.colorDepth),this.screen_resolution){var t=this.getScreenResolution();void 0!==t&&e.push(t.join("x"))}return e.push((new Date).getTimezoneOffset()),e.push(this.hasSessionStorage()),e.push(this.hasLocalStorage()),e.push(this.hasIndexDb()),document.body?e.push(typeof document.body.addBehavior):e.push("undefined"),e.push(typeof window.openDatabase),e.push(navigator.cpuClass),e.push(navigator.platform),e.push(navigator.doNotTrack),e.push(this.getPluginsString()),this.canvas&&this.isCanvasSupported()&&e.push(this.getCanvasFingerprint()),this.hasher?this.hasher(e.join("###"),31):this.murmurhash3_32_gc(e.join("###"),31)},murmurhash3_32_gc:function(e,t){var n,r,i,o,a,s,d,c;for(n=3&e.length,r=e.length-n,i=t,a=3432918353,s=461845907,c=0;c<r;)d=255&e.charCodeAt(c)|(255&e.charCodeAt(++c))<<8|(255&e.charCodeAt(++c))<<16|(255&e.charCodeAt(++c))<<24,++c,i=27492+(65535&(o=5*(65535&(i=(i^=d=(65535&(d=(d=(65535&d)*a+(((d>>>16)*a&65535)<<16)&4294967295)<<15|d>>>17))*s+(((d>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(o>>>16)&65535)<<16);switch(d=0,n){case 3:d^=(255&e.charCodeAt(c+2))<<16;case 2:d^=(255&e.charCodeAt(c+1))<<8;case 1:i^=d=(65535&(d=(d=(65535&(d^=255&e.charCodeAt(c)))*a+(((d>>>16)*a&65535)<<16)&4294967295)<<15|d>>>17))*s+(((d>>>16)*s&65535)<<16)&4294967295}return i^=e.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0},hasLocalStorage:function(){try{return!!window.localStorage}catch(e){return!0}},hasSessionStorage:function(){try{return!!window.sessionStorage}catch(e){return!0}},hasIndexDb:function(){try{return!!window.indexedDB}catch(e){return!0}},isCanvasSupported:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},isIE:function(){return"Microsoft Internet Explorer"===navigator.appName||!("Netscape"!==navigator.appName||!/Trident/.test(navigator.userAgent))},getPluginsString:function(){return this.isIE()&&this.ie_activex?this.getIEPluginsString():this.getRegularPluginsString()},getRegularPluginsString:function(){return this.map(navigator.plugins,function(e){var t=this.map(e,function(e){return[e.type,e.suffixes].join("~")}).join(",");return[e.name,e.description,t].join("::")},this).join(";")},getIEPluginsString:function(){return window.ActiveXObject?this.map(["ShockwaveFlash.ShockwaveFlash","AcroPDF.PDF","PDF.PdfCtrl","QuickTime.QuickTime","rmocx.RealPlayer G2 Control","rmocx.RealPlayer G2 Control.1","RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)","RealVideo.RealVideo(tm) ActiveX Control (32-bit)","RealPlayer","SWCtl.SWCtl","WMPlayer.OCX","AgControl.AgControl","Skype.Detection"],function(e){try{return new ActiveXObject(e),e}catch(e){return null}}).join(";"):""},getScreenResolution:function(){return this.screen_orientation?screen.height>screen.width?[screen.height,screen.width]:[screen.width,screen.height]:[screen.height,screen.width]},getCanvasFingerprint:function(){var e=document.createElement("canvas"),t=e.getContext("2d"),n="http://valve.github.io";return t.textBaseline="top",t.font="14px 'Arial'",t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(125,1,62,20),t.fillStyle="#069",t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.7)",t.fillText(n,4,17),e.toDataURL()}},e}),doui={importReady:!0,douiCss:null,sizeReady:!1,winW:0,winH:0,winWrem:0,winHrem:0,threadTimeout:null,threadInterval:null,AjaxList:[],windowReady:function(e){null==e&&(e=function(){}),document.addEventListener?document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,!1),e()},!1):document.attachEvent&&document.attachEvent("onreadystatechange",function(){"complete"==document.readyState&&(document.detachEvent("onreadystatechange",arguments.callee),e())})},onReady:function(e){null!=doui.threadInterval&&clearInterval(doui.threadInterval),doui.threadInterval=setInterval(function(){console.log("interval: doui的onReady监控"),1==doui.importReady&&1==doui.sizeReady&&(clearInterval(doui.threadInterval),e())},200)},importSet:function(e){if(null==e||e.length<=0)doui.importReady=!0;else{doui.importReady=!1;for(var t=document.getElementsByTagName("head")[0],n=new RegExp(".css$"),r=new RegExp(".js$"),i=0,o=0;o<e.length;o++)if(n.test(e[o])){var a=document.createElement("link");a.type="text/css",a.rel="stylesheet",a.href=e[o],t.appendChild(a),a.onerror=function(){alert("引入失败:"+a.href),doui.importReady=!1,a.onerror=null},a.onload=a.onreadystatechange=function(){++i>=e.length&&(doui.importReady=!0)}}else if(r.test(e[o])){var s=document.createElement("script");s.type="text/javascript",s.src=e[o],t.appendChild(s),s.onerror=function(){alert("引入失败:"+s.src),doui.importReady=!1,s.onerror=null},s.onload=s.onreadystatechange=function(){++i>=e.length&&(doui.importReady=!0)}}}},sizeSet:function(){try{var e=window.innerWidth,t=window.innerHeight;doui.winW=e,doui.winH=t}catch(e){return doui.sizeReady=!1,alert("屏幕可用大小获取失败"),!1}var n=parseFloat(750*doui.winH/doui.winW),r=100*parseFloat(doui.winW/750);if(doui.winWrem=7.5,doui.winHrem=n/100,null==doui.douiCss){for(var i=null,o=document.styleSheets,a=new RegExp("doui"),s=0;s<o.length;s++)if(a.test(o[s].href)){i=o[s];break}if(!(null!=i&&i.cssRules&&i.cssRules.length>0))return alert("请本地载入doui.css"),doui.sizeReady=!1,!1;doui.douiCss=i}for(s=0;s<doui.douiCss.cssRules.length;s++)if("html"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.fontSize=r+"px";else if("body"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.height=doui.winH+"px";else if(".winSizeBox"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.height=doui.winH+"px";else if(".heightenBox"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.minHeight=doui.winH+"px";else if(".main"==doui.douiCss.cssRules[s].selectorText){doui.douiCss.cssRules[s].style.minHeight=doui.winH+"px";break}doui.sizeReady=!0},showToast:function(e){(null==e||e.length<=0)&&(e="亲,我很迷茫啊……");var t=document.getElementById("zdo_toast");t&&t.parentNode.removeChild(t),null!=doui.threadTimeout&&clearTimeout(doui.threadTimeout);var n="font26",r="3.7rem",i="1.5rem",o="1.9rem",a="0.33rem",s="0.33rem";doui.winW>=doui.winH&&(n="font6",r=doui.winH/4+"px",i=doui.winH/6+"px",o=(doui.winW-doui.winH/4)/2+"px",a=doui.winH/40+"px",s=doui.winH/40+"px");var d="";d+='<div id="zdo_toast" class="fboxRow Xcenter Ycenter" style="width:'+r+"; height:auto; bottom:"+i+"; left:"+o+';">',d+='<div class="'+n+' font-white font-ell2" style="max-width:80%; margin-top:'+a+"; margin-bottom:"+s+'; line-height:1.5; text-align:center;">',d+="<span>"+e+"</span>",d+="</div>",d+="</div>";var c=document.createElement("div");c.innerHTML=d;var l=c.childNodes[0];document.getElementsByTagName("body")[0].appendChild(l),doui.threadTimeout=setTimeout(function(){var e=document.getElementById("zdo_toast");e&&e.parentNode.removeChild(e)},2500)},showLoading:function(e){if((null==e||e.length<=0)&&(e=""),document.getElementById("zdo_loading"))document.getElementById("zdo_loadcont").innerHTML=e;else{var t=doui.winH/2+"px",n="1.8rem",r="2.85rem",i="font26",o="1.2rem",a="1.06rem",s="0.07rem";doui.winW>=doui.winH&&(t=doui.winH/2+"px",n=doui.winH/8+"px",r=(doui.winW-doui.winH/8)/2+"px",i="font6",o=doui.winH/9+"px",a=doui.winH/9-12+"px",s="6px");var d="";d+='<div id="zdo_loading" class="fboxCol Xstart Ycenter" style="width:'+n+"; height:auto; top:"+t+"; left:"+r+';">',d+='<div class="zdo_loadBg" style="width:'+o+"; height:"+o+';">',d+='<div class="zdo_loadLeft" style="width:'+a+"; height:"+a+"; border-width:"+s+';"></div>',d+='<div class="zdo_loadRight" style="width:'+a+"; height:"+a+"; border-width:"+s+';"></div>',d+="</div>",d+='<div class="'+i+' font-white font-ell2" style="width:'+n+'; margin-top:10px; line-height:1.5; text-align:center;">',d+='<span id="zdo_loadcont" style="text-shadow:0 0 5px black;">'+e+"</span>",d+="</div>",d+="</div>";var c=document.createElement("div");c.innerHTML=d;var l=c.childNodes[0];document.getElementsByTagName("body")[0].appendChild(l)}},hideLoading:function(){var e=document.getElementById("zdo_loading");e&&e.parentNode.removeChild(e)},showModal:function(e,t){(null==e||e.length<=0)&&(e="亲,我很迷茫啊……"),null==t&&(t=function(){});var n=document.getElementById("zdo_modal");n&&n.parentNode.removeChild(n);var r="4.3rem",i="font26",o="0.4rem",a="0.4rem",s="font27",d="0.8rem";doui.winW>=doui.winH&&(r=doui.winH/4+"px",i="font6",o=doui.winH/40+"px",a=doui.winH/40+"px",s="font6",d=doui.winH/22+"px");var c="";c+='<div id="zdo_modal" class="fboxRow Xcenter Ycenter" style="height:'+doui.winH+'px;">',c+='<div id="zdo_modalnei" class="fboxCol Xcenter Ycenter" style="width:'+r+"; height:auto; max-height:"+doui.winH+'px;">',c+='<div class="'+i+' font-black" style="max-width:80%; margin-top:'+o+"; margin-bottom:"+a+'; line-height:1.5; text-align:center;">',c+="<span>"+e+"</span>",c+="</div>",c+='<div class="fboxRow" style="width:100%; height:'+d+'; border-top:1px solid #CCC">',c+='<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">',c+='<div class="'+s+' font-black do-default">取消</div>',c+="</div>",c+='<div style="width:1px; height:100%; background-color:#CCC;"></div>',c+='<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">',c+='<div class="'+s+' font-green do-default">确认</div>',c+="</div>",c+="</div>",c+="</div>",c+="</div>";var l=document.createElement("div");l.innerHTML=c;var u=l.childNodes[0];document.getElementsByTagName("body")[0].appendChild(u),document.getElementsByClassName("zdo_modaldan")[0].onclick=function(){var e=document.getElementById("zdo_modal");e&&e.parentNode.removeChild(e),t(!1)},document.getElementsByClassName("zdo_modaldan")[1].onclick=function(){var e=document.getElementById("zdo_modal");e&&e.parentNode.removeChild(e),t(!0)}},showScrollLoading:function(e,t,n){if(null==e&&(e=""),null==t&&(t=function(){}),null==n&&(n=!1),document.getElementsByClassName("do-scrollLoading").length<=0)doui.showToast("未放入载入框组件");else{var r="";if(r+='<div class="fboxRow Xcenter Ycenter">',r+='<div style="width:24px; height:24px; position:relative;">',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+="</div>",e.length>0&&(r+='<div style="margin-left:0.2rem;" class="font25 font-gray">',r+="<span>"+e+"</span>",r+="</div>"),r+="</div>",document.getElementsByClassName("do-scrollLoading")[0].childNodes.length<=0)document.getElementsByClassName("do-scrollLoading")[0].innerHTML=r,t();else if(1==n){var i=document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];i&&i.parentNode.removeChild(i),document.getElementsByClassName("do-scrollLoading")[0].innerHTML=r,t()}}},hideScrollLoading:function(e){var t=document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];if(t&&t.parentNode.removeChild(t),e&&e.length>0){var n="";n+='<div class="fboxRow Xcenter Ystart font-ell1 font-gray">',n+="<span>"+e+"</span>",n+="</div>",document.getElementsByClassName("do-scrollLoading").length<=0?doui.showToast("未放入载入框组件"):document.getElementsByClassName("do-scrollLoading")[0].innerHTML=n}},scrollTo:function(e,t,n){if(null==t&&(t=0),null==n&&(n=!0),"html"==e||"body"==e||e==window)if(1==n){var r=null;cancelAnimationFrame(r),r=requestAnimationFrame(function e(){var n=document.body.scrollTop||document.documentElement.scrollTop,i=Math.ceil(n/10);n>2e3?(scrollTo(0,2e3),r=requestAnimationFrame(e)):n>t?(scrollTo(0,n-i),r=requestAnimationFrame(e)):(scrollTo(0,t),cancelAnimationFrame(r))})}else scrollTo(0,t);else{var i=null;if(-1!=e.indexOf("#")){var o=e.slice(e.indexOf("#")+1);i=document.getElementById(o)}else-1!=e.indexOf(".")&&(o=e.slice(e.indexOf(".")+1),i=document.getElementsByClassName(o)[0]);1==n?(r=null,cancelAnimationFrame(r),r=requestAnimationFrame(function e(){var n=i.scrollTop,o=Math.ceil(n/10);n>2e3?(i.scrollTop=2e3,r=requestAnimationFrame(e)):n>t?(i.scrollTop=n-o,r=requestAnimationFrame(e)):(i.scrollTop=t,cancelAnimationFrame(r))})):i.scrollTop=t}},scrolling:function(e,t){null==t&&(t=function(){});var n={scrollTop:0,overBottom:!1},r=null;if(-1!=e.indexOf("#")){var i=e.slice(e.indexOf("#")+1);r=document.getElementById(i)}else-1!=e.indexOf(".")&&(i=e.slice(e.indexOf(".")+1),r=document.getElementsByClassName(i)[0]);"html"==e||"body"==e||e==window?document.body.onscroll=document.documentElement.onscroll=function(){var e=document.documentElement.clientHeight,r=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),i=0;document.documentElement&&document.documentElement.scrollTop?i=document.documentElement.scrollTop:document.body&&(i=document.body.scrollTop),n.scrollTop=i,n.overBottom=i>0&&e+i>=r,t(n)}:r.onscroll=function(){var e=r.clientHeight,i=r.scrollHeight,o=r.scrollTop;n.scrollTop=o,n.overBottom=o>0&&e+o>=i,t(n)}},systemInfoGet:function(){var e={fingerprint:"",platform:"PC",version:"0",browserName:"",browserVersion:"0",inWX:!1,cookieEnabled:!0,windowWidth:0,windowHeight:0,windowWidthRem:0,windowHeightRem:0},t=navigator.userAgent,n=navigator.userAgent.toLowerCase();if(t.indexOf("Android")>-1||t.indexOf("Linux")>-1)e.platform="Android";else if(t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/))e.platform="IOS";else for(var r=["Android","iPhone","SymbianOS","Windows Phone","iPad","iPod"],i=0;i<r.length;i++)if(t.indexOf(r[i])>0){e.platform="PC";break}try{"Android"==e.platform?e.version=n.match(/android ([\d.]+)/)[1]:"IOS"==e.platform?e.version=n.match(/version\/([\d.]+)/)[1]:"PC"==e.platform&&(e.version=navigator.platform)}catch(e){}t.indexOf("OPR")>-1||t.indexOf("Opera")>-1?e.browserName="Opera":t.indexOf("Firefox")>-1?e.browserName="FireFox":t.indexOf("Chrome")>-1?e.browserName="Chrome":t.indexOf("Safari")>-1?e.browserName="Safari":(n.indexOf("msie")>-1||t.indexOf("rv")>-1)&&(e.browserName="IE");try{"Opera"==e.browserName?e.browserVersion=n.match(/opera.([\d.]+)/)[1]:"FireFox"==e.browserName?e.browserVersion=n.match(/firefox\/([\d.]+)/)[1]:"Chrome"==e.browserName?e.browserVersion=n.match(/chrome\/([\d.]+)/)[1]:"Safari"==e.browserName?e.browserVersion=n.match(/safari\/([\d.]+)/)[1]:"IE"==e.browserName&&(e.browserVersion=n.match(/msie ([\d.]+)/)[1])}catch(e){}"micromessenger"==n.match(/MicroMessenger/i)?e.inWX=!0:e.inWX=!1,e.cookieEnabled=navigator.cookieEnabled,e.windowWidth=doui.winW,e.windowHeight=doui.winH,e.windowWidthRem=doui.winWrem,e.windowHeightRem=doui.winHrem;var o=(new Fingerprint).get();return e.fingerprint=o,e},urlParamGet:function(){var e=window.location.search,t=new Object;if(-1!=e.indexOf("?"))for(var n=e.slice(e.indexOf("?")+1).split("&"),r=0;r<n.length;r++){var i=n[r].indexOf("="),o=n[r].substring(0,i),a=decodeURI(n[r].slice(i+1));t[o]=a}return t},cookieSet:function(e,t,n){var r="";"string"==typeof t?r=t:"object"==typeof t&&(r=JSON.stringify(t));var i=new Date;i.setTime(i.getTime()+Math.ceil(36e5*parseFloat(n)));var o="expires="+i.toGMTString();document.cookie=e+"="+r+"; "+o+"; path=/"},cookieGet:function(e){var t=null;e||(e="",t={});for(var n=document.cookie.split(";"),r=0;r<n.length;r++){var i=n[r].trim(),o=i.indexOf("="),a=i.substring(0,o),s=i.slice(o+1);if(doui.isJsonString(s)&&(s=JSON.parse(s)),e.length<=0)t[a]=s;else if(a==e){t=s;break}}return t},cookieDel:function(e){document.cookie=e+"= ; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"},localStorageSet:function(e,t){if("string"==typeof t)localStorage.setItem(e,t);else if("object"==typeof t){var n=JSON.stringify(t);localStorage.setItem(e,n)}},localStorageGet:function(e){var t=null,n=localStorage.getItem(e);return n&&(t=doui.isJsonString(n)?JSON.parse(n):n),t},localStorageDel:function(e){localStorage.removeItem(e)},sessionStorageSet:function(e,t){if("string"==typeof t)sessionStorage.setItem(e,t);else if("object"==typeof t){var n=JSON.stringify(t);sessionStorage.setItem(e,n)}},sessionStorageGet:function(e){var t=null,n=sessionStorage.getItem(e);return n&&(t=doui.isJsonString(n)?JSON.parse(n):n),t},sessionStorageDel:function(e){sessionStorage.removeItem(e)},pageToUrl:function(e){window.location.href=e},pageReplaceUrl:function(e){window.location.replace(e)},pageOpenUrl:function(e){window.open(e)},timestampForDate:function(e){e=parseFloat(e);var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1;r<10&&(r="0"+r);var i=t.getDate();i<10&&(i="0"+i);var o=t.getHours();o<10&&(o="0"+o);var a=t.getMinutes();return a<10&&(a="0"+a),n+"/"+r+"/"+i+" "+o+":"+a},strRandomGet:function(e){for(var t="",n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r=0;r<e;r++){var i=Math.round(Math.random()*(n.length-1));t+=n.charAt(i)}return t},strJsonHtmlGet:function(e){var t="",n="";try{"string"==typeof e?(t=JSON.parse(e),t=JSON.stringify(t,null,4)):t=JSON.stringify(e,null,4),n=t.replace(/\n/g,"<br>").replace(/\s/g," ")}catch(e){doui.showToast("strJsonHtmlGet: 不是Json格式")}return n},Base64:function(e,t){var n="初始str",r={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t,n,i,o,a,s,d,c="",l=0;for(e=r._utf8_encode(e);l<e.length;)o=(t=e.charCodeAt(l++))>>2,a=(3&t)<<4|(n=e.charCodeAt(l++))>>4,s=(15&n)<<2|(i=e.charCodeAt(l++))>>6,d=63&i,isNaN(n)?s=d=64:isNaN(i)&&(d=64),c=c+this._keyStr.charAt(o)+this._keyStr.charAt(a)+this._keyStr.charAt(s)+this._keyStr.charAt(d);return c},decode:function(e){var t,n,i,o,a,s,d="",c=0;for(e=e.replace(/[^A-Za-z0-9+/=]/g,"");c<e.length;)t=this._keyStr.indexOf(e.charAt(c++))<<2|(o=this._keyStr.indexOf(e.charAt(c++)))>>4,n=(15&o)<<4|(a=this._keyStr.indexOf(e.charAt(c++)))>>2,i=(3&a)<<6|(s=this._keyStr.indexOf(e.charAt(c++))),d+=String.fromCharCode(t),64!=a&&(d+=String.fromCharCode(n)),64!=s&&(d+=String.fromCharCode(i));return d=r._utf8_decode(d)},_utf8_encode:function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t},_utf8_decode:function(e){for(var t,n,r="",i=0,o=0;i<e.length;)(t=e.charCodeAt(i))<128?(r+=String.fromCharCode(t),i++):t>191&&t<224?(n=e.charCodeAt(i+1),r+=String.fromCharCode((31&t)<<6|63&n),i+=2):(n=e.charCodeAt(i+1),o=e.charCodeAt(i+2),r+=String.fromCharCode((15&t)<<12|(63&n)<<6|63&o),i+=3);return r}};return"en"==e?n=r.encode(t):"de"==e&&(n=r.decode(t)),n},Aes:function(e,t,n,r){var i,o,a,s,d,c,l,u,h,f,p,m,g=g||(i=Math,o=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s=(a={}).lib={},d=s.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=s.WordArray=d.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[r+o>>>2]|=a<<24-(r+o)%4*8}else for(o=0;o<i;o+=4)t[r+o>>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=i.ceil(t/4)},clone:function(){var e=d.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t,n=[],r=function(e){e=e;var t=987654321,n=4294967295;return function(){var r=((t=36969*(65535&t)+(t>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return r/=4294967296,(r+=.5)*(i.random()>.5?1:-1)}},o=0;o<e;o+=4){var a=r(4294967296*(t||i.random()));t=987654071*a(),n.push(4294967296*a()|0)}return new c.init(n,e)}}),l=a.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},h=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},f=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},p=s.BufferedBlockAlgorithm=d.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,o=this.blockSize,a=r/(4*o),s=(a=e?i.ceil(a):i.max((0|a)-this._minBufferSize,0))*o,d=i.min(4*s,r);if(s){for(var l=0;l<s;l+=o)this._doProcessBlock(n,l);var u=n.splice(0,s);t.sigBytes-=d}return new c.init(u,d)},clone:function(){var e=d.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),s.Hasher=p.extend({cfg:d.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new m.HMAC.init(e,n).finalize(t)}}}),m=a.algo={},a);!function(){var e=g,t=e.lib,n=t.Base,r=t.WordArray,i=e.algo,o=i.MD5,a=i.EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:o,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,i=n.hasher.create(),o=r.create(),a=o.words,s=n.keySize,d=n.iterations;a.length<s;){c&&i.update(c);var c=i.update(e).finalize(t);i.reset();for(var l=1;l<d;l++)c=i.finalize(c),i.reset();o.concat(c)}return o.sigBytes=4*s,o}});e.EvpKDF=function(e,t,n){return a.create(n).compute(e,t)}}(),function(){var e=g,t=e.lib.WordArray;e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var a=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)i.push(r.charAt(a>>>6*(3-s)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(e){var n=e.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<r.length;o++)i[r.charCodeAt(o)]=o}var a=r.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(n=s)}return function(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2,d=r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=(s|d)<<24-o%4*8,o++}return t.create(i,o)}(e,n,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),g.lib.Cipher||function(e){var t=g,n=t.lib,r=n.Base,i=n.WordArray,o=n.BufferedBlockAlgorithm,a=t.enc,s=(a.Utf8,a.Base64),d=t.algo.EvpKDF,c=n.Cipher=o.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:v}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()}),l=(n.StreamCipher=c.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),t.mode={}),u=n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),h=l.CBC=function(){var t=u.extend();function n(t,n,r){var i=this._iv;if(i){var o=i;this._iv=e}else o=this._prevBlock;for(var a=0;a<r;a++)t[n+a]^=o[a]}return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,o=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=o}}),t}(),f=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,o=r<<24|r<<16|r<<8|r,a=[],s=0;s<r;s+=4)a.push(o);var d=i.create(a,r);e.concat(d)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},p=(n.BlockCipher=c.extend({cfg:c.cfg.extend({mode:h,padding:f}),reset:function(){c.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=n.createEncryptor;else r=n.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==r?this._mode.init(this,t&&t.words):(this._mode=r.call(n,this,t&&t.words),this._mode.__creator=r)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4}),n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),m=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var r=i.create([1398893684,1701076831]).concat(n).concat(t);else r=t;return r.toString(s)},parse:function(e){var t=s.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var r=i.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return p.create({ciphertext:t,salt:r})}},v=n.SerializableCipher=r.extend({cfg:r.extend({format:m}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),o=i.finalize(t),a=i.cfg;return p.create({ciphertext:o,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){r||(r=i.random(8));var o=d.create({keySize:t+n}).compute(e,r),a=i.create(o.words.slice(t),4*n);return o.sigBytes=4*t,p.create({key:o,iv:a,salt:r})}},w=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize);r.iv=i.iv;var o=v.encrypt.call(this,e,t,i.key,r);return o.mixIn(i),o},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);return r.iv=i.iv,v.decrypt.call(this,e,t,i.key,r)}})}(),function(){var e=g,t=e.lib.Base,n=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=n.parse(t));var r=e.blockSize,i=4*r;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,d=a.words,c=0;c<r;c++)s[c]^=1549556828,d[c]^=909522486;o.sigBytes=a.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}(),g.mode.ECB=function(){var e=g.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e}(),g.pad.Iso10126={pad:function(e,t){var n=4*t,r=n-e.sigBytes%n;e.concat(g.lib.WordArray.random(r-1)).concat(g.lib.WordArray.create([r<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},function(){var e=g,t=e.lib.BlockCipher,n=e.algo,r=[],i=[],o=[],a=[],s=[],d=[],c=[],l=[],u=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,f=0;for(t=0;t<256;t++){var p=f^f<<1^f<<2^f<<3^f<<4;p=p>>>8^255&p^99,r[n]=p,i[p]=n;var m=e[n],g=e[m],v=e[g],y=257*e[p]^16843008*p;o[n]=y<<24|y>>>8,a[n]=y<<16|y>>>16,s[n]=y<<8|y>>>24,d[n]=y,y=16843009*v^65537*g^257*m^16843008*n,c[p]=y<<24|y>>>8,l[p]=y<<16|y>>>16,u[p]=y<<8|y>>>24,h[p]=y,n?(n=m^e[e[e[v^m]]],f^=e[e[f]]):n=f=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],p=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,i=4*((this._nRounds=n+6)+1),o=this._keySchedule=[],a=0;a<i;a++)if(a<n)o[a]=t[a];else{var s=o[a-1];a%n?n>6&&a%n==4&&(s=r[s>>>24]<<24|r[s>>>16&255]<<16|r[s>>>8&255]<<8|r[255&s]):(s=r[(s=s<<8|s>>>24)>>>24]<<24|r[s>>>16&255]<<16|r[s>>>8&255]<<8|r[255&s],s^=f[a/n|0]<<24),o[a]=o[a-n]^s}for(var d=this._invKeySchedule=[],p=0;p<i;p++)a=i-p,s=p%4?o[a]:o[a-4],d[p]=p<4||a<=4?s:c[r[s>>>24]]^l[r[s>>>16&255]]^u[r[s>>>8&255]]^h[r[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,d,r)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,c,l,u,h,i),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,o,a,s){for(var d=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],u=e[t+2]^n[2],h=e[t+3]^n[3],f=4,p=1;p<d;p++){var m=r[c>>>24]^i[l>>>16&255]^o[u>>>8&255]^a[255&h]^n[f++],g=r[l>>>24]^i[u>>>16&255]^o[h>>>8&255]^a[255&c]^n[f++],v=r[u>>>24]^i[h>>>16&255]^o[c>>>8&255]^a[255&l]^n[f++],y=r[h>>>24]^i[c>>>16&255]^o[l>>>8&255]^a[255&u]^n[f++];c=m,l=g,u=v,h=y}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[255&h])^n[f++],g=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[h>>>8&255]<<8|s[255&c])^n[f++],v=(s[u>>>24]<<24|s[h>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[f++],y=(s[h>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&u])^n[f++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=y},keySize:8});e.AES=t._createHelper(p)}(),function(){var e=g,t=e.lib.WordArray,n=e.enc;function r(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=2){var o=t[i>>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i<n;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},n.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o<n;o+=2){var a=r(t[o>>>2]>>>16-o%4*8&65535);i.push(String.fromCharCode(a))}return i.join("")},parse:function(e){for(var n=e.length,i=[],o=0;o<n;o++)i[o>>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(i,2*n)}}}(),null==n&&(n="warningiscaution");var v=g.enc.Utf8.parse(n),y={mode:g.mode.ECB,padding:g.pad.Pkcs7};if(null!=r&&r.length>0&&(y={iv:g.enc.Utf8.parse(r),mode:g.mode.CBC,padding:g.pad.Pkcs7}),"en"==e){var w=g.enc.Utf8.parse(t);return g.AES.encrypt(w,v,y).toString()}if("de"==e){var x=g.AES.decrypt(t,v,y);return g.enc.Utf8.stringify(x).toString()}},strMD5Get:function(e){function t(e,t){return e<<t|e>>>32-t}function n(e,t){var n,r,i,o,a;return i=2147483648&e,o=2147483648&t,a=(1073741823&e)+(1073741823&t),(n=1073741824&e)&(r=1073741824&t)?2147483648^a^i^o:n|r?1073741824&a?3221225472^a^i^o:1073741824^a^i^o:a^i^o}function r(e,r,i,o,a,s,d){var c;return n(t(e=n(e,n(n((c=r)&i|~c&o,a),d)),s),r)}function i(e,r,i,o,a,s,d){var c;return n(t(e=n(e,n(n(r&(c=o)|i&~c,a),d)),s),r)}function o(e,r,i,o,a,s,d){return n(t(e=n(e,n(n(r^i^o,a),d)),s),r)}function a(e,r,i,o,a,s,d){return n(t(e=n(e,n(n(i^(r|~o),a),d)),s),r)}function s(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}return function(e){var t,d,c,l,u,h,f,p,m,g=Array();for(g=function(e){for(var t,n=e.length,r=n+8,i=16*((r-r%64)/64+1),o=Array(i-1),a=0,s=0;s<n;)a=s%4*8,o[t=(s-s%4)/4]=o[t]|e.charCodeAt(s)<<a,s++;return a=s%4*8,o[t=(s-s%4)/4]=o[t]|128<<a,o[i-2]=n<<3,o[i-1]=n>>>29,o}(e=function(e){for(var t="",n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),h=1732584193,f=4023233417,p=2562383102,m=271733878,t=0;t<g.length;t+=16)d=h,c=f,l=p,u=m,f=a(f=a(f=a(f=a(f=o(f=o(f=o(f=o(f=i(f=i(f=i(f=i(f=r(f=r(f=r(f=r(f,p=r(p,m=r(m,h=r(h,f,p,m,g[t+0],7,3614090360),f,p,g[t+1],12,3905402710),h,f,g[t+2],17,606105819),m,h,g[t+3],22,3250441966),p=r(p,m=r(m,h=r(h,f,p,m,g[t+4],7,4118548399),f,p,g[t+5],12,1200080426),h,f,g[t+6],17,2821735955),m,h,g[t+7],22,4249261313),p=r(p,m=r(m,h=r(h,f,p,m,g[t+8],7,1770035416),f,p,g[t+9],12,2336552879),h,f,g[t+10],17,4294925233),m,h,g[t+11],22,2304563134),p=r(p,m=r(m,h=r(h,f,p,m,g[t+12],7,1804603682),f,p,g[t+13],12,4254626195),h,f,g[t+14],17,2792965006),m,h,g[t+15],22,1236535329),p=i(p,m=i(m,h=i(h,f,p,m,g[t+1],5,4129170786),f,p,g[t+6],9,3225465664),h,f,g[t+11],14,643717713),m,h,g[t+0],20,3921069994),p=i(p,m=i(m,h=i(h,f,p,m,g[t+5],5,3593408605),f,p,g[t+10],9,38016083),h,f,g[t+15],14,3634488961),m,h,g[t+4],20,3889429448),p=i(p,m=i(m,h=i(h,f,p,m,g[t+9],5,568446438),f,p,g[t+14],9,3275163606),h,f,g[t+3],14,4107603335),m,h,g[t+8],20,1163531501),p=i(p,m=i(m,h=i(h,f,p,m,g[t+13],5,2850285829),f,p,g[t+2],9,4243563512),h,f,g[t+7],14,1735328473),m,h,g[t+12],20,2368359562),p=o(p,m=o(m,h=o(h,f,p,m,g[t+5],4,4294588738),f,p,g[t+8],11,2272392833),h,f,g[t+11],16,1839030562),m,h,g[t+14],23,4259657740),p=o(p,m=o(m,h=o(h,f,p,m,g[t+1],4,2763975236),f,p,g[t+4],11,1272893353),h,f,g[t+7],16,4139469664),m,h,g[t+10],23,3200236656),p=o(p,m=o(m,h=o(h,f,p,m,g[t+13],4,681279174),f,p,g[t+0],11,3936430074),h,f,g[t+3],16,3572445317),m,h,g[t+6],23,76029189),p=o(p,m=o(m,h=o(h,f,p,m,g[t+9],4,3654602809),f,p,g[t+12],11,3873151461),h,f,g[t+15],16,530742520),m,h,g[t+2],23,3299628645),p=a(p,m=a(m,h=a(h,f,p,m,g[t+0],6,4096336452),f,p,g[t+7],10,1126891415),h,f,g[t+14],15,2878612391),m,h,g[t+5],21,4237533241),p=a(p,m=a(m,h=a(h,f,p,m,g[t+12],6,1700485571),f,p,g[t+3],10,2399980690),h,f,g[t+10],15,4293915773),m,h,g[t+1],21,2240044497),p=a(p,m=a(m,h=a(h,f,p,m,g[t+8],6,1873313359),f,p,g[t+15],10,4264355552),h,f,g[t+6],15,2734768916),m,h,g[t+13],21,1309151649),p=a(p,m=a(m,h=a(h,f,p,m,g[t+4],6,4149444226),f,p,g[t+11],10,3174756917),h,f,g[t+2],15,718787259),m,h,g[t+9],21,3951481745),h=n(h,d),f=n(f,c),p=n(p,l),m=n(m,u);return(s(h)+s(f)+s(p)+s(m)).toUpperCase()}(e)},AjaxData:function(e,t){null==e&&(e={}),null==t&&(t="thisWarning");var n=e;n.timestamp=(new Date).getTime();var r=new Array;for(var i in n)"object"==typeof n[i]&&(n[i]=JSON.stringify(n[i])),r.push(n[i]);r.sort();var o=r.join("###")+"###"+t,a=doui.strMD5Get(o);return n.sign=a,n},AjaxRepeat:function(e,t){var n={url:"",over:!1};n.url=t;var r=!1;if("add"==e){for(var i=null,o=0;o<doui.AjaxList.length;o++)if(n.url==doui.AjaxList[o].url){i=o;break}null==i?(doui.AjaxList.push(n),r=!0):1==doui.AjaxList[i].over?(doui.AjaxList[i].over=!1,r=!0):r=!1}else if("over"==e)for(o=0;o<doui.AjaxList.length;o++)if(t==doui.AjaxList[o].url){doui.AjaxList[o].over=!0,r=!0;break}return r},AjaxPost:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s=null;(s=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).open("POST",o,!0),s.setRequestHeader("Content-type","application/json"),s.withCredentials=!0;var d=setTimeout(function(){s.abort(),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);s.onreadystatechange=function(){if(4==s.readyState&&200==s.status){null!=d&&clearTimeout(d),doui.AjaxRepeat("over",o);var e=null;s.responseText?e=s.responseText:s.responseXML&&(e=s.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==s.readyState&&(null!=d&&clearTimeout(d),doui.AjaxRepeat("over",o),i.code=404,i.data=s.responseText,i.msg="无法链接,请检查网络",n(i))},s.send(JSON.stringify(a))}},AjaxGet:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s=null;s=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var d=o+"?";for(var c in a)d+=c+"="+a[c]+"&";d=d.substring(0,d.length-1),s.open("GET",d,!0),s.withCredentials=!0;var l=setTimeout(function(){s.abort(),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);s.onreadystatechange=function(){if(4==s.readyState&&200==s.status){null!=l&&clearTimeout(l),doui.AjaxRepeat("over",o);var e=null;s.responseText?e=s.responseText:s.responseXML&&(e=s.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==s.readyState&&(null!=l&&clearTimeout(l),doui.AjaxRepeat("over",o),i.code=404,i.data=s.responseText,i.msg="无法链接,请检查网络",n(i))},s.send()}},AjaxJsonp:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s="douiJsonp_"+doui.strRandomGet(8);a.callback=s;var d=o+"?";for(var c in a)d+=c+"="+a[c]+"&";d=d.substring(0,d.length-1),d=encodeURI(d);var l=document.createElement("script");l.type="text/javascript",l.src=d,document.getElementsByTagName("head")[0].appendChild(l);var u=setTimeout(function(){l&&l.parentNode.removeChild(l),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);l.onerror=function(){l&&l.parentNode.removeChild(l),null!=u&&clearTimeout(u),doui.AjaxRepeat("over",o),i.code=404,i.msg="无法链接,请检查网络",n(i)},window[s]=function(e){var t=e;l&&l.parentNode.removeChild(l),null!=u&&clearTimeout(u),doui.AjaxRepeat("over",o),"object"==typeof t?i=t:"string"==typeof t&&doui.isJsonString(t)?i=JSON.parse(t):(i.code=200,i.data=t,i.msg="返回数据不是json格式"),n(i)}}},AjaxUpload:function(e,t,n,r){var i={code:0,data:{},msg:"请求成功"},o=e,a=new FormData;for(var s in t)a.append(s,t[s]);var d=null;if(d=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),r){var c={total:0,loaded:0,percentage:0};d.upload.onprogress=function(e){e.lengthComputable&&(c.total=e.total,c.loaded=e.loaded,c.percentage=Math.round(1e3*parseFloat(e.loaded/e.total))/10,r(c))}}d.open("POST",o,!0),d.withCredentials=!0,d.onreadystatechange=function(){if(4==d.readyState&&200==d.status){var e=null;d.responseText?e=d.responseText:d.responseXML&&(e=d.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==d.readyState&&(i.code=404,i.data=d.responseText,i.msg="无法链接,请检查网络",n(i))},d.send(a)},isJsonString:function(e){try{if("object"==typeof JSON.parse(e))return!0}catch(e){}return!1}},doui.windowReady(function(){doui.sizeSet()}),window.onresize=function(){doui.sizeSet()}; |
| | | ! function(e, t, n) { |
| | | "undefined" != typeof module && module.exports ? module.exports = n() : "function" == typeof define && define.amd ? |
| | | define(n) : t.Fingerprint = n() |
| | | }(0, this, function() { |
| | | "use strict"; |
| | | var e = function(e) { |
| | | var t, n; |
| | | t = Array.prototype.forEach, n = Array.prototype.map, this.each = function(e, n, r) { |
| | | if (null !== e) |
| | | if (t && e.forEach === t) e.forEach(n, r); |
| | | else if (e.length === +e.length) { |
| | | for (var i = 0, o = e.length; i < o; i++) |
| | | if (n.call(r, e[i], i, e) === {}) return |
| | | } else |
| | | for (var a in e) |
| | | if (e.hasOwnProperty(a) && n.call(r, e[a], a, e) === {}) return |
| | | }, this.map = function(e, t, r) { |
| | | var i = []; |
| | | return null == e ? i : n && e.map === n ? e.map(t, r) : (this.each(e, function(e, n, o) { |
| | | i[i.length] = t.call(r, e, n, o) |
| | | }), i) |
| | | }, "object" == typeof e ? (this.hasher = e.hasher, this.screen_resolution = e.screen_resolution, this.screen_orientation = |
| | | e.screen_orientation, this.canvas = e.canvas, this.ie_activex = e.ie_activex) : "function" == typeof e && (this.hasher = |
| | | e) |
| | | }; |
| | | return e.prototype = { |
| | | get: function() { |
| | | var e = []; |
| | | if (e.push(navigator.userAgent), e.push(navigator.language), e.push(screen.colorDepth), this.screen_resolution) { |
| | | var t = this.getScreenResolution(); |
| | | void 0 !== t && e.push(t.join("x")) |
| | | } |
| | | return e.push((new Date).getTimezoneOffset()), e.push(this.hasSessionStorage()), e.push(this.hasLocalStorage()), |
| | | e.push(this.hasIndexDb()), document.body ? e.push(typeof document.body.addBehavior) : e.push("undefined"), e.push( |
| | | typeof window.openDatabase), e.push(navigator.cpuClass), e.push(navigator.platform), e.push(navigator.doNotTrack), |
| | | e.push(this.getPluginsString()), this.canvas && this.isCanvasSupported() && e.push(this.getCanvasFingerprint()), |
| | | this.hasher ? this.hasher(e.join("###"), 31) : this.murmurhash3_32_gc(e.join("###"), 31) |
| | | }, |
| | | murmurhash3_32_gc: function(e, t) { |
| | | var n, r, i, o, a, s, d, c; |
| | | for (n = 3 & e.length, r = e.length - n, i = t, a = 3432918353, s = 461845907, c = 0; c < r;) d = 255 & e.charCodeAt( |
| | | c) | (255 & e.charCodeAt(++c)) << 8 | (255 & e.charCodeAt(++c)) << 16 | (255 & e.charCodeAt(++c)) << 24, ++c, i = |
| | | 27492 + (65535 & (o = 5 * (65535 & (i = (i ^= d = (65535 & (d = (d = (65535 & d) * a + (((d >>> 16) * a & 65535) << |
| | | 16) & 4294967295) << 15 | d >>> 17)) * s + (((d >>> 16) * s & 65535) << 16) & 4294967295) << 13 | i >>> 19)) + |
| | | ((5 * (i >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (o >>> 16) & 65535) << 16); |
| | | switch (d = 0, n) { |
| | | case 3: |
| | | d ^= (255 & e.charCodeAt(c + 2)) << 16; |
| | | case 2: |
| | | d ^= (255 & e.charCodeAt(c + 1)) << 8; |
| | | case 1: |
| | | i ^= d = (65535 & (d = (d = (65535 & (d ^= 255 & e.charCodeAt(c))) * a + (((d >>> 16) * a & 65535) << 16) & |
| | | 4294967295) << 15 | d >>> 17)) * s + (((d >>> 16) * s & 65535) << 16) & 4294967295 |
| | | } |
| | | return i ^= e.length, i = 2246822507 * (65535 & (i ^= i >>> 16)) + ((2246822507 * (i >>> 16) & 65535) << 16) & |
| | | 4294967295, i = 3266489909 * (65535 & (i ^= i >>> 13)) + ((3266489909 * (i >>> 16) & 65535) << 16) & 4294967295, |
| | | (i ^= i >>> 16) >>> 0 |
| | | }, |
| | | hasLocalStorage: function() { |
| | | try { |
| | | return !!window.localStorage |
| | | } catch (e) { |
| | | return !0 |
| | | } |
| | | }, |
| | | hasSessionStorage: function() { |
| | | try { |
| | | return !!window.sessionStorage |
| | | } catch (e) { |
| | | return !0 |
| | | } |
| | | }, |
| | | hasIndexDb: function() { |
| | | try { |
| | | return !!window.indexedDB |
| | | } catch (e) { |
| | | return !0 |
| | | } |
| | | }, |
| | | isCanvasSupported: function() { |
| | | var e = document.createElement("canvas"); |
| | | return !(!e.getContext || !e.getContext("2d")) |
| | | }, |
| | | isIE: function() { |
| | | return "Microsoft Internet Explorer" === navigator.appName || !("Netscape" !== navigator.appName || !/Trident/.test( |
| | | navigator.userAgent)) |
| | | }, |
| | | getPluginsString: function() { |
| | | return this.isIE() && this.ie_activex ? this.getIEPluginsString() : this.getRegularPluginsString() |
| | | }, |
| | | getRegularPluginsString: function() { |
| | | return this.map(navigator.plugins, function(e) { |
| | | var t = this.map(e, function(e) { |
| | | return [e.type, e.suffixes].join("~") |
| | | }).join(","); |
| | | return [e.name, e.description, t].join("::") |
| | | }, this).join(";") |
| | | }, |
| | | getIEPluginsString: function() { |
| | | return window.ActiveXObject ? this.map(["ShockwaveFlash.ShockwaveFlash", "AcroPDF.PDF", "PDF.PdfCtrl", |
| | | "QuickTime.QuickTime", "rmocx.RealPlayer G2 Control", "rmocx.RealPlayer G2 Control.1", |
| | | "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "RealVideo.RealVideo(tm) ActiveX Control (32-bit)", |
| | | "RealPlayer", "SWCtl.SWCtl", "WMPlayer.OCX", "AgControl.AgControl", "Skype.Detection" |
| | | ], function(e) { |
| | | try { |
| | | return new ActiveXObject(e), e |
| | | } catch (e) { |
| | | return null |
| | | } |
| | | }).join(";") : "" |
| | | }, |
| | | getScreenResolution: function() { |
| | | return this.screen_orientation ? screen.height > screen.width ? [screen.height, screen.width] : [screen.width, |
| | | screen.height |
| | | ] : [screen.height, screen.width] |
| | | }, |
| | | getCanvasFingerprint: function() { |
| | | var e = document.createElement("canvas"), |
| | | t = e.getContext("2d"), |
| | | n = "http://valve.github.io"; |
| | | return t.textBaseline = "top", t.font = "14px 'Arial'", t.textBaseline = "alphabetic", t.fillStyle = "#f60", t.fillRect( |
| | | 125, 1, 62, 20), t.fillStyle = "#069", t.fillText(n, 2, 15), t.fillStyle = "rgba(102, 204, 0, 0.7)", t.fillText( |
| | | n, 4, 17), e.toDataURL() |
| | | } |
| | | }, e |
| | | }), doui = { |
| | | importReady: !0, |
| | | douiCss: null, |
| | | sizeReady: !1, |
| | | winW: 0, |
| | | winH: 0, |
| | | winWrem: 0, |
| | | winHrem: 0, |
| | | threadTimeout: null, |
| | | threadInterval: null, |
| | | AjaxList: [], |
| | | windowReady: function(e) { |
| | | null == e && (e = function() {}), document.addEventListener ? document.addEventListener("DOMContentLoaded", |
| | | function() { |
| | | document.removeEventListener("DOMContentLoaded", arguments.callee, !1), e() |
| | | }, !1) : document.attachEvent && document.attachEvent("onreadystatechange", function() { |
| | | "complete" == document.readyState && (document.detachEvent("onreadystatechange", arguments.callee), e()) |
| | | }) |
| | | }, |
| | | onReady: function(e) { |
| | | null != doui.threadInterval && clearInterval(doui.threadInterval), doui.threadInterval = setInterval(function() { |
| | | console.log("interval: doui的onReady监控"), 1 == doui.importReady && 1 == doui.sizeReady && (clearInterval(doui.threadInterval), |
| | | e()) |
| | | }, 200) |
| | | }, |
| | | importSet: function(e) { |
| | | if (null == e || e.length <= 0) doui.importReady = !0; |
| | | else { |
| | | doui.importReady = !1; |
| | | for (var t = document.getElementsByTagName("head")[0], n = new RegExp(".css$"), r = new RegExp(".js$"), i = 0, o = |
| | | 0; o < e.length; o++) |
| | | if (n.test(e[o])) { |
| | | var a = document.createElement("link"); |
| | | a.type = "text/css", a.rel = "stylesheet", a.href = e[o], t.appendChild(a), a.onerror = function() { |
| | | alert("引入失败:" + a.href), doui.importReady = !1, a.onerror = null |
| | | }, a.onload = a.onreadystatechange = function() { |
| | | ++i >= e.length && (doui.importReady = !0) |
| | | } |
| | | } else if (r.test(e[o])) { |
| | | var s = document.createElement("script"); |
| | | s.type = "text/javascript", s.src = e[o], t.appendChild(s), s.onerror = function() { |
| | | alert("引入失败:" + s.src), doui.importReady = !1, s.onerror = null |
| | | }, s.onload = s.onreadystatechange = function() { |
| | | ++i >= e.length && (doui.importReady = !0) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | sizeSet: function() { |
| | | try { |
| | | var e = window.innerWidth, |
| | | t = window.innerHeight; |
| | | doui.winW = e, doui.winH = t |
| | | } catch (e) { |
| | | return doui.sizeReady = !1, alert("屏幕可用大小获取失败"), !1 |
| | | } |
| | | var n = parseFloat(750 * doui.winH / doui.winW), |
| | | r = 100 * parseFloat(doui.winW / 750); |
| | | if (doui.winWrem = 7.5, doui.winHrem = n / 100, null == doui.douiCss) { |
| | | for (var i = null, o = document.styleSheets, a = new RegExp("doui"), s = 0; s < o.length; s++) |
| | | if (a.test(o[s].href)) { |
| | | i = o[s]; |
| | | break |
| | | } if (!(null != i && i.cssRules && i.cssRules.length > 0)) return alert("请本地载入doui.css"), doui.sizeReady = !1, !1; |
| | | doui.douiCss = i |
| | | } |
| | | for (s = 0; s < doui.douiCss.cssRules.length; s++) |
| | | if ("html" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.fontSize = r + "px"; |
| | | else if ("body" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW + "px", |
| | | doui.douiCss.cssRules[s].style.height = doui.winH + "px"; |
| | | else if (".winSizeBox" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW + |
| | | "px", doui.douiCss.cssRules[s].style.height = doui.winH + "px"; |
| | | else if (".heightenBox" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW + |
| | | "px", doui.douiCss.cssRules[s].style.minHeight = doui.winH + "px"; |
| | | else if (".main" == doui.douiCss.cssRules[s].selectorText) { |
| | | doui.douiCss.cssRules[s].style.minHeight = doui.winH + "px"; |
| | | break |
| | | } |
| | | doui.sizeReady = !0 |
| | | }, |
| | | showToast: function(e) { |
| | | (null == e || e.length <= 0) && (e = "亲,我很迷茫啊……"); |
| | | var t = document.getElementById("zdo_toast"); |
| | | t && t.parentNode.removeChild(t), null != doui.threadTimeout && clearTimeout(doui.threadTimeout); |
| | | var n = "font26", |
| | | r = "3.7rem", |
| | | i = "1.5rem", |
| | | o = "1.9rem", |
| | | a = "0.33rem", |
| | | s = "0.33rem"; |
| | | doui.winW >= doui.winH && (n = "font6", r = doui.winH / 4 + "px", i = doui.winH / 6 + "px", o = (doui.winW - doui.winH / |
| | | 4) / 2 + "px", a = doui.winH / 40 + "px", s = doui.winH / 40 + "px"); |
| | | var d = ""; |
| | | d += '<div id="zdo_toast" class="fboxRow Xcenter Ycenter" style="width:' + r + "; height:auto; bottom:" + i + |
| | | "; left:" + o + ';">', d += '<div class="' + n + ' font-white font-ell2" style="max-width:80%; margin-top:' + a + |
| | | "; margin-bottom:" + s + '; line-height:1.5; text-align:center;">', d += "<span>" + e + "</span>", d += "</div>", |
| | | d += "</div>"; |
| | | var c = document.createElement("div"); |
| | | c.innerHTML = d; |
| | | var l = c.childNodes[0]; |
| | | document.getElementsByTagName("body")[0].appendChild(l), doui.threadTimeout = setTimeout(function() { |
| | | var e = document.getElementById("zdo_toast"); |
| | | e && e.parentNode.removeChild(e) |
| | | }, 2500) |
| | | }, |
| | | showLoading: function(e) { |
| | | if ((null == e || e.length <= 0) && (e = ""), document.getElementById("zdo_loading")) document.getElementById( |
| | | "zdo_loadcont").innerHTML = e; |
| | | else { |
| | | var t = doui.winH / 2 + "px", |
| | | n = "1.8rem", |
| | | r = "2.85rem", |
| | | i = "font26", |
| | | o = "1.2rem", |
| | | a = "1.06rem", |
| | | s = "0.07rem"; |
| | | doui.winW >= doui.winH && (t = doui.winH / 2 + "px", n = doui.winH / 8 + "px", r = (doui.winW - doui.winH / 8) / 2 + |
| | | "px", i = "font6", o = doui.winH / 9 + "px", a = doui.winH / 9 - 12 + "px", s = "6px"); |
| | | var d = ""; |
| | | d += '<div id="zdo_loading" class="fboxCol Xstart Ycenter" style="width:' + n + "; height:auto; top:" + t + |
| | | "; left:" + r + ';">', d += '<div class="zdo_loadBg" style="width:' + o + "; height:" + o + ';">', d += |
| | | '<div class="zdo_loadLeft" style="width:' + a + "; height:" + a + "; border-width:" + s + ';"></div>', d += |
| | | '<div class="zdo_loadRight" style="width:' + a + "; height:" + a + "; border-width:" + s + ';"></div>', d += |
| | | "</div>", d += '<div class="' + i + ' font-white font-ell2" style="width:' + n + |
| | | '; margin-top:10px; line-height:1.5; text-align:center;">', d += |
| | | '<span id="zdo_loadcont" style="text-shadow:0 0 5px black;">' + e + "</span>", d += "</div>", d += "</div>"; |
| | | var c = document.createElement("div"); |
| | | c.innerHTML = d; |
| | | var l = c.childNodes[0]; |
| | | document.getElementsByTagName("body")[0].appendChild(l) |
| | | } |
| | | }, |
| | | hideLoading: function() { |
| | | var e = document.getElementById("zdo_loading"); |
| | | e && e.parentNode.removeChild(e) |
| | | }, |
| | | showModal: function(e, t) { |
| | | (null == e || e.length <= 0) && (e = "亲,我很迷茫啊……"), null == t && (t = function() {}); |
| | | var n = document.getElementById("zdo_modal"); |
| | | n && n.parentNode.removeChild(n); |
| | | var r = "4.3rem", |
| | | i = "font26", |
| | | o = "0.4rem", |
| | | a = "0.4rem", |
| | | s = "font27", |
| | | d = "0.8rem"; |
| | | doui.winW >= doui.winH && (r = doui.winH / 4 + "px", i = "font6", o = doui.winH / 40 + "px", a = doui.winH / 40 + |
| | | "px", s = "font6", d = doui.winH / 22 + "px"); |
| | | var c = ""; |
| | | c += '<div id="zdo_modal" class="fboxRow Xcenter Ycenter" style="height:' + doui.winH + 'px;">', c += |
| | | '<div id="zdo_modalnei" class="fboxCol Xcenter Ycenter" style="width:' + r + "; height:auto; max-height:" + doui.winH + |
| | | 'px;">', c += '<div class="' + i + ' font-black" style="max-width:80%; margin-top:' + o + "; margin-bottom:" + a + |
| | | '; line-height:1.5; text-align:center;">', c += "<span>" + e + "</span>", c += "</div>", c += |
| | | '<div class="fboxRow" style="width:100%; height:' + d + '; border-top:1px solid #CCC">', c += |
| | | '<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">', c += '<div class="' + s + |
| | | ' font-black do-default">取消</div>', c += "</div>", c += |
| | | '<div style="width:1px; height:100%; background-color:#CCC;"></div>', c += |
| | | '<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">', c += '<div class="' + s + |
| | | ' font-green do-default">确认</div>', c += "</div>", c += "</div>", c += "</div>", c += "</div>"; |
| | | var l = document.createElement("div"); |
| | | l.innerHTML = c; |
| | | var u = l.childNodes[0]; |
| | | document.getElementsByTagName("body")[0].appendChild(u), document.getElementsByClassName("zdo_modaldan")[0].onclick = |
| | | function() { |
| | | var e = document.getElementById("zdo_modal"); |
| | | e && e.parentNode.removeChild(e), t(!1) |
| | | }, document.getElementsByClassName("zdo_modaldan")[1].onclick = function() { |
| | | var e = document.getElementById("zdo_modal"); |
| | | e && e.parentNode.removeChild(e), t(!0) |
| | | } |
| | | }, |
| | | showScrollLoading: function(e, t, n) { |
| | | if (null == e && (e = ""), null == t && (t = function() {}), null == n && (n = !1), document.getElementsByClassName( |
| | | "do-scrollLoading").length <= 0) doui.showToast("未放入载入框组件"); |
| | | else { |
| | | var r = ""; |
| | | if (r += '<div class="fboxRow Xcenter Ycenter">', r += '<div style="width:24px; height:24px; position:relative;">', |
| | | r += '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r += |
| | | '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r += |
| | | '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r += |
| | | '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r += "</div>", e.length > |
| | | 0 && (r += '<div style="margin-left:0.2rem;" class="font25 font-gray">', r += "<span>" + e + "</span>", r += |
| | | "</div>"), r += "</div>", document.getElementsByClassName("do-scrollLoading")[0].childNodes.length <= 0) document |
| | | .getElementsByClassName("do-scrollLoading")[0].innerHTML = r, t(); |
| | | else if (1 == n) { |
| | | var i = document.getElementsByClassName("do-scrollLoading")[0].childNodes[0]; |
| | | i && i.parentNode.removeChild(i), document.getElementsByClassName("do-scrollLoading")[0].innerHTML = r, t() |
| | | } |
| | | } |
| | | }, |
| | | hideScrollLoading: function(e) { |
| | | var t = document.getElementsByClassName("do-scrollLoading")[0].childNodes[0]; |
| | | if (t && t.parentNode.removeChild(t), e && e.length > 0) { |
| | | var n = ""; |
| | | n += '<div class="fboxRow Xcenter Ystart font-ell1 font-gray">', n += "<span>" + e + "</span>", n += "</div>", |
| | | document.getElementsByClassName("do-scrollLoading").length <= 0 ? doui.showToast("未放入载入框组件") : document.getElementsByClassName( |
| | | "do-scrollLoading")[0].innerHTML = n |
| | | } |
| | | }, |
| | | scrollTo: function(e, t, n) { |
| | | if (null == t && (t = 0), null == n && (n = !0), "html" == e || "body" == e || e == window) |
| | | if (1 == n) { |
| | | var r = null; |
| | | cancelAnimationFrame(r), r = requestAnimationFrame(function e() { |
| | | var n = document.body.scrollTop || document.documentElement.scrollTop, |
| | | i = Math.ceil(n / 10); |
| | | n > 2e3 ? (scrollTo(0, 2e3), r = requestAnimationFrame(e)) : n > t ? (scrollTo(0, n - i), r = |
| | | requestAnimationFrame(e)) : (scrollTo(0, t), cancelAnimationFrame(r)) |
| | | }) |
| | | } else scrollTo(0, t); |
| | | else { |
| | | var i = null; |
| | | if (-1 != e.indexOf("#")) { |
| | | var o = e.slice(e.indexOf("#") + 1); |
| | | i = document.getElementById(o) |
| | | } else -1 != e.indexOf(".") && (o = e.slice(e.indexOf(".") + 1), i = document.getElementsByClassName(o)[0]); |
| | | 1 == n ? (r = null, cancelAnimationFrame(r), r = requestAnimationFrame(function e() { |
| | | var n = i.scrollTop, |
| | | o = Math.ceil(n / 10); |
| | | n > 2e3 ? (i.scrollTop = 2e3, r = requestAnimationFrame(e)) : n > t ? (i.scrollTop = n - o, r = |
| | | requestAnimationFrame(e)) : (i.scrollTop = t, cancelAnimationFrame(r)) |
| | | })) : i.scrollTop = t |
| | | } |
| | | }, |
| | | scrolling: function(e, t) { |
| | | null == t && (t = function() {}); |
| | | var n = { |
| | | scrollTop: 0, |
| | | overBottom: !1 |
| | | }, |
| | | r = null; |
| | | if (-1 != e.indexOf("#")) { |
| | | var i = e.slice(e.indexOf("#") + 1); |
| | | r = document.getElementById(i) |
| | | } else -1 != e.indexOf(".") && (i = e.slice(e.indexOf(".") + 1), r = document.getElementsByClassName(i)[0]); |
| | | "html" == e || "body" == e || e == window ? document.body.onscroll = document.documentElement.onscroll = function() { |
| | | var e = document.documentElement.clientHeight, |
| | | r = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), |
| | | i = 0; |
| | | document.documentElement && document.documentElement.scrollTop ? i = document.documentElement.scrollTop : |
| | | document.body && (i = document.body.scrollTop), n.scrollTop = i, n.overBottom = i > 0 && e + i >= r, t(n) |
| | | } : r.onscroll = function() { |
| | | var e = r.clientHeight, |
| | | i = r.scrollHeight, |
| | | o = r.scrollTop; |
| | | n.scrollTop = o, n.overBottom = o > 0 && e + o >= i, t(n) |
| | | } |
| | | }, |
| | | systemInfoGet: function() { |
| | | var e = { |
| | | fingerprint: "", |
| | | platform: "PC", |
| | | version: "0", |
| | | browserName: "", |
| | | browserVersion: "0", |
| | | inWX: !1, |
| | | cookieEnabled: !0, |
| | | windowWidth: 0, |
| | | windowHeight: 0, |
| | | windowWidthRem: 0, |
| | | windowHeightRem: 0 |
| | | }, |
| | | t = navigator.userAgent, |
| | | n = navigator.userAgent.toLowerCase(); |
| | | if (t.indexOf("Android") > -1 || t.indexOf("Linux") > -1) e.platform = "Android"; |
| | | else if (t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) e.platform = "IOS"; |
| | | else |
| | | for (var r = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"], i = 0; i < r.length; i++) |
| | | if (t.indexOf(r[i]) > 0) { |
| | | e.platform = "PC"; |
| | | break |
| | | } try { |
| | | "Android" == e.platform ? e.version = n.match(/android ([\d.]+)/)[1] : "IOS" == e.platform ? e.version = n.match( |
| | | /version\/([\d.]+)/)[1] : "PC" == e.platform && (e.version = navigator.platform) |
| | | } catch (e) {} |
| | | t.indexOf("OPR") > -1 || t.indexOf("Opera") > -1 ? e.browserName = "Opera" : t.indexOf("Firefox") > -1 ? e.browserName = |
| | | "FireFox" : t.indexOf("Chrome") > -1 ? e.browserName = "Chrome" : t.indexOf("Safari") > -1 ? e.browserName = |
| | | "Safari" : (n.indexOf("msie") > -1 || t.indexOf("rv") > -1) && (e.browserName = "IE"); |
| | | try { |
| | | "Opera" == e.browserName ? e.browserVersion = n.match(/opera.([\d.]+)/)[1] : "FireFox" == e.browserName ? e.browserVersion = |
| | | n.match(/firefox\/([\d.]+)/)[1] : "Chrome" == e.browserName ? e.browserVersion = n.match(/chrome\/([\d.]+)/)[1] : |
| | | "Safari" == e.browserName ? e.browserVersion = n.match(/safari\/([\d.]+)/)[1] : "IE" == e.browserName && (e.browserVersion = |
| | | n.match(/msie ([\d.]+)/)[1]) |
| | | } catch (e) {} |
| | | "micromessenger" == n.match(/MicroMessenger/i) ? e.inWX = !0 : e.inWX = !1, e.cookieEnabled = navigator.cookieEnabled, |
| | | e.windowWidth = doui.winW, e.windowHeight = doui.winH, e.windowWidthRem = doui.winWrem, e.windowHeightRem = doui.winHrem; |
| | | var o = (new Fingerprint).get(); |
| | | return e.fingerprint = o, e |
| | | }, |
| | | urlParamGet: function() { |
| | | var e = window.location.search, |
| | | t = new Object; |
| | | if (-1 != e.indexOf("?")) |
| | | for (var n = e.slice(e.indexOf("?") + 1).split("&"), r = 0; r < n.length; r++) { |
| | | var i = n[r].indexOf("="), |
| | | o = n[r].substring(0, i), |
| | | a = decodeURI(n[r].slice(i + 1)); |
| | | t[o] = a |
| | | } |
| | | return t |
| | | }, |
| | | cookieSet: function(e, t, n) { |
| | | var r = ""; |
| | | "string" == typeof t ? r = t : "object" == typeof t && (r = JSON.stringify(t)); |
| | | var i = new Date; |
| | | i.setTime(i.getTime() + Math.ceil(36e5 * parseFloat(n))); |
| | | var o = "expires=" + i.toGMTString(); |
| | | document.cookie = e + "=" + r + "; " + o + "; path=/" |
| | | }, |
| | | cookieGet: function(e) { |
| | | var t = null; |
| | | e || (e = "", t = {}); |
| | | for (var n = document.cookie.split(";"), r = 0; r < n.length; r++) { |
| | | var i = n[r].trim(), |
| | | o = i.indexOf("="), |
| | | a = i.substring(0, o), |
| | | s = i.slice(o + 1); |
| | | if (doui.isJsonString(s) && (s = JSON.parse(s)), e.length <= 0) t[a] = s; |
| | | else if (a == e) { |
| | | t = s; |
| | | break |
| | | } |
| | | } |
| | | return t |
| | | }, |
| | | cookieDel: function(e) { |
| | | document.cookie = e + "= ; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/" |
| | | }, |
| | | localStorageSet: function(e, t) { |
| | | if ("string" == typeof t) localStorage.setItem(e, t); |
| | | else if ("object" == typeof t) { |
| | | var n = JSON.stringify(t); |
| | | localStorage.setItem(e, n) |
| | | } |
| | | }, |
| | | localStorageGet: function(e) { |
| | | var t = null, |
| | | n = localStorage.getItem(e); |
| | | return n && (t = doui.isJsonString(n) ? JSON.parse(n) : n), t |
| | | }, |
| | | localStorageDel: function(e) { |
| | | localStorage.removeItem(e) |
| | | }, |
| | | sessionStorageSet: function(e, t) { |
| | | if ("string" == typeof t) sessionStorage.setItem(e, t); |
| | | else if ("object" == typeof t) { |
| | | var n = JSON.stringify(t); |
| | | sessionStorage.setItem(e, n) |
| | | } |
| | | }, |
| | | sessionStorageGet: function(e) { |
| | | var t = null, |
| | | n = sessionStorage.getItem(e); |
| | | return n && (t = doui.isJsonString(n) ? JSON.parse(n) : n), t |
| | | }, |
| | | sessionStorageDel: function(e) { |
| | | sessionStorage.removeItem(e) |
| | | }, |
| | | pageToUrl: function(e) { |
| | | window.location.href = e |
| | | }, |
| | | pageReplaceUrl: function(e) { |
| | | window.location.replace(e) |
| | | }, |
| | | pageOpenUrl: function(e) { |
| | | window.open(e) |
| | | }, |
| | | timestampForDate: function(e) { |
| | | e = parseFloat(e); |
| | | var t = new Date(e), |
| | | n = t.getFullYear(), |
| | | r = t.getMonth() + 1; |
| | | r < 10 && (r = "0" + r); |
| | | var i = t.getDate(); |
| | | i < 10 && (i = "0" + i); |
| | | var o = t.getHours(); |
| | | o < 10 && (o = "0" + o); |
| | | var a = t.getMinutes(); |
| | | return a < 10 && (a = "0" + a), n + "/" + r + "/" + i + " " + o + ":" + a |
| | | }, |
| | | strRandomGet: function(e) { |
| | | for (var t = "", n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = 0; r < e; r++) { |
| | | var i = Math.round(Math.random() * (n.length - 1)); |
| | | t += n.charAt(i) |
| | | } |
| | | return t |
| | | }, |
| | | strJsonHtmlGet: function(e) { |
| | | var t = "", |
| | | n = ""; |
| | | try { |
| | | "string" == typeof e ? (t = JSON.parse(e), t = JSON.stringify(t, null, 4)) : t = JSON.stringify(e, null, 4), n = t |
| | | .replace(/\n/g, "<br>").replace(/\s/g, " ") |
| | | } catch (e) { |
| | | doui.showToast("strJsonHtmlGet: 不是Json格式") |
| | | } |
| | | return n |
| | | }, |
| | | Base64: function(e, t) { |
| | | var n = "初始str", |
| | | r = { |
| | | _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", |
| | | encode: function(e) { |
| | | var t, n, i, o, a, s, d, c = "", |
| | | l = 0; |
| | | for (e = r._utf8_encode(e); l < e.length;) o = (t = e.charCodeAt(l++)) >> 2, a = (3 & t) << 4 | (n = e.charCodeAt( |
| | | l++)) >> 4, s = (15 & n) << 2 | (i = e.charCodeAt(l++)) >> 6, d = 63 & i, isNaN(n) ? s = d = 64 : isNaN(i) && |
| | | (d = 64), c = c + this._keyStr.charAt(o) + this._keyStr.charAt(a) + this._keyStr.charAt(s) + this._keyStr.charAt( |
| | | d); |
| | | return c |
| | | }, |
| | | decode: function(e) { |
| | | var t, n, i, o, a, s, d = "", |
| | | c = 0; |
| | | for (e = e.replace(/[^A-Za-z0-9+/=]/g, ""); c < e.length;) t = this._keyStr.indexOf(e.charAt(c++)) << 2 | (o = |
| | | this._keyStr.indexOf(e.charAt(c++))) >> 4, n = (15 & o) << 4 | (a = this._keyStr.indexOf(e.charAt(c++))) >> 2, |
| | | i = (3 & a) << 6 | (s = this._keyStr.indexOf(e.charAt(c++))), d += String.fromCharCode(t), 64 != a && (d += |
| | | String.fromCharCode(n)), 64 != s && (d += String.fromCharCode(i)); |
| | | return d = r._utf8_decode(d) |
| | | }, |
| | | _utf8_encode: function(e) { |
| | | e = e.replace(/rn/g, "n"); |
| | | for (var t = "", n = 0; n < e.length; n++) { |
| | | var r = e.charCodeAt(n); |
| | | r < 128 ? t += String.fromCharCode(r) : r > 127 && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192), t += |
| | | String.fromCharCode(63 & r | 128)) : (t += String.fromCharCode(r >> 12 | 224), t += String.fromCharCode(r >> |
| | | 6 & 63 | 128), t += String.fromCharCode(63 & r | 128)) |
| | | } |
| | | return t |
| | | }, |
| | | _utf8_decode: function(e) { |
| | | for (var t, n, r = "", i = 0, o = 0; i < e.length;)(t = e.charCodeAt(i)) < 128 ? (r += String.fromCharCode(t), |
| | | i++) : t > 191 && t < 224 ? (n = e.charCodeAt(i + 1), r += String.fromCharCode((31 & t) << 6 | 63 & n), i += |
| | | 2) : (n = e.charCodeAt(i + 1), o = e.charCodeAt(i + 2), r += String.fromCharCode((15 & t) << 12 | (63 & n) << |
| | | 6 | 63 & o), i += 3); |
| | | return r |
| | | } |
| | | }; |
| | | return "en" == e ? n = r.encode(t) : "de" == e && (n = r.decode(t)), n |
| | | }, |
| | | Aes: function(e, t, n, r) { |
| | | var i, o, a, s, d, c, l, u, h, f, p, m, g = g || (i = Math, o = Object.create || function() { |
| | | function e() {} |
| | | return function(t) { |
| | | var n; |
| | | return e.prototype = t, n = new e, e.prototype = null, n |
| | | } |
| | | }(), s = (a = {}).lib = {}, d = s.Base = { |
| | | extend: function(e) { |
| | | var t = o(this); |
| | | return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function() { |
| | | t.$super.init.apply(this, arguments) |
| | | }), t.init.prototype = t, t.$super = this, t |
| | | }, |
| | | create: function() { |
| | | var e = this.extend(); |
| | | return e.init.apply(e, arguments), e |
| | | }, |
| | | init: function() {}, |
| | | mixIn: function(e) { |
| | | for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); |
| | | e.hasOwnProperty("toString") && (this.toString = e.toString) |
| | | }, |
| | | clone: function() { |
| | | return this.init.prototype.extend(this) |
| | | } |
| | | }, c = s.WordArray = d.extend({ |
| | | init: function(e, t) { |
| | | e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length |
| | | }, |
| | | toString: function(e) { |
| | | return (e || u).stringify(this) |
| | | }, |
| | | concat: function(e) { |
| | | var t = this.words, |
| | | n = e.words, |
| | | r = this.sigBytes, |
| | | i = e.sigBytes; |
| | | if (this.clamp(), r % 4) |
| | | for (var o = 0; o < i; o++) { |
| | | var a = n[o >>> 2] >>> 24 - o % 4 * 8 & 255; |
| | | t[r + o >>> 2] |= a << 24 - (r + o) % 4 * 8 |
| | | } else |
| | | for (o = 0; o < i; o += 4) t[r + o >>> 2] = n[o >>> 2]; |
| | | return this.sigBytes += i, this |
| | | }, |
| | | clamp: function() { |
| | | var e = this.words, |
| | | t = this.sigBytes; |
| | | e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = i.ceil(t / 4) |
| | | }, |
| | | clone: function() { |
| | | var e = d.clone.call(this); |
| | | return e.words = this.words.slice(0), e |
| | | }, |
| | | random: function(e) { |
| | | for (var t, n = [], r = function(e) { |
| | | e = e; |
| | | var t = 987654321, |
| | | n = 4294967295; |
| | | return function() { |
| | | var r = ((t = 36969 * (65535 & t) + (t >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n; |
| | | return r /= 4294967296, (r += .5) * (i.random() > .5 ? 1 : -1) |
| | | } |
| | | }, o = 0; o < e; o += 4) { |
| | | var a = r(4294967296 * (t || i.random())); |
| | | t = 987654071 * a(), n.push(4294967296 * a() | 0) |
| | | } |
| | | return new c.init(n, e) |
| | | } |
| | | }), l = a.enc = {}, u = l.Hex = { |
| | | stringify: function(e) { |
| | | for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i++) { |
| | | var o = t[i >>> 2] >>> 24 - i % 4 * 8 & 255; |
| | | r.push((o >>> 4).toString(16)), r.push((15 & o).toString(16)) |
| | | } |
| | | return r.join("") |
| | | }, |
| | | parse: function(e) { |
| | | for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * |
| | | 4; |
| | | return new c.init(n, t / 2) |
| | | } |
| | | }, h = l.Latin1 = { |
| | | stringify: function(e) { |
| | | for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i++) { |
| | | var o = t[i >>> 2] >>> 24 - i % 4 * 8 & 255; |
| | | r.push(String.fromCharCode(o)) |
| | | } |
| | | return r.join("") |
| | | }, |
| | | parse: function(e) { |
| | | for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8; |
| | | return new c.init(n, t) |
| | | } |
| | | }, f = l.Utf8 = { |
| | | stringify: function(e) { |
| | | try { |
| | | return decodeURIComponent(escape(h.stringify(e))) |
| | | } catch (e) { |
| | | throw new Error("Malformed UTF-8 data") |
| | | } |
| | | }, |
| | | parse: function(e) { |
| | | return h.parse(unescape(encodeURIComponent(e))) |
| | | } |
| | | }, p = s.BufferedBlockAlgorithm = d.extend({ |
| | | reset: function() { |
| | | this._data = new c.init, this._nDataBytes = 0 |
| | | }, |
| | | _append: function(e) { |
| | | "string" == typeof e && (e = f.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes |
| | | }, |
| | | _process: function(e) { |
| | | var t = this._data, |
| | | n = t.words, |
| | | r = t.sigBytes, |
| | | o = this.blockSize, |
| | | a = r / (4 * o), |
| | | s = (a = e ? i.ceil(a) : i.max((0 | a) - this._minBufferSize, 0)) * o, |
| | | d = i.min(4 * s, r); |
| | | if (s) { |
| | | for (var l = 0; l < s; l += o) this._doProcessBlock(n, l); |
| | | var u = n.splice(0, s); |
| | | t.sigBytes -= d |
| | | } |
| | | return new c.init(u, d) |
| | | }, |
| | | clone: function() { |
| | | var e = d.clone.call(this); |
| | | return e._data = this._data.clone(), e |
| | | }, |
| | | _minBufferSize: 0 |
| | | }), s.Hasher = p.extend({ |
| | | cfg: d.extend(), |
| | | init: function(e) { |
| | | this.cfg = this.cfg.extend(e), this.reset() |
| | | }, |
| | | reset: function() { |
| | | p.reset.call(this), this._doReset() |
| | | }, |
| | | update: function(e) { |
| | | return this._append(e), this._process(), this |
| | | }, |
| | | finalize: function(e) { |
| | | return e && this._append(e), this._doFinalize() |
| | | }, |
| | | blockSize: 16, |
| | | _createHelper: function(e) { |
| | | return function(t, n) { |
| | | return new e.init(n).finalize(t) |
| | | } |
| | | }, |
| | | _createHmacHelper: function(e) { |
| | | return function(t, n) { |
| | | return new m.HMAC.init(e, n).finalize(t) |
| | | } |
| | | } |
| | | }), m = a.algo = {}, a); |
| | | ! function() { |
| | | var e = g, |
| | | t = e.lib, |
| | | n = t.Base, |
| | | r = t.WordArray, |
| | | i = e.algo, |
| | | o = i.MD5, |
| | | a = i.EvpKDF = n.extend({ |
| | | cfg: n.extend({ |
| | | keySize: 4, |
| | | hasher: o, |
| | | iterations: 1 |
| | | }), |
| | | init: function(e) { |
| | | this.cfg = this.cfg.extend(e) |
| | | }, |
| | | compute: function(e, t) { |
| | | for (var n = this.cfg, i = n.hasher.create(), o = r.create(), a = o.words, s = n.keySize, d = n.iterations; a |
| | | .length < s;) { |
| | | c && i.update(c); |
| | | var c = i.update(e).finalize(t); |
| | | i.reset(); |
| | | for (var l = 1; l < d; l++) c = i.finalize(c), i.reset(); |
| | | o.concat(c) |
| | | } |
| | | return o.sigBytes = 4 * s, o |
| | | } |
| | | }); |
| | | e.EvpKDF = function(e, t, n) { |
| | | return a.create(n).compute(e, t) |
| | | } |
| | | }(), |
| | | function() { |
| | | var e = g, |
| | | t = e.lib.WordArray; |
| | | e.enc.Base64 = { |
| | | stringify: function(e) { |
| | | var t = e.words, |
| | | n = e.sigBytes, |
| | | r = this._map; |
| | | e.clamp(); |
| | | for (var i = [], o = 0; o < n; o += 3) |
| | | for (var a = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << |
| | | 8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, s = 0; s < 4 && o + .75 * s < n; s++) i.push(r.charAt(a >>> |
| | | 6 * (3 - s) & 63)); |
| | | var d = r.charAt(64); |
| | | if (d) |
| | | for (; i.length % 4;) i.push(d); |
| | | return i.join("") |
| | | }, |
| | | parse: function(e) { |
| | | var n = e.length, |
| | | r = this._map, |
| | | i = this._reverseMap; |
| | | if (!i) { |
| | | i = this._reverseMap = []; |
| | | for (var o = 0; o < r.length; o++) i[r.charCodeAt(o)] = o |
| | | } |
| | | var a = r.charAt(64); |
| | | if (a) { |
| | | var s = e.indexOf(a); - 1 !== s && (n = s) |
| | | } |
| | | return function(e, n, r) { |
| | | for (var i = [], o = 0, a = 0; a < n; a++) |
| | | if (a % 4) { |
| | | var s = r[e.charCodeAt(a - 1)] << a % 4 * 2, |
| | | d = r[e.charCodeAt(a)] >>> 6 - a % 4 * 2; |
| | | i[o >>> 2] |= (s | d) << 24 - o % 4 * 8, o++ |
| | | } return t.create(i, o) |
| | | }(e, n, i) |
| | | }, |
| | | _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" |
| | | } |
| | | }(), g.lib.Cipher || function(e) { |
| | | var t = g, |
| | | n = t.lib, |
| | | r = n.Base, |
| | | i = n.WordArray, |
| | | o = n.BufferedBlockAlgorithm, |
| | | a = t.enc, |
| | | s = (a.Utf8, a.Base64), |
| | | d = t.algo.EvpKDF, |
| | | c = n.Cipher = o.extend({ |
| | | cfg: r.extend(), |
| | | createEncryptor: function(e, t) { |
| | | return this.create(this._ENC_XFORM_MODE, e, t) |
| | | }, |
| | | createDecryptor: function(e, t) { |
| | | return this.create(this._DEC_XFORM_MODE, e, t) |
| | | }, |
| | | init: function(e, t, n) { |
| | | this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset() |
| | | }, |
| | | reset: function() { |
| | | o.reset.call(this), this._doReset() |
| | | }, |
| | | process: function(e) { |
| | | return this._append(e), this._process() |
| | | }, |
| | | finalize: function(e) { |
| | | return e && this._append(e), this._doFinalize() |
| | | }, |
| | | keySize: 4, |
| | | ivSize: 4, |
| | | _ENC_XFORM_MODE: 1, |
| | | _DEC_XFORM_MODE: 2, |
| | | _createHelper: function() { |
| | | function e(e) { |
| | | return "string" == typeof e ? w : v |
| | | } |
| | | return function(t) { |
| | | return { |
| | | encrypt: function(n, r, i) { |
| | | return e(r).encrypt(t, n, r, i) |
| | | }, |
| | | decrypt: function(n, r, i) { |
| | | return e(r).decrypt(t, n, r, i) |
| | | } |
| | | } |
| | | } |
| | | }() |
| | | }), |
| | | l = (n.StreamCipher = c.extend({ |
| | | _doFinalize: function() { |
| | | return this._process(!0) |
| | | }, |
| | | blockSize: 1 |
| | | }), t.mode = {}), |
| | | u = n.BlockCipherMode = r.extend({ |
| | | createEncryptor: function(e, t) { |
| | | return this.Encryptor.create(e, t) |
| | | }, |
| | | createDecryptor: function(e, t) { |
| | | return this.Decryptor.create(e, t) |
| | | }, |
| | | init: function(e, t) { |
| | | this._cipher = e, this._iv = t |
| | | } |
| | | }), |
| | | h = l.CBC = function() { |
| | | var t = u.extend(); |
| | | |
| | | function n(t, n, r) { |
| | | var i = this._iv; |
| | | if (i) { |
| | | var o = i; |
| | | this._iv = e |
| | | } else o = this._prevBlock; |
| | | for (var a = 0; a < r; a++) t[n + a] ^= o[a] |
| | | } |
| | | return t.Encryptor = t.extend({ |
| | | processBlock: function(e, t) { |
| | | var r = this._cipher, |
| | | i = r.blockSize; |
| | | n.call(this, e, t, i), r.encryptBlock(e, t), this._prevBlock = e.slice(t, t + i) |
| | | } |
| | | }), t.Decryptor = t.extend({ |
| | | processBlock: function(e, t) { |
| | | var r = this._cipher, |
| | | i = r.blockSize, |
| | | o = e.slice(t, t + i); |
| | | r.decryptBlock(e, t), n.call(this, e, t, i), this._prevBlock = o |
| | | } |
| | | }), t |
| | | }(), |
| | | f = (t.pad = {}).Pkcs7 = { |
| | | pad: function(e, t) { |
| | | for (var n = 4 * t, r = n - e.sigBytes % n, o = r << 24 | r << 16 | r << 8 | r, a = [], s = 0; s < r; s += 4) |
| | | a.push(o); |
| | | var d = i.create(a, r); |
| | | e.concat(d) |
| | | }, |
| | | unpad: function(e) { |
| | | var t = 255 & e.words[e.sigBytes - 1 >>> 2]; |
| | | e.sigBytes -= t |
| | | } |
| | | }, |
| | | p = (n.BlockCipher = c.extend({ |
| | | cfg: c.cfg.extend({ |
| | | mode: h, |
| | | padding: f |
| | | }), |
| | | reset: function() { |
| | | c.reset.call(this); |
| | | var e = this.cfg, |
| | | t = e.iv, |
| | | n = e.mode; |
| | | if (this._xformMode == this._ENC_XFORM_MODE) var r = n.createEncryptor; |
| | | else r = n.createDecryptor, this._minBufferSize = 1; |
| | | this._mode && this._mode.__creator == r ? this._mode.init(this, t && t.words) : (this._mode = r.call(n, |
| | | this, t && t.words), this._mode.__creator = r) |
| | | }, |
| | | _doProcessBlock: function(e, t) { |
| | | this._mode.processBlock(e, t) |
| | | }, |
| | | _doFinalize: function() { |
| | | var e = this.cfg.padding; |
| | | if (this._xformMode == this._ENC_XFORM_MODE) { |
| | | e.pad(this._data, this.blockSize); |
| | | var t = this._process(!0) |
| | | } else t = this._process(!0), e.unpad(t); |
| | | return t |
| | | }, |
| | | blockSize: 4 |
| | | }), n.CipherParams = r.extend({ |
| | | init: function(e) { |
| | | this.mixIn(e) |
| | | }, |
| | | toString: function(e) { |
| | | return (e || this.formatter).stringify(this) |
| | | } |
| | | })), |
| | | m = (t.format = {}).OpenSSL = { |
| | | stringify: function(e) { |
| | | var t = e.ciphertext, |
| | | n = e.salt; |
| | | if (n) var r = i.create([1398893684, 1701076831]).concat(n).concat(t); |
| | | else r = t; |
| | | return r.toString(s) |
| | | }, |
| | | parse: function(e) { |
| | | var t = s.parse(e), |
| | | n = t.words; |
| | | if (1398893684 == n[0] && 1701076831 == n[1]) { |
| | | var r = i.create(n.slice(2, 4)); |
| | | n.splice(0, 4), t.sigBytes -= 16 |
| | | } |
| | | return p.create({ |
| | | ciphertext: t, |
| | | salt: r |
| | | }) |
| | | } |
| | | }, |
| | | v = n.SerializableCipher = r.extend({ |
| | | cfg: r.extend({ |
| | | format: m |
| | | }), |
| | | encrypt: function(e, t, n, r) { |
| | | r = this.cfg.extend(r); |
| | | var i = e.createEncryptor(n, r), |
| | | o = i.finalize(t), |
| | | a = i.cfg; |
| | | return p.create({ |
| | | ciphertext: o, |
| | | key: n, |
| | | iv: a.iv, |
| | | algorithm: e, |
| | | mode: a.mode, |
| | | padding: a.padding, |
| | | blockSize: e.blockSize, |
| | | formatter: r.format |
| | | }) |
| | | }, |
| | | decrypt: function(e, t, n, r) { |
| | | return r = this.cfg.extend(r), t = this._parse(t, r.format), e.createDecryptor(n, r).finalize(t.ciphertext) |
| | | }, |
| | | _parse: function(e, t) { |
| | | return "string" == typeof e ? t.parse(e, this) : e |
| | | } |
| | | }), |
| | | y = (t.kdf = {}).OpenSSL = { |
| | | execute: function(e, t, n, r) { |
| | | r || (r = i.random(8)); |
| | | var o = d.create({ |
| | | keySize: t + n |
| | | }).compute(e, r), |
| | | a = i.create(o.words.slice(t), 4 * n); |
| | | return o.sigBytes = 4 * t, p.create({ |
| | | key: o, |
| | | iv: a, |
| | | salt: r |
| | | }) |
| | | } |
| | | }, |
| | | w = n.PasswordBasedCipher = v.extend({ |
| | | cfg: v.cfg.extend({ |
| | | kdf: y |
| | | }), |
| | | encrypt: function(e, t, n, r) { |
| | | var i = (r = this.cfg.extend(r)).kdf.execute(n, e.keySize, e.ivSize); |
| | | r.iv = i.iv; |
| | | var o = v.encrypt.call(this, e, t, i.key, r); |
| | | return o.mixIn(i), o |
| | | }, |
| | | decrypt: function(e, t, n, r) { |
| | | r = this.cfg.extend(r), t = this._parse(t, r.format); |
| | | var i = r.kdf.execute(n, e.keySize, e.ivSize, t.salt); |
| | | return r.iv = i.iv, v.decrypt.call(this, e, t, i.key, r) |
| | | } |
| | | }) |
| | | }(), |
| | | function() { |
| | | var e = g, |
| | | t = e.lib.Base, |
| | | n = e.enc.Utf8; |
| | | e.algo.HMAC = t.extend({ |
| | | init: function(e, t) { |
| | | e = this._hasher = new e.init, "string" == typeof t && (t = n.parse(t)); |
| | | var r = e.blockSize, |
| | | i = 4 * r; |
| | | t.sigBytes > i && (t = e.finalize(t)), t.clamp(); |
| | | for (var o = this._oKey = t.clone(), a = this._iKey = t.clone(), s = o.words, d = a.words, c = 0; c < r; c++) |
| | | s[c] ^= 1549556828, d[c] ^= 909522486; |
| | | o.sigBytes = a.sigBytes = i, this.reset() |
| | | }, |
| | | reset: function() { |
| | | var e = this._hasher; |
| | | e.reset(), e.update(this._iKey) |
| | | }, |
| | | update: function(e) { |
| | | return this._hasher.update(e), this |
| | | }, |
| | | finalize: function(e) { |
| | | var t = this._hasher, |
| | | n = t.finalize(e); |
| | | return t.reset(), t.finalize(this._oKey.clone().concat(n)) |
| | | } |
| | | }) |
| | | }(), g.mode.ECB = function() { |
| | | var e = g.lib.BlockCipherMode.extend(); |
| | | return e.Encryptor = e.extend({ |
| | | processBlock: function(e, t) { |
| | | this._cipher.encryptBlock(e, t) |
| | | } |
| | | }), e.Decryptor = e.extend({ |
| | | processBlock: function(e, t) { |
| | | this._cipher.decryptBlock(e, t) |
| | | } |
| | | }), e |
| | | }(), g.pad.Iso10126 = { |
| | | pad: function(e, t) { |
| | | var n = 4 * t, |
| | | r = n - e.sigBytes % n; |
| | | e.concat(g.lib.WordArray.random(r - 1)).concat(g.lib.WordArray.create([r << 24], 1)) |
| | | }, |
| | | unpad: function(e) { |
| | | var t = 255 & e.words[e.sigBytes - 1 >>> 2]; |
| | | e.sigBytes -= t |
| | | } |
| | | }, |
| | | function() { |
| | | var e = g, |
| | | t = e.lib.BlockCipher, |
| | | n = e.algo, |
| | | r = [], |
| | | i = [], |
| | | o = [], |
| | | a = [], |
| | | s = [], |
| | | d = [], |
| | | c = [], |
| | | l = [], |
| | | u = [], |
| | | h = []; |
| | | ! function() { |
| | | for (var e = [], t = 0; t < 256; t++) e[t] = t < 128 ? t << 1 : t << 1 ^ 283; |
| | | var n = 0, |
| | | f = 0; |
| | | for (t = 0; t < 256; t++) { |
| | | var p = f ^ f << 1 ^ f << 2 ^ f << 3 ^ f << 4; |
| | | p = p >>> 8 ^ 255 & p ^ 99, r[n] = p, i[p] = n; |
| | | var m = e[n], |
| | | g = e[m], |
| | | v = e[g], |
| | | y = 257 * e[p] ^ 16843008 * p; |
| | | o[n] = y << 24 | y >>> 8, a[n] = y << 16 | y >>> 16, s[n] = y << 8 | y >>> 24, d[n] = y, y = 16843009 * v ^ |
| | | 65537 * g ^ 257 * m ^ 16843008 * n, c[p] = y << 24 | y >>> 8, l[p] = y << 16 | y >>> 16, u[p] = y << 8 | y >>> |
| | | 24, h[p] = y, n ? (n = m ^ e[e[e[v ^ m]]], f ^= e[e[f]]) : n = f = 1 |
| | | } |
| | | }(); |
| | | var f = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], |
| | | p = n.AES = t.extend({ |
| | | _doReset: function() { |
| | | if (!this._nRounds || this._keyPriorReset !== this._key) { |
| | | for (var e = this._keyPriorReset = this._key, t = e.words, n = e.sigBytes / 4, i = 4 * ((this._nRounds = n + |
| | | 6) + 1), o = this._keySchedule = [], a = 0; a < i; a++) |
| | | if (a < n) o[a] = t[a]; |
| | | else { |
| | | var s = o[a - 1]; |
| | | a % n ? n > 6 && a % n == 4 && (s = r[s >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] << 8 | |
| | | r[255 & s]) : (s = r[(s = s << 8 | s >>> 24) >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] << |
| | | 8 | r[255 & s], s ^= f[a / n | 0] << 24), o[a] = o[a - n] ^ s |
| | | } for (var d = this._invKeySchedule = [], p = 0; p < i; p++) a = i - p, s = p % 4 ? o[a] : o[a - 4], d[p] = |
| | | p < 4 || a <= 4 ? s : c[r[s >>> 24]] ^ l[r[s >>> 16 & 255]] ^ u[r[s >>> 8 & 255]] ^ h[r[255 & s]] |
| | | } |
| | | }, |
| | | encryptBlock: function(e, t) { |
| | | this._doCryptBlock(e, t, this._keySchedule, o, a, s, d, r) |
| | | }, |
| | | decryptBlock: function(e, t) { |
| | | var n = e[t + 1]; |
| | | e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, c, l, u, h, i), n = e[t + |
| | | 1], e[t + 1] = e[t + 3], e[t + 3] = n |
| | | }, |
| | | _doCryptBlock: function(e, t, n, r, i, o, a, s) { |
| | | for (var d = this._nRounds, c = e[t] ^ n[0], l = e[t + 1] ^ n[1], u = e[t + 2] ^ n[2], h = e[t + 3] ^ n[3], |
| | | f = 4, p = 1; p < d; p++) { |
| | | var m = r[c >>> 24] ^ i[l >>> 16 & 255] ^ o[u >>> 8 & 255] ^ a[255 & h] ^ n[f++], |
| | | g = r[l >>> 24] ^ i[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ a[255 & c] ^ n[f++], |
| | | v = r[u >>> 24] ^ i[h >>> 16 & 255] ^ o[c >>> 8 & 255] ^ a[255 & l] ^ n[f++], |
| | | y = r[h >>> 24] ^ i[c >>> 16 & 255] ^ o[l >>> 8 & 255] ^ a[255 & u] ^ n[f++]; |
| | | c = m, l = g, u = v, h = y |
| | | } |
| | | m = (s[c >>> 24] << 24 | s[l >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & h]) ^ n[f++], g = (s[l >>> |
| | | 24] << 24 | s[u >>> 16 & 255] << 16 | s[h >>> 8 & 255] << 8 | s[255 & c]) ^ n[f++], v = (s[u >>> 24] << 24 | |
| | | s[h >>> 16 & 255] << 16 | s[c >>> 8 & 255] << 8 | s[255 & l]) ^ n[f++], y = (s[h >>> 24] << 24 | s[c >>> |
| | | 16 & 255] << 16 | s[l >>> 8 & 255] << 8 | s[255 & u]) ^ n[f++], e[t] = m, e[t + 1] = g, e[t + 2] = v, e[t + |
| | | 3] = y |
| | | }, |
| | | keySize: 8 |
| | | }); |
| | | e.AES = t._createHelper(p) |
| | | }(), |
| | | function() { |
| | | var e = g, |
| | | t = e.lib.WordArray, |
| | | n = e.enc; |
| | | |
| | | function r(e) { |
| | | return e << 8 & 4278255360 | e >>> 8 & 16711935 |
| | | } |
| | | n.Utf16 = n.Utf16BE = { |
| | | stringify: function(e) { |
| | | for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i += 2) { |
| | | var o = t[i >>> 2] >>> 16 - i % 4 * 8 & 65535; |
| | | r.push(String.fromCharCode(o)) |
| | | } |
| | | return r.join("") |
| | | }, |
| | | parse: function(e) { |
| | | for (var n = e.length, r = [], i = 0; i < n; i++) r[i >>> 1] |= e.charCodeAt(i) << 16 - i % 2 * 16; |
| | | return t.create(r, 2 * n) |
| | | } |
| | | }, n.Utf16LE = { |
| | | stringify: function(e) { |
| | | for (var t = e.words, n = e.sigBytes, i = [], o = 0; o < n; o += 2) { |
| | | var a = r(t[o >>> 2] >>> 16 - o % 4 * 8 & 65535); |
| | | i.push(String.fromCharCode(a)) |
| | | } |
| | | return i.join("") |
| | | }, |
| | | parse: function(e) { |
| | | for (var n = e.length, i = [], o = 0; o < n; o++) i[o >>> 1] |= r(e.charCodeAt(o) << 16 - o % 2 * 16); |
| | | return t.create(i, 2 * n) |
| | | } |
| | | } |
| | | }(), null == n && (n = "warningiscaution"); |
| | | var v = g.enc.Utf8.parse(n), |
| | | y = { |
| | | mode: g.mode.ECB, |
| | | padding: g.pad.Pkcs7 |
| | | }; |
| | | if (null != r && r.length > 0 && (y = { |
| | | iv: g.enc.Utf8.parse(r), |
| | | mode: g.mode.CBC, |
| | | padding: g.pad.Pkcs7 |
| | | }), "en" == e) { |
| | | var w = g.enc.Utf8.parse(t); |
| | | return g.AES.encrypt(w, v, y).toString() |
| | | } |
| | | if ("de" == e) { |
| | | var x = g.AES.decrypt(t, v, y); |
| | | return g.enc.Utf8.stringify(x).toString() |
| | | } |
| | | }, |
| | | strMD5Get: function(e) { |
| | | function t(e, t) { |
| | | return e << t | e >>> 32 - t |
| | | } |
| | | |
| | | function n(e, t) { |
| | | var n, r, i, o, a; |
| | | return i = 2147483648 & e, o = 2147483648 & t, a = (1073741823 & e) + (1073741823 & t), (n = 1073741824 & e) & (r = |
| | | 1073741824 & t) ? 2147483648 ^ a ^ i ^ o : n | r ? 1073741824 & a ? 3221225472 ^ a ^ i ^ o : 1073741824 ^ a ^ i ^ |
| | | o : a ^ i ^ o |
| | | } |
| | | |
| | | function r(e, r, i, o, a, s, d) { |
| | | var c; |
| | | return n(t(e = n(e, n(n((c = r) & i | ~c & o, a), d)), s), r) |
| | | } |
| | | |
| | | function i(e, r, i, o, a, s, d) { |
| | | var c; |
| | | return n(t(e = n(e, n(n(r & (c = o) | i & ~c, a), d)), s), r) |
| | | } |
| | | |
| | | function o(e, r, i, o, a, s, d) { |
| | | return n(t(e = n(e, n(n(r ^ i ^ o, a), d)), s), r) |
| | | } |
| | | |
| | | function a(e, r, i, o, a, s, d) { |
| | | return n(t(e = n(e, n(n(i ^ (r | ~o), a), d)), s), r) |
| | | } |
| | | |
| | | function s(e) { |
| | | var t, n = "", |
| | | r = ""; |
| | | for (t = 0; t <= 3; t++) n += (r = "0" + (e >>> 8 * t & 255).toString(16)).substr(r.length - 2, 2); |
| | | return n |
| | | } |
| | | return function(e) { |
| | | var t, d, c, l, u, h, f, p, m, g = Array(); |
| | | for (g = function(e) { |
| | | for (var t, n = e.length, r = n + 8, i = 16 * ((r - r % 64) / 64 + 1), o = Array(i - 1), a = 0, s = 0; s < n;) a = |
| | | s % 4 * 8, o[t = (s - s % 4) / 4] = o[t] | e.charCodeAt(s) << a, s++; |
| | | return a = s % 4 * 8, o[t = (s - s % 4) / 4] = o[t] | 128 << a, o[i - 2] = n << 3, o[i - 1] = n >>> 29, o |
| | | }(e = function(e) { |
| | | for (var t = "", n = 0; n < e.length; n++) { |
| | | var r = e.charCodeAt(n); |
| | | r < 128 ? t += String.fromCharCode(r) : r > 127 && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192), t += |
| | | String.fromCharCode(63 & r | 128)) : (t += String.fromCharCode(r >> 12 | 224), t += String.fromCharCode(r >> |
| | | 6 & 63 | 128), t += String.fromCharCode(63 & r | 128)) |
| | | } |
| | | return t |
| | | }(e)), h = 1732584193, f = 4023233417, p = 2562383102, m = 271733878, t = 0; t < g.length; t += 16) d = h, c = f, |
| | | l = p, u = m, f = a(f = a(f = a(f = a(f = o(f = o(f = o(f = o(f = i(f = i(f = i(f = i(f = r(f = r(f = r(f = r(f, |
| | | p = r(p, m = r(m, h = r(h, f, p, m, g[t + 0], 7, 3614090360), f, p, g[t + 1], 12, 3905402710), h, |
| | | f, g[t + 2], 17, 606105819), m, h, g[t + 3], 22, 3250441966), p = r(p, m = r(m, h = r(h, f, p, |
| | | m, g[t + 4], 7, 4118548399), f, p, g[t + 5], 12, 1200080426), h, f, g[t + 6], 17, 2821735955), m, |
| | | h, g[t + 7], 22, 4249261313), p = r(p, m = r(m, h = r(h, f, p, m, g[t + 8], 7, 1770035416), f, p, |
| | | g[t + 9], 12, 2336552879), h, f, g[t + 10], 17, 4294925233), m, h, g[t + 11], 22, 2304563134), p = |
| | | r(p, m = r(m, h = r(h, f, p, m, g[t + 12], 7, 1804603682), f, p, g[t + 13], 12, 4254626195), h, f, |
| | | g[t + 14], 17, 2792965006), m, h, g[t + 15], 22, 1236535329), p = i(p, m = i(m, h = i(h, f, p, m, |
| | | g[t + 1], 5, 4129170786), f, p, g[t + 6], 9, 3225465664), h, f, g[t + 11], 14, 643717713), m, h, g[ |
| | | t + 0], 20, 3921069994), p = i(p, m = i(m, h = i(h, f, p, m, g[t + 5], 5, 3593408605), f, p, g[t + |
| | | 10], 9, 38016083), h, f, g[t + 15], 14, 3634488961), m, h, g[t + 4], 20, 3889429448), p = i(p, m = i( |
| | | m, h = i(h, f, p, m, g[t + 9], 5, 568446438), f, p, g[t + 14], 9, 3275163606), h, f, g[t + 3], 14, |
| | | 4107603335), m, h, g[t + 8], 20, 1163531501), p = i(p, m = i(m, h = i(h, f, p, m, g[t + 13], 5, |
| | | 2850285829), f, p, g[t + 2], 9, 4243563512), h, f, g[t + 7], 14, 1735328473), m, h, g[t + 12], 20, |
| | | 2368359562), p = o(p, m = o(m, h = o(h, f, p, m, g[t + 5], 4, 4294588738), f, p, g[t + 8], 11, |
| | | 2272392833), h, f, g[t + 11], 16, 1839030562), m, h, g[t + 14], 23, 4259657740), p = o(p, m = o(m, h = o( |
| | | h, f, p, m, g[t + 1], 4, 2763975236), f, p, g[t + 4], 11, 1272893353), h, f, g[t + 7], 16, 4139469664), |
| | | m, h, g[t + 10], 23, 3200236656), p = o(p, m = o(m, h = o(h, f, p, m, g[t + 13], 4, 681279174), f, p, g[t + |
| | | 0], 11, 3936430074), h, f, g[t + 3], 16, 3572445317), m, h, g[t + 6], 23, 76029189), p = o(p, m = o(m, h = |
| | | o(h, f, p, m, g[t + 9], 4, 3654602809), f, p, g[t + 12], 11, 3873151461), h, f, g[t + 15], 16, 530742520), |
| | | m, h, g[t + 2], 23, 3299628645), p = a(p, m = a(m, h = a(h, f, p, m, g[t + 0], 6, 4096336452), f, p, g[t + |
| | | 7], 10, 1126891415), h, f, g[t + 14], 15, 2878612391), m, h, g[t + 5], 21, 4237533241), p = a(p, m = a(m, h = |
| | | a(h, f, p, m, g[t + 12], 6, 1700485571), f, p, g[t + 3], 10, 2399980690), h, f, g[t + 10], 15, 4293915773), |
| | | m, h, g[t + 1], 21, 2240044497), p = a(p, m = a(m, h = a(h, f, p, m, g[t + 8], 6, 1873313359), f, p, g[t + 15], |
| | | 10, 4264355552), h, f, g[t + 6], 15, 2734768916), m, h, g[t + 13], 21, 1309151649), p = a(p, m = a(m, h = a(h, |
| | | f, p, m, g[t + 4], 6, 4149444226), f, p, g[t + 11], 10, 3174756917), h, f, g[t + 2], 15, 718787259), m, h, g[t + |
| | | 9], 21, 3951481745), h = n(h, d), f = n(f, c), p = n(p, l), m = n(m, u); |
| | | return (s(h) + s(f) + s(p) + s(m)).toUpperCase() |
| | | }(e) |
| | | }, |
| | | AjaxData: function(e, t) { |
| | | null == e && (e = {}), null == t && (t = "thisWarning"); |
| | | var n = e; |
| | | n.timestamp = (new Date).getTime(); |
| | | var r = new Array; |
| | | for (var i in n) "object" == typeof n[i] && (n[i] = JSON.stringify(n[i])), r.push(n[i]); |
| | | r.sort(); |
| | | var o = r.join("###") + "###" + t, |
| | | a = doui.strMD5Get(o); |
| | | return n.sign = a, n |
| | | }, |
| | | AjaxRepeat: function(e, t) { |
| | | var n = { |
| | | url: "", |
| | | over: !1 |
| | | }; |
| | | n.url = t; |
| | | var r = !1; |
| | | if ("add" == e) { |
| | | for (var i = null, o = 0; o < doui.AjaxList.length; o++) |
| | | if (n.url == doui.AjaxList[o].url) { |
| | | i = o; |
| | | break |
| | | } null == i ? (doui.AjaxList.push(n), r = !0) : 1 == doui.AjaxList[i].over ? (doui.AjaxList[i].over = !1, r = !0) : |
| | | r = !1 |
| | | } else if ("over" == e) |
| | | for (o = 0; o < doui.AjaxList.length; o++) |
| | | if (t == doui.AjaxList[o].url) { |
| | | doui.AjaxList[o].over = !0, r = !0; |
| | | break |
| | | } return r |
| | | }, |
| | | AjaxPost: function(e, t, n, r) { |
| | | null == r && (r = !1); |
| | | var i = { |
| | | code: 0, |
| | | data: {}, |
| | | msg: "请求成功" |
| | | }; |
| | | if (1 == r || doui.AjaxRepeat("add", e)) { |
| | | var o = e, |
| | | a = t, |
| | | s = null; |
| | | (s = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP")).open("POST", o, !0), s.setRequestHeader( |
| | | "Content-type", "application/json"), s.withCredentials = !0; |
| | | var d = setTimeout(function() { |
| | | s.abort(), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i) |
| | | }, 3e5); |
| | | s.onreadystatechange = function() { |
| | | if (4 == s.readyState && 200 == s.status) { |
| | | null != d && clearTimeout(d), doui.AjaxRepeat("over", o); |
| | | var e = null; |
| | | s.responseText ? e = s.responseText : s.responseXML && (e = s.responseXML), doui.isJsonString(e) ? i = JSON.parse( |
| | | e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i) |
| | | } else 4 == s.readyState && (null != d && clearTimeout(d), doui.AjaxRepeat("over", o), i.code = 404, i.data = s.responseText, |
| | | i.msg = "无法链接,请检查网络", n(i)) |
| | | }, s.send(JSON.stringify(a)) |
| | | } |
| | | }, |
| | | AjaxGet: function(e, t, n, r) { |
| | | null == r && (r = !1); |
| | | var i = { |
| | | code: 0, |
| | | data: {}, |
| | | msg: "请求成功" |
| | | }; |
| | | if (1 == r || doui.AjaxRepeat("add", e)) { |
| | | var o = e, |
| | | a = t, |
| | | s = null; |
| | | s = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); |
| | | var d = o + "?"; |
| | | for (var c in a) d += c + "=" + a[c] + "&"; |
| | | d = d.substring(0, d.length - 1), s.open("GET", d, !0), s.withCredentials = !0; |
| | | var l = setTimeout(function() { |
| | | s.abort(), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i) |
| | | }, 3e5); |
| | | s.onreadystatechange = function() { |
| | | if (4 == s.readyState && 200 == s.status) { |
| | | null != l && clearTimeout(l), doui.AjaxRepeat("over", o); |
| | | var e = null; |
| | | s.responseText ? e = s.responseText : s.responseXML && (e = s.responseXML), doui.isJsonString(e) ? i = JSON.parse( |
| | | e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i) |
| | | } else 4 == s.readyState && (null != l && clearTimeout(l), doui.AjaxRepeat("over", o), i.code = 404, i.data = s.responseText, |
| | | i.msg = "无法链接,请检查网络", n(i)) |
| | | }, s.send() |
| | | } |
| | | }, |
| | | |
| | | AjaxJsonp: function(e, t, n, r) { |
| | | var system = doui.localStorageGet("system"); |
| | | if (system != null) |
| | | t.system = system; |
| | | |
| | | null == r && (r = !1); |
| | | var i = { |
| | | code: 0, |
| | | data: {}, |
| | | msg: "请求成功" |
| | | }; |
| | | if (1 == r || doui.AjaxRepeat("add", e)) { |
| | | var o = e, |
| | | a = t, |
| | | s = "douiJsonp_" + doui.strRandomGet(8); |
| | | a.callback = s; |
| | | var d = o + "?"; |
| | | for (var c in a) d += c + "=" + a[c] + "&"; |
| | | d = d.substring(0, d.length - 1), d = encodeURI(d); |
| | | var l = document.createElement("script"); |
| | | l.type = "text/javascript", l.src = d, document.getElementsByTagName("head")[0].appendChild(l); |
| | | var u = setTimeout(function() { |
| | | l && l.parentNode.removeChild(l), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i) |
| | | }, 3e5); |
| | | l.onerror = function() { |
| | | l && l.parentNode.removeChild(l), null != u && clearTimeout(u), doui.AjaxRepeat("over", o), i.code = 404, i.msg = |
| | | "无法链接,请检查网络", n(i) |
| | | }, window[s] = function(e) { |
| | | var t = e; |
| | | l && l.parentNode.removeChild(l), null != u && clearTimeout(u), doui.AjaxRepeat("over", o), "object" == typeof t ? |
| | | i = t : "string" == typeof t && doui.isJsonString(t) ? i = JSON.parse(t) : (i.code = 200, i.data = t, i.msg = |
| | | "返回数据不是json格式"), n(i) |
| | | } |
| | | } |
| | | }, |
| | | AjaxUpload: function(e, t, n, r) { |
| | | var system = doui.localStorageGet("system"); |
| | | if (system != null) |
| | | t.system = system; |
| | | var i = { |
| | | code: 0, |
| | | data: {}, |
| | | msg: "请求成功" |
| | | }, |
| | | o = e, |
| | | a = new FormData; |
| | | for (var s in t) a.append(s, t[s]); |
| | | var d = null; |
| | | if (d = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"), r) { |
| | | var c = { |
| | | total: 0, |
| | | loaded: 0, |
| | | percentage: 0 |
| | | }; |
| | | d.upload.onprogress = function(e) { |
| | | e.lengthComputable && (c.total = e.total, c.loaded = e.loaded, c.percentage = Math.round(1e3 * parseFloat(e.loaded / |
| | | e.total)) / 10, r(c)) |
| | | } |
| | | } |
| | | d.open("POST", o, !0), d.withCredentials = !0, d.onreadystatechange = function() { |
| | | if (4 == d.readyState && 200 == d.status) { |
| | | var e = null; |
| | | d.responseText ? e = d.responseText : d.responseXML && (e = d.responseXML), doui.isJsonString(e) ? i = JSON.parse( |
| | | e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i) |
| | | } else 4 == d.readyState && (i.code = 404, i.data = d.responseText, i.msg = "无法链接,请检查网络", n(i)) |
| | | }, d.send(a) |
| | | }, |
| | | isJsonString: function(e) { |
| | | try { |
| | | if ("object" == typeof JSON.parse(e)) return !0 |
| | | } catch (e) {} |
| | | return !1 |
| | | } |
| | | }, doui.windowReady(function() { |
| | | doui.sizeSet() |
| | | }), window.onresize = function() { |
| | | doui.sizeSet() |
| | | }; |