12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364 |
- //加载md5算法
- (function($) {
- 'use strict';
- /*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */
- function safe_add(x, y) {
- var lsw = (x & 0xFFFF) + (y & 0xFFFF),
- msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
- }
- /*
- * Bitwise rotate a 32-bit number to the left.
- */
- function bit_rol(num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt));
- }
- /*
- * These functions implement the four basic operations the algorithm uses.
- */
- function md5_cmn(q, a, b, x, s, t) {
- return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
- }
- function md5_ff(a, b, c, d, x, s, t) {
- return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
- }
- function md5_gg(a, b, c, d, x, s, t) {
- return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
- }
- function md5_hh(a, b, c, d, x, s, t) {
- return md5_cmn(b ^ c ^ d, a, b, x, s, t);
- }
- function md5_ii(a, b, c, d, x, s, t) {
- return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
- }
- /*
- * Calculate the MD5 of an array of little-endian words, and a bit length.
- */
- function binl_md5(x, len) {
- /* append padding */
- x[len >> 5] |= 0x80 << ((len) % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
- var i, olda, oldb, oldc, oldd,
- a = 1732584193,
- b = -271733879,
- c = -1732584194,
- d = 271733878;
- for (i = 0; i < x.length; i += 16) {
- olda = a;
- oldb = b;
- oldc = c;
- oldd = d;
- a = md5_ff(a, b, c, d, x[i], 7, -680876936);
- d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
- c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
- b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
- a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
- d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
- c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
- b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
- a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
- d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
- c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
- b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
- a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
- d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
- c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
- b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
- a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
- d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
- c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
- b = md5_gg(b, c, d, a, x[i], 20, -373897302);
- a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
- d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
- c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
- b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
- a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
- d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
- c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
- b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
- a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
- d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
- c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
- b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
- a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
- d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
- c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
- b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
- a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
- d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
- c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
- b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
- a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
- d = md5_hh(d, a, b, c, x[i], 11, -358537222);
- c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
- b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
- a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
- d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
- c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
- b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
- a = md5_ii(a, b, c, d, x[i], 6, -198630844);
- d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
- c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
- b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
- a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
- d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
- c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
- b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
- a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
- d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
- c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
- b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
- a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
- d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
- c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
- b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
- a = safe_add(a, olda);
- b = safe_add(b, oldb);
- c = safe_add(c, oldc);
- d = safe_add(d, oldd);
- }
- return [a, b, c, d];
- }
- /*
- * Convert an array of little-endian words to a string
- */
- function binl2rstr(input) {
- var i,
- output = '';
- for (i = 0; i < input.length * 32; i += 8) {
- output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
- }
- return output;
- }
- /*
- * Convert a raw string to an array of little-endian words
- * Characters >255 have their high-byte silently ignored.
- */
- function rstr2binl(input) {
- var i,
- output = [];
- output[(input.length >> 2) - 1] = undefined;
- for (i = 0; i < output.length; i += 1) {
- output[i] = 0;
- }
- for (i = 0; i < input.length * 8; i += 8) {
- output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
- }
- return output;
- }
- /*
- * Calculate the MD5 of a raw string
- */
- function rstr_md5(s) {
- return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
- }
- /*
- * Calculate the HMAC-MD5, of a key and some data (raw strings)
- */
- function rstr_hmac_md5(key, data) {
- var i,
- bkey = rstr2binl(key),
- ipad = [],
- opad = [],
- hash;
- ipad[15] = opad[15] = undefined;
- if (bkey.length > 16) {
- bkey = binl_md5(bkey, key.length * 8);
- }
- for (i = 0; i < 16; i += 1) {
- ipad[i] = bkey[i] ^ 0x36363636;
- opad[i] = bkey[i] ^ 0x5C5C5C5C;
- }
- hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
- return binl2rstr(binl_md5(opad.concat(hash), 512 + 128));
- }
- /*
- * Convert a raw string to a hex string
- */
- function rstr2hex(input) {
- var hex_tab = '0123456789abcdef',
- output = '',
- x,
- i;
- for (i = 0; i < input.length; i += 1) {
- x = input.charCodeAt(i);
- output += hex_tab.charAt((x >>> 4) & 0x0F) +
- hex_tab.charAt(x & 0x0F);
- }
- return output;
- }
- /*
- * Encode a string as utf-8
- */
- function str2rstr_utf8(input) {
- return unescape(encodeURIComponent(input));
- }
- /*
- * Take string arguments and return either raw or hex encoded strings
- */
- function raw_md5(s) {
- return rstr_md5(str2rstr_utf8(s));
- }
- function hex_md5(s) {
- return rstr2hex(raw_md5(s));
- }
- function raw_hmac_md5(k, d) {
- return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d));
- }
- function hex_hmac_md5(k, d) {
- return rstr2hex(raw_hmac_md5(k, d));
- }
- $.md5 = function(string, key, raw) {
- if (!key) {
- if (!raw) {
- return hex_md5(string);
- } else {
- return raw_md5(string);
- }
- }
- if (!raw) {
- return hex_hmac_md5(key, string);
- } else {
- return raw_hmac_md5(key, string);
- }
- };
- }(typeof jQuery === 'function' ? jQuery : this));
- var Global = {
- ICON_HINT: 0,
- ICON_ERROR: 2,
- ICON_ASK: 3,
- ICON_LOCK: 4,
- ICON_OK: 1,
- ICON_LOADING: 16,
- hRate: 1,
- wRate: 1,
- _autoLayoutFunc: null,
- //页面初始化事件。主要处理元素自适应布局。
- RegAutoLayoutFunc: function(func) {
- this._autoLayoutFunc = func;
- //注册事件后,立即执行一次
- func();
- },
- uiWidth: 1920, ////UI设计稿高度
- uiHeight: 1080, //UI设计稿宽度
- //自增序列值。通过GetSeqNext获取新的值
- _seqvalue: (new Date().getTime() + '').substring(0, 10),
- params: {},
- AccessUrl: "",
- Absolute_path: "/home/go/project/platform_service/", //绝对路径
- //初始化接口地址
- InitAccessUrl: function() {
- if (window.location.hostname == "www.jujutong.cloud" || window.location.hostname == "police-s.jujutong.cloud" || window.location.hostname == "police-o.jujutong.cloud") {
- //正式云平台
- this.AccessUrl = "http://www.jujutong.cloud:18010/";
- this.params.authorityUrl = "/login.html";
- } else if (window.location.hostname == "127.0.0.1" || window.location.hostname == "localhost") {
- //开发环境
- this.AccessUrl = window.location.protocol + "//" + window.location.host;
- this.params.authorityUrl = "/static/login.html";
- } else {
- //无效的访问
- this.AccessUrl = window.location.protocol + "//" + window.location.hostname + ":" + window.location.port + "/";
- this.params.authorityUrl = "/static/login.html";
- }
- },
- InitRootFontSize: function() {
- var contentHeight = $(window).height();
- var contentWidth = $(window).width();
- hRate = contentHeight / (this.uiHeight == null ? 1080 : this.uiHeight);
- wRate = contentWidth / (this.uiWidth == null ? 1920 : this.uiWidth);
- $("html").css("font-size", (12 * wRate) + "px");
- },
- RandomString: function(e) {
- e = e || 32;
- var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
- a = t.length,
- n = "";
- for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
- return n;
- },
- InitAjaxSetup: function() {
- if (typeof $ === 'undefined')
- return;
- var randomString = function(e) {
- e = e || 32;
- var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
- a = t.length,
- n = "";
- for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
- return n;
- };
- var token = "",
- role = "";
- token = $.trim(localStorage.getItem("sessionid"));
- var userinfo = JSON.parse(localStorage.getItem("userinfo"));
- var permission = ["all"];
- if (userinfo != null && userinfo.role != 1) {
- permission = [];
- var funcs = userinfo["funcs"];
- for (var i = 0; i < (funcs == null ? 0 : funcs.length); i++) {
- var item = funcs[i];
- permission.push(item["code"]);
- }
- }
- Global.params = {
- authorityUrl: "/static/login.html",
- token: token,
- roles: userinfo != null ? userinfo.role : "",
- permission: permission.join(","),
- rootorg: "",
- "userinfo": userinfo,
- "enable_module": ''
- };
- this.accessControl();
- $.ajaxSetup({
- beforeSend: function(jqXHR, settings) {
- if (settings.url.indexOf("/api/") > -1) {
- var now = new Date().getTime();
- var nonce = now + randomString(6);
- var postdata = (settings.multipart != null || settings.multipart == true) ? "" : $.trim(settings.data);
- var getparam = settings.url.split("?");
- var getdata = getparam.length == 0 ? "" : $.trim(getparam[1]);
- var signparam = postdata == "" ? getdata : postdata + (getdata != "" ? ("&" + getdata) : "");
- signparam = (($.trim(signparam) != "" ? signparam + "&" : "") + "auth_nonce=" + nonce + "&auth_time=" + now).split("&").sort().join("&");
- signparam = signparam.replace(/\+/gi, "%20");
- signparam = decodeURIComponent(signparam);
- jqXHR.setRequestHeader("auth_time", now);
- jqXHR.setRequestHeader("auth_nonce", nonce);
- jqXHR.setRequestHeader("sign", $.md5(signparam));
- //console.log(signparam);
- }
- },
- complete: function(jqXHR, textStatus) {
- //请求完成处理
- },
- statusCode: {
- 401: function() {
- //跳转到认证页面
- if (Global.params.authorityUrl) {
- //localStorage.removeItem("sessionid");
- //localStorage.removeItem("userinfo");
- window.location.href = Global.params.authorityUrl;
- }
- },
- 403: function() {
- //跳转到认证页面
- if (Global.params.authorityUrl) {
- window.location.href = Global.params.authorityUrl;
- }
- },
- 450: function() {
- //跳转到登录页面
- if (Global.params.authorityUrl) {
- window.location.href = "/static/login.html";
- }
- }
- },
- headers: {
- Authorization: 'Bearer ' + Global.params['token']
- },
- timeout: (1000 * 60 * 5)
- });
- },
- //保持登录。token自动刷新。在需要一直运行的界面上初始化时调用该方法
- KeepAlive: function() {
- setInterval(function() {
- $.post("/api/keep-alive");
- }, 1000 * 60);
- },
- get: function(key) {
- if (this.params.hasOwnProperty(key)) {
- return this.params[key];
- }
- return null;
- },
- accessControl: function($targetEle) {
- //禁用未启用的模块
- var modulelist = $.trim(Global.get("enable_module"));
- if (modulelist != '') {
- modulelist = JSON.parse(modulelist);
- for (var k in modulelist) {
- var m = modulelist[k].m,
- v = modulelist[k].v;
- if (v != null && (v == 0 || v == '0' || v == false)) {
- $("li[access-code='" + m + "']").remove();
- }
- }
- }
- //根据当前用户的权限进行操作控制
- var permissionlist = Global.get("permission");
- if (permissionlist == "all") {
- $("#m_ver_menu li[access-code='pl_init']").remove();
- $("#m_ver_menu li[access-code!='pl_init']").removeClass('hidden');
- return; //超级管理员
- }
- if (permissionlist == "pl_init") {
- $("#m_ver_menu li[access-code!='pl_init']").remove();
- $("#m_ver_menu li[access-code='pl_init']").removeClass('hidden').find('a').trigger('click');
- return;
- }
- permissionlist = "," + permissionlist + ",";
- var needControlEle = $targetEle != null ? $targetEle.find(".accessControl") : $(".accessControl"); //获取需要权限控制的元素
- //业务权限控制
- //需要进行权限控制的元素均添加class:accessControl,并通过access-code属性设置权限代码,权限代码格式:
- //pl_MODEL_XXX:MODEL表示模块编码,如pl_deptstaff;XXX表示业务操作代码,如exp表示导出。
- $.each(needControlEle, function(ind, e) {
- var item = $(e),
- code = $.trim(item.attr('access-code'));
- if (code != '') {
- code = "," + code + ",";
- if (permissionlist.indexOf(code) == -1) {
- item.remove();
- } else {
- item.removeClass('hidden');
- }
- }
- });
- },
- ToTreeData: function(data, childrenArrayName) {
- if (childrenArrayName == null || childrenArrayName == "")
- childrenArrayName = "children";
- if (data == null) return [];
- // 删除 所有 children,以防止多次调用
- data.forEach(function(item) {
- if (childrenArrayName == null)
- delete item.children;
- else
- delete item[childrenArrayName];
- });
- // 将数据存储为 以 id 为 KEY 的 map 索引数据列
- var map = {};
- data.forEach(function(item) {
- map[item.id] = item;
- });
- var val = [];
- data.forEach(function(item) {
- // 以当前遍历项,的pid,去map对象中找到索引的id
- var parent = map[item.pid];
- if (parent && item.id != item.pid) {
- (parent[childrenArrayName] || (parent[childrenArrayName] = [])).push(item);
- } else {
- val.push(item);
- }
- });
- return val;
- },
- //创建zTree的异步树,页面上需要引用以下js和css
- //<link rel="stylesheet" type="text/css" href="/static/css/zTreeStyle/zTreeStyle.css">
- //<script type="text/javascript" src="/static/js/ztree/jquery.ztree.core-3.5.js"></script>
- //$ele:显示树节点的元素对象
- //opt:初始配置项.{url:"接口地址","idKey":"","pidKey":"","nameKey":"","rootid":"","rootpid":"",callback:{}}
- Ztree: {
- zTreeObj: null,
- Init: function($ele, opt) {
- opt = opt || {
- callback: {}
- };
- opt.callback = opt.callback || {};
- // zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解)
- var zTreeSetting = {
- check: opt.check || {
- enable: false,
- chkStyle: "radio",
- radioType: "level"
- },
- data: {
- key: {
- name: opt.nameKey || "title",
- children: "children"
- },
- simpleData: {
- enable: true,
- idKey: opt.idKey || "id",
- pIdKey: opt.pidKey || "pid",
- rootPId: opt.rootpid || 0
- }
- },
- usericon: {
- // 折叠icon
- OPEN: "open fa ftopen fa-folder-open", // 打开文件图标
- CLOSE: "close fa ftclose fa-folder", // 折叠文件图标
- OPENDK: 'open icon-folder ace-icon tree-minus', // 打开状态图标
- CLOSEZD: 'close icon-folder ace-icon tree-plus', // 折叠状态图标
- DOCU: "docu",
- // 子节点图标
- CHILDRENNODE: "fa-bookmark",
- // 复选框图标
- UNFACHECK: "fa fa-check",
- FACHECKED: "fa fa-times",
- // 编辑图标
- EDIT: "fa-pencil-square-o",
- // 移除图标
- REMOVE: "fa-eraser",
- // 增加节点图标
- ADDNODE: "fa-plus-square"
- },
- async: {
- enable: true,
- dataType: "text",
- type: "get",
- url: opt.url,
- autoParam: [opt.idKey || "id", opt.pidKey || "pid"].concat(opt.AjaxParam || []),
- dataFilter: opt.callback.dataFilter || function(treeId, parentNode, childNodes) {
- for (var i = 0; i < childNodes["data"].length; i++) {
- childNodes["data"][i]["checked"] = parentNode.checked;
- }
- return childNodes["data"];
- }
- },
- callback: opt.callback,
- view: {
- fontCss: opt.FontCss || null,
- showTitle: false,
- selectedMulti: false,
- expandSpeed: "",
- showLine: false,
- addDiyDom: opt.DiyDom || null
- }
- };
- zTreeSetting.usericon.CHILDRENNODE = $.trim(opt.childrenNodeIcon) == "" ? "fa-home" : opt.childrenNodeIcon;
- var initQueryParam = {};
- initQueryParam[opt.idKey || "id"] = opt.rootid || "";
- $.getJSON(opt.url, initQueryParam, function(result) {
- if (result["code"] == 0) {
- var treeData = result["data"];
- Global.Ztree.zTreeObj = $.fn.zTree.init($ele, zTreeSetting, treeData);
- //让第一个父节点展开
- var rootNode_0 = Global.Ztree.zTreeObj.getNodeByParam((opt.pidKey || "pid"), 0, null);
- Global.Ztree.zTreeObj.expandNode(rootNode_0, true, false, false, false);
- if (opt.callback != null && opt.callback.onInitLoad != null) {
- //初始化数据加载完成回调处理
- opt.callback.onInitLoad(rootNode_0);
- }
- }
- });
- }
- },
- setModuleTitle: function(title) {
- $(".module_nav").html(title);
- },
- GetFormData: function(filtername, form) {
- form = form || $(".layui-form[lay-filter='" + filtername + "']");
- var datas = {};
- form.find("input,select,textarea").each(function() {
- var t = $(this);
- var eleId = $.trim(t.attr("id"));
- if (eleId == "") return;
- if ("checkbox,radio".indexOf(t[0].type) > -1 && !t[0].checked) return;
- datas[eleId] = t.val();
- if (t.attr("lay-verify") == "required" && t.parent().is(":visible") && datas[eleId] == "") {
- datas = null;
- layer.tips("此项为必填项!", t.parent()[0], {
- tips: [3, "red"]
- });
- return false;
- }
- });
- return datas;
- },
- OpenDialog: function(container, set_margin_left) {
- var total_height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- $(".clearn").show().css("height", total_height + "px");
- container.css("z-index", Global.GetSeqNext()).show();
- var left = parseInt(container.width() / 2);
- left = -left;
- var top = parseInt(container.height() / 2);
- top = -top;
- if (set_margin_left) {
- container.css({
- "margin-left": left + "px",
- "margin-top": top + "px"
- });
- }
- if (container.find("input").length > 0)
- container.find("input:first").focus();
- },
- CloseDialog: function(container) {
- if (container == null)
- $(".layout_dialog,.clearn").hide();
- else {
- container.hide();
- $(".clearn").hide();
- }
- },
- GetCurrentDate: function() {
- var date = new Date();
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var day = date.getDate();
- return year + "-" + (month < 10 ? "0" + month : month) + "-" + (day < 10 ? "0" + day : day);
- },
- GetCurrentDateTime: function(type) {
- var date = new Date(),
- result = "";
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var day = date.getDate();
- var hour = date.getHours();
- result = year + "-" + (month < 10 ? "0" + month : month) + "-" + (day < 10 ? "0" + day : day);
- if (type == "s") //一般为开始时间
- result += " " + "00:00:00";
- else if (type == "e") //-般为结束时间
- {
- date = date.setDate(date.getDate() + 1);
- date = new Date(date);
- year = date.getFullYear();
- month = date.getMonth() + 1;
- day = date.getDate();
- result = year + "-" + (month < 10 ? "0" + month : month) + "-" + (day < 10 ? "0" + day : day);
- result += " 00:00:00";
- }
- return result;
- },
- FunctionControl: function() {
- var userInfo = localStorage.getItem("userinfo");
- userInfo = JSON.parse(userInfo);
- $("#login_user_name").html(userInfo["name"]);
- if (userInfo["role"] != "1") {
- }
- },
- //获取一个10位长度的序列值。每调用一次其值增加1
- GetSeqNext: function() {
- this._seqvalue++;
- return this._seqvalue;
- },
- //修改自己的登录密码
- ModifyMyPwd: function() {
- layer.confirm("<div style='text-align:center;'><span>请输入原密码</span></div>" +
- "<div style='text-align:center;'><input id='modify_my_oldpwd' type=password value='' placeholder='请输入6-32个字符' maxlength=32></div>" +
- "<div style='text-align:center;'><span>请填写新密码</span></div>" +
- "<div style='text-align:center;'><input id='modify_my_pwd' type=password value='' placeholder='请输入6-32个字符' maxlength=32></div>" +
- "<div style='text-align:center;'><span>请再次填写密码</span></div>" +
- "<div style='text-align:center;'><input id='modify_my_pwd2' type=password value='' placeholder='请输入6-32个字符' maxlength=32></div>", {
- "title": "修改密码"
- },
- function(index) {
- var old = $.trim($("#modify_my_oldpwd").val());
- if (old == "") {
- layer.msg("原密码不能为空!", {});
- return false;
- }
- var v = $.trim($("#modify_my_pwd").val());
- if (v == "") {
- layer.msg("新密码不能为空!", {});
- return false;
- }
- if (v != $.trim($("#modify_my_pwd2").val())) {
- layer.msg("两次密码不一致!", {});
- return false;
- }
- if (v.length < 6 || v.length > 16) {
- layer.msg("新密码长度无效!", {});
- return;
- }
- $.post(Global.AccessUrl + "/api/resetUserPwd", {
- "newpwd": Tools.GetPassWord(v),
- "oldpwd": Tools.GetPassWord(old)
- }, function(result) {
- if (result["returncode"] == 200) {
- layer.msg("操作成功!");
- } else {
- layer.msg("操作失败:" + result["msg"]);
- }
- });
- });
- }
- }
- Global["SCD_COMP_ATTR_CONST"] = {
- "ied.config_version": "配置版本",
- "ied.desc": "装置描述",
- "ied.manufacturer": "厂商",
- "ied.name": "装置名称",
- "ied.type": "装置类型",
- }
- function MqttClient(host, port, topics, callback) {
- var self = this;
- const options = {
- // 超时时间
- connectTimeout: 4000,
- // 认证信息
- clientId: 'police_s_js_' + new Date().getTime(),
- //username: "",
- //password: "", //$.md5(userinfo["account"] + userinfo["userid"]),
- // 心跳时间
- keepalive: 30,
- clean: true,
- //离线时发送的topic
- /*will: {
- "topic": "",
- "payload": "offline",
- "QoS": 0,
- "retain": true
- }*/
- }
- var WebSocket_URL = "";
- if (port == null) port = "8083";
- WebSocket_URL = 'ws://' + host + ':' + port + '/mqtt';
- this.MqttClient = null;
- this.receivedFunList = [];
- this.connCallback = callback;
- this.Conn = function(host, port) {
- this.MqttClient = mqtt.connect(WebSocket_URL, options);
- this.MqttClient.on('connect', () => {
- console.log('连接成功');
- if (self.connCallback != null) self.connCallback();
- if (topics != null) {
- self.MqttClient.subscribe(
- topics, {
- qos: 0
- },
- (err) => {
- console.log(err || '订阅成功');
- }
- );
- }
- });
- this.MqttClient.on('reconnect', (error) => {
- console.log('正在重连:', error)
- });
- this.MqttClient.on('error', (error) => {
- console.log('连接失败:', error)
- });
- this.MqttClient.on('offline', () => {
- console.log('连接断开')
- });
- this.MqttClient.on('close', () => {
- console.log('已下线')
- });
- // 监听接收消息事件
- this.MqttClient.on('message', (topic, message) => {
- //console.log('收到来自', topic, '的消息', message.toString());
- if (self.receivedFunList == null) return;
- for (var k in self.receivedFunList) {
- if (topic.indexOf(k) > -1) {
- if (self.receivedFunList[k] != null) self.receivedFunList[k](topic, message.toString());
- }
- }
- });
- }
- this.SubscribeTopic = function(topics) {
- this.MqttClient.subscribe(
- topics, {
- qos: 0
- },
- (err) => {
- console.log(err || '订阅成功');
- }
- );
- }
- this.AddReceivedMqttMessage = function(topic, callback) {
- this.receivedFunList[topic] = callback;
- }
- this.SendMqttMessage = function(topic, jsonmsg, callback) {
- this.MqttClient.publish(topic, jsonmsg, {
- qos: 0,
- rein: true
- }, (error) => {
- if (error != null) console.log(error)
- else {
- if (callback) callback();
- }
- })
- }
- if (host == null) {
- $.getJSON(Global.AccessUrl + "/api/getSysParamList", {
- "param_name": "Mqtt_JS_URL"
- }, function(r) {
- if (r.code != 0) {
- return;
- }
- if (r.data == null || r.data.length == 0) return;
- mqtturl = r.data[0].param_value;
- mqtturlPart = mqtturl.split(":");
- WebSocket_URL = 'ws://' + mqtturl + '/mqtt';
- self.Conn(mqtturlPart[0], mqtturlPart[1]);
- })
- } else {
- this.Conn(host, port);
- }
- }
- var menuObject = {
- HrefUrl: function(url) {
- if (url == null || url == "")
- return false;
- $(".main-body").load(url, function(result) {});
- }
- }
- var Tools = {
- html_encode: function(str) {
- var s = "";
- if (str.length == 0) return "";
- s = str.replace(/&/g, ">");
- s = s.replace(/</g, "<");
- s = s.replace(/>/g, ">");
- s = s.replace(/ /g, " ");
- s = s.replace(/\'/g, "'");
- s = s.replace(/\"/g, """);
- s = s.replace(/\n/g, "<br>");
- return s;
- },
- GetPassWord: function(str) {
- var val = SmCrypto.doSm3AndSm2Encrypt(str) + "0000",
- ascCode = 0;
- for (var i = 0; i < str.length; i++) {
- ascCode = str.charCodeAt(i).toString(16);
- if (ascCode.length == 1)
- val += "00" + ascCode;
- else if (ascCode.length == 2)
- val += "0" + ascCode;
- else
- val += ascCode;
- }
- return val;
- },
- BindTable: function(tableParameter) {
- var token = $.trim(localStorage.getItem("sessionid"));
- var token2 = "police-s-admin-" + Global.RandomString(11);
- tableParameter["headers"] = {
- "Authorization": "Bearer " + token,
- "auth_nonce": token2
- };
- if (!tableParameter.hasOwnProperty("method"))
- tableParameter["method"] = "get";
- if (!tableParameter.hasOwnProperty("cellMinWidth"))
- tableParameter["cellMinWidth"] = 80;
- if (!tableParameter.hasOwnProperty("height")) {
- tableParameter["height"] = $(".main-body").height() - 140;
- }
- if (!tableParameter.hasOwnProperty("page")) {
- tableParameter["page"] = true;
- }
- if (!tableParameter.hasOwnProperty("limit")) {
- tableParameter["limit"] = 20;
- }
- if (!tableParameter.hasOwnProperty("loading")) {
- tableParameter["loading"] = true;
- }
- tableParameter["defaultToolbar"] = [];
- if (!tableParameter.hasOwnProperty("request")) {
- tableParameter["request"] = {
- pageName: 'pageindex',
- limitName: 'pagesize'
- };
- }
- layui.use(['table'], function() {
- layui.table.render(tableParameter)
- });
- },
- GetOrgName: function(container, orgId, callback) {
- $.getJSON("/api/get_org_name", {}, function(rturnData) {
- if (rturnData["code"] == 0) {
- var data = rturnData["data"];
- $.each(data, function(index, item) {
- if (orgId != null && orgId != "" && item.id == orgId) {
- container.append(new Option(item.name, item.id, false, true));
- } else {
- container.append(new Option(item.name, item.id));
- }
- });
- layui.form.render("select");
- if (callback != null && typeof(callback) === "function") {
- callback(data);
- }
- }
- });
- },
- //设置声音报警开关状态
- SetAudioState: function(state) {
- window.localStorage.setItem("audio-alert", state);
- },
- Loading2Ok: function(ele) {
- if (ele == null) return;
- ele.find(".layui-icon-loading-1").attr("class", "layui-icon layui-icon-ok-circle");
- },
- OkIcon: function(css) {
- var style = css != null ? css : "margin:0 1rem";
- var icon = "<i class='layui-icon layui-icon-ok-circle' style='" + style + "'></i>";
- return icon;
- },
- LoadingIcon: function(css) {
- var style = css != null ? css : "margin:0 1rem";
- var icon = "<i class='layui-icon layui-icon-loading-1 layui-anim layui-anim-rotate layui-anim-loop' style='" + style + "'></i>";
- return icon;
- },
- LoadingText: function(message, color) {
- var htmlObject = new Array();
- htmlObject.push("<div style='width:100%;padding-top: 0%;text-align:center;font-size:1.8rem;color:" + (color == null ? "#cccccc" : color) + "'>");
- htmlObject.push("<i class='layui-icon layui-icon-loading-1 layui-anim layui-anim-rotate layui-anim-loop' style='margin-right:10px'></i>");
- if (message != null && message != "")
- htmlObject.push("<span>" + message + "</span>");
- else
- htmlObject.push("<span>正在加载中...</span>");
- htmlObject.push("</div>");
- return htmlObject.join("");
- },
- HintText: function(message, color) {
- var htmlObject = new Array();
- htmlObject.push("<div style='width:100%;padding-top: 0%;text-align:center;font-size:1.8rem;color:" + (color == null ? "#cccccc" : color) + "'>");
- htmlObject.push("<i class='layui-icon layui-icon-tips' style='margin-right:10px'></i>");
- if (message != null && message != "")
- htmlObject.push("<span>" + message + "</span>");
- else
- htmlObject.push("<span>正在加载中...</span>");
- htmlObject.push("</div>");
- return htmlObject.join("");
- },
- ShowBigImg: function(e, sizeW, sizeH) {
- var imgThis = $(e),
- src = $.trim(imgThis.attr("src"));
- if (src == "" || src.indexOf("imgerror.png") > -1 || src.indexOf("userhead.png") > -1) return;
- src = src.replace(/0\_small/gi, "_big").replace(/SNAP/gi, "BACKGROUND");
- /*var showDiv = $("#imgBigShow");
- if (sizeW == null) sizeW = 500;
- if (sizeH == null) sizeH = 500;
- if (showDiv.length == 0) {
- $("body").append("<div style='position: absolute;width: " + sizeW + "px;height: " + sizeW + "px;top: 50%;left: 50%;margin-left: -" + (sizeW / 2) + "px;margin-top: -" + (sizeH / 2) + "px;z-index: " + Global.GetSeqNext() + ";overflow: auto;background-color: #ffffff;border:2px solid #7d7dbf;text-align: center' class='imgBigShow' id='imgBigShow'><div style='float:left;width:100%;height:35px;background-color:#1E9FFF;'><span style='float:right;margin:10px;cursor:pointer;color: #fff;' onclick='$(\"#imgBigShow\").remove()'>X</span></div><a href='" + src + "' target=_blank><img title='点击查看原图' style='padding: 20px;max-width:" + (sizeW - 40) + "px;max-height:" + (sizeH - 20) + "px;' src='" + src + "'></a></div>");
- showDiv = $("#imgBigShow");
- } else {
- showDiv.find("a").attr("href", src).find("img").attr("src", src);
- }
- showDiv.removeClass("hide");*/
- var ind = layui.layer.open({
- type: 1,
- maxmin: true,
- resize: true,
- scrollbar: true,
- title: "查看原图",
- area: [1920 * 0.7 * wRate + "px", 1080 * 0.7 * hRate + "px"],
- content: "<img style='width:100%;height:100%' src='" + src + "'>"
- });
- $("#layui-layer" + ind).css("z-index", Global.GetSeqNext());
- },
- TransImgUrl: function(sourceSrc) {
- if (sourceSrc == null || sourceSrc == "") {
- return "/static/images/userhead.png";
- }
- if (sourceSrc.indexOf("http") == 0) {
- return sourceSrc;
- }
- sourceSrc = sourceSrc.replace("/home/go/project/platform_service", "");
- return Global.AccessUrl + sourceSrc;
- },
- SortBy: function(attr, rev) {
- //第二个参数为true or false 若没有传递 默认升序排列
- if (rev == undefined) {
- rev = 1;
- } else {
- rev = (rev) ? 1 : -1;
- }
- return function(a, b) {
- a = a[attr];
- b = b[attr];
- if (a < b) {
- return rev * -1;
- }
- if (a > b) {
- return rev * 1;
- }
- return 0;
- }
- },
- AlertStart: function(ele) {
- function alertTable(t) {
- this.$t = $(t);
- this.border = "2";
- var self = this;
- this.start = function() {
- if (this.$t.length == 0) {
- return;
- }
- setTimeout(function() {
- var trs = self.$t.find("tr[isnew='1']");
- if (trs.length > 0) {
- self.border = self.border == "2" ? "0" : "2";
- trs.css("border-bottom", self.border + "px solid red");
- }
- self.start();
- }, 500);
- }
- }
- var newa = new alertTable(ele);
- newa.start();
- },
- AlwaysTimer: function() {
- var time = new Date();
- var year = time.getFullYear();
- var month = time.getMonth() + 1;
- var date = time.getDate();
- var hour = time.getHours();
- var minutes = time.getMinutes();
- var seconds = time.getSeconds();
- month = month < 10 ? "0" + month : month;
- date = date < 10 ? "0" + date : date;
- if (hour < 10) {
- hour = "0" + hour;
- }
- if (minutes < 10) {
- minutes = "0" + minutes;
- }
- if (seconds < 10) {
- seconds = "0" + seconds;
- }
- $(".yyyymmdd").html(year + "-" + month + "-" + date);
- $(".week").html(Tools.GetWeek());
- $(".hour_minute").html(hour + ":" + minutes + ":" + seconds);
- setTimeout('Tools.AlwaysTimer()', 1000);
- },
- GetWeek: function() {
- var time = new Date();
- var day = time.getDay();
- var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
- return weeks[day];
- },
- PlayVideo: function(title, url, errorCall) {
- var tid = $.trim(localStorage.getItem("tid"));
- if (tid == "") {
- if (errorCall != null) errorCall();
- }
- //获取本地是否安装播放客户端程序.未安装时采用web播放
- $.getJSON(Global.AccessUrl + "/api/version/get_client", {
- "clientname": tid,
- "type": "ffplayer_client"
- }, function(d) {
- if (d.returncode == 200) {
- layer.msg("正在载入远程视频流...需要耐心等待一会(约12秒)", {
- icon: 6,
- time: 15000,
- skin: "tips_css"
- });
- $.post(Global.AccessUrl + "/api/net/video/play", {
- "url": url,
- "title": title,
- "clientname": tid,
- }, function(r) {
- if (r.returncode != 200) {
- layer.msg(r.msg, {
- time: 3000,
- skin: "tips_css"
- });
- return;
- }
- });
- } else {
- if (errorCall != null) errorCall();
- }
- })
- },
- ExpExcel: function(para) {
- layer.msg("正在导出数据中...", {
- timer: 0
- })
- $.post(Global.AccessUrl + "/api/expTableData", para, function(r) {
- layer.closeAll()
- if (r.code != 0) {
- DialogObject.Msg(r["msg"]);
- return;
- } else {
- layer.confirm("<span style='color: #233C7F;'>数据文件已生成完成,<a onclick='layer.closeAll()' target=_blank href='/" + r.data + "' style='color: blue;font-size: 1.6rem;text-decoration-line: revert;'>点击立即下载</a></span>", {
- btn: ['关闭'],
- icon: 1,
- title: "数据导出",
- zIndex: Global.GetSeqNext(),
- btn1: function() {
- layer.closeAll()
- }
- });
- }
- })
- },
- CopyTextData: function(e, txt) {
- //$(e).stopPropagation();
- var textArea = document.createElement("textarea");
- textArea.id = "tmp_copydata_input"
- textArea.style.position = 'fixed';
- textArea.style.top = -1000;
- textArea.style.left = -1000;
- textArea.style.width = '2em';
- textArea.style.height = '2em';
- textArea.style.background = 'transparent';
- textArea.value = txt;
- document.body.appendChild(textArea);
- textArea.select();
- try {
- var successful = document.execCommand('copy');
- var msg = successful ? '数据已成功复制到剪贴板' : '该浏览器不支持点击复制到剪贴板';
- layer.msg(msg);
- $('#tmp_copydata_input').remove();
- } catch (err) {
- layer.msg('该浏览器不支持点击复制到剪贴板');
- }
- },
- GetMapDiffItems: function(t1, t2) {
- var result = {
- "_add_cnt": 0,
- "_del_cnt": 0,
- "_edit_cnt": 0,
- "add": {},
- "del": {},
- "edit": {}
- };
- for (var k in t1) {
- if (t2[k] == null) {
- result.add[k] = t1[k];
- result._add_cnt++;
- } else if ((t2[k] != t1[k])) {
- result.edit[k] = [t1[k], t2[k]];
- result._edit_cnt++;
- }
- }
- for (var k in t2) {
- if (t1[k] == null) {
- result.del[k] = t2[k];
- result._del_cnt++;
- }
- }
- return result
- }
- }
- //报警信息显示
- var AlertWin = {
- window: null,
- Init: function() {
- this.window = $("#alert_window")
- },
- MoveTo: function(t) {
- var $t = $(t);
- var jd = $.trim($t.attr("jd"));
- var wd = $.trim($t.attr("wd"));
- if (jd == "" || wd == "") {
- DialogObject.Msg("设备未设置坐标,定位失败!");
- return;
- }
- if (!$("#container_map").is(":visible")) return;
- if (jd * 1 < 1 || wd * 1 < 1) {
- DialogObject.Msg("设备未设置有效坐标,定位失败!");
- return;
- }
- MapObject.SetMarker({
- "url": "/static/images/marker_point4.png"
- }, jd * 1, wd * 1);
- MapObject.MoveTo(jd * 1, wd * 1, 19);
- },
- RemoveOne: function(t) {
- var $t = $(t);
- $t.parent().remove();
- if (this.window.find(".alert_item").length == 0) {
- this.window.addClass("hidden");
- }
- },
- Show: function(alertinfo) {
- if (alertinfo.devicealert == "doorlock" && ("用户布防,用户撤防".indexOf($.trim(alertinfo.event)) > -1)) {
- return;
- }
- var win = this.window;
- if (win.hasClass("hidden")) {
- var w = win.width(),
- h = win.height();
- win.css({
- position: "absolute",
- top: ($("body").height() * hRate - 100) / 5,
- left: ($("body").width() * wRate - 480) / 2,
- bottom: "auto",
- width: "480px"
- });
- win.removeClass("hidden");
- win.find(".dataitemlist").css({
- "min-height": "100px",
- "max-height": "300px",
- "overflow-y": "auto"
- });
- }
- var h = template("alert_list_item_tpl", alertinfo);
- win.find(".dataitemlist").append(h).find(".alert_item").off().on("mouseover", function() {
- var t = $(this);
- t.find(".btn_cancel").removeClass("hidden");
- }).on("mouseout", function() {
- var t = $(this);
- t.find(".btn_cancel").addClass("hidden");
- });
- win.find(".dataitemlist .camera_location").off().on("click", function() {
- var t = $(this),
- url = t.attr("video_url");
- if (url == "") return;
- Tools.PlayVideo("现场视频", url);
- });
- var startAudio = $.trim(window.localStorage.getItem("audio-alert"));
- if (startAudio != "1") {
- //判断是否开启了声音报警。静音图标未隐藏表示不启用声音报警,反之表示开启声音报警
- return;
- } //判断是否关联的视频,如果关联了则播放视频
- var video_url = $.trim(alertinfo["video_url"]);
- if (video_url != "") {
- Tools.PlayVideo("现场视频", video_url);
- }
- //触发声音报警
- var audio = new Audio("/static/images/14141.mp3");
- audio.play();
- /*
- var strAudio = "<audio id='audioPlay' src='/static/images/14141.mp3' hidden='true'>";
- if ($("body").find("audio").length <= 0)
- $("body").append(strAudio);
- var audio = document.getElementById("audioPlay");
- //浏览器支持 audion
- audio.play();*/
- }
- }
- var setPrefix = function(prefixIndex) {
- let result = '';
- let span = ' '; //缩进长度
- let output = [];
- for (let i = 0; i < prefixIndex; ++i) {
- output.push(span);
- }
- result = output.join('');
- return result;
- };
- var formateXml = function(xmlStr) {
- let that = this;
- let text = xmlStr;
- //使用replace去空格
- text =
- '\n' +
- text
- .replace(/(<\w+)(\s.*?>)/g, ($0, name, props) => {
- return name + ' ' + props.replace(/\s+(\w+=)/g, ' $1');
- })
- .replace(/>\s*?</g, '>\n<');
- //处理注释,对注释进行编码
- text = text
- .replace(/\n/g, '\r')
- .replace(/<!--(.+?)-->/g, function($0, text) {
- return '<!--' + escape(text) + '-->';
- })
- .replace(/\r/g, '\n');
- //调整格式 以压栈方式递归调整缩进
- let rgx = /\n(<(([^\?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(?:(\/)>)|(?:<(\/)\2>)))?)/gm;
- let nodeStack = [];
- let output = text.replace(
- rgx,
- ($0, all, name, isBegin, isCloseFull1, isCloseFull2, isFull1, isFull2) => {
- let isClosed = isCloseFull1 == '/' || isCloseFull2 == '/' || isFull1 == '/' || isFull2 == '/';
- let prefix = '';
- if (isBegin == '!') {
- //!开头
- prefix = setPrefix(nodeStack.length);
- } else {
- if (isBegin != '/') {
- ///开头
- prefix = setPrefix(nodeStack.length);
- if (!isClosed) {
- //非关闭标签
- nodeStack.push(name);
- }
- } else {
- nodeStack.pop(); //弹栈
- prefix = setPrefix(nodeStack.length);
- }
- }
- return '\n' + prefix + all;
- },
- );
- let outputText = output.substring(1);
- //还原注释内容
- outputText = outputText
- .replace(/\n/g, '\r')
- .replace(/(\s*)<!--(.+?)-->/g, function($0, prefix, text) {
- if (prefix.charAt(0) == '\r') prefix = prefix.substring(1);
- // 解码
- text = unescape(text).replace(/\r/g, '\n');
- let ret = '\n' + prefix + '<!--' + text.replace(/^\s*/gm, prefix) + '-->';
- return ret;
- });
- outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n');
- return outputText;
- };
- Date.prototype.Format = function(fmt) { //author: meizz
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var k in o)
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- return fmt;
- }
- //初始化ajax提交
- Global.InitAjaxSetup();
- //初始化接口地址及登录页面地址
- Global.InitAccessUrl();
- window.addEventListener("resize", function() {
- Global.InitRootFontSize();
- if (Global._autoLayoutFunc != null) {
- Global._autoLayoutFunc();
- }
- });
- Global.InitRootFontSize();
- //判断当前用户密码的修改模式,admin时只能管理员修改,其他模式时用户可自行修改密码
- //login_user_name
- setTimeout(function() {
- var uinfo = $.trim(localStorage.getItem("userinfo"));
- if (uinfo != "") {
- uinfo = JSON.parse(uinfo);
- var pwdeditmode = $.trim(uinfo["pwdeditmod"])
- if (pwdeditmode != "" && pwdeditmode != "admin") {
- $("#login_user_name").parent().attr("href", "javascript:void(0)");
- $("#login_user_name").on('click', function() {
- //加载密码修改页面
- var hiddenDiv = $(".layui-side");
- if (hiddenDiv.length > 0) hiddenDiv.addClass("hidden");
- else $("body>div[class!='monitor_center']").addClass("hidden");
- $(".monitor_center .body_content,.layui-body").load("/static/edit_pwd.html")
- })
- } else {
- $("#login_user_name").parent().attr("href", "javascript:void(0)");
- }
- }
- }, 1000)
|